Google Summer of Code 2009 – Project Proposal
Implement JiBX databinding for CXF
Data bindings implement the mapping between XML and Java. Data bindings convert data to and from XML, produce XML schema, and provide support for wsdl2java code generation.
JiBX(http://jibx.sourceforge.net/) is a tool for binding XML data to Java objects. It's extremely flexible, allowing you to start from existing Java code and generate an XML schema, start from an XML schema and generate Java code. It also provides very high performance, outperforming all other Java data binding tools across a wide variety of tests.
Apache CXF(http://cxf.apache.org/) is an open source services framework. CXF has a pluggable databinding framework that currently supports Aegis, JAXB and XMLBeans, but JiBX is not supported now.
So the support for JiBX databinding in CXF is important. This project will implement JiBX databinding for CXF.
The main concerns are as follows:
- Mapping the live data as it comes into and out of services.
- Providing XML schema based on Java objects for dynamic ?wsdl URLs and java2ws
- Generating Java code from WSDL for wsdl2java
Project Timeline and Deliverables
April 20 to May 14
I'll be getting familiar with the related technologies like JiBX, CXF, and CXF databinding framework. And these skills will help me to quickly get into the project implementation. I'm also planning to interact with my mentor and the other developers in the community to get much more familiar with the CXF databinding framework and to get feedbacks from the developer community.
May 15 to May 22
In accordance with CXF databinding framework and other databinding implementations (for example, JAXB), I will give a rough design for JiBX databinding, then discuss and review the design with my mentor and the developer community.
May 22 to June 12
I will implement the tool java2ws, which turns the java code into Web Service. Then I will give the unit tests for this function.
June 13 to June 30
I will implement the function which maps the live data as it comes into and out of services. I also implement interfaces about org.apache.cxf.databinding.DataBinding, Reader and Writer.
In this period, I’ll study more about CXF databinding framework and discuss the detailed design and implementation with my mentor and community.
July 1 to July 10
I will submit midterm evaluations.
July 11 to July 22
I will implement wsdl2java which generates java code from WSDL, and then write some unit tests for wsdl2java.
After completion, I will start fixing bugs and writing the rest of the document.
July 23 to August 7
I will write an integration test for JiBX databinding. Then I will update the documents for databinding in CXF.
August 8 to August 15
I will prepare samples and write enough sample guides for JiBX databinding.
August 15 to August 20
I will finish all the tests and refinement with my mentor.
I am a second-year master’s student (Computer Software and Theory) at Beijing University of Aeronautics & Astronautics, China. I have been working on web-service related technologies for more than 18 months. And I have learned a lot of skills about web services, service-oriented architecture. I have learned a lot about axis and axis2.
Some significant highlights are:
- With my classmates, I have developed a web service engine:
We improve the performance of SOAP processing by using “Dynamic Early Binding” and “XML Pull Parsing” technology Implement the Data Binding module of Dynamic Early Binding
Design and Implement the processing chain of SOAP messages for Reliable Messaging
- I have read some code about axis, axis2, mule, r-osgi, and learn the architectures of them. I will continue to focus on distributed OSGi.
- I am familiar with eclipse, osgi, and have about 3 years of Java experience.
- I am familiar with SOAP, WSDL, and Web Service.
I am very excited about this project. I have been involved into the design of databinding. So I am very confident that I will be able to do an excellent job on this project.
I hope get this chance to contribute to the Open Source community.