[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