[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