[jboss-svn-commits] JBL Code SVN: r34764 - 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
Tue Aug 17 20:13:10 EDT 2010
Author: lucazamador
Date: 2010-08-17 20:13:08 -0400 (Tue, 17 Aug 2010)
New Revision: 34764
Added:
labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PostCxfSoapProcessor.java
labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PreCxfSoapProcessor.java
Removed:
labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/CommandExecutorSoapImpl.java
Modified:
labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/camel/component/PostCxfrs.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/test/resources/org/drools/camel/component/CxfSoapSpring.xml
labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/camel-server.xml
Log:
[JBRULES-2664] Soap support in drools-camel
- soap support done. ready to be merged
Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/camel/component/PostCxfrs.java
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/camel/component/PostCxfrs.java 2010-08-17 18:16:15 UTC (rev 34763)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/camel/component/PostCxfrs.java 2010-08-18 00:13:08 UTC (rev 34764)
@@ -25,10 +25,7 @@
import javax.ws.rs.core.Response.Status;
import org.apache.camel.Exchange;
-import org.apache.camel.ExchangePattern;
-import org.apache.camel.Message;
import org.apache.camel.Processor;
-import org.apache.camel.component.cxf.CxfConstants;
import org.drools.core.util.StringUtils;
public class PostCxfrs implements Processor {
Deleted: 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 18:16:15 UTC (rev 34763)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/CommandExecutorSoapImpl.java 2010-08-18 00:13:08 UTC (rev 34764)
@@ -1,17 +0,0 @@
-package org.drools.jax.soap;
-
-import javax.xml.ws.ServiceMode;
-import javax.xml.ws.WebServiceProvider;
-
-import org.drools.command.Command;
-import org.drools.runtime.CommandExecutor;
-
- at WebServiceProvider
- at ServiceMode
-public class CommandExecutorSoapImpl implements CommandExecutor {
-
- public <T> T execute(Command<T> 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 18:16:15 UTC (rev 34763)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PostCxfSoap.java 2010-08-18 00:13:08 UTC (rev 34764)
@@ -38,7 +38,7 @@
if (is != null) {
SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
SOAPBody body = soapMessage.getSOAPPart().getEnvelope().getBody();
- QName payloadName = new QName("http://soap.jax.drools.org", "execute", "ns1");
+ QName payloadName = new QName("http://soap.jax.drools.org", "executeResponse", "ns1");
SOAPBodyElement payload = body.addBodyElement(payloadName);
payload.addChildElement("responseType");
body.addTextNode(StringUtils.toString( is ));
Added: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PostCxfSoapProcessor.java
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PostCxfSoapProcessor.java (rev 0)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PostCxfSoapProcessor.java 2010-08-18 00:13:08 UTC (rev 34764)
@@ -0,0 +1,36 @@
+package org.drools.jax.soap;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+
+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.Exchange;
+import org.apache.camel.Processor;
+import org.drools.core.util.StringUtils;
+
+public class PostCxfSoapProcessor implements Processor {
+
+ public void process(Exchange exchange) throws Exception {
+ byte[] body = (byte[]) exchange.getIn().getBody();
+
+ ByteArrayInputStream bais = new ByteArrayInputStream(body);
+
+ SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
+ SOAPBody soapBody = soapMessage.getSOAPPart().getEnvelope().getBody();
+ QName payloadName = new QName("http://soap.jax.drools.org", "executeResponse", "ns1");
+ SOAPBodyElement payload = soapBody.addBodyElement(payloadName);
+ payload.addChildElement("responseType");
+ soapBody.addTextNode(StringUtils.toString(bais));
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ soapMessage.writeTo(baos);
+
+ exchange.getOut().setBody(new String(baos.toByteArray()));
+ }
+
+}
Property changes on: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PostCxfSoapProcessor.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PreCxfSoapProcessor.java
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PreCxfSoapProcessor.java (rev 0)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PreCxfSoapProcessor.java 2010-08-18 00:13:08 UTC (rev 34764)
@@ -0,0 +1,26 @@
+package org.drools.jax.soap;
+
+import java.io.InputStream;
+import java.util.Map;
+
+import javax.xml.soap.MessageFactory;
+import javax.xml.soap.MimeHeaders;
+import javax.xml.soap.SOAPMessage;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+
+public class PreCxfSoapProcessor implements Processor {
+
+ public void process(Exchange exchange) throws Exception {
+ InputStream is = (InputStream)exchange.getIn().getBody();
+ Map<String, Object> headers = exchange.getIn().getHeaders();
+ MimeHeaders mimeHeaders = new MimeHeaders();
+ for (String header : headers.keySet()) {
+ mimeHeaders.addHeader(header, (String) headers.get(header));
+ }
+ SOAPMessage soapMessage = MessageFactory.newInstance().createMessage(mimeHeaders, is);
+ exchange.getOut().setBody(soapMessage.getSOAPBody().getTextContent());
+ }
+
+}
Property changes on: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PreCxfSoapProcessor.java
___________________________________________________________________
Name: svn:eol-style
+ native
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 18:16:15 UTC (rev 34763)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/CxfSoapSpring.xml 2010-08-18 00:13:08 UTC (rev 34764)
@@ -48,9 +48,7 @@
</drools:script>
</drools:ksession>
-
-
- <cxf:cxfEndpoint id="soapServer"
+ <cxf:cxfEndpoint id="soapServer"
address="http://localhost:9002/soap"
serviceName="ns:CommandExecutor"
endpointName="ns:CommandExecutorPort"
Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/camel-server.xml
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/camel-server.xml 2010-08-17 18:16:15 UTC (rev 34763)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/camel-server.xml 2010-08-18 00:13:08 UTC (rev 34764)
@@ -70,6 +70,10 @@
<entry key="defaultOperationName" value="execute"/>
</cxf:properties>
</cxf:cxfEndpoint>
+
+ <bean id="preCxfSoapProcessor" class="org.drools.jax.soap.PreCxfSoapProcessor" />
+
+ <bean id="postCxfSoapProcessor" class="org.drools.jax.soap.PostCxfSoapProcessor" />
<!-- Leave this, as it's needed to make Camel "drools" aware -->
<bean id="droolsPolicy" class="org.drools.camel.component.DroolsPolicy" />
@@ -92,11 +96,13 @@
<route>
<from uri="cxf://bean://soapServer"/>
+ <process ref="preCxfSoapProcessor" />
<policy ref="droolsPolicy">
<unmarshal ref="xstream" />
<to uri="drools:node1/ksession1" />
<marshal ref="xstream" />
</policy>
+ <process ref="postCxfSoapProcessor" />
</route>
</camelContext>
More information about the jboss-svn-commits
mailing list