Google Summer of Code 2010


Nilupa Bandara


Student Major

Software Engineering

Student Degree

Masters Degree


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.


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

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 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.


Daniel Kulp <dkulp AT apache DOT org>


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