[jboss-svn-commits] JBL Code SVN: r32243 - labs/jbossrules/trunk/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Mar 26 12:07:05 EDT 2010


Author: lucazamador
Date: 2010-03-26 12:07:04 -0400 (Fri, 26 Mar 2010)
New Revision: 32243

Modified:
   labs/jbossrules/trunk/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsJaxbDataFormat.java
   labs/jbossrules/trunk/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsXStreamDataFormat.java
Log:
drools-camel: added suport to CommandBasedStatefulKnowledgeSession on XStreamDataFormat

Modified: labs/jbossrules/trunk/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsJaxbDataFormat.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsJaxbDataFormat.java	2010-03-26 14:50:47 UTC (rev 32242)
+++ labs/jbossrules/trunk/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsJaxbDataFormat.java	2010-03-26 16:07:04 UTC (rev 32243)
@@ -15,19 +15,12 @@
 import org.apache.camel.Exchange;
 import org.apache.camel.spi.DataFormat;
 import org.drools.command.runtime.BatchExecutionCommand;
-import org.drools.impl.StatefulKnowledgeSessionImpl;
-import org.drools.impl.StatelessKnowledgeSessionImpl;
 import org.drools.io.Resource;
-import org.drools.reteoo.ReteooRuleBase;
-import org.drools.runtime.CommandExecutor;
 import org.drools.runtime.ExecutionResults;
 import org.drools.runtime.impl.ExecutionResultImpl;
 import org.drools.runtime.pipeline.PipelineContext;
 import org.drools.runtime.pipeline.impl.CommandTranslator;
 import org.drools.runtime.pipeline.impl.ResultTranslator;
-import org.drools.runtime.pipeline.impl.ServiceManagerPipelineContextImpl;
-import org.drools.vsm.ServiceManager;
-import org.w3c.dom.Document;
 import org.xml.sax.InputSource;
 
 /**
@@ -74,29 +67,16 @@
 
 	public Object unmarshal(Exchange exchange, InputStream stream) throws Exception {
 		
-		JAXBContext jaxbContext = (JAXBContext) exchange.getIn().getHeader("jaxb-context");
+		Object header = exchange.getIn().getHeader("jaxb-context");
+		if (header==null || !(header instanceof JAXBContext)) {
+			throw new IllegalArgumentException("jaxb-context header param is null or not a valid JAXBContext");
+		}
 
+		JAXBContext jaxbContext = (JAXBContext) header;
+
 		PipelineContext context = (PipelineContext) exchange.getProperty("drools-context");
 		Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
-		Document d = exchange.getIn().getBody(Document.class);
 		Object body = exchange.getIn().getBody();
-		String name = d.getDocumentElement().getAttribute("lookup");
-		ServiceManagerPipelineContextImpl vsmContext = (ServiceManagerPipelineContextImpl) exchange.getProperty("drools-context");
-		ServiceManager sm = vsmContext.getServiceManager();
-		CommandExecutor executor = sm.lookup(name);
-		if (executor == null) {
-			throw new IllegalArgumentException("Unable to lookup CommandExecutor using name '" + name + "'");
-		}
-		vsmContext.setCommandExecutor(executor);
-		ClassLoader cl = null;
-		if (executor instanceof StatefulKnowledgeSessionImpl) {
-			cl = ((ReteooRuleBase) ((StatefulKnowledgeSessionImpl) executor).getRuleBase()).getRootClassLoader();
-		} else if (executor instanceof StatelessKnowledgeSessionImpl) {
-			cl = ((ReteooRuleBase) ((StatelessKnowledgeSessionImpl) executor).getRuleBase()).getRootClassLoader();
-		} else {
-			throw new IllegalArgumentException("Unable to set ClassLoader on " + executor);
-		}
-		vsmContext.setClassLoader(cl);
 		Object payload = null;
 		if ( body instanceof File ) {
 			payload = unmarshaller.unmarshal( (File) body );

Modified: labs/jbossrules/trunk/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsXStreamDataFormat.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsXStreamDataFormat.java	2010-03-26 14:50:47 UTC (rev 32242)
+++ labs/jbossrules/trunk/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsXStreamDataFormat.java	2010-03-26 16:07:04 UTC (rev 32243)
@@ -26,6 +26,8 @@
 
 import org.apache.camel.Exchange;
 import org.apache.camel.spi.DataFormat;
+import org.drools.command.impl.CommandBasedStatefulKnowledgeSession;
+import org.drools.impl.KnowledgeBaseImpl;
 import org.drools.impl.StatefulKnowledgeSessionImpl;
 import org.drools.impl.StatelessKnowledgeSessionImpl;
 import org.drools.io.Resource;
@@ -117,6 +119,8 @@
             xstream.setClassLoader(cl);
         } else if (executor instanceof StatelessKnowledgeSessionImpl) {
             cl = ((ReteooRuleBase) ((StatelessKnowledgeSessionImpl) executor).getRuleBase()).getRootClassLoader();
+		} else if (executor instanceof CommandBasedStatefulKnowledgeSession) {
+			cl = ((ReteooRuleBase) ((KnowledgeBaseImpl)((CommandBasedStatefulKnowledgeSession) executor).getKnowledgeBase()).getRuleBase()).getRootClassLoader();
         } else {
             throw new IllegalArgumentException("Unable to set ClassLoader on " + executor);
         }



More information about the jboss-svn-commits mailing list