[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