You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2014/12/31 18:04:50 UTC

[2/2] camel git commit: CAMEL-8201: NPE with language:ruby and concurrentConsumers - added unit test which is reproducing the issue

CAMEL-8201: NPE with language:ruby and concurrentConsumers - added unit test which is reproducing the issue


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/b1552656
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/b1552656
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/b1552656

Branch: refs/heads/master
Commit: b1552656f52b33379773b2e26cf4df8a64790039
Parents: c02a759
Author: Christian Mueller <cm...@apache.org>
Authored: Wed Dec 31 18:04:07 2014 +0100
Committer: Christian Mueller <cm...@apache.org>
Committed: Wed Dec 31 18:04:41 2014 +0100

----------------------------------------------------------------------
 .../builder/script/RubyScriptTextTest.java      | 71 ++++++++++++++++++++
 1 file changed, 71 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/b1552656/components/camel-script/src/test/java/org/apache/camel/builder/script/RubyScriptTextTest.java
----------------------------------------------------------------------
diff --git a/components/camel-script/src/test/java/org/apache/camel/builder/script/RubyScriptTextTest.java b/components/camel-script/src/test/java/org/apache/camel/builder/script/RubyScriptTextTest.java
new file mode 100755
index 0000000..875f309
--- /dev/null
+++ b/components/camel-script/src/test/java/org/apache/camel/builder/script/RubyScriptTextTest.java
@@ -0,0 +1,71 @@
+package org.apache.camel.builder.script;
+
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.apache.camel.EndpointInject;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+public class RubyScriptTextTest extends CamelTestSupport {
+
+    @EndpointInject(uri = "mock:result")
+    MockEndpoint resultEndpoint;
+
+    final int messageCount = 500;
+
+    @Test
+    public void parallelExecutionWithCachedScriptAndReusedScriptEngine() throws Exception {
+        context.addRoutes(new RouteBuilder() {
+            public void configure() throws Exception {
+                getContext().getProperties().put(Exchange.REUSE_SCRIPT_ENGINE, "true");
+                //getContext().getProperties().put(Exchange.COMPILE_SCRIPT, "true");
+
+                from("seda:jruby?concurrentConsumers=5")
+                    .to("language:ruby:puts $request.body;result = $request.body?cacheScript=true")
+                    .to(resultEndpoint);
+            }
+        });
+
+        resultEndpoint.setExpectedMessageCount(messageCount);
+        resultEndpoint.assertNoDuplicates(body());
+
+        for (int i = 1; i < messageCount + 1; i++) {
+            template.sendBody("seda:jruby", "BODY" + i);
+        }
+
+        assertMockEndpointsSatisfied(5, TimeUnit.SECONDS);
+    }
+
+    @Test
+    @Ignore
+    public void parallelExecutionWithoutCachedScriptAndNewScriptEngineForEachExchange() throws Exception {
+        context.addRoutes(new RouteBuilder() {
+            public void configure() throws Exception {
+                //getContext().getProperties().put(Exchange.COMPILE_SCRIPT, "true");
+
+                from("seda:jruby?concurrentConsumers=5")
+                    .to("language:ruby:puts $request.body;result = $request.body")
+                    .to(resultEndpoint);
+            }
+        });
+
+        resultEndpoint.setExpectedMessageCount(messageCount);
+        resultEndpoint.assertNoDuplicates(body());
+
+        for (int i = 1; i < messageCount + 1; i++) {
+            template.sendBody("seda:jruby", "BODY" + i);
+        }
+
+        assertMockEndpointsSatisfied(5, TimeUnit.SECONDS);
+    }
+}