[jboss-svn-commits] JBL Code SVN: r30359 - labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/main/java/org/drools/runtime/pipeline/impl.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Nov 26 15:56:45 EST 2009


Author: salaboy21
Date: 2009-11-26 15:56:45 -0500 (Thu, 26 Nov 2009)
New Revision: 30359

Modified:
   labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/main/java/org/drools/runtime/pipeline/impl/XStreamFromXmlVsmTransformer.java
   labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/main/java/org/drools/runtime/pipeline/impl/XStreamToXmlVsmTransformer.java
Log:
JBRULES-2347 Drools Pipeline integration with Camel
	-  changes to BaseEmitters in xstrem to support camel calls

Modified: labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/main/java/org/drools/runtime/pipeline/impl/XStreamFromXmlVsmTransformer.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/main/java/org/drools/runtime/pipeline/impl/XStreamFromXmlVsmTransformer.java	2009-11-26 20:55:20 UTC (rev 30358)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/main/java/org/drools/runtime/pipeline/impl/XStreamFromXmlVsmTransformer.java	2009-11-26 20:56:45 UTC (rev 30359)
@@ -20,59 +20,70 @@
     Transformer {
 
     private XStreamResolverStrategy strategy;
-
+    private Object payload;
+    private PipelineContext context;
+    
     public XStreamFromXmlVsmTransformer(XStreamResolverStrategy strategy) {
         this.strategy = strategy;
     }
-    
+
     public void receive(Object object,
                         PipelineContext context) {            
-        Object payload = null;
+        this.payload = processPayload(object, context);
+        emit( this.payload,
+              context );
+    }
+
+    public Object processPayload(Object object, PipelineContext context) {
+        
         try {
-            Document d = ( Document ) object;
-            
-            String name = d.getDocumentElement().getAttribute( "lookup" );            
-            
-            XStream xstream = this.strategy.lookup( name );
-            
-            if ( xstream == null ) {
-                throw new IllegalArgumentException( "Unable to lookup XStream parser using name '" + name + "'" );
+            Document d = (Document) object;
+            String name = d.getDocumentElement().getAttribute("lookup");
+            XStream xstream = this.strategy.lookup(name);
+            if (xstream == null) {
+                throw new IllegalArgumentException("Unable to lookup XStream parser using name '" + name + "'");
             }
-            
-            ServiceManagerPipelineContextImpl vsmContext = ( ServiceManagerPipelineContextImpl ) context;            
+            ServiceManagerPipelineContextImpl vsmContext = (ServiceManagerPipelineContextImpl) 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 );
-            
+            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();
-                xstream.setClassLoader( cl );
-            } else if ( executor instanceof StatelessKnowledgeSessionImpl ) {
-                cl = ((ReteooRuleBase)(( StatelessKnowledgeSessionImpl ) executor).getRuleBase()).getRootClassLoader();
-                
+            if (executor instanceof StatefulKnowledgeSessionImpl) {
+                cl = ((ReteooRuleBase) (( StatefulKnowledgeSessionImpl ) executor).getRuleBase()).getRootClassLoader();
+                xstream.setClassLoader(cl);
+            } else if (executor instanceof StatelessKnowledgeSessionImpl) {
+                cl = ((ReteooRuleBase) (( StatelessKnowledgeSessionImpl ) executor).getRuleBase()).getRootClassLoader();
             } else {
-                throw new IllegalArgumentException( "Unable to set ClassLoader on " + executor );
+                throw new IllegalArgumentException("Unable to set ClassLoader on " + executor);
             }
-            
-            xstream.setClassLoader( cl );
-            vsmContext.setClassLoader( cl );
-            
-            payload = xstream.unmarshal( new DomReader( d ) );  
-            
-            context.getProperties().put( "xstream-instance", xstream );
-            
-        } catch ( Exception e ) {
-            handleException( this,
-                             object,
-                             e );
+            xstream.setClassLoader(cl);
+            vsmContext.setClassLoader(cl);
+            payload = xstream.unmarshal(new DomReader(d));
+            context.getProperties().put("xstream-instance", xstream);
+            this.context = context;
+        } catch (Exception e) {
+            handleException(this, object, e);
         }
-        emit( payload,
-              context );
+        return payload;
     }
+
+    public Object getPayload() {
+        return payload;
+    }
+
+    public void setPayload(Object payload) {
+        this.payload = payload;
+    }
+
+    public PipelineContext getContext() {
+        return context;
+    }
+
+    public void setContext(PipelineContext context) {
+        this.context = context;
+    }
+    
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/main/java/org/drools/runtime/pipeline/impl/XStreamToXmlVsmTransformer.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/main/java/org/drools/runtime/pipeline/impl/XStreamToXmlVsmTransformer.java	2009-11-26 20:55:20 UTC (rev 30358)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/main/java/org/drools/runtime/pipeline/impl/XStreamToXmlVsmTransformer.java	2009-11-26 20:56:45 UTC (rev 30359)
@@ -18,22 +18,33 @@
 public class XStreamToXmlVsmTransformer extends BaseEmitter
     implements
     Transformer {
-    
+    Object result = null;
     public void receive(Object object,
                         PipelineContext context) { 
-        XStream xstream = ( XStream ) context.getProperties().get( "xstream-instance" );
-        xstream.setClassLoader( context.getClassLoader() );
+        this.result = transform(context, object);
         
+        emit( result,
+              context );
+    }
+
+    public Object transform(PipelineContext context, Object object) {
+        XStream xstream = (XStream) context.getProperties().get( "xstream-instance" );
+        xstream.setClassLoader(context.getClassLoader());
         Object result = null;
         try {
-            result = xstream.toXML( object );
-        } catch ( Exception e ) {
-            handleException( this,
-                             object,
-                             e );
+            result = xstream.toXML(object);
+        } catch (Exception e) {
+            handleException(this, object, e);
         }
-        
-        emit( result,
-              context );
+        return result;
     }
+
+    public Object getResult() {
+        return result;
+    }
+
+    public void setResult(Object result) {
+        this.result = result;
+    }
+    
 }
\ No newline at end of file



More information about the jboss-svn-commits mailing list