Jump to: navigation, search

Runtime Dependencies Structure Refactor

Runtime Dependency Problems

Some plug-ins of Service Creation depend on org.apache.cxf plug-in and org.apache.tuscany plug-in. These dependend plug-ins are from the third party Apache. And without thess libraries, we cannot build or download STP correctly and smoothly.

Objective

Remove the dependencies to CXF plug-in and Tuscany plug-in. Then we can build and dowload STP without these third party libraries. For users, they should only download corresponding runtime libraries and specify it in the preference page.

Solution

Analyze

Actually, STP only depends on a few libraries of the CXF and Tuscany. These dependend libraries can divided into two parts: one is standard APIs and the other is generator APIs. The standard APIs are defined in open specifications, such as JAX-WS. And the generator APIs are specific to different runtime implementations.

For Standard API

Put all standard API libraries into Orbit. These standard API includes JAX-WS API, JAXB API, JSR-181 API and SCA-Java API. Now JAX-WS API and JAXB API have already been approved in IPZilla.

For Generator API

Command line mode will be used to invoke the generator class of the runtime. In STP, only the parameter flags for generator are kept. When needed, STP will use these parameter flags and corresponding values to invoke generator process. The generator class is from the runtime specified by user. For example:

       java -cp CLASSPATH -a xxx -b xx -c xx ... org.apache.cxf.tools.generator.Java2Wsdl

Refactor Steps

1. Submit new CQ for JSR-181 API and SCA-Java API to IPZilla.
2. Remove org.apache.cxf and org.apache.tuscany from the dependencies of Service Creation plug-ins. And add related API libraries to these plug-ins.
3. Change the implementation of org.eclipse.stp.sc.cxf plug-in and org.eclipse.stp.sc.sca.java plug-in.
4. Submit all the standard API libraries to Orbit.
5. Update the build system to remove org.apache.cxf and org.apache.tuscany plugin dependencies
6. update the service getting started wiki