[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