[jboss-svn-commits] JBL Code SVN: r31238 - in labs/jbossrules/branches/camel_jaxb_marshaller-lucaz: drools-core/src/main/java/org/drools/command/runtime/rule and 6 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jan 26 16:53:05 EST 2010
Author: lucazamador
Date: 2010-01-26 16:53:05 -0500 (Tue, 26 Jan 2010)
New Revision: 31238
Modified:
labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/command/runtime/BatchExecutionCommand.java
labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/command/runtime/rule/GetObjectCommand.java
labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/command/runtime/rule/InsertObjectCommand.java
labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/common/DefaultFactHandle.java
labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultImpl.java
labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsJaxbDataFormat.java
labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxbTest.java
labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xml
labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xsd
labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/CommandTranslator.java
labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/JaxbFromXmlTransformer.java
Log:
jaxb command translator
Modified: labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/command/runtime/BatchExecutionCommand.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/command/runtime/BatchExecutionCommand.java 2010-01-26 21:23:44 UTC (rev 31237)
+++ labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/command/runtime/BatchExecutionCommand.java 2010-01-26 21:53:05 UTC (rev 31238)
@@ -18,6 +18,7 @@
import org.drools.command.runtime.process.SignalEventCommand;
import org.drools.command.runtime.process.StartProcessCommand;
import org.drools.command.runtime.rule.FireAllRulesCommand;
+import org.drools.command.runtime.rule.GetObjectCommand;
import org.drools.command.runtime.rule.InsertElementsCommand;
import org.drools.command.runtime.rule.InsertObjectCommand;
import org.drools.command.runtime.rule.QueryCommand;
@@ -85,7 +86,8 @@
// @XmlElement(name = "get-global", type = GetGlobalCommand.class),
// @XmlElement(name = "insert-elements", type = InsertElementsCommand.class),
// @XmlElement(name = "query", type = QueryCommand.class),
- @XmlElement(name = "insert", type = InsertObjectCommand.class)
+ @XmlElement(name = "insert", type = InsertObjectCommand.class),
+ @XmlElement(name = "get-object", type = GetObjectCommand.class)
})
protected List<GenericCommand<?>> commands;
@@ -127,7 +129,6 @@
return this.commands;
}
-
public Void execute(Context context) {
for ( GenericCommand<?> command : commands ) {
((GenericCommand<?>)command).execute( context );
Modified: labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/command/runtime/rule/GetObjectCommand.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/command/runtime/rule/GetObjectCommand.java 2010-01-26 21:23:44 UTC (rev 31237)
+++ labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/command/runtime/rule/GetObjectCommand.java 2010-01-26 21:53:05 UTC (rev 31238)
@@ -1,23 +1,34 @@
package org.drools.command.runtime.rule;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+
import org.drools.command.Context;
import org.drools.command.impl.GenericCommand;
import org.drools.command.impl.KnowledgeCommandContext;
+import org.drools.common.DisconnectedFactHandle;
import org.drools.impl.StatefulKnowledgeSessionImpl;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.rule.FactHandle;
+ at XmlRootElement(name="get-object")
+ at XmlAccessorType(XmlAccessType.NONE)
public class GetObjectCommand
implements
GenericCommand<Object> {
private FactHandle factHandle;
private String outIdentifier;
+
+ public GetObjectCommand() { }
public GetObjectCommand(FactHandle factHandle) {
this.factHandle = factHandle;
}
+ @XmlAttribute(name="out-identifier", required=true)
public String getOutIdentifier() {
return outIdentifier;
}
@@ -26,7 +37,12 @@
this.outIdentifier = outIdentifier;
}
- public Object execute(Context context) {
+ @XmlAttribute(name="factHandle", required=true)
+ public void setFactHandleString(String factHandleString) {
+ factHandle = new DisconnectedFactHandle(factHandleString);
+ }
+
+ public Object execute(Context context) {
StatefulKnowledgeSession ksession = ((KnowledgeCommandContext) context).getStatefulKnowledgesession();
Object object = ksession.getObject( factHandle );
Modified: labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/command/runtime/rule/InsertObjectCommand.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/command/runtime/rule/InsertObjectCommand.java 2010-01-26 21:23:44 UTC (rev 31237)
+++ labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/command/runtime/rule/InsertObjectCommand.java 2010-01-26 21:53:05 UTC (rev 31238)
@@ -14,8 +14,8 @@
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.rule.FactHandle;
- at XmlRootElement
- at XmlAccessorType( XmlAccessType.NONE )
+ at XmlRootElement(name="insert")
+ at XmlAccessorType(XmlAccessType.NONE)
public class InsertObjectCommand
implements
GenericCommand<FactHandle> {
Modified: labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/common/DefaultFactHandle.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/common/DefaultFactHandle.java 2010-01-26 21:23:44 UTC (rev 31237)
+++ labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/common/DefaultFactHandle.java 2010-01-26 21:53:05 UTC (rev 31238)
@@ -16,13 +16,14 @@
* limitations under the License.
*/
+import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import org.drools.FactHandle;
-import org.drools.runtime.rule.WorkingMemoryEntryPoint;
import org.drools.reteoo.LeftTuple;
import org.drools.reteoo.RightTuple;
+import org.drools.runtime.rule.WorkingMemoryEntryPoint;
/**
* Implementation of <code>FactHandle</code>.
@@ -138,6 +139,11 @@
return "0:" + this.id + ":" + getIdentityHashCode() + ":" + getObjectHashCode() + ":" + getRecency();
}
+ @XmlElement(name="external-form")
+ public String getExternalForm() {
+ return toExternalForm();
+ }
+
/**
* @see Object
*/
@@ -145,6 +151,7 @@
return "[fact " + toExternalForm() + ":" + this.object + "]";
}
+ @XmlTransient
public long getRecency() {
return this.recency;
}
@@ -167,6 +174,7 @@
return ( this.id != -1 );
}
+ @XmlTransient
public Object getObject() {
return this.object;
}
@@ -178,6 +186,7 @@
/**
* @return the key
*/
+ @XmlTransient
public EqualityKey getEqualityKey() {
return this.key;
}
Modified: labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultImpl.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultImpl.java 2010-01-26 21:23:44 UTC (rev 31237)
+++ labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultImpl.java 2010-01-26 21:53:05 UTC (rev 31238)
@@ -5,14 +5,27 @@
import java.util.HashMap;
import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.drools.runtime.ExecutionResults;
@XmlRootElement(name="execution-results")
+ at XmlAccessorType(XmlAccessType.NONE)
public class ExecutionResultImpl implements ExecutionResults, Serializable {
- Map<String, Object> results = new HashMap<String, Object>();
- Map<String, Object> facts = new HashMap<String, Object>();
+
+ private static final long serialVersionUID = 1L;
+
+ @XmlJavaTypeAdapter(ExecutionResultAdapter.class)
+ @XmlElement(name="results")
+ HashMap<String, Object> results = new HashMap<String, Object>();
+// @XmlJavaTypeAdapter(ExecutionResultAdapter.class)
+ @XmlElement(name="facts")
+ HashMap<String, Object> facts = new HashMap<String, Object>();
/* (non-Javadoc)
* @see org.drools.batchexecution.BatchExecutionResult#getIdentifiers()
@@ -36,7 +49,7 @@
return this.results;
}
- public void setResults(Map<String, Object> results) {
+ public void setResults(HashMap<String, Object> results) {
this.results = results;
}
@@ -44,7 +57,7 @@
return this.facts;
}
- public void setFactHandles(Map<String, Object> facts) {
+ public void setFactHandles(HashMap<String, Object> facts) {
this.facts = facts;
}
}
Modified: labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsJaxbDataFormat.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsJaxbDataFormat.java 2010-01-26 21:23:44 UTC (rev 31237)
+++ labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsJaxbDataFormat.java 2010-01-26 21:53:05 UTC (rev 31238)
@@ -8,6 +8,7 @@
import java.io.StringReader;
import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
@@ -18,13 +19,16 @@
import org.drools.KnowledgeBase;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.help.KnowledgeBuilderHelper;
+import org.drools.command.runtime.BatchExecutionCommand;
import org.drools.impl.StatefulKnowledgeSessionImpl;
import org.drools.impl.StatelessKnowledgeSessionImpl;
import org.drools.io.Resource;
import org.drools.io.ResourceFactory;
import org.drools.reteoo.ReteooRuleBase;
import org.drools.runtime.CommandExecutor;
+import org.drools.runtime.impl.ExecutionResultAdapter;
import org.drools.runtime.pipeline.PipelineContext;
+import org.drools.runtime.pipeline.impl.CommandTranslator;
import org.drools.runtime.pipeline.impl.ServiceManagerPipelineContextImpl;
import org.drools.vsm.ServiceManager;
import org.drools.vsm.local.ServiceManagerLocalClient;
@@ -41,6 +45,7 @@
*/
public class DroolsJaxbDataFormat implements DataFormat {
+ private CommandTranslator cmdTranslator;
private Unmarshaller unmarshaller;
private Marshaller marshaller;
@@ -48,17 +53,23 @@
JAXBContext jaxbContext = createJaxbContext();
this.unmarshaller = jaxbContext.createUnmarshaller();
this.marshaller = jaxbContext.createMarshaller();
+ this.marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
this.marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+ this.marshaller.setAdapter(new ExecutionResultAdapter());
+
+ this.cmdTranslator = new CommandTranslator(unmarshaller);
}
public void marshal(Exchange exchange, Object graph, OutputStream stream)
throws Exception {
- System.out.println("JaxbDataFormat marshal");
-
Object body = exchange.getIn().getBody();
- this.marshaller.marshal(body, stream);
+ try {
+ this.marshaller.marshal(body, stream);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
stream.flush();
@@ -66,14 +77,12 @@
public Object unmarshal(Exchange exchange, InputStream stream) throws Exception {
- System.out.println("JaxbDataFormat unmarshal");
-
PipelineContext context = (PipelineContext) exchange.getProperty("drools-context");
Document d = exchange.getIn().getBody(Document.class);
Object body = exchange.getIn().getBody();
String name = d.getDocumentElement().getAttribute("lookup");
-// JAXBContext jaxbContext = (JAXBContext) context.getProperties().get("jaxb-context");
-// this.unmarshaller = getUnmarshaller(jaxbContext);
+ // JAXBContext jaxbContext = (JAXBContext) context.getProperties().get("jaxb-context");
+ // this.unmarshaller = getUnmarshaller(jaxbContext);
ServiceManagerPipelineContextImpl vsmContext = (ServiceManagerPipelineContextImpl) exchange.getProperty("drools-context");
ServiceManager sm = vsmContext.getServiceManager();
CommandExecutor executor = sm.lookup(name);
@@ -113,8 +122,18 @@
} else {
throw new IllegalArgumentException( "exchange input body object must be instance of File, InputStream, Reader, Source, InputSource, Resource, String" );
}
-// context.getProperties().put("jaxb-context", jaxbCtx);
+
+ if ( payload instanceof JAXBElement ) {
+ payload = ((JAXBElement<?>) payload).getValue();
+ }
+
+ if (payload instanceof BatchExecutionCommand) {
+ payload = cmdTranslator.transform((BatchExecutionCommand) payload);
+ }
+
+ // context.getProperties().put("jaxb-context", jaxbCtx);
exchange.setProperty("drools-context", context);
+
return payload;
}
Modified: labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxbTest.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxbTest.java 2010-01-26 21:23:44 UTC (rev 31237)
+++ labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxbTest.java 2010-01-26 21:53:05 UTC (rev 31238)
@@ -24,22 +24,33 @@
public class CamelEndpointWithJaxbTest extends DroolsCamelTestSupport {
private String handle;
+// private JAXBContext jaxbContext;
+
+// public void testSimple() throws JAXBException {
+// ExecutionResultImpl res = new ExecutionResultImpl();
+// HashMap<String, Object> results = new HashMap<String, Object>();
+// results.put("name", new String("lucaz"));
+// res.setResults(results);
+// Marshaller marshaller = jaxbContext.createMarshaller();
+// marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+// marshaller.marshal(res, System.out);
+// }
public void testSessionInsert() throws Exception {
String cmd = "<batch-execution lookup=\"ksession1\">\n" +
"<insert out-identifier=\"lucaz\">\n" +
"<object>\n" +
- "<org.drools.model.person.Person>\n" +
- "<name>lucaz</name>\n" +
- "<age>25</age>\n" +
- "</org.drools.model.person.Person>\n" +
+ "<Person xmlns=\"http://drools.org/model\" >\n" +
+ "<name>lucaz</name>\n" +
+ "<age>25</age>\n" +
+ "</Person>\n" +
"</object>\n" +
"</insert>" +
"</batch-execution>\n";
Object requestBody = template.requestBody("direct:test-with-session", cmd);
- System.out.println("output: " + new String((byte[])requestBody));
+ System.out.println(new String((byte[])requestBody));
// String outXml = new String((byte[])template.requestBody("direct:test-with-session", cmd));
@@ -59,7 +70,37 @@
// assertEquals(expectedXml, outXml);
}
+
+ public void testSessionGetObject() throws Exception {
+
+// String cmd = "" +
+// "<batch-execution lookup=\"ksession1\">\n" +
+// "<get-object out-identifier=\"rider\" factHandle=\""+ handle +"\"/>\n" +
+// "</batch-execution>\n";
+//
+// String outXml = new String((byte[])template.requestBody("direct:test-with-session", cmd));
+//
+// System.out.println(outXml);
+//
+// Object requestBody = template.requestBody("direct:test-with-session", cmd);
+// System.out.println(requestBody);
+// ExecutionResults result = (ExecutionResults) BatchExecutionHelper.newXStreamMarshaller().fromXML(outXml);
+// Person person = (Person) result.getValue("rider");
+// assertEquals("Hadrian", person.getName());
+//
+// String expectedXml = "<execution-results>\n" +
+// " <result identifier=\"rider\">\n" +
+// " <org.drools.pipeline.camel.Person>\n" +
+// " <name>Hadrian</name>\n" +
+// " </org.drools.pipeline.camel.Person>\n" +
+// " </result>\n" +
+// "</execution-results>";
+//
+// assertEquals(expectedXml, outXml);
+
+ }
+
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@@ -90,7 +131,8 @@
Options xjcOpts = new Options();
xjcOpts.setSchemaLanguage( Language.XMLSCHEMA );
- String[] classNames = null;
+ String classNames[] = null;
+
try {
classNames = KnowledgeBuilderHelper.addXsdModel( ResourceFactory.newClassPathResource("person.xsd", getClass()),
kbuilder,
Modified: labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xml
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xml 2010-01-26 21:23:44 UTC (rev 31237)
+++ labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xml 2010-01-26 21:53:05 UTC (rev 31238)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<person xmlns="http://drools.org/model/person" >
- <name>lucaz</name>
- <age>25</age>
-</person>
\ No newline at end of file
+<Person xmlns="http://drools.org/model" >
+ <name>lucaz</name>
+ <age>25</age>
+</Person>
\ No newline at end of file
Modified: labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xsd
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xsd 2010-01-26 21:23:44 UTC (rev 31237)
+++ labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xsd 2010-01-26 21:53:05 UTC (rev 31238)
@@ -1,9 +1,9 @@
-<xsd:schema xmlns:person="http://drools.org/model/person"
+<xsd:schema xmlns:person="http://drools.org/model"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://drools.org/model/person"
+ targetNamespace="http://drools.org/model"
elementFormDefault="qualified" >
- <xsd:element name="person">
+ <xsd:element name="Person">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
Modified: labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/CommandTranslator.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/CommandTranslator.java 2010-01-26 21:23:44 UTC (rev 31237)
+++ labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/CommandTranslator.java 2010-01-26 21:53:05 UTC (rev 31238)
@@ -5,7 +5,6 @@
import java.util.List;
import java.util.Map;
-import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
@@ -24,14 +23,14 @@
* @author Wolfgang Laun
*/
public class CommandTranslator {
- private JaxbTransformer jaxbTransformer;
+ private Unmarshaller unmarshaller;
private Map<Class<?>,CommandTransformer> class2trans;
/**
* Constructor
*
*/
- public CommandTranslator( JaxbTransformer jaxbTransformer ){
+ public CommandTranslator( Unmarshaller unmarshaller ){
class2trans = new HashMap<Class<?>,CommandTransformer>();
class2trans.put( BatchExecutionCommand.class, new BatchExecutionTransformer() );
class2trans.put( InsertElementsCommand.class, new InsertElementsTransformer() );
@@ -40,7 +39,7 @@
class2trans.put( SetGlobalCommand.class, new SetGlobalTransformer() );
class2trans.put( SignalEventCommand.class, new SignalEventTransformer() );
class2trans.put( StartProcessCommand.class, new StartProcessTransformer() );
- this.jaxbTransformer = jaxbTransformer;
+ this.unmarshaller = unmarshaller;
}
/**
@@ -50,11 +49,12 @@
* the object's class.
*
* @param xmlCmds the list of XML elements representing Drools command objects
+ * @return
* @return a list of <tt>Command<?></tt> objects
*/
- public void transform( BatchExecutionCommand batchExecution ){
+ public GenericCommand<?> transform( BatchExecutionCommand batchExecution ){
CommandTransformer ct = class2trans.get( batchExecution.getClass() );
- ct.transform( this, batchExecution );
+ return ct.transform( this, batchExecution );
}
CommandTransformer getCommandTransformer( Class<?> clazz ){
@@ -64,9 +64,7 @@
protected Object makeObject( Element element ){
Object obj = null;
try {
- JAXBContext ctxt = jaxbTransformer.getContext();
- Unmarshaller um = ctxt.createUnmarshaller();
- obj = um.unmarshal( element );
+ obj = unmarshaller.unmarshal( element.getFirstChild() );
} catch (JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@@ -89,8 +87,7 @@
class BatchExecutionTransformer extends CommandTransformer {
public GenericCommand<?> transform( CommandTranslator cmdTrans, Object o ){
BatchExecutionCommand be = (BatchExecutionCommand)o;
-// List<GenericCommand<?>> xmlCmds = be.getCommands();
- List<GenericCommand<?>> xmlCmds = null;
+ List<GenericCommand<?>> xmlCmds = be.getCommands();
for( int i = 0; i < xmlCmds.size(); i++ ){
GenericCommand<?> cmd = xmlCmds.get( i );
CommandTransformer ct = cmdTrans.getCommandTransformer( cmd.getClass() );
@@ -102,9 +99,6 @@
}
}
-
-
-
/**
* Class for transforming an InsertElements command.
*/
@@ -114,12 +108,10 @@
Iterable<?> ioList = ie.getObjects();
List<Object> coList = new ArrayList<Object>();
for( Object io: ioList ){
- System.out.println( io.getClass() );
Element el = (Element)io;
Object co = ct.makeObject( el );
coList.add( co );
}
- System.out.println( "insert " + coList.size() + " elements" );
ie.setObjects( coList );
return ie;
}
Modified: labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/JaxbFromXmlTransformer.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/JaxbFromXmlTransformer.java 2010-01-26 21:23:44 UTC (rev 31237)
+++ labs/jbossrules/branches/camel_jaxb_marshaller-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/JaxbFromXmlTransformer.java 2010-01-26 21:53:05 UTC (rev 31238)
@@ -68,13 +68,6 @@
result = ((JAXBElement<?>) result).getValue();
}
- if( result instanceof BatchExecutionCommand ){
- if( cmdTrans == null ){
- cmdTrans = new CommandTranslator( this );
- }
- cmdTrans.transform( (BatchExecutionCommand)result );
- }
-
emit( result,
context );
}
More information about the jboss-svn-commits
mailing list