[jboss-svn-commits] JBL Code SVN: r34760 - in labs/jbossrules/branches/camel_soap_support-lucaz: drools-camel/src/test/java/org/drools/camel/component/cxf and 5 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Aug 17 11:26:00 EDT 2010
Author: lucazamador
Date: 2010-08-17 11:25:59 -0400 (Tue, 17 Aug 2010)
New Revision: 34760
Added:
labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/soap.wsdl
labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/soap.wsdl
labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/test/java/org/drools/server/CxfSoapClientServerTest.java
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/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/CxfRsSpring.xml
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/java/org/drools/server/Test.java
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
labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/test/resources/camel-client-test.xml
labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/test/resources/camel-embedded-server-test.xml
Log:
[JBRULES-2664] Soap support in drools-camel
- wsdl support. drools-server tests created
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 14:18:51 UTC (rev 34759)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PostCxfSoap.java 2010-08-17 15:25:59 UTC (rev 34760)
@@ -25,7 +25,6 @@
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;
@@ -41,7 +40,7 @@
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");
+ payload.addChildElement("responseType");
body.addTextNode(StringUtils.toString( is ));
exchange.getOut().setBody( soapMessage );
}
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 14:18:51 UTC (rev 34759)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/main/java/org/drools/jax/soap/PreCxfSoap.java 2010-08-17 15:25:59 UTC (rev 34760)
@@ -28,21 +28,16 @@
import org.apache.cxf.service.model.BindingOperationInfo;
public class PreCxfSoap implements Processor {
+
private static final transient Log LOG = LogFactory.getLog(PreCxfSoap.class);
public void process(Exchange exchange) throws Exception {
- exchange.setPattern(ExchangePattern.InOut);
-
-
-
+ exchange.setPattern(ExchangePattern.InOut);
BindingOperationInfo boi = (BindingOperationInfo)exchange.getProperty(BindingOperationInfo.class.toString());
if (boi != null) {
LOG.info("boi.isUnwrapped" + boi.isUnwrapped());
}
-
SOAPMessage soapMessage = (SOAPMessage)exchange.getIn().getBody();
- System.out.println("PreCxfSoal process invoked");
exchange.getOut().setBody(soapMessage.getSOAPBody().getTextContent());
-
}
}
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 14:18:51 UTC (rev 34759)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/java/org/drools/camel/component/cxf/CxfSoapTest.java 2010-08-17 15:25:59 UTC (rev 34760)
@@ -35,7 +35,7 @@
protected AbstractXmlApplicationContext createApplicationContext() {
return new ClassPathXmlApplicationContext("org/drools/camel/component/CxfSoapSpring.xml");
}
-
+
public void test1() throws Exception {
SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
@@ -44,7 +44,6 @@
body.addBodyElement(payloadName);
-
String cmd = "";
cmd += "<batch-execution lookup=\"ksession1\">\n";
cmd += " <insert out-identifier=\"salaboy\" disconnected=\"true\">\n";
@@ -57,20 +56,21 @@
cmd += "</batch-execution>\n";
body.addTextNode(cmd);
-
+
OutputStream out = new ByteArrayOutputStream();
soapMessage.writeTo(out);
- String s = out.toString();
- System.out.println("Request = "+s);
+ String request = out.toString();
+ System.out.println("Request = " + request);
Object object = this.context.createProducerTemplate().requestBody("direct://http", soapMessage);
System.out.println(object.getClass().getCanonicalName());
- out = new ByteArrayOutputStream();
- soapMessage = (SOAPMessage) object;
- soapMessage.writeTo(out);
- s = out.toString();
- System.out.println("Response = "+s);
+ out = new ByteArrayOutputStream();
+ soapMessage = (SOAPMessage) object;
+ soapMessage.writeTo(out);
+ String response = out.toString();
+ System.out.println("Response = "+response);
+ assertTrue(response.contains("fact-handle identifier=\"salaboy\""));
}
}
Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/CxfRsSpring.xml
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/CxfRsSpring.xml 2010-08-17 14:18:51 UTC (rev 34759)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/CxfRsSpring.xml 2010-08-17 15:25:59 UTC (rev 34760)
@@ -49,7 +49,7 @@
<!-- Defined the server endpoint to create the cxf-rs consumer -->
<cxf:rsServer id="rsServer"
- address="http://localhost:9002/rest"
+ address="http://localhost:9002/rest"
serviceClass="org.drools.jax.rs.CommandExecutorImpl">
<cxf:providers>
<bean class="org.drools.jax.rs.CommandMessageBodyReader"/>
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 14:18:51 UTC (rev 34759)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/CxfSoapSpring.xml 2010-08-17 15:25:59 UTC (rev 34760)
@@ -50,11 +50,13 @@
- <cxf:cxfEndpoint id="soapServer" address="http://localhost:9002/soap"
-
- serviceClass="org.drools.runtime.CommandExecutor"
- >
- <cxf:properties>
+ <cxf:cxfEndpoint id="soapServer"
+ address="http://localhost:9002/soap"
+ serviceName="ns:CommandExecutor"
+ endpointName="ns:CommandExecutorPort"
+ wsdlURL="src/test/resources/org/drools/camel/component/soap.wsdl"
+ xmlns:ns="http://soap.jax.drools.org/" >
+ <cxf:properties>
<entry key="dataFormat" value="MESSAGE"/>
<entry key="defaultOperationName" value="execute"/>
</cxf:properties>
Added: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/soap.wsdl
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/soap.wsdl (rev 0)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/soap.wsdl 2010-08-17 15:25:59 UTC (rev 34760)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions name="CommandExecutor" targetNamespace="http://soap.jax.drools.org/" xmlns:ns1="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://soap.jax.drools.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://soap.jax.drools.org/" xmlns:tns="http://soap.jax.drools.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+<xsd:element name="execute" type="tns:execute"/>
+<xsd:complexType name="execute">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="arg0"/>
+</xsd:sequence>
+</xsd:complexType>
+<xsd:element name="executeResponse" type="tns:executeResponse"/>
+<xsd:complexType name="executeResponse">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="return" type="xsd:anyType"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="execute">
+ <wsdl:part element="tns:execute" name="parameters">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="executeResponse">
+ <wsdl:part element="tns:executeResponse" name="parameters">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="CommandExecutorPortType">
+ <wsdl:operation name="execute">
+ <wsdl:input message="tns:execute" name="execute">
+ </wsdl:input>
+ <wsdl:output message="tns:executeResponse" name="executeResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="CommandExecutorSoapBinding" type="tns:CommandExecutorPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="execute">
+ <soap:operation soapAction="" style="document"/>
+ <wsdl:input name="execute">
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="executeResponse">
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="CommandExecutor">
+ <wsdl:port binding="tns:CommandExecutorSoapBinding" name="CommandExecutorPort">
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
\ No newline at end of file
Property changes on: labs/jbossrules/branches/camel_soap_support-lucaz/drools-camel/src/test/resources/org/drools/camel/component/soap.wsdl
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/java/org/drools/server/Test.java
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/java/org/drools/server/Test.java 2010-08-17 14:18:51 UTC (rev 34759)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/java/org/drools/server/Test.java 2010-08-17 15:25:59 UTC (rev 34760)
@@ -16,57 +16,63 @@
package org.drools.server;
-import java.io.InputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
-import javax.ws.rs.core.Response;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPMessage;
import org.apache.camel.CamelContext;
-import org.apache.camel.test.CamelSpringTestSupport;
-import org.drools.core.util.StringUtils;
-import org.drools.impl.StatelessKnowledgeSessionImpl;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.AbstractXmlApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
-
- public static void main(String[] args) {
- String msg = "Hello World";
-
- System.out.println( "Sending Message:\n" + msg);
-
- Test test = new Test();
- String response = test.send( msg );
-
- System.out.println( );
- System.out.println( );
-
- System.out.println( "Received Response:\n" + response);
- }
-
- public String send(String msg) {
- ClassPathXmlApplicationContext springContext = new ClassPathXmlApplicationContext("classpath:camel-client.xml");
- String batch = "";
- batch += "<batch-execution lookup=\"ksession1\">\n";
- batch += " <insert out-identifier=\"message\">\n";
- batch += " <org.test.Message>\n";
- batch += " <text>" + msg + "</text>\n";
- batch += " </org.test.Message>\n";
- batch += " </insert>\n";
- batch += "</batch-execution>\n";
-
-
- Test test = new Test();
- String response = test.execute( batch,
- ( CamelContext ) springContext.getBean( "camel" ) );
-
- return response;
- }
-
- public String execute(String msg, CamelContext camelContext) {
-
- String response = camelContext.createProducerTemplate().requestBody( "direct://kservice", msg, String.class );
-
- return response;
- }
+
+ public static void main(String[] args) {
+ String msg = "Hello World";
+
+ System.out.println( "Sending Message:\n" + msg);
+
+ Test test = new Test();
+ String response = test.send( msg );
+
+ System.out.println( );
+ System.out.println( );
+
+ System.out.println( "Received Response:\n" + response);
+ }
+
+ public String send(String msg) {
+ ClassPathXmlApplicationContext springContext = new ClassPathXmlApplicationContext("classpath:camel-client.xml");
+ String batch = "";
+ batch += "<batch-execution lookup=\"ksession1\">\n";
+ batch += " <insert out-identifier=\"message\">\n";
+ batch += " <org.test.Message>\n";
+ batch += " <text>" + msg + "</text>\n";
+ batch += " </org.test.Message>\n";
+ batch += " </insert>\n";
+ batch += "</batch-execution>\n";
+
+
+ Test test = new Test();
+ String response = test.execute( batch,
+ ( CamelContext ) springContext.getBean( "camel" ) );
+
+ return response;
+ }
+
+ public String execute(String msg, CamelContext camelContext) {
+
+ String response = camelContext.createProducerTemplate().requestBody( "direct://kservice/rest", msg, String.class );
+
+ return response;
+ }
+
+ public String execute(SOAPMessage soapMessage, CamelContext camelContext) throws SOAPException, IOException {
+ Object object = camelContext.createProducerTemplate().requestBody( "direct://kservice/soap", soapMessage);
+ OutputStream out = new ByteArrayOutputStream();
+ SOAPMessage soapResponse = (SOAPMessage) object;
+ soapResponse.writeTo(out);
+ return out.toString();
+ }
}
\ No newline at end of file
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 14:18:51 UTC (rev 34759)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/camel-server.xml 2010-08-17 15:25:59 UTC (rev 34760)
@@ -50,10 +50,21 @@
</cxf:providers>
</cxf:rsServer>
-
+<!-- <cxf:cxfEndpoint id="soapServer"-->
+<!-- address="/soap"-->
+<!-- serviceClass="org.drools.runtime.CommandExecutor" >-->
+<!-- <cxf:properties>-->
+<!-- <entry key="dataFormat" value="MESSAGE"/>-->
+<!-- <entry key="defaultOperationName" value="execute"/>-->
+<!-- </cxf:properties>-->
+<!-- </cxf:cxfEndpoint>-->
+
<cxf:cxfEndpoint id="soapServer"
- address="/soap"
- serviceClass="org.drools.jax.soap.CommandExecutorSoap">
+ address="/soap"
+ serviceName="ns:CommandExecutor"
+ endpointName="ns:CommandExecutorPort"
+ wsdlURL="soap.wsdl"
+ xmlns:ns="http://soap.jax.drools.org/" >
<cxf:properties>
<entry key="dataFormat" value="MESSAGE"/>
<entry key="defaultOperationName" value="execute"/>
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 14:18:51 UTC (rev 34759)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/knowledge-services.xml 2010-08-17 15:25:59 UTC (rev 34760)
@@ -21,7 +21,7 @@
xmlns:drools="http://drools.org/schema/drools-spring"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.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">
-
+
<drools:execution-node id="node1" />
<drools:kbase id="kbase1" node="node1">
@@ -29,21 +29,7 @@
<drools:resource type="DRL" source="classpath:test.drl"/>
</drools:resources>
</drools:kbase>
-
- <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>
+ <drools:ksession id="ksession1" type="stateless" kbase="kbase1" node="node1"/>
+
</beans>
\ No newline at end of file
Added: labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/soap.wsdl
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/soap.wsdl (rev 0)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/soap.wsdl 2010-08-17 15:25:59 UTC (rev 34760)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions name="CommandExecutor" targetNamespace="http://soap.jax.drools.org/" xmlns:ns1="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://soap.jax.drools.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://soap.jax.drools.org/" xmlns:tns="http://soap.jax.drools.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+<xsd:element name="execute" type="tns:execute"/>
+<xsd:complexType name="execute">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="arg0"/>
+</xsd:sequence>
+</xsd:complexType>
+<xsd:element name="executeResponse" type="tns:executeResponse"/>
+<xsd:complexType name="executeResponse">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="return" type="xsd:anyType"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="execute">
+ <wsdl:part element="tns:execute" name="parameters">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="executeResponse">
+ <wsdl:part element="tns:executeResponse" name="parameters">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="CommandExecutorPortType">
+ <wsdl:operation name="execute">
+ <wsdl:input message="tns:execute" name="execute">
+ </wsdl:input>
+ <wsdl:output message="tns:executeResponse" name="executeResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="CommandExecutorSoapBinding" type="tns:CommandExecutorPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="execute">
+ <soap:operation soapAction="" style="document"/>
+ <wsdl:input name="execute">
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="executeResponse">
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="CommandExecutor">
+ <wsdl:port binding="tns:CommandExecutorSoapBinding" name="CommandExecutorPort">
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
\ No newline at end of file
Property changes on: labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/main/resources/soap.wsdl
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/test/java/org/drools/server/CxfSoapClientServerTest.java
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/test/java/org/drools/server/CxfSoapClientServerTest.java (rev 0)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/test/java/org/drools/server/CxfSoapClientServerTest.java 2010-08-17 15:25:59 UTC (rev 34760)
@@ -0,0 +1,58 @@
+/**
+ * Copyright 2010 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.drools.server;
+
+import javax.xml.namespace.QName;
+import javax.xml.soap.MessageFactory;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPMessage;
+
+import junit.framework.TestCase;
+
+import org.apache.camel.CamelContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class CxfSoapClientServerTest extends TestCase {
+
+ public void test1() throws Exception {
+ ClassPathXmlApplicationContext springContext = new ClassPathXmlApplicationContext("classpath:beans-test.xml");
+
+ SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
+ SOAPBody body = soapMessage.getSOAPPart().getEnvelope().getBody();
+ QName payloadName = new QName("http://soap.jax.drools.org", "execute", "ns1");
+
+ body.addBodyElement(payloadName);
+
+ String cmd = "";
+ cmd += "<batch-execution lookup=\"ksession1\">\n";
+ cmd += " <insert out-identifier=\"message\">\n";
+ cmd += " <org.test.Message>\n";
+ cmd += " <text>Helllo World</text>\n";
+ cmd += " </org.test.Message>\n";
+ cmd += " </insert>\n";
+ cmd += "</batch-execution>\n";
+
+ body.addTextNode(cmd);
+
+ Test test = new Test();
+ String response = test.execute( soapMessage, ( CamelContext ) springContext.getBean( "camel-client-ctx" ) );
+
+ assertTrue( response.contains( "execution-results" ) );
+ assertTrue( response.contains( "echo" ) );
+ }
+
+}
Property changes on: labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/test/java/org/drools/server/CxfSoapClientServerTest.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/test/resources/camel-client-test.xml
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/test/resources/camel-client-test.xml 2010-08-17 14:18:51 UTC (rev 34759)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/test/resources/camel-client-test.xml 2010-08-17 15:25:59 UTC (rev 34760)
@@ -33,12 +33,19 @@
<camelContext id="camel-client-ctx" xmlns="http://camel.apache.org/schema/spring">
<route>
- <from uri="direct://kservice"/>
+ <from uri="direct://kservice/rest"/>
<policy ref="droolsPolicy">
<to uri="cxfrs://http://localhost:9002/rest"/>
</policy>
+ </route>
+
+ <route>
+ <from uri="direct://kservice/soap"/>
+ <policy ref="droolsPolicy">
+ <to uri="cxf://bean://soapServer"/>
+ </policy>
</route>
-
+
</camelContext>
</beans>
Modified: labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/test/resources/camel-embedded-server-test.xml
===================================================================
--- labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/test/resources/camel-embedded-server-test.xml 2010-08-17 14:18:51 UTC (rev 34759)
+++ labs/jbossrules/branches/camel_soap_support-lucaz/drools-server/src/test/resources/camel-embedded-server-test.xml 2010-08-17 15:25:59 UTC (rev 34760)
@@ -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-extension-http-jetty.xml"/>
@@ -37,12 +38,25 @@
<cxf:providers>
<bean class="org.drools.jax.rs.CommandMessageBodyReader"/>
</cxf:providers>
- </cxf:rsServer>
+ </cxf:rsServer>
+ <cxf:cxfEndpoint id="soapServer"
+ address="http://localhost:9002/soap"
+ serviceName="ns:CommandExecutor"
+ endpointName="ns:CommandExecutorPort"
+ wsdlURL="soap.wsdl"
+ xmlns:ns="http://soap.jax.drools.org/" >
+ <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" />
<camelContext id="camel-server-ctx" xmlns="http://camel.apache.org/schema/spring">
+
<route>
<from uri="cxfrs://bean://rsServer"/>
<policy ref="droolsPolicy">
@@ -51,7 +65,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>
More information about the jboss-svn-commits
mailing list