- From: Peter Easton <peaston@progress.com>
- Date: Wed, 5 May 2010 13:25:17 -0400
- To: SOAP-JMS <public-soap-jms@w3.org>
- Message-ID: <6F07B1E4CA74F3469AAA1DA148515F840146270B87@PSCMAIL02.bedford.progress.com>
The following overview, serves to complete Actions-164 and 165 Peter... CXF SOAP/JMS Overview SOAP/JMS is a new CXF feature under development under CXF 2.3. For information see: http://cxf.apache.org/docs/soap-over-jms-10-support.html Quick Start - Running CXF Test Suites The best way to get started with CXF 2.3 is to down-load a source snapshot zip, or grab the latest 2.3 code from SVN. You will need to install Maven to run the SOAP-JMS test cases. The master pom for running SOAP-JMS tests is here: apache-cxf-2.3.0-SNAPSHOT-src/systests/transports/pom.xml. Included under systests/transports /src/test/java is the master test case: org.apache.cxf.jms.testsuite.testcases.SOAPJMSTestSuiteTest When setup, you can move to the apache-cxf-2.3.0-SNAPSHOT-src/systests/transports sub-directory and run the following Maven command: mvn or (to only run the test suite), mvn -Dtest=SOAPJMSTestSuiteTest If all works, you should see the following output appear: Running org.apache.cxf.jms.testsuite.testcases.SOAPJMSTestSuiteTest Tests run: 18, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 9.859 sec Results : Tests run: 18, Failures: 0, Errors: 0, Skipped: 0 CXF Approach To JMS Testing The Junit4 test client and server code is under systests/transports /src/test/java/org/apache/cxf/jms/testsuite. Client and server code is JAXWS based. The WSDL with SOAP/JMS bindings is actually in a different Maven project, see: systests/testutils /src/main/resources/wsdl/jms_spec_testsuite.wsdl systests/testutils contains WSDL based implementations for all CXF system testing. The built testutils artifact contains WSDLs and compiled artifacts - Java stubs and interfaces - from the WSDLs(WSDL2Java). In this case, jms_spec_testsuite.wsdl generates an interface for the WSDL port type: java/org/apache/cxf/jms_simple/JMSSimplePortType This interface defines the ping and echo test methods. Test verification of JMS send and receive message properties is data driven. transport/pom.xml JAXB compiles the following test definitions: systests/transports /src/test/java/org/apache/cxf/jms/testsuite/util/testcases.xml Note that this file is very similar to the like-named W3C testcases.xml artifact. On the server side, each test case has a separate implementation e.g. Test1001Impl.java, Test1002Impl.java etc. As part of test setup these implementations are JAXWS Endpoint published. See: systests/transports /src/test/java/org/apache/cxf/jms/testsuite/services/Server.java The test verification is performed by the client driver, SOAPJMSTestSuiteTest. This program has a Junit test method for each case. The test method uses javax.xml.ws.Service programming to obtain a Port proxy for each test(implementation of JMSSimplePortType). The test verification approach involves examining the request and response message context after each call(via javax.xml.ws.BindingProvider). In the case of CXF as part of the JMS implementation properties are recorded in the context maps(java.util.Map) of the request and response. Other Places To Look The CXF SOAP/JMS transport code along with unit tests are located here: rt/transports/jms/src The CXF 2.3 distribution contains a SOAP/JMS greeter example, /distribution/src/main/release/samples/jms-spec-demo W3C Test Coverage WC3 SOAP-JMS Test Cases CXF Test Cases test0001 Y test0002 Y test0003 Y test0004 Y test0005 Y test0006 Y test0007 N (WSDL 2.0 bindings) CXF does not support WSDL 2.0 test0008 Y test0009 Y test0010 Y test0011 Y test0012 Y test0013 N (WSDL 1.1 bindings) test0014 N (WSDL 1.1 bindings) test0015 N (WSDL 2.0 bindings) CXF does not support WSDL 2.0 test0016 N (WSDL 2.0 bindings) CXF does not support WSDL 2.0 test1001 Y test1002 Y test1003 Y test1004 Y test1005 N - SOAP 1.1 2-way SOAP Action mismatch test1006 Y test1007 Y test1008 Y test1009 N - SOAP 1.1 unsupported lookup variant test1101 N - there are no SOAP1.2 tests all test11xx test1102 N test1103 N test1104 N test1105 N test1106 N test1107 N test1108 N test1109 N Possible Next Steps 1. It is likely that CXF will be happy to receive and commit new tests from us. We understand WSDL 2.0 is not supported, but we should be able to implement cases for the other missing tests. 2. We should examine informal interoperability between CXF and another implementation. For example, although CXF testing uses an embedded ActiveMQ server, it does adapt to other JMS implementations. We could run the client tests on CXF, connecting to SOAP/JMS services running in another stack.
Received on Wednesday, 5 May 2010 17:26:02 UTC