[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