[jboss-svn-commits] JBL Code SVN: r34747 - in labs/jbossrules/branches/camel_soap_support-lucaz: drools-camel/src/main/java/org/drools/jax/soap and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Aug 17 00:17:44 EDT 2010
Author: lucazamador
Date: 2010-08-17 00:17:42 -0400 (Tue, 17 Aug 2010)
New Revision: 34747
Removed:
labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/CommandExecutorSoap.java
Modified:
labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/camel/component/DroolsProducer.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/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
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/knowledge-services.xml
Log:
[JBRULES-2664] Soap support in drools-camel
- drools-server configuration updated. simplified services urls. soap external testing needed.
Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/camel/component/DroolsProducer.java
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/camel/component/DroolsProducer.java 2010-08-17 03:09:07 UTC (rev 34746)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/camel/component/DroolsProducer.java 2010-08-17 04:17:42 UTC (rev 34747)
@@ -126,6 +126,8 @@
}
ExecutionResults results = exec.execute( (BatchExecutionCommandImpl) cmd );
+
+ System.out.println("execution result: factHandle[salaboy] = " + results.getFactHandle("salaboy"));
// if ( de.dataFormat != null ) {
// ByteArrayOutputStream baos = new ByteArrayOutputStream();
Deleted: 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 03:09:07 UTC (rev 34746)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/CommandExecutorSoap.java 2010-08-17 04:17:42 UTC (rev 34747)
@@ -1,8 +0,0 @@
-package org.drools.jax.soap;
-
-
-public interface CommandExecutorSoap {
-
- 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 03:09:07 UTC (rev 34746)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/CommandExecutorSoapImpl.java 2010-08-17 04:17:42 UTC (rev 34747)
@@ -3,11 +3,14 @@
import javax.xml.ws.ServiceMode;
import javax.xml.ws.WebServiceProvider;
+import org.drools.command.Command;
+import org.drools.runtime.CommandExecutor;
+
@WebServiceProvider
@ServiceMode
-public class CommandExecutorSoapImpl implements CommandExecutorSoap {
+public class CommandExecutorSoapImpl implements CommandExecutor {
- public String execute(String command) {
+ 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 03:09:07 UTC (rev 34746)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PostCxfSoap.java 2010-08-17 04:17:42 UTC (rev 34747)
@@ -21,6 +21,13 @@
import java.io.InputStream;
+import javax.xml.namespace.QName;
+import javax.xml.soap.MessageFactory;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPBodyElement;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPMessage;
+
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.drools.core.util.StringUtils;
@@ -30,7 +37,13 @@
public void process(Exchange exchange) throws Exception {
InputStream is = (InputStream) exchange.getIn().getBody();
if (is != null) {
- exchange.getOut().setBody( StringUtils.toString( is ));
+ SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
+ SOAPBody body = soapMessage.getSOAPPart().getEnvelope().getBody();
+ QName payloadName = new QName("http://soap.jax.drools.org", "execute", "ns1");
+ SOAPBodyElement payload = body.addBodyElement(payloadName);
+ SOAPElement message = payload.addChildElement("responseType");
+ message.addTextNode(StringUtils.toString( is ));
+ exchange.getOut().setBody( message );
}
}
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 03:09:07 UTC (rev 34746)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/java/org/drools/camel/component/cxf/CxfSoapTest.java 2010-08-17 04:17:42 UTC (rev 34747)
@@ -17,6 +17,9 @@
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;
@@ -56,8 +59,15 @@
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.getClass().getCanonicalName());
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 03:09:07 UTC (rev 34746)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/CxfSoapSpring.xml 2010-08-17 04:17:42 UTC (rev 34747)
@@ -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/lucaz/dev/drools/camel_soap_support/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.0.0.xsd
+ http://drools.org/schema/drools-spring http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/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
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 03:09:07 UTC (rev 34746)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/camel-server.xml 2010-08-17 04:17:42 UTC (rev 34747)
@@ -28,6 +28,7 @@
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml"/>
+ <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<!--
@@ -42,13 +43,23 @@
! Different Camel routes can handle different end point paths.
-->
<cxf:rsServer id="rsServer"
- address="/kservice/rest"
+ address="/rest"
serviceClass="org.drools.jax.rs.CommandExecutorImpl">
<cxf:providers>
<bean class="org.drools.jax.rs.CommandMessageBodyReader"/>
</cxf:providers>
</cxf:rsServer>
+
+ <cxf:cxfEndpoint id="soapServer"
+ address="/soap"
+ serviceClass="org.drools.jax.soap.CommandExecutorSoap">
+ <cxf:properties>
+ <entry key="dataFormat" value="MESSAGE"/>
+ <entry key="defaultOperationName" value="execute"/>
+ </cxf:properties>
+ </cxf:cxfEndpoint>
+
<!-- Leave this, as it's needed to make Camel "drools" aware -->
<bean id="droolsPolicy" class="org.drools.camel.component.DroolsPolicy" />
@@ -67,7 +78,16 @@
<marshal ref="xstream" />
</policy>
</route>
+
+ <route>
+ <from uri="cxf://bean://soapServer"/>
+ <policy ref="droolsPolicy">
+ <unmarshal ref="xstream" />
+ <to uri="drools:node1/ksession1" />
+ <marshal ref="xstream" />
+ </policy>
+ </route>
</camelContext>
-
+
</beans>
Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/knowledge-services.xml
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/knowledge-services.xml 2010-08-17 03:09:07 UTC (rev 34746)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/knowledge-services.xml 2010-08-17 04:17:42 UTC (rev 34747)
@@ -30,6 +30,20 @@
</drools:resources>
</drools:kbase>
- <drools:ksession id="ksession1" type="stateless" kbase="kbase1" node="node1"/>
+ <drools:ksession id="ksession1" type="stateful" kbase="kbase1" node="node1"/>
+
+
+ <bean id="droolsManagementAgent" class="org.drools.management.DroolsManagementAgentBean" init-method="start">
+ <property name="knowledgeBases">
+ <list>
+ <ref bean="kbase1"/>
+ </list>
+ </property>
+ <property name="statefulKnowledgeSessions">
+ <list>
+ <ref bean="ksession1"/>
+ </list>
+ </property>
+ </bean>
</beans>
\ No newline at end of file
More information about the jboss-svn-commits
mailing list