You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by Apache Wiki <wi...@apache.org> on 2007/12/12 21:00:57 UTC

[Ws Wiki] Update of "FrontPage/Woden/WodenOSGi" by LawrenceMandel

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Ws Wiki" for change notification.

The following page has been changed by LawrenceMandel:
http://wiki.apache.org/ws/FrontPage/Woden/WodenOSGi

New page:
= Woden OSGi Proposal =
[http://osgi.org/ OSGi] is a dynamic module system for Java in use in many applications, one of the more prominent applications being [http://eclipse.org Eclipse]. This proposal suggests that Woden be packaged as an OSGi bundle so that it can be consumed within an OSGi runtime simply by dropping it into the runtime and activating it.

== Creating a Woden OSGi bundle ==
Modifying Woden to be an OSGi bundle should take minimal effort. Woden will not require an activator (this may change if it makes use of the Eclipse plug-in registry) so creating the bundle will require creating a manifest ({{{Manifest.MF}}}. This file is already included in the Woden jars and will simply need to include OSGi bundle specific information. (Note: In the example below strings are inline for clarity. In the production version they will need to be externalized.){{{
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Woden API
Bundle-SymbolicName: org.apache.woden.api; singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: Apache Software Foundation
Require-Bundle: ...
Export-Package: ...
}}}
In the example above the required bundles have deliberately been left out. Woden requires Axiom, commons logging, Geronimo's StAX API, WSDL4J, wstx, Xerces, and XmlSchema (will be made optional post M8). These required projects will need to either be bundled (preferred) or included in the Woden bundle. Commons logging, WSDL4J and Xerces are currently available as bundles from the [http://www.eclipse.org/orbit/ Eclipse Orbit project] but the other requirements will need to be bundled or a bundled version will need to be located.

== Package naming convention ==
Woden is currently packaged as 3 jar files:[[BR]]
{{{woden-VERSION-MILESONE}}}[[BR]] 
{{{woden-api-VERSION-MILESTONE}}}[[BR]] 
{{{woden-ant-VERSION-MILESTONE}}}[[BR]] 
A recent change to the build has separated the {{{woden-VERSION-MILESTONE}}} jar into separate DOM and OM jars. This will produce:[[BR]] 
{{{woden-dom-VERSION-MILESTONE}}}[[BR]] 
{{{woden-om-VERSION-MILESTONE}}}

While not required by OSGi, Eclipse's naming convention for bundles is to prefix the project name with the organization name and drop the milestone declaration. Adopting this convention will mean Woden's jars will be named as follows (where QUALIFIER is a time stamp associated with each build):[[BR]] 
{{{org.apache.woden.api_1.0.0.QUALIFIER}}}[[BR]] 
{{{org.apache.woden.dom_1.0.0.QUALIFIER}}}[[BR]] 
{{{org.apache.woden.om_1.0.0.QUALIFIER}}}[[BR]] 
{{{org.apache.woden.ant_1.0.0.QUALIFIER}}}

== Build changes ==
Creating a Woden OSGi bundle will likely require an update to the build to include the OSGi runtime on the classpath. Two good options for the OSGi runtime are [http://felix.apache.org Apache Felix] and [http://www.eclipse.org/equinox/ Eclipse Equinox]. 

== OSGi Repository ==
OSGi contains a [http://www2.osgi.org/Repository/HomePage bundle repository] that lists OSGi bundles. Bundle providers like Woden can have their bundles included in this repository by creating an [http://www2.osgi.org/Repository/Vendor XML repository file and submitting it to OSGi]. Submitting Woden to the repository should help promote Woden and strengthen the project affiliation with the OSGi community.

== Relation to Eclipse ==
TODO

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@ws.apache.org
For additional commands, e-mail: general-help@ws.apache.org