Author: sully6768 Date: Thu Sep 27 19:22:26 2012 New Revision: 1391170 URL: http://svn.apache.org/viewvc?rev=1391170&view=rev Log: Updated batch transaction tests to allow for a slower environment
Modified: camel/trunk/components/camel-sjms/pom.xml camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/BatchTransactedConcurrentMultipleConsumerTest.java camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/BatchTransactedConcurrentMultipleRouteConsumersTest.java camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConcurrentConsumersTest.java Modified: camel/trunk/components/camel-sjms/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/pom.xml?rev=1391170&r1=1391169&r2=1391170&view=diff ============================================================================== --- camel/trunk/components/camel-sjms/pom.xml (original) +++ camel/trunk/components/camel-sjms/pom.xml Thu Sep 27 19:22:26 2012 @@ -130,19 +130,17 @@ <source>1.6</source> <target>1.6</target> </configuration> - </plugin> <!-- Configure which tests are included/excuded --> + </plugin> <plugin> - <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <version>2.8</version> <configuration> <forkMode>pertest</forkMode> <argLine>-Xmx512M</argLine> - <excludes> - <exclude>**/BatchTransactedConcurrentMultipleConsumerTest.*</exclude> - <exclude>**/BatchTransactedConcurrentMultipleRouteConsumersTest.*</exclude> - <exclude>**/TransactedConcurrentConsumersTest.*</exclude> - </excludes> +<!-- <excludes> --> +<!-- <exclude>**/BatchTransactedConcurrentMultipleConsumerTest.*</exclude> --> +<!-- <exclude>**/BatchTransactedConcurrentMultipleRouteConsumersTest.*</exclude> --> +<!-- <exclude>**/TransactedConcurrentConsumersTest.*</exclude> --> +<!-- </excludes> --> </configuration> </plugin> <plugin> Modified: camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/BatchTransactedConcurrentMultipleConsumerTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/BatchTransactedConcurrentMultipleConsumerTest.java?rev=1391170&r1=1391169&r2=1391170&view=diff ============================================================================== --- camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/BatchTransactedConcurrentMultipleConsumerTest.java (original) +++ camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/BatchTransactedConcurrentMultipleConsumerTest.java Thu Sep 27 19:22:26 2012 @@ -33,10 +33,12 @@ import org.junit.Test; */ public class BatchTransactedConcurrentMultipleConsumerTest extends CamelTestSupport { - private static final int BATCH_COUNT = 25; + private static final int BATCH_COUNT = 10; private static final int CONSUMER_COUNT = 2; - private static final int MAX_ATTEMPTS_COUNT = 50; - private static final int MESSAGE_COUNT = 200; + private static final int MAX_ATTEMPTS_COUNT = 10; + private static final int MESSAGE_COUNT = 20; + private static final int TOTAL_REDELIVERED_FALSE = 19; + private static final int TOTAL_REDELIVERED_TRUE = 5; private static final String BROKER_URI = "vm://btcmcTestBroker?broker.persistent=false&broker.useJmx=true"; /** @@ -48,8 +50,8 @@ public class BatchTransactedConcurrentMu @Test public void testEndpointConfiguredBatchTransaction() throws Exception { - getMockEndpoint("mock:test.redelivered.false").expectedMessageCount(175); - getMockEndpoint("mock:test.redelivered.true").expectedMessageCount(25); + getMockEndpoint("mock:test.redelivered.false").expectedMessageCount(TOTAL_REDELIVERED_FALSE); + getMockEndpoint("mock:test.redelivered.true").expectedMessageCount(TOTAL_REDELIVERED_TRUE); // We should never see a message appear in this endpoint or we // have problem with our JMS provider @@ -61,7 +63,8 @@ public class BatchTransactedConcurrentMu template.sendBody("direct:start", message); log.trace("Sending message: {}", message); } - assertMockEndpointsSatisfied(10, TimeUnit.SECONDS); + Thread.sleep(3000); + assertMockEndpointsSatisfied(5, TimeUnit.SECONDS); } @@ -105,12 +108,6 @@ public class BatchTransactedConcurrentMu .to("mock:test.redelivered.false") // Now process again any messages that were redelivered .when(header("JMSRedelivered").isEqualTo("true")) - .process(new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - log.info("Retry processing attempt. Continue processing the message."); - } - }) .log("2nd attempt Body: ${body} | Redeliverd: ${header.JMSRedelivered}") .to("mock:test.redelivered.true") .otherwise() Modified: camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/BatchTransactedConcurrentMultipleRouteConsumersTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/BatchTransactedConcurrentMultipleRouteConsumersTest.java?rev=1391170&r1=1391169&r2=1391170&view=diff ============================================================================== --- camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/BatchTransactedConcurrentMultipleRouteConsumersTest.java (original) +++ camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/BatchTransactedConcurrentMultipleRouteConsumersTest.java Thu Sep 27 19:22:26 2012 @@ -34,11 +34,14 @@ import org.junit.Test; */ public class BatchTransactedConcurrentMultipleRouteConsumersTest extends CamelTestSupport { private static final int ROUTE_COUNT = 2; - private static final int BATCH_COUNT = 25; - private static final int MAX_ATTEMPTS_COUNT = 50; - private static final int MESSAGE_COUNT = 200; + private static final int BATCH_COUNT = 10; + private static final int MAX_ATTEMPTS_COUNT = 10; + private static final int MESSAGE_COUNT = 20; private static final int CONSUMER_COUNT = 1; + private static final int TOTAL_REDELIVERED_FALSE = 9; + private static final int TOTAL_REDELIVERED_TRUE = 10; private static final String BROKER_URI = "vm://btccmrcTestBroker?broker.persistent=false&broker.useJmx=true"; + /** * We want to verify that when consuming from a single destination with @@ -52,13 +55,13 @@ public class BatchTransactedConcurrentMu // We will only get 99 messages because after the 50th attempt // the exception will throw and that message will not make // it to the test.redelivered.false.# endpoint - getMockEndpoint("mock:test.redelivered.false.1").expectedMessageCount(99); - getMockEndpoint("mock:test.redelivered.false.2").expectedMessageCount(99); + getMockEndpoint("mock:test.redelivered.false.1").expectedMessageCount(TOTAL_REDELIVERED_FALSE); + getMockEndpoint("mock:test.redelivered.false.2").expectedMessageCount(TOTAL_REDELIVERED_FALSE); // We should always get 25 for each endpoint since that is our batch // count to roll back. - getMockEndpoint("mock:test.redelivered.true.1").expectedMessageCount(25); - getMockEndpoint("mock:test.redelivered.true.2").expectedMessageCount(25); + getMockEndpoint("mock:test.redelivered.true.1").expectedMessageCount(TOTAL_REDELIVERED_TRUE); + getMockEndpoint("mock:test.redelivered.true.2").expectedMessageCount(TOTAL_REDELIVERED_TRUE); getMockEndpoint("mock:test.after").expectedMessageCount(0); // Send the message count @@ -67,7 +70,9 @@ public class BatchTransactedConcurrentMu template.sendBody("direct:start", message); log.trace("Sending message: {}", message); } - assertMockEndpointsSatisfied(10, TimeUnit.SECONDS); + + Thread.sleep(3000); + assertMockEndpointsSatisfied(5, TimeUnit.SECONDS); } @Override @@ -108,17 +113,11 @@ public class BatchTransactedConcurrentMu } } }) - .log("1st attempt Body: ${body} | Redeliverd: ${header.JMSRedelivered}") + .log("Route " + i + " 1st attempt Body: ${body} | Redeliverd: ${header.JMSRedelivered}") .to("mock:test.redelivered.false." + i) // Now process again any messages that were redelivered .when(header("JMSRedelivered").isEqualTo("true")) - .process(new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - log.info("Retry processing attempt. Continue processing the message."); - } - }) - .log("2nd attempt Body: ${body} | Redeliverd: ${header.JMSRedelivered}") + .log("Route " + i + " 2nd attempt Body: ${body} | Redeliverd: ${header.JMSRedelivered}") .to("mock:test.redelivered.true." + i) .otherwise() .to("mock:test.after"); Modified: camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConcurrentConsumersTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConcurrentConsumersTest.java?rev=1391170&r1=1391169&r2=1391170&view=diff ============================================================================== --- camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConcurrentConsumersTest.java (original) +++ camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConcurrentConsumersTest.java Thu Sep 27 19:22:26 2012 @@ -34,8 +34,10 @@ import org.junit.Test; public class TransactedConcurrentConsumersTest extends CamelTestSupport { private static final int CONSUMER_COUNT = 2; - private static final int MAX_ATTEMPTS_COUNT = 50; - private static final int MESSAGE_COUNT = 100; + private static final int MAX_ATTEMPTS_COUNT = 10; + private static final int MESSAGE_COUNT = 20; + private static final int TOTAL_REDELIVERED_FALSE = 18; + private static final int TOTAL_REDELIVERED_TRUE = 2; private static final String BROKER_URI = "vm://tccTestBroker?broker.persistent=false&broker.useJmx=true"; /** @@ -45,12 +47,10 @@ public class TransactedConcurrentConsume */ @Test public void testEndpointConfiguredBatchTransaction() throws Exception { - // We are set up for a failure to occur every 50 messages. Even with - // multiple consumers we should still only see 4 message failures - // over the course of 200 messages. - int transactedMsgs = MESSAGE_COUNT/MAX_ATTEMPTS_COUNT; - getMockEndpoint("mock:test.redelivered.false").expectedMessageCount(MESSAGE_COUNT - transactedMsgs); - getMockEndpoint("mock:test.redelivered.true").expectedMessageCount(transactedMsgs); + // We are set up for a failure to occur every 10 messages. We should see + // 2 message failures over the course of 20 messages. + getMockEndpoint("mock:test.redelivered.false").expectedMessageCount(TOTAL_REDELIVERED_FALSE); + getMockEndpoint("mock:test.redelivered.true").expectedMessageCount(TOTAL_REDELIVERED_TRUE); // We should never see a message appear in this endpoint or we // have problem with our JMS provider @@ -62,8 +62,8 @@ public class TransactedConcurrentConsume template.sendBody("direct:start", message); log.trace("Sending message: {}", message); } - - assertMockEndpointsSatisfied(10, TimeUnit.SECONDS); + Thread.sleep(3000); + assertMockEndpointsSatisfied(5, TimeUnit.SECONDS); } @@ -109,12 +109,6 @@ public class TransactedConcurrentConsume .to("mock:test.redelivered.false") // Now process again any messages that were redelivered .when(header("JMSRedelivered").isEqualTo("true")) - .process(new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - log.info("Retry processing attempt. Continue processing the message."); - } - }) .log("2nd attempt Body: ${body} | Redeliverd: ${header.JMSRedelivered}") .to("mock:test.redelivered.true") .otherwise() @@ -122,4 +116,45 @@ public class TransactedConcurrentConsume } }; } + +// private class RedeliveredProcessor implements Processor { +// private CountDownLatch latch; +// +// public RedeliveredProcessor(CountDownLatch latch) { +// super(); +// this.latch = latch; +// } +// +// @Override +// public void process(Exchange exchange) throws Exception { +// // TODO Auto-generated method stub +// +// } +// +// } +// +// private class NotRedeliveredProcessor implements Processor { +// private final AtomicInteger counter = new AtomicInteger(0); +// private final AtomicInteger total = new AtomicInteger(0); +// private CountDownLatch latch; +// +// public NotRedeliveredProcessor(CountDownLatch latch) { +// super(); +// this.latch = latch; +// } +// +// @Override +// public void process(Exchange exchange) throws Exception { +// int count = counter.incrementAndGet(); +// if (count == MAX_ATTEMPTS_COUNT) { +// log.info("{} Messages have been processed. Failing the exchange to force a rollback of the transaction.", MAX_ATTEMPTS_COUNT); +// exchange.getOut().setFault(true); +// counter.set(0); +// } +// if(total.incrementAndGet() == TOTAL_REDELIVERED_FALSE) { +// cdl.countDown(); +// } +// } +// +// } }