Differences between revisions 54 and 55
Revision 54 as of 2009-08-17 03:11:06
Size: 10557
Editor: 124
Revision 55 as of 2009-09-20 23:35:25
Size: 10585
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
 * [#project-description Project Description]
[#project-timeline Project Timeline]
 * [#project-status
Project Status]
 * [#project-sourcecode
Project Source Code]
[#project-links Project Links]
 * [#project-jira
Project Tasks]
 * [[#project-description|Project Description]]
 * [
[#project-timeline|Project Timeline]]
 * [[#project-status|
Project Status]]
 * [[#project-sourcecode|
Project Source Code]]
 * [
[#project-links|Project Links]]
 * [[#project-jira|
Project Tasks]]
Line 35: Line 35:
[[Anchor(project-timeline)]] <<Anchor(project-timeline)>>
Line 87: Line 87:
[[Anchor(project-status)]] <<Anchor(project-status)>>
Line 144: Line 144:
 3. Read the specification again and testsuite for SOAP/JMS[http://dev.w3.org/2008/ws/soapjms/testcases/].  3. Read the specification again and testsuite for SOAP/JMS[[http://dev.w3.org/2008/ws/soapjms/testcases/]].
Line 249: Line 249:
[[Anchor(project-sourcecode)]] <<Anchor(project-sourcecode)>>
Line 252: Line 252:
 * [http://github.com/liucong/jms4cxf2/tree/master GitHub Source Code]

 * [[http://github.com/liucong/jms4cxf2/tree/master|GitHub Source Code]]

Line 258: Line 258:
 * [https://issues.apache.org/jira/browse/CXF-2253 JIRA CXF-2253]

 * [[https://issues.apache.org/jira/browse/CXF-2253|JIRA CXF-2253]]

Line 264: Line 264:
 * [http://wiki.apache.org/general/soc2009-soapjms-proposal Implement the SOAP/JMS specification for CXF Proposal]
 * [http://wiki.apache.org/general/SummerOfCode2009#cxf-project Apache's GSoC Page]
 * [http://www.w3.org/TR/soapjms/ SOAP over JMS specificication]
 * [http://cwiki.apache.org/CXF20DOC/jms-transport.html Using the Java Message Service in CXF]
 * [http://dev.w3.org/2008/ws/soapjms/testcases/ SOAP over Java Message Service 1.0 Test Suite]
 * [[http://wiki.apache.org/general/soc2009-soapjms-proposal|Implement the SOAP/JMS specification for CXF Proposal]]
 * [[http://wiki.apache.org/general/SummerOfCode2009#cxf-project|Apache's GSoC Page]]
 * [[http://www.w3.org/TR/soapjms/|SOAP over JMS specificication]]
 * [[http://cwiki.apache.org/CXF20DOC/jms-transport.html|Using the Java Message Service in CXF]]
 * [[http://dev.w3.org/2008/ws/soapjms/testcases/|SOAP over Java Message Service 1.0 Test Suite]]

SOAP/JMS specification for CXF


Project Description

Apache CXF is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS. These services can speak a variety of protocols such as SOAP, XML/HTTP, Restful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI.

SOAP over JMS offers an alternative messaging mechanism to SOAP over HTTP. SOAP over JMS offers more reliable and scalable messaging support than SOAP over HTTP.

SOAP over JMS specification(http://www.w3.org/TR/soapjms/) is aimed at a set of standards for the transport of SOAP messages over JMS (Java Message Service). The main purpose is to ensure interoperability between the implementations of different Web services vendors.

CXF does support SOAP over JMS, but it does not meet the current draft specification defined at http://www.w3.org/TR/soapjms/ and instead uses some proprietary formats, headers, url formats, etc. This project would update the SOAP/JMS support in CXF to be completely specification compliant.

Upon sucessful completion of the SOAP/JMS project, CXF will become one of the very first Open Source implementations of the SOAP/JMS specificiation.

The main concerns are as follows:

  • The JMS calls that are made to construct and interpret SOAP/JMS messages in The SOAP/JMS Underlying Protocol Binding.
  • The WSDL binding that is used to describe SOAP/JMS services in WSDL Usage.
  • How SOAP over JMS uses the URI specification for JMS endpoints.
  • Make SOAP Over JMS pass the he soapjms test suite (http://dev.w3.org/2008/ws/soapjms/testcases/).

Project Timeline

First Week(5.20-5.26)

I have known the configuration of JMS address for current implementation. I’ll investigate the JMS URI, and get some code from Camel project for JMS URI and test it.

Second Week(5.27-6.2)

I’ll use the Camel JMS URI to implement the JMS URI for SOAP/JMS. And do some tests to make sure the JMS URI works.

Third Week(6.3-6.9)

I’ll integrate the JMS URI with the current implementation of SOAP/JMS. The JMS URI configuration information will replace the jms:address of current implementation.

4th Week(6.10-6-16)

I’ll modify the JMS Message Header properties and JMS message properties to make them conformance with the specification.

5th Week(6.17-6.23)

I’ll modify the MEPs to make them conformance with the specification.

6th Week(6.24-6.30)

I’ll make a checkpoint with my mentor and submit midterm evaluations.

7th Week(7.1-7.7)

I’ll work on the WSDL extension for WSDL usage and make the WSDL definition conformance with the specification.

8th Week(7.8-7.14)

I’ll still work on the WSDL extension for WSDL usage and make the overriding rule work.

9th Week(7.15-7.21)

I’ll work on the SOAP Fault for SOAP/JMS and make it conformance with the specification.

10th Week(7.22-7.28)

I’ll work on the test suite (http://dev.w3.org/2008/ws/soapjms/testcases/) . I’ll write an integration test for SOAP over JMS. Then I will update the documents for SOAP/JMS in CXF.

11-12th Week(7.29-8.12)

I’ll still work on the test suite to make the implementation pass the tests as possible as I can.

Final Week(8.13-8.19)

I will finish all the tests and refinement with my mentor.

Project Status

First Week(5.20-5.26)

  • ToDO
  • Get and analyze the code from camel-jms;
  • Read the JMS URI specification and determine which parts will be implemented.
  • DONE
  • ToDO list.
  • Modify the current JMS implementation, and use the namespace in SOAP/JMS specification.
  • Add a jms uri in the wsdl file to replace current jms:address element.

Second Week(5.27-6.2)

  • ToDO
  • Implement the basic JMS uri;
  • Do some tests for jms uri.
  • DONE
  • ToDO list
  • Add some codes which parse JMS uri in the current JMS implementation, and it works.

Third Week(6.3-6.9)

  • ToDO
  • Make the jms uri works for SOAP/JMS
  • Add the JMS Message Header Properties and Message Properteis
  • DONE
  • ToDO list
  • Add some SOAP Fault for jms-transport.
  • Prepare to use jaxb to implement the JMS URI.

4th Week(6.10-6.16)

  • ToDO
  • Implement the JMS URI use the jaxb and modify the code which uses the JMSEndpoint.
  • Find the correct method to deal with SOAP Fault.
  • Start to work on ONE-WAY MEP.
  • DONE
  • Implement the JMS URI use the jaxb and modify the code which uses the JMSEndpoint.
  • Do a simple SOAP Fault for JMS trasnport in soap-binding module.
  • Make one-way and request-response mep compatible with the specification.

5th Week(6.17-6.23)

  • ToDO
  • Continue my work on how to deal with SOAP Fault.
  • Do more tests for SOAP/JMS implementation.
  • Do a patch for my work and submit it on JIRA.
  • DONE
  • Add a SOAP Fault for Soap Binding Version Error.
  • I have finished a patch and submitted on JIRA.
  • Read the specification again and testsuite for SOAP/JMShttp://dev.w3.org/2008/ws/soapjms/testcases/.

6th Week(6.24-6.30)

  • ToDO
  • Finish the patch according to Willem's sugguest.
  • Discuss the WSDL usage and try do a small example for it.
  • Publish and access web service through the JMS URI Address directly without specifying the WSDL.
  • Make a checkpoint with Willem and submit midterm evaluations.
  • DONE
  • Finish the patch about SOAP/JMS specification according to Willem's sugguest.
  • Working with Willem and submit the patch to CXF.
  • Discuss the WSDL usage with dev-cxf community, and there are some problems which need to solve.
  • CXF can publish and access web service through the JMS URI address directly without specifying the WSDL now.

7th Week(7.1-7.7)

  • ToDO
  • Invetigate the xjc which may be helpful for WSDL usage sugguested by Daniel Kulp.
  • Try to make an example to make sure the xjc work in my situation.
  • Start to work on the SOAP JMS test suites, and do a simple design for it.
  • DONE
  • Add WSDL Extension XJC Plugin to CXF. The WSLD Extension XJC Plugin can generate the WSDL extension classes for XML Schema.
  • Modify the cxf-api project, make it work with javax.wsdl.extensions.ExtensibilityElement.

  • Use the WSDL Extension XJC Plugin to finish the WSDL Usage for SOAP/JMS.
  • Find two problems which should be solved: (1) Properties Overriding in WSDL usage (2)An Exception occurs when use wsdl extension in the port
  • Submit a patch for WSDL Usage in SOAP/JMS

8th Week(7.8-7.14)

  • ToDO
  • Solve the two problems which were found last week.
  • Finish SOAP Fault for SOAP/JMS
  • Start to work on the SOAP JMS test suites.
  • DONE
  • Submit a patch for 1. And then Dan submitted a patch which did the same work, It works fine. Thank to Dan.
  • Finish the simple SOAP Fault for SOAP/JMS. But some works should be done later about SOAP Fault.
  • Read the new version SOAP/JMS (http://www.w3.org/TR/2009/CR-soapjms-20090604/). There are some changes, I'll change in the implementation.

9th Week(7.15-7.21)

  • ToDO
  • Do some small changes according to the new version SOAP/JMS.
  • Refactor the code which deal with JMS message properties.
  • Discuss how to do the test suite.
  • DONE
  • Do some small changes according to new version SOAP/JMS and refactor the code about JMS message properties.
  • Discuss with Willem and developers list and find a method to do test suite.
  • Start some experiment to do the test suite.

10th Week(7.22-7.28)

  • ToDO
  • Modify the code about CorrelationID, which is not clear in the current implementation.
  • Start to code for the test framework of JMS test suite(http://dev.w3.org/2008/ws/soapjms/testcases/)

  • Do some tests in the test suite.
  • DONE
  • Finish the modification of CorrelationID according to rules(http://www.nabble.com/Re%3A-test-suite-patch.-td24667377.html)

  • Do some expirement about the test suite.
  • Finish tests (0001-1001) in the test suite.
  • Finish some bug fixes according to the test suite.
  • Submit a patch for my recent work.

11th Week(7.29-8.5)

  • ToDO
  • Finish the patch work with Willem
  • Do some fix according to Willem's advice
  • Submit an error document about JMS test suite
  • DONE
  • Discuss and modify the patch with Wille, and submit to CXF project.
  • Discuess and modify the error document and submit it to Peter.
  • Fix the problem with CorrelationID and JMSListener.

12th Week(8.6-8.12)

  • ToDO
  • Continue work on JMS test suite and try to make more tests pass.
  • Work on user guide and give some examples about jms-spec implementation.
  • DONE
  • Add a test framework for SOAP JMS Fault tests.
  • Almost all the tests pass in the test suite pass.
  • Modify the SOAP JMS Fault processing and make sure it works.
  • Submit a new patch about test suite.

13th Week(8.13-8.19)

  • ToDO
  • Comfirm and submit the patch with Willem.
  • Working on the user guide for CXF.
  • DONE
  • Modify and submit my patch with Willem.
  • Write a document for user guide and submit it to Willem.
  • Write a sample for jms-spec transport and submit a patch for it.

Source Code

Project Tasks

soapjms4cxf (last edited 2009-09-20 23:35:25 by localhost)