From d3459b6f6e751e77eecac781e4701a4d15290a43 Mon Sep 17 00:00:00 2001 From: Martin Ritchie Date: Tue, 19 Dec 2006 10:51:39 +0000 Subject: QPID-21 Added: SelectorParser.jj - ActiveMQ selector javacc grammar used to generate SelectorParser.java server/filter - Selector Filtering code from ActiveMQ project adjusted to suite our class and package structure. server/message - Decorator classes to allow access to the JMSMessage inside the AMQMessage ConcurrentSelectorDeliveryManager.java - A new DeliveryManager that utilises PreDeliveryQueues to implement selectors AMQInvalidSelectorException.java - thrown on client and broker when the Selector text is invalid. Common: log4j.properties to remove error log4j warnings on Common tests. Modified: broker/pom.xml - to generate SelectorParser.java AMQChannel.java - Addition of argument fieldtable for filter setup. BasicConsumeMethodHandler.java - writing of InvalidSelector channel close exception. AMQMessage.java - Added decorator to get access to the enclosed JMSMessage AMQQueue.java - Enhanced 'deliverymanager' property to allow the selection of the ConcurrentSelectorDeliveryManager. Subscription.java - Enhanced interface to allow a subscription to state an 'interest' in a given message. SubscriptionFactory.java - Added method to allow passing of filter arguments. SubscriptionImpl.java - Implemented new Subscription.java methods. SubscriptionManager.java - Added ability to get a list of current subscribers. SubscriptionSet.java - augmented nextSubscriber to allow the subscriber to exert the new hasInterest feature. SynchronizedDeliveryManager.java - fixed Logging class AMQSession - Added filter extraction from consume call and pass it on to the registration. ChannelCloseMethodHandler.java - Handle the reception and correct raising of the InvalidSelector Exception AbstractJMSMessage.java - Expanded imports BlockingMethodFrameListener.java - added extra info to a debug output line. SocketTransportConnection.java - made output an info not a warn. PropertiesFileInitialContextFactory.java - updated to allow the PROVIDER_URL to specify a property file to read in for the initial values. ClusteredSubscriptionManager.java - Implementation of SubscriptionSet.java NestedSubscriptionManager.java - Implementation of SubscriptionManager.java RemoteSubscriptionImpl.java - Implementation Subscription.java AMQConstant.java - Added '322' "Invalid Selector" SubscriptionTestHelper.java - Implementation of Subscription.java Edited specs/amqp-8.0.xml to add field table to consume method. Thanks to the ActiveMQ project for writing the initial SelectorParser.jj and associated filter Expressions. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@488624 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/qpid/server/queue/AMQQueueMBeanTest.java | 13 +++++++------ .../qpid/server/queue/SubscriptionTestHelper.java | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) (limited to 'java/systests') diff --git a/java/systests/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java b/java/systests/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java index c455d771cb..8de3c8bf33 100644 --- a/java/systests/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java +++ b/java/systests/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java @@ -30,7 +30,7 @@ import javax.management.JMException; /** * Test class to test AMQQueueMBean attribtues and operations */ -public class AMQQueueMBeanTest extends TestCase +public class AMQQueueMBeanTest extends TestCase { private AMQQueue _queue; private AMQQueueMBean _queueMBean; @@ -62,14 +62,14 @@ public class AMQQueueMBeanTest extends TestCase assertFalse(mgr.hasActiveSubscribers()); assertTrue(_queueMBean.getActiveConsumerCount() == 0); - _channel = new AMQChannel(1, _messageStore, null); + _channel = new AMQChannel(1, _messageStore, null); _protocolSession = new MockProtocolSession(_messageStore); _protocolSession.addChannel(_channel); - _queue.registerProtocolSession(_protocolSession, 1, "test", false); + _queue.registerProtocolSession(_protocolSession, 1, "test", false, null); assertTrue(_queueMBean.getActiveConsumerCount() == 1); - SubscriptionSet _subscribers = (SubscriptionSet)mgr; + SubscriptionSet _subscribers = (SubscriptionSet) mgr; SubscriptionTestHelper s1 = new SubscriptionTestHelper("S1"); SubscriptionTestHelper s2 = new SubscriptionTestHelper("S2"); _subscribers.addSubscriber(s1); @@ -161,7 +161,7 @@ public class AMQQueueMBeanTest extends TestCase super.setUp(); _queueRegistry = new DefaultQueueRegistry(); _queue = new AMQQueue("testQueue", false, "AMQueueMBeanTest", false, _queueRegistry); - _queueMBean = new AMQQueueMBean(_queue); + _queueMBean = new AMQQueueMBean(_queue); } private void sendMessages(int messageCount) throws AMQException @@ -169,7 +169,8 @@ public class AMQQueueMBeanTest extends TestCase AMQMessage[] messages = new AMQMessage[messageCount]; for (int i = 0; i < messages.length; i++) { - messages[i] = message(false);; + messages[i] = message(false); + ; } for (int i = 0; i < messageCount; i++) { diff --git a/java/systests/src/test/java/org/apache/qpid/server/queue/SubscriptionTestHelper.java b/java/systests/src/test/java/org/apache/qpid/server/queue/SubscriptionTestHelper.java index 2773c810d2..2de22f9084 100644 --- a/java/systests/src/test/java/org/apache/qpid/server/queue/SubscriptionTestHelper.java +++ b/java/systests/src/test/java/org/apache/qpid/server/queue/SubscriptionTestHelper.java @@ -22,6 +22,7 @@ package org.apache.qpid.server.queue; import java.util.ArrayList; import java.util.List; +import java.util.Queue; public class SubscriptionTestHelper implements Subscription { @@ -70,6 +71,26 @@ public class SubscriptionTestHelper implements Subscription { } + public boolean hasFilters() + { + return false; + } + + public boolean hasInterest(AMQMessage msg) + { + return true; + } + + public Queue getPreDeliveryQueue() + { + return null; + } + + public void enqueueForPreDelivery(AMQMessage msg) + { + //no-op + } + public int hashCode() { return key.hashCode(); -- cgit v1.2.1