[jboss-svn-commits] JBL Code SVN: r34745 - in labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src: main/java/org/drools/jax/soap and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Aug 16 21:38:30 EDT 2010


Author: lucazamador
Date: 2010-08-16 21:38:29 -0400 (Mon, 16 Aug 2010)
New Revision: 34745

Modified:
   labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/camel/component/DroolsPolicy.java
   labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/CommandExecutorSoap.java
   labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/CommandExecutorSoapImpl.java
   labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PostCxfSoap.java
   labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PreCxfSoap.java
   labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/java/org/drools/camel/component/cxf/CxfSoapTest.java
   labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/CxfSoapSpring.xml
Log:
[JBRULES-2664] Soap support in drools-camel
	- soap support almost done

Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/camel/component/DroolsPolicy.java
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/camel/component/DroolsPolicy.java	2010-08-17 01:28:48 UTC (rev 34744)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/camel/component/DroolsPolicy.java	2010-08-17 01:38:29 UTC (rev 34745)
@@ -120,10 +120,10 @@
                     else if (to.getUri().startsWith( "cxf" ) && !visited.contains( to ) ) {                        
                         BeanDefinition beanDef = new BeanDefinition();
                         beanDef.setBeanType( PreCxfSoap.class );
-                        outputs.add( i, beanDef ); // insert before cxfrs
+                        outputs.add( i, beanDef ); // insert before cxf
                         beanDef = new BeanDefinition();
                         beanDef.setBeanType( PostCxfSoap.class );
-                        outputs.add( i+2, beanDef ); // insert after cxfrs
+                        outputs.add( i+2, beanDef ); // insert after cxf
                         i = i + 2;// adjust for the two inserts
                     }
                 } else if ( child instanceof MarshalDefinition ) {

Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/CommandExecutorSoap.java
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/CommandExecutorSoap.java	2010-08-17 01:28:48 UTC (rev 34744)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/CommandExecutorSoap.java	2010-08-17 01:38:29 UTC (rev 34745)
@@ -3,6 +3,6 @@
 
 public interface CommandExecutorSoap {
 
-	public String invoke(String command);
+	public String execute(String command);
 
 }

Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/CommandExecutorSoapImpl.java
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/CommandExecutorSoapImpl.java	2010-08-17 01:28:48 UTC (rev 34744)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/CommandExecutorSoapImpl.java	2010-08-17 01:38:29 UTC (rev 34745)
@@ -1,14 +1,13 @@
 package org.drools.jax.soap;
 
-import javax.xml.ws.Service.Mode;
 import javax.xml.ws.ServiceMode;
 import javax.xml.ws.WebServiceProvider;
 
- at WebServiceProvider()
- at ServiceMode(Mode.MESSAGE)
+ at WebServiceProvider
+ at ServiceMode
 public class CommandExecutorSoapImpl implements CommandExecutorSoap {
 
-	public String invoke(String command) {
+	public String execute(String command) {
 		throw new UnsupportedOperationException( "This should never be called, as it's handled by camel" );
 	}
 

Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PostCxfSoap.java
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PostCxfSoap.java	2010-08-17 01:28:48 UTC (rev 34744)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PostCxfSoap.java	2010-08-17 01:38:29 UTC (rev 34745)
@@ -19,15 +19,20 @@
  */
 package org.drools.jax.soap;
 
+import java.io.InputStream;
+
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
+import org.drools.core.util.StringUtils;
 
 public class PostCxfSoap implements Processor {
 
 	public void process(Exchange exchange) throws Exception {
-		// TODO: Implement PostCxfSoap processor
-		System.out.println("PostCxfSoap Processor invoked");
-                System.out.println("Exchange = "+exchange.getIn().getBody());
+		InputStream is = (InputStream) exchange.getIn().getBody();
+		if (is != null) {
+			exchange.getOut().setBody( StringUtils.toString( is ));
+		}
+
 	}        
 
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PreCxfSoap.java
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PreCxfSoap.java	2010-08-17 01:28:48 UTC (rev 34744)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PreCxfSoap.java	2010-08-17 01:38:29 UTC (rev 34745)
@@ -27,19 +27,17 @@
 import org.apache.cxf.service.model.BindingOperationInfo;
 
 public class PreCxfSoap implements Processor {
-     private static final transient Log LOG = LogFactory.getLog(PreCxfSoap.class);
+	private static final transient Log LOG = LogFactory.getLog(PreCxfSoap.class);
 
 	public void process(Exchange exchange) throws Exception {
 		BindingOperationInfo boi = (BindingOperationInfo)exchange.getProperty(BindingOperationInfo.class.toString());
 		if (boi != null) {
-                    LOG.info("boi.isUnwrapped" + boi.isUnwrapped());
-
+			LOG.info("boi.isUnwrapped" + boi.isUnwrapped());
 		}
 
-                SOAPMessage soapMessage = (SOAPMessage)exchange.getIn().getBody();
+		SOAPMessage soapMessage = (SOAPMessage)exchange.getIn().getBody();
+		System.out.println("PreCxfSoal process invoked");
+		exchange.getOut().setBody(soapMessage.getSOAPBody().getTextContent());
 
-                exchange.getOut().setBody(soapMessage.getSOAPBody().getTextContent());
-
-
 	}        
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/java/org/drools/camel/component/cxf/CxfSoapTest.java
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/java/org/drools/camel/component/cxf/CxfSoapTest.java	2010-08-17 01:28:48 UTC (rev 34744)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/java/org/drools/camel/component/cxf/CxfSoapTest.java	2010-08-17 01:38:29 UTC (rev 34745)
@@ -17,60 +17,48 @@
 package org.drools.camel.component.cxf;
 
 
-import java.io.ByteArrayOutputStream;
-import java.io.OutputStream;
 import javax.xml.namespace.QName;
 import javax.xml.soap.MessageFactory;
 import javax.xml.soap.SOAPBody;
-import javax.xml.soap.SOAPBodyElement;
 import javax.xml.soap.SOAPMessage;
+
 import org.apache.camel.test.CamelSpringTestSupport;
 import org.springframework.context.support.AbstractXmlApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 public class CxfSoapTest extends CamelSpringTestSupport {
-    
-    @Override
-    protected AbstractXmlApplicationContext createApplicationContext() {        
-        return new ClassPathXmlApplicationContext("org/drools/camel/component/CxfSoapSpring.xml");
-    }
 
-    public void test1() throws Exception {
+	@Override
+	protected AbstractXmlApplicationContext createApplicationContext() {        
+		return new ClassPathXmlApplicationContext("org/drools/camel/component/CxfSoapSpring.xml");
+	}
+	
+	public void test1() throws Exception {
 
-        SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
-            
-            SOAPBody body = soapMessage.getSOAPPart().getEnvelope().getBody();
+		SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
+		SOAPBody body = soapMessage.getSOAPPart().getEnvelope().getBody();
+		QName payloadName = new QName("http://localhost:9002/soap", "execute", "ns1");
 
-            QName payloadName = new QName("http://localhost:9002/soap", "invoke",
-                                          "ns1");
+		body.addBodyElement(payloadName);
 
-            SOAPBodyElement payload = body.addBodyElement(payloadName);
+		//SOAPElement message = payload.addChildElement("responseType");
 
-            //SOAPElement message = payload.addChildElement("responseType");
+		String cmd = "";
+		cmd += "<batch-execution lookup=\"ksession1\">\n";
+		cmd += "  <insert out-identifier=\"salaboy\" disconnected=\"true\">\n";
+		cmd += "      <org.drools.pipeline.camel.Person>\n";
+		cmd += "         <name>salaboy</name>\n";
+		cmd += "         <age>27</age>\n";
+		cmd += "      </org.drools.pipeline.camel.Person>\n";
+		cmd += "   </insert>\n";
+		cmd += "   <fire-all-rules/>\n";
+		cmd += "</batch-execution>\n";
 
+		body.addTextNode(cmd);
+		// message.addTextNode(cmd);
 
+		Object object = this.context.createProducerTemplate().requestBody("direct://http", soapMessage);
+		System.out.println(object);
+	}
 
-        String cmd = "";
-        cmd += "<batch-execution lookup=\"ksession1\">\n";
-        cmd += "  <insert out-identifier=\"salaboy\" disconnected=\"true\">\n";
-        cmd += "      <org.drools.pipeline.camel.Person>\n";
-        cmd += "         <name>salaboy</name>\n";
-        cmd += "         <age>27</age>\n";
-        cmd += "      </org.drools.pipeline.camel.Person>\n";
-        cmd += "   </insert>\n";
-        cmd += "   <fire-all-rules/>\n";
-        cmd += "</batch-execution>\n";
-
-        body.addTextNode(cmd);
-       // message.addTextNode(cmd);
-       OutputStream out = new ByteArrayOutputStream();
-       soapMessage.writeTo(out);
-
-       String s = out.toString();
-        System.out.println("S = "+s);
-        
-        Object object = this.context.createProducerTemplate().requestBody("direct://http", soapMessage);
-        System.out.println( object ); 
-    }
-    
 }

Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/CxfSoapSpring.xml
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/CxfSoapSpring.xml	2010-08-17 01:28:48 UTC (rev 34744)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/CxfSoapSpring.xml	2010-08-17 01:38:29 UTC (rev 34745)
@@ -21,7 +21,7 @@
        xmlns:jaxrs="http://cxf.apache.org/jaxrs"
        xmlns:drools="http://drools.org/schema/drools-spring"
        xsi:schemaLocation="
-       http://drools.org/schema/drools-spring /Users/salaboy/Projects/drools/camel_soap_support-lucaz/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.0.0.xsd
+       http://drools.org/schema/drools-spring /Users/lucaz/dev/drools/camel_soap_support/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.0.0.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd
        http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/cxfEndpoint.xsd
@@ -52,32 +52,29 @@
                    serviceClass="org.drools.jax.soap.CommandExecutorSoap" 
                    address="http://localhost:9002/soap" >
     <cxf:properties>
-      <entry key="dataFormat" value="POJO"/> <!-- POJO is default -->
-      <entry key="defaultOperationName" value="invoke"/>
+      <entry key="dataFormat" value="MESSAGE"/>
+      <entry key="defaultOperationName" value="execute"/>
     </cxf:properties>
   </cxf:cxfEndpoint>
 
   <bean id="droolsPolicy" class="org.drools.camel.component.DroolsPolicy" />
-  
 
   <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
 
-   
-
     <route>
-       <from uri="cxf://bean://soapServer"/>
-       <policy ref="droolsPolicy">
-         <unmarshal ref="xstream" />       
-         <to uri="drools:node1/ksession1" />
-         <marshal ref="xstream" />
-       </policy>
+      <from uri="cxf://bean://soapServer"/>
+      <policy ref="droolsPolicy">
+        <unmarshal ref="xstream" />       
+        <to uri="drools:node1/ksession1" />
+        <marshal ref="xstream" />
+      </policy>
     </route>
 
-     <route id="x1">
-       <from uri="direct://http"/>
-       <policy ref="droolsPolicy">
-         <to uri="cxf://bean://soapServer"/>
-       </policy>
+    <route id="x1">
+      <from uri="direct://http"/>
+      <policy ref="droolsPolicy">
+        <to uri="cxf://bean://soapServer"/>
+      </policy>
     </route>
 
   </camelContext>



More information about the jboss-svn-commits mailing list