Google Summer of Code 2010
Student |
Nilupa Bandara |
Student Major |
Software Engineering |
Student Degree |
Masters Degree |
Organization |
Universidad Politécnica de Madrid |
Assigned Mentor |
Daniel Kulp <dkulp AT apache DOT org> |
Project Title
Implementing JiBX dababinding support for Apache CXF Web services stack.
Abstract
JiBX is extremely flexible Java objects to XML mapping technology which allows you to use the existing Java code, generate Java classes from XML schema or to bridge the existing code to schema that represents the same data. Unlike other databinding technologies which already exist, JiBX databinding implementation for Apache CXF would allow its users to use their existing code base when implementing Web services. One should also note that such flexibility comes at a price where the users would have to write the appropriate binding definitions so that JiBX framework can do meaningful mappings between Java objects and XML.
Detailed Description:
Project Features
- Mapping the live data content in SOAP messages to corresponding binding Java objects in the service implementation and vice versa using the jiBX data binding framework.
- Dynamic XML schema generation for Web services (?wsdl) based on Java classes of the Web service using jiXB marshalling
- Integrated jiBX databinding support to java2ws tool to generate the corresponding frontned classes on based on existing Java code utilizing jiXB databinding
- Integrated jiBX databinding support to wsdl2java tool which will allow users to generate Java classes using jiBX which can be used as data objects in their service implementation.
- Comprehensive user-guide accompanied with samples
Additional Information
Project Schedule
April 26 - May 2
Try to gather more detail knowledge on the technologies that is used for this project such as Apache CXF databinding architecture, JiBX databinding technology and also to study the existing Apache CXF dababinding implementations such as XML beans in order get an in-depth understanding of how databinding technologies work in Aapche XCF framework
May 3 – May 9
Discuss with my mentor and the developer community to come up with a basic design of jiXB databinding framework and details on how to inject binding definitions which is metadata required by JiBX framework to ensure proper marshalling / unmarshalling. . Effort will be taken to make the design in accordance with the existing databinding frameworks.
May 10 - July 12
Implement the org.apache.cxf.databinding.DataReader and org.apache.cxf.databinding.DataWriter interfaces and related functions to provide unmarshalling and marshalling of live data based on jiXB databinding framework
Implement org.apache.cxf.databinding.AbstractDataBinding interface which is used to the appropriate DataReader/DataWriter instances, populate org.apache.cxf.service.Service objects with Schemas. This task involves the generation of appropriate schema components which represents the datatypes that are used within a service object using JiBX framewok.
Complete dynamic Schema generation of Web services (?wsdl) based on JiBX marshalling. It involves checking whether a service object which uses JiBX databinding has been populated with appropriate Schema components to represent its internal data types used and also to check whether ServiceWSDLBuilder class can generate the correct WSDL from when it is fed with such service object.
Write a set of testcases to ensure live data mapping and dynamic code generation is working with JiBX databinding.
July 13 – July 16
Reviews with the mentor on what we done so far. Identify areas where refinements are required.
July 17 – July 23
Implementation of jiBX databinding support for wsdl2java tool. It includes the implementation of org.apache.cxf.tools.wsdlto.core.DataBindingProfile interface which resolves datatypes represented in WSDL by schema to corresponding Java classes, generates binding mappings (JiBX framework specific) and actual generation of Java classes which is used to implement the Web service.
July 24 - August 8
Implement of jiBX databinding support for java2ws tool. It includes implementation of missing pieces which generate corresponding Schema elements for service implementation code from which the WSDL is written and generate all required classes which bridge the service implementation code and Apache CXF framework.
August 9 – August 16
Write the user-guide and accompanied samples to demonstrate how to use the JiBX databinding framework to implement services starting either from WSDL or Java code.
Mentor(s)
Daniel Kulp <dkulp AT apache DOT org>
Biography
I am a second year masters student at Universidad Politécnica de Madrid specializing in Software Engineering. I did my bachelors at University of Moratuwa which is the leading technical university of the country with field specialization in Computer Science and Engineering. After graduation I joined software vendor company which develops software related to travel industry for which I worked for three years before being awarded a European Union scholarship to purse a masters course in Europe.
I am familiar with Java and Java related technologies such as Jakarta BSF, JDBC, Spring, OSGI and familiar with Web services frameworks such as Axis2. This project is a challenging but an interesting one. I am determined to put all my efforts, work hard on this project and make it a success