Return-Path: X-Original-To: apmail-camel-commits-archive@www.apache.org Delivered-To: apmail-camel-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5B9D4D7E3 for ; Fri, 21 Dec 2012 19:29:50 +0000 (UTC) Received: (qmail 58246 invoked by uid 500); 21 Dec 2012 19:29:50 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 58193 invoked by uid 500); 21 Dec 2012 19:29:50 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 58133 invoked by uid 99); 21 Dec 2012 19:29:50 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 21 Dec 2012 19:29:50 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 21 Dec 2012 19:29:48 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 8EEBA2388962; Fri, 21 Dec 2012 19:29:28 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1425103 - in /camel/branches/camel-2.10.x: ./ camel-core/src/test/java/org/apache/camel/processor/StreamResequencerTest.java components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringStreamResequencerTest.java Date: Fri, 21 Dec 2012 19:29:28 -0000 To: commits@camel.apache.org From: bvahdat@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121221192928.8EEBA2388962@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: bvahdat Date: Fri Dec 21 19:29:28 2012 New Revision: 1425103 URL: http://svn.apache.org/viewvc?rev=1425103&view=rev Log: Merged revisions 1425102 via svnmerge from https://svn.apache.org/repos/asf/camel/trunk ........ r1425102 | bvahdat | 2012-12-21 20:26:13 +0100 (Fr, 21 Dez 2012) | 1 line CAMEL-5900: Clean-up the test being mentioned by the user. ........ Modified: camel/branches/camel-2.10.x/ (props changed) camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/processor/StreamResequencerTest.java camel/branches/camel-2.10.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringStreamResequencerTest.java Propchange: camel/branches/camel-2.10.x/ ------------------------------------------------------------------------------ Merged /camel/trunk:r1425102 Propchange: camel/branches/camel-2.10.x/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/processor/StreamResequencerTest.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/processor/StreamResequencerTest.java?rev=1425103&r1=1425102&r2=1425103&view=diff ============================================================================== --- camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/processor/StreamResequencerTest.java (original) +++ camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/processor/StreamResequencerTest.java Fri Dec 21 19:29:28 2012 @@ -17,8 +17,8 @@ package org.apache.camel.processor; import java.util.List; +import java.util.Random; import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import org.apache.camel.Channel; import org.apache.camel.ContextTestSupport; @@ -28,15 +28,12 @@ import org.apache.camel.Processor; import org.apache.camel.ProducerTemplate; import org.apache.camel.Route; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.impl.EventDrivenConsumerRoute; +import org.apache.camel.util.ServiceHelper; public class StreamResequencerTest extends ContextTestSupport { - protected MockEndpoint resultEndpoint; - - protected void sendBodyAndHeader(String endpointUri, final Object body, - final String headerName, final Object headerValue) { + protected void sendBodyAndHeader(String endpointUri, final Object body, final String headerName, final Object headerValue) { template.send(endpointUri, new Processor() { public void process(Exchange exchange) { Message in = exchange.getIn(); @@ -48,44 +45,46 @@ public class StreamResequencerTest exten } public void testSendMessagesInWrongOrderButReceiveThemInCorrectOrder() throws Exception { - resultEndpoint.expectedBodiesReceived("msg1", "msg2", "msg3", "msg4"); + getMockEndpoint("mock:result").expectedBodiesReceived("msg1", "msg2", "msg3", "msg4"); + sendBodyAndHeader("direct:start", "msg4", "seqnum", 4L); sendBodyAndHeader("direct:start", "msg1", "seqnum", 1L); sendBodyAndHeader("direct:start", "msg3", "seqnum", 3L); sendBodyAndHeader("direct:start", "msg2", "seqnum", 2L); - resultEndpoint.assertIsSatisfied(); + + assertMockEndpointsSatisfied(); } public void testMultithreaded() throws Exception { int numMessages = 100; - ExecutorService service = Executors.newFixedThreadPool(2); - service.execute(new Sender(context.createProducerTemplate(), 0, numMessages, 2)); - service.execute(new Sender(context.createProducerTemplate(), 1, numMessages + 1, 2)); + ProducerTemplate producerTemplate = context.createProducerTemplate(); + ProducerTemplate producerTemplate2 = context.createProducerTemplate(); + + ExecutorService service = context.getExecutorServiceManager().newFixedThreadPool(this, getName(), 2); + + service.execute(new Sender(producerTemplate, 0, numMessages, 2)); + service.execute(new Sender(producerTemplate2, 1, numMessages, 2)); Object[] bodies = new Object[numMessages]; for (int i = 0; i < numMessages; i++) { bodies[i] = "msg" + i; } - resultEndpoint.expectedBodiesReceived(bodies); - resultEndpoint.setResultWaitTime(20000); - resultEndpoint.assertIsSatisfied(); + getMockEndpoint("mock:result").expectedBodiesReceivedInAnyOrder(bodies); + getMockEndpoint("mock:result").setResultWaitTime(20000); - service.shutdownNow(); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - disableJMX(); - resultEndpoint = getMockEndpoint("mock:result"); + assertMockEndpointsSatisfied(); + + ServiceHelper.stopServices(producerTemplate, producerTemplate2); } @Override - protected void tearDown() throws Exception { - super.tearDown(); - enableJMX(); + protected boolean useJmx() { + boolean enable = "testStreamResequencerTypeWithJmx".equals(getName()); + log.info("Going to {} JMX for the test {}", (enable ? "enable" : "disable"), getName()); + + return enable; } protected RouteBuilder createRouteBuilder() { @@ -103,8 +102,6 @@ public class StreamResequencerTest exten } public void testStreamResequencerTypeWithoutJmx() throws Exception { - log.debug("This will now fail"); - disableJMX(); doTestStreamResequencerType(); } @@ -120,34 +117,36 @@ public class StreamResequencerTest exten assertIsInstanceOf(DefaultErrorHandler.class, channel.getErrorHandler()); assertIsInstanceOf(StreamResequencer.class, channel.getNextProcessor()); } - - private static class Sender extends Thread { - - ProducerTemplate template; - - int start; - int end; - int increment; - + + private static class Sender implements Runnable { + + private final ProducerTemplate template; + private final int start; + private final int end; + private final int increment; + private final Random random; + public Sender(ProducerTemplate template, int start, int end, int increment) { this.template = template; this.start = start; this.end = end; this.increment = increment; + random = new Random(); } @Override public void run() { for (long i = start; i < end; i += increment) { try { - Thread.sleep(4); + // let's sleep randomly + Thread.sleep(random.nextInt(20)); } catch (InterruptedException e) { - // ignore + Thread.currentThread().interrupt(); } + template.sendBodyAndHeader("direct:start", "msg" + i, "seqnum", i); } } - + } } - Modified: camel/branches/camel-2.10.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringStreamResequencerTest.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringStreamResequencerTest.java?rev=1425103&r1=1425102&r2=1425103&view=diff ============================================================================== --- camel/branches/camel-2.10.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringStreamResequencerTest.java (original) +++ camel/branches/camel-2.10.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringStreamResequencerTest.java Fri Dec 21 19:29:28 2012 @@ -16,13 +16,14 @@ */ package org.apache.camel.spring.processor; - import org.apache.camel.CamelContext; import org.apache.camel.processor.StreamResequencerTest; -import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext; +import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext; public class SpringStreamResequencerTest extends StreamResequencerTest { + + @Override protected CamelContext createCamelContext() throws Exception { return createSpringCamelContext(this, "org/apache/camel/spring/processor/streamResequencer.xml"); }