Index: C:/backyard/activemq/activemq-core/src/test/java/org/apache/activemq/usecases/DurableProducerConsumerBrokerTest.java =================================================================== --- C:/backyard/activemq/activemq-core/src/test/java/org/apache/activemq/usecases/DurableProducerConsumerBrokerTest.java (revision 0) +++ C:/backyard/activemq/activemq-core/src/test/java/org/apache/activemq/usecases/DurableProducerConsumerBrokerTest.java (revision 0) @@ -0,0 +1,48 @@ +/** + * + */ +package org.apache.activemq.usecases; + +import javax.jms.Connection; + +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.activemq.broker.BrokerFactory; +import org.apache.activemq.broker.BrokerService; + +/** + * TODO Provide description for DurableProducerConsumerTest. + * + * @author nsandhu + * + */ +public class DurableProducerConsumerBrokerTest extends TestSupport { + protected BrokerService broker; + @Override + protected ActiveMQConnectionFactory createConnectionFactory() throws Exception { + return new ActiveMQConnectionFactory("failover://(tcp://localhost:61616,tcp://someserver:61616)?randomize=false"); + } + + @Override + protected Connection createConnection() throws Exception { + Connection rc = super.createConnection(); + rc.setClientID("C001-002302"); + return rc; + } + + protected void setUp() throws Exception{ + super.setUp(); + broker = createBroker(); + } + + protected BrokerService createBroker() throws Exception{ + BrokerService service = BrokerFactory.createBroker("xbean:/org/apache/activemq/usecases/journaled.tcp.broker.xml"); + service.start(); + return service; + } + + public void testStart() throws Exception{ + Thread.sleep(1000000); + broker.stop(); + } + +} Index: C:/backyard/activemq/activemq-core/src/test/java/org/apache/activemq/usecases/DurableProducerConsumerTest.java =================================================================== --- C:/backyard/activemq/activemq-core/src/test/java/org/apache/activemq/usecases/DurableProducerConsumerTest.java (revision 0) +++ C:/backyard/activemq/activemq-core/src/test/java/org/apache/activemq/usecases/DurableProducerConsumerTest.java (revision 0) @@ -0,0 +1,76 @@ +/** + * + */ +package org.apache.activemq.usecases; + +import java.util.Date; + +import javax.jms.Connection; +import javax.jms.DeliveryMode; +import javax.jms.Message; +import javax.jms.MessageProducer; +import javax.jms.Session; +import javax.jms.TextMessage; +import javax.jms.Topic; +import javax.jms.TopicSubscriber; + +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.activemq.broker.BrokerFactory; +import org.apache.activemq.broker.BrokerService; + +/** + * TODO Provide description for DurableProducerConsumerTest. + * + * @author nsandhu + * + */ +public class DurableProducerConsumerTest extends TestSupport { + + @Override + protected ActiveMQConnectionFactory createConnectionFactory() throws Exception { + return new ActiveMQConnectionFactory( + "failover://(tcp://localhost:61616,tcp://someserver:61616)?randomize=false"); + } + + @Override + protected Connection createConnection() throws Exception { + Connection rc = super.createConnection(); + rc.setClientID("C001-002302"); + return rc; + } + + protected void setUp() throws Exception { + super.setUp(); + } + + public void testProduce() throws Exception { + + Connection connection = createConnection(); + connection.start(); + Session session = connection.createSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE); + + // Ensure that consumer will receive messages sent before it was created + Topic topic = session.createTopic("testTopic"); + TopicSubscriber consumer = session.createDurableSubscriber(topic, "topicTester"); + MessageProducer producer = session.createProducer(topic); + producer.setDeliveryMode(DeliveryMode.PERSISTENT); + for (int i = 0; i < 100; i++) { + producer.send(session.createTextMessage("A test msg @ " + new Date())); + } + // + for (int i = 0; i < 100; i++) { + Message msg = consumer.receive(5000); + producer.send(session.createTextMessage("A test msg @ " + new Date())); + } + // Make sure it works when the durable sub is active. + for (int i = 0; i < 1500; i++) { + producer.send(session.createTextMessage("A test msg @ " + new Date())); + if (i == 1300) { + System.exit(-2); + } + } + producer.close(); + consumer.close(); + } + +} Index: C:/backyard/activemq/activemq-core/src/test/resources/org/apache/activemq/usecases/journaled.tcp.broker.xml =================================================================== --- C:/backyard/activemq/activemq-core/src/test/resources/org/apache/activemq/usecases/journaled.tcp.broker.xml (revision 0) +++ C:/backyard/activemq/activemq-core/src/test/resources/org/apache/activemq/usecases/journaled.tcp.broker.xml (revision 0) @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + Index: C:/backyard/activemq/activemq-core/src/test/resources/log4j.properties =================================================================== --- C:/backyard/activemq/activemq-core/src/test/resources/log4j.properties (revision 582925) +++ C:/backyard/activemq/activemq-core/src/test/resources/log4j.properties (working copy) @@ -18,10 +18,11 @@ # # The logging properties used during tests.. # -log4j.rootLogger=INFO, out +log4j.rootLogger=WARN, out log4j.logger.org.apache.activemq.spring=WARN - +log4j.logger.org.apache.activemq.usage=DEBUG, stdout +#log4j.logger.org.apache.activemq.usecases=DEBUG, stdout # CONSOLE appender not used by default log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout