[jboss-svn-commits] JBL Code SVN: r31681 - labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Feb 15 17:15:15 EST 2010
Author: baunax
Date: 2010-02-15 17:15:15 -0500 (Mon, 15 Feb 2010)
New Revision: 31681
Modified:
labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxbXSDModelTest.java
Log:
changes to generate the xml from objects
Modified: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxbXSDModelTest.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxbXSDModelTest.java 2010-02-15 22:14:36 UTC (rev 31680)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxbXSDModelTest.java 2010-02-15 22:15:15 UTC (rev 31681)
@@ -2,20 +2,29 @@
import java.io.ByteArrayInputStream;
import java.io.IOException;
+import java.io.StringWriter;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Marshaller;
import org.apache.camel.builder.RouteBuilder;
import org.drools.KnowledgeBase;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.ResourceType;
import org.drools.builder.help.KnowledgeBuilderHelper;
+import org.drools.command.runtime.BatchExecutionCommand;
+import org.drools.command.runtime.rule.FireAllRulesCommand;
import org.drools.command.runtime.rule.InsertObjectCommand;
+import org.drools.common.InternalRuleBase;
+import org.drools.impl.KnowledgeBaseImpl;
import org.drools.io.ResourceFactory;
import org.drools.pipeline.camel.Person;
+import org.drools.rule.DroolsCompositeClassLoader;
import org.drools.runtime.ExecutionResults;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.rule.FactHandle;
@@ -33,31 +42,59 @@
private String handle;
private JAXBContext jaxbContext;
+ private DroolsCompositeClassLoader classLoader;
public void testSessionInsert() throws Exception {
+ Class<?> personClass = classLoader.loadClass("org.drools.model.Person");
+ System.out.println(personClass.getPackage());
+ assertNotNull(personClass.getPackage());
+// Class<?> fact = classLoader.loadClass("org.drools.model.ObjectFactory");
+ Object baunax = personClass.newInstance();
+ Object lucaz = personClass.newInstance();
- String cmd = "";
- cmd += "<batch-execution lookup='ksession1'>\n";
- cmd += " <insert out-identifier='lucaz'>\n";
- cmd += " <object>\n";
- cmd += " <Person xmlns='http://drools.org/model' >\n";
- cmd += " <name>lucaz</name>\n";
- cmd += " <age>25</age>\n";
- cmd += " </Person>\n";
- cmd += " </object>\n";
- cmd += " </insert>\n";
- cmd += " <insert out-identifier='baunax'>\n";
- cmd += " <object>\n";
- cmd += " <Person xmlns='http://drools.org/model' >\n";
- cmd += " <name>baunax</name>\n";
- cmd += " <age>21</age>\n";
- cmd += " </Person>\n";
- cmd += " </object>\n";
- cmd += " </insert>\n";
- cmd += " <fire-all-rules />";
- cmd += "</batch-execution>\n";
+ Method setName = personClass.getMethod("setName", String.class);
+ setName.invoke(baunax, "baunax");
+ setName.invoke(lucaz, "lucaz");
+
+ Annotation[] annotations = personClass.getAnnotations();
+ assertTrue(annotations.length >= 2);
+ System.out.println(Arrays.asList(annotations));
+
+ BatchExecutionCommand cmd = new BatchExecutionCommand();
+ cmd.setLookup("ksession1");
+ cmd.getCommands().add(new InsertObjectCommand(lucaz, "lucaz"));
+ cmd.getCommands().add(new InsertObjectCommand(baunax, "baunax"));
+ cmd.getCommands().add(new FireAllRulesCommand());
+
+ StringWriter xmlReq = new StringWriter();
+ Marshaller marshaller = jaxbContext.createMarshaller();
+ marshaller.setProperty("jaxb.formatted.output", true);
+ marshaller.marshal(cmd, xmlReq);
+
+ System.out.println(xmlReq.toString());
+
+// String cmd = "";
+// cmd += "<batch-execution lookup='ksession1'>\n";
+// cmd += " <insert out-identifier='lucaz'>\n";
+// cmd += " <object>\n";
+// cmd += " <Person xmlns='http://drools.org/model' >\n";
+// cmd += " <name>lucaz</name>\n";
+// cmd += " <age>25</age>\n";
+// cmd += " </Person>\n";
+// cmd += " </object>\n";
+// cmd += " </insert>\n";
+// cmd += " <insert out-identifier='baunax'>\n";
+// cmd += " <object>\n";
+// cmd += " <Person xmlns='http://drools.org/model' >\n";
+// cmd += " <name>baunax</name>\n";
+// cmd += " <age>21</age>\n";
+// cmd += " </Person>\n";
+// cmd += " </object>\n";
+// cmd += " </insert>\n";
+// cmd += " <fire-all-rules />";
+// cmd += "</batch-execution>\n";
- byte[] xmlResp = (byte[]) template.requestBodyAndHeader("direct:test-with-session", cmd, "jaxb-context", jaxbContext);
+ byte[] xmlResp = (byte[]) template.requestBodyAndHeader("direct:test-with-session", xmlReq.toString(), "jaxb-context", jaxbContext);
assertNotNull(xmlResp);
System.out.println(new String(xmlResp));
@@ -230,11 +267,13 @@
assertFalse(kbuilder.hasErrors());
KnowledgeBase kbase = serviceManager.getKnowledgeBaseFactoryService().newKnowledgeBase();
+
+ classLoader = ((InternalRuleBase) ((KnowledgeBaseImpl) kbase).getRuleBase()).getRootClassLoader();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
// Add object model to classes array
List<String> allClasses = new ArrayList<String>(Arrays.asList(classNames));
- allClasses.add("org.drools.pipeline.camel.Person");
+ allClasses.add(Person.class.getName());
try {
jaxbContext = KnowledgeBuilderHelper.newJAXBContext( allClasses.toArray(new String[allClasses.size()]), kbase );
More information about the jboss-svn-commits
mailing list