[jboss-svn-commits] JBL Code SVN: r33585 - in labs/jbossrules/trunk/drools-pipeline/drools-camel/src: test/java/org/drools/camel/component and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jun 21 23:37:23 EDT 2010
Author: hzbarcea
Date: 2010-06-21 23:37:23 -0400 (Mon, 21 Jun 2010)
New Revision: 33585
Added:
labs/jbossrules/trunk/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsClassloaderPolicy.java
Modified:
labs/jbossrules/trunk/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxWrapperCollectionTest.java
labs/jbossrules/trunk/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithMarshallersTest.java
labs/jbossrules/trunk/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelProxyEndpointTest.java
Log:
JBRULES-2347: Drools Pipeline integration with Camel
- added route policy that makes secondary route unnecessary
Added: labs/jbossrules/trunk/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsClassloaderPolicy.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsClassloaderPolicy.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsClassloaderPolicy.java 2010-06-22 03:37:23 UTC (rev 33585)
@@ -0,0 +1,64 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * under the License.
+ */
+
+package org.drools.camel.component;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Navigate;
+import org.apache.camel.Processor;
+import org.apache.camel.Route;
+import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.Service;
+import org.apache.camel.impl.RoutePolicySupport;
+import org.apache.camel.processor.SendProcessor;
+import org.drools.grid.ExecutionNode;
+import org.drools.runtime.pipeline.impl.ExecutionNodePipelineContextImpl;
+
+public class DroolsClassloaderPolicy extends RoutePolicySupport {
+ private ExecutionNodePipelineContextImpl context;
+
+ @Override
+ public void onInit(Route route) {
+ ExecutionNode node = getDroolsNode(route.navigate());
+ if (node != null) {
+ context = new ExecutionNodePipelineContextImpl(node, null);
+ }
+ }
+
+ @Override
+ public void onExchangeBegin(Route route, Exchange exchange) {
+ if (context != null) {
+ exchange.setProperty("drools-context", context);
+ }
+ }
+
+ private ExecutionNode getDroolsNode(Navigate<Processor> nav) {
+ if (nav.hasNext()) {
+ for (Processor child : nav.next()) {
+ if (child instanceof Navigate) {
+ ExecutionNode id = getDroolsNode((Navigate) child);
+ if (id != null) {
+ return id;
+ }
+ } else if (child instanceof SendProcessor &&
+ ((SendProcessor)child).getDestination() instanceof DroolsEndpoint) {
+ DroolsEndpoint e = (DroolsEndpoint)((SendProcessor)child).getDestination();
+ return e.getExecutionNode();
+ }
+ }
+ }
+ return null;
+ }
+}
Modified: labs/jbossrules/trunk/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxWrapperCollectionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxWrapperCollectionTest.java 2010-06-22 01:54:34 UTC (rev 33584)
+++ labs/jbossrules/trunk/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxWrapperCollectionTest.java 2010-06-22 03:37:23 UTC (rev 33585)
@@ -362,8 +362,10 @@
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
public void configure() throws Exception {
- from("direct:test-with-session").to("drools:node/ksession1?dataFormat=drools-jaxb");
- from("direct:test-no-session").to("drools:node?dataFormat=drools-jaxb");
+ from("direct:test-with-session").
+ unmarshal("drools-jaxb").to("drools-embedded:node/ksession1").marshal("drools-jaxb");
+ from("direct:test-no-session").
+ unmarshal("drools-jaxb").to("drools-embedded:node").marshal("drools-jaxb");
}
};
}
Modified: labs/jbossrules/trunk/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithMarshallersTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithMarshallersTest.java 2010-06-22 01:54:34 UTC (rev 33584)
+++ labs/jbossrules/trunk/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithMarshallersTest.java 2010-06-22 03:37:23 UTC (rev 33585)
@@ -150,9 +150,9 @@
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
public void configure() throws Exception {
- from( "direct:test-with-session" ).to( "drools:node/ksession1?dataFormat=drools-xstream" );
- from( "direct:test-with-session-json" ).to( "drools:node/ksession1?dataFormat=drools-json" );
- from( "direct:test-no-session" ).to( "drools:node?dataFormat=drools-xstream" );
+ from("direct:test-with-session").routePolicy(new DroolsClassloaderPolicy()).unmarshal("drools-xstream").to("drools-embedded:node/ksession1").marshal("drools-xstream");
+ from("direct:test-with-session-json").routePolicy(new DroolsClassloaderPolicy()).unmarshal("drools-json").to("drools-embedded:node/ksession1").marshal("drools-json" );
+ from("direct:test-no-session").routePolicy(new DroolsClassloaderPolicy()).unmarshal("drools-xstream").to( "drools-embedded:node").marshal("drools-xstream");
}
};
}
Modified: labs/jbossrules/trunk/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelProxyEndpointTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelProxyEndpointTest.java 2010-06-22 01:54:34 UTC (rev 33584)
+++ labs/jbossrules/trunk/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelProxyEndpointTest.java 2010-06-22 03:37:23 UTC (rev 33585)
@@ -40,7 +40,7 @@
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
public void configure() throws Exception {
- from("direct:test-no-marshal").to("drools://node/ksession1");
+ from("direct:test-no-marshal").to("drools-embedded://node/ksession1");
}
};
}
More information about the jboss-svn-commits
mailing list