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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to