[jboss-svn-commits] JBL Code SVN: r31698 - in labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src: test/java/org/drools/camel/component and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Feb 16 16:43:50 EST 2010
Author: lucazamador
Date: 2010-02-16 16:43:48 -0500 (Tue, 16 Feb 2010)
New Revision: 31698
Removed:
labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/Brochure.java
labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xml
Modified:
labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsJaxbDataFormat.java
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/resources/org/drools/camel/component/person.xsd
Log:
complex xsd test added. clean
Modified: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsJaxbDataFormat.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsJaxbDataFormat.java 2010-02-16 19:48:23 UTC (rev 31697)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/main/java/org/drools/camel/component/DroolsJaxbDataFormat.java 2010-02-16 21:43:48 UTC (rev 31698)
@@ -76,15 +76,8 @@
JAXBContext jaxbContext = (JAXBContext) exchange.getIn().getHeader("jaxb-context");
-
PipelineContext context = (PipelineContext) exchange.getProperty("drools-context");
- Unmarshaller unmarshaller = null;
- try {
- unmarshaller = jaxbContext.createUnmarshaller();
- } catch (Exception e) {
- e.printStackTrace();
- throw e;
- }
+ Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
Document d = exchange.getIn().getBody(Document.class);
Object body = exchange.getIn().getBody();
String name = d.getDocumentElement().getAttribute("lookup");
@@ -118,13 +111,7 @@
} else if ( body instanceof Resource ) {
payload = unmarshaller.unmarshal( (( Resource ) body).getReader() );
} else if ( body instanceof String ) {
- try {
- payload = unmarshaller.unmarshal( new StringReader( ( String ) body ) );
- }
- catch (Exception e) {
- e.printStackTrace();
- throw e;
- }
+ payload = unmarshaller.unmarshal( new StringReader( ( String ) body ) );
} else {
throw new IllegalArgumentException( "exchange input body object must be instance of File, InputStream, Reader, Source, InputSource, Resource, String" );
}
Deleted: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/Brochure.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/Brochure.java 2010-02-16 19:48:23 UTC (rev 31697)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/Brochure.java 2010-02-16 21:43:48 UTC (rev 31698)
@@ -1,91 +0,0 @@
-package org.drools.camel.component;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementRef;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.adapters.XmlAdapter;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-
- at XmlRootElement(name="brochure")
- at XmlAccessorType(XmlAccessType.NONE)
-public class Brochure
-{
- @XmlJavaTypeAdapter(CourseListAdapter.class)
- private HashMap<String, Object> courses = new HashMap<String, Object>();
-
- public HashMap<String, Object> getCourses() { return courses; }
-
- public static void main(String... args) throws Exception
- {
- Brochure brochure = new Brochure();
-
- brochure.courses.put("5.42", new Course("5.42", "Organic Chemistry"));
- brochure.courses.put("8.02", new Course("8.02", "Physics"));
- brochure.courses.put("18.02", new Course("18.02", "Calculus"));
-
- Class<?>[] asd = {Brochure.class, Course.class};
-
- JAXBContext jaxb = JAXBContext.newInstance(asd);
-
- Marshaller xmlConverter = jaxb.createMarshaller();
- xmlConverter.setProperty("jaxb.formatted.output", true);
- xmlConverter.marshal(brochure, System.out);
- }
-
- //Used only for JAXB. Helps deal w/ the underlying map.
- //@XmlElementWrapper(name = "courses") //Activate if you want "courses" wrapper
- // @XmlElement(name="course")
- // private Object[] getXmlCourses()
- // {
- // Object[] result = new Object[courses.size()];
- //
- // int e=0;
- // for (String id : courses.keySet())
- // result[e++] = courses.get(id);
- //
- // return result;
- // }
- //
- // //Used only for JAXB. Helps deal w/ the underlying map.
- // private void setXmlCourses(Course[] replacements)
- // {
- // courses.clear();
- // for (Course c : replacements)
- // courses.put(c.id, c);
- // }
-}
-
- at XmlRootElement
-class Course
-{
- @XmlElement String id;
- @XmlElement String name;
-
- Course() { this("dummy", "dummy"); }
- Course(String id, String name) {this.id=id; this.name=name; }
-}
-
-class CourseListAdapter extends XmlAdapter<Object[],Map<String,Object>> {
-
- public Map<String,Object> unmarshal( Object[] value ) {
- Map<String,Object> r = new HashMap<String,Object>();
- for( Object c : value ) {
- r.put(c.toString(),c);
- }
- return r;
- }
-
- public Object[] marshal( Map<String,Object> v ) {
- return v.values().toArray(new Object[v.size()]);
- }
-}
-
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-16 19:48:23 UTC (rev 31697)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxbXSDModelTest.java 2010-02-16 21:43:48 UTC (rev 31698)
@@ -3,8 +3,8 @@
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.StringWriter;
-import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
+import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -23,11 +23,9 @@
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;
import com.sun.tools.xjc.Language;
import com.sun.tools.xjc.Options;
@@ -40,26 +38,35 @@
*/
public class CamelEndpointWithJaxbXSDModelTest extends DroolsCamelTestSupport {
- 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");
+ Class<?> addressClass = classLoader.loadClass("org.drools.model.AddressType");
+ assertNotNull(addressClass.getPackage());
Object baunax = personClass.newInstance();
Object lucaz = personClass.newInstance();
Method setName = personClass.getMethod("setName", String.class);
setName.invoke(baunax, "baunax");
setName.invoke(lucaz, "lucaz");
+
+ Method setAddress = personClass.getMethod("setAddress", addressClass);
+ Method setStreet = addressClass.getMethod("setStreet", String.class);
+ Method setPostalCode = addressClass.getMethod("setPostalCode", BigInteger.class);
+ Object lucazAddress = addressClass.newInstance();
+ setStreet.invoke(lucazAddress, "Unknow 342");
+ setPostalCode.invoke(lucazAddress, new BigInteger("1234"));
- Annotation[] annotations = personClass.getAnnotations();
- assertTrue(annotations.length >= 2);
- System.out.println(Arrays.asList(annotations));
+ Object baunaxAddress = addressClass.newInstance();
+ setStreet.invoke(baunaxAddress, "New Street 123");
+ setPostalCode.invoke(baunaxAddress, new BigInteger("5678"));
+ setAddress.invoke(lucaz, lucazAddress);
+ setAddress.invoke(baunax, baunaxAddress);
+
BatchExecutionCommand cmd = new BatchExecutionCommand();
cmd.setLookup("ksession1");
cmd.getCommands().add(new InsertObjectCommand(lucaz, "lucaz"));
@@ -73,26 +80,26 @@
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";
+ String xmlCmd = "";
+ xmlCmd += "<batch-execution lookup='ksession1'>\n";
+ xmlCmd += " <insert out-identifier='lucaz'>\n";
+ xmlCmd += " <object>\n";
+ xmlCmd += " <Person xmlns='http://drools.org/model' >\n";
+ xmlCmd += " <name>lucaz</name>\n";
+ xmlCmd += " <age>25</age>\n";
+ xmlCmd += " </Person>\n";
+ xmlCmd += " </object>\n";
+ xmlCmd += " </insert>\n";
+ xmlCmd += " <insert out-identifier='baunax'>\n";
+ xmlCmd += " <object>\n";
+ xmlCmd += " <Person xmlns='http://drools.org/model' >\n";
+ xmlCmd += " <name>baunax</name>\n";
+ xmlCmd += " <age>21</age>\n";
+ xmlCmd += " </Person>\n";
+ xmlCmd += " </object>\n";
+ xmlCmd += " </insert>\n";
+ xmlCmd += " <fire-all-rules />";
+ xmlCmd += "</batch-execution>\n";
byte[] xmlResp = (byte[]) template.requestBodyAndHeader("direct:test-with-session", xmlReq.toString(), "jaxb-context", jaxbContext);
assertNotNull(xmlResp);
@@ -121,9 +128,6 @@
@Override
protected void configureDroolsContext() {
- Person me = new Person();
- me.setName("Hadrian");
-
String rule = "";
rule += "package org.drools \n";
rule += "import org.drools.model.Person \n";
@@ -142,12 +146,7 @@
rule += " System.out.println(\"executed\"); \n";
rule += "end\n";
- StatefulKnowledgeSession ksession = registerKnowledgeRuntime("ksession1", rule);
- InsertObjectCommand cmd = new InsertObjectCommand(me);
- cmd.setOutIdentifier("camel-rider");
- cmd.setReturnObject(false);
- ExecutionResults results = ksession.execute(cmd);
- handle = ((FactHandle)results.getFactHandle("camel-rider")).toExternalForm();
+ registerKnowledgeRuntime("ksession1", rule);
}
@Override
@@ -160,7 +159,7 @@
String classNames[] = null;
try {
- classNames = KnowledgeBuilderHelper.addXsdModel( ResourceFactory.newClassPathResource("person.xsd", getClass()),
+ classNames = KnowledgeBuilderHelper.addXsdModel( ResourceFactory.newClassPathResource("personComplex.xsd", getClass()),
kbuilder,
xjcOpts,
"xsd" );
@@ -203,7 +202,7 @@
process1 += " <start id=\"1\" name=\"Start\" />\n";
process1 += " <actionNode id=\"2\" name=\"MyActionNode\" >\n";
process1 += " <action type=\"expression\" dialect=\"mvel\" >System.out.println(\"Triggered\");\n";
-// process1 += "list.add(person.name);\n";
+ process1 += "list.add(person.name);\n";
process1 += "</action>\n";
process1 += " </actionNode>\n";
process1 += " <end id=\"3\" name=\"End\" />\n";
@@ -273,7 +272,6 @@
// Add object model to classes array
List<String> allClasses = new ArrayList<String>(Arrays.asList(classNames));
- allClasses.add(Person.class.getName());
try {
jaxbContext = KnowledgeBuilderHelper.newJAXBContext( allClasses.toArray(new String[allClasses.size()]), kbase );
Deleted: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xml
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xml 2010-02-16 19:48:23 UTC (rev 31697)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xml 2010-02-16 21:43:48 UTC (rev 31698)
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<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_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xsd
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xsd 2010-02-16 19:48:23 UTC (rev 31697)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/resources/org/drools/camel/component/person.xsd 2010-02-16 21:43:48 UTC (rev 31698)
@@ -1,15 +1,24 @@
<xsd:schema
- xmlns="http://drools.org/model"
+ xmlns:person="http://drools.org/model"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://drools.org/model"
elementFormDefault="qualified"
>
- <xsd:complexType name="Person">
+ <xsd:complexType name="person">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
<xsd:element name="age" type="xsd:integer" />
+ <xsd:element name="address" type="person:addressType" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
+
+ <xsd:complexType name="addressType">
+ <xsd:sequence>
+ <xsd:element name="street" type="xsd:string" />
+ <xsd:element name="postalCode" type="xsd:integer" />
+ </xsd:sequence>
+ </xsd:complexType>
+
</xsd:schema>
\ No newline at end of file
More information about the jboss-svn-commits
mailing list