Setting up the Multi Bundle Distribution of CXF Distributed OSGi
The multi-bundle distribution of CXF/DOSGi contains all the DOSGi bundles plus their dependencies as individual bundles. While the single-bundle distribution is certainly easier to get started with, the multi-bundle distro is more flexible wrt to sharing bundles and updating dependencies. To obtain a multi bundle distribution see the DOSGi Releases page.
Setting up Felix
Verified with: Felix 4.0.2
In the distribution you will find a file called: .../conf/felix.config.properties.append
. This file contains auto-start instructions for every bundle in the distribution.
- Simply copy the content of the whole file and append it to the
conf/config.properties
file of the Felix distribution. - Fix the
file:apache-cxf-dosgi-ri
URLs in the file to point to where you have unzipped the distribution.
At the end the conf/config.properties
file looks like this:
... existing lines ... org.ops4j.pax.web.session.timeout=30 org.osgi.framework.startlevel.beginning=81 felix.auto.start.50=http://repo2.maven.org/maven2/org/osgi/org.osgi.compendium/4.2.0/org.osgi.compendium-4.2.0.jar felix.auto.start.51=file:///c:/apache-cxf-dosgi-ri-1.3/dosgi_bundles/geronimo-annotation_1.0_spec-1.1.1.jar felix.auto.start.52=file:///c:/apache-cxf-dosgi-ri-1.3/dosgi_bundles/geronimo-activation_1.1_spec-1.1.0.jar ... and so on ... You may need to update the 'org.osgi.framework.system.packages.extra' to reference the org.w3c.dom.traversal package.
Now start Felix:
.../felix-4.0.2> java -jar bin/felix.jar Welcome to Felix. ================= ... some log messages may appear ... -> bundles ID State Level Name 0|Active | 0|org.apache.felix.framework (4.0.2) 1|Active | 1|org.apache.felix.bundlerepository (1.6.6) 2|Active | 1|org.apache.felix.gogo.command (0.12.0) 3|Active | 1|org.apache.felix.gogo.runtime (0.10.0) 4|Active | 1|org.apache.felix.gogo.shell (0.10.0) 5|Active | 85|org.apache.servicemix.specs.stax-api-1.0 (1.9.0) 6|Active | 53|org.apache.geronimo.specs.geronimo-javamail_1.4_spec (1.2.0) 7|Active | 84|org.apache.servicemix.specs.saaj-api-1.3 (1.9.0) 8|Active | 52|org.apache.geronimo.specs.geronimo-activation_1.1_spec (1.1.0) 9|Active | 83|org.apache.servicemix.bundles.commons-pool (1.5.4.1) 10|Active | 51|org.apache.geronimo.specs.geronimo-annotation_1.0_spec (1.1.1) 11|Active | 82|woodstox-core-asl (4.1.1) 12|Active | 50|osgi.cmpn (4.2.0.200908310645) 13|Active | 81|stax2-api (3.1.1) 14|Active | 80|org.apache.neethi (3.0.1) 15|Active | 79|org.apache.servicemix.bundles.xmlresolver (1.2.0.4) 16|Active | 78|org.apache.servicemix.bundles.asm (3.3.0.2) 17|Active | 77|org.apache.ws.xmlschema.core (2.0.1) 18|Active | 76|org.apache.servicemix.bundles.xmlsec (1.4.5.1) 19|Active | 75|org.apache.servicemix.bundles.wsdl4j (1.6.2.5) 20|Active | 74|org.apache.servicemix.bundles.jaxb-impl (2.1.13.2) 21|Active | 73|org.ops4j.pax.web.pax-web-jetty (1.0.3) 22|Active | 72|org.ops4j.pax.web.pax-web-runtime (1.0.3) 23|Active | 71|org.ops4j.pax.web.pax-web-spi (1.0.3) 24|Active | 70|org.eclipse.jetty.aggregate.jetty-all-server (7.4.2.v20110526) 25|Active | 69|org.springframework.osgi.extender (1.2.1) 26|Active | 68|org.springframework.osgi.core (1.2.1) 27|Active | 67|org.springframework.osgi.io (1.2.1) 28|Active | 66|org.springframework.expression (3.0.6.RELEASE) 29|Active | 65|org.springframework.asm (3.0.6.RELEASE) 30|Active | 64|org.springframework.aop (3.0.6.RELEASE) 31|Active | 95|cxf-dosgi-ri-topology-manager (1.3.0.SNAPSHOT) 32|Resolved | 63|com.springsource.slf4j.jcl (1.5.10) 33|Active | 94|cxf-dosgi-ri-dsw-cxf (1.3.0.SNAPSHOT) 34|Active | 62|com.springsource.slf4j.api (1.5.10) 35|Active | 93|cxf-dosgi-ri-discovery-local (1.3.0.SNAPSHOT) 36|Active | 61|com.springsource.org.aopalliance (1.0.0) 37|Active | 92|cxf-dosgi-remote-service-admin-interfaces (1.3.0.SNAPSHOT) 38|Active | 60|org.springframework.context (3.0.6.RELEASE) 39|Active | 91|org.apache.cxf.bundle-minimal (2.5.0) 40|Active | 90|org.apache.servicemix.bundles.opensaml (2.4.1.1) 41|Active | 59|org.springframework.beans (3.0.6.RELEASE) 42|Active | 58|org.springframework.core (3.0.6.RELEASE) 43|Active | 89|org.apache.servicemix.bundles.joda-time (1.5.2.4) 44|Active | 57|com.springsource.org.jdom (1.1.0) 45|Active | 88|org.apache.servicemix.specs.jsr311-api-1.1.1 (1.9.0) 46|Active | 56|com.springsource.org.apache.commons.logging (1.1.1) 47|Active | 87|org.apache.servicemix.specs.jaxws-api-2.1 (1.9.0) 48|Active | 55|org.apache.geronimo.specs.geronimo-ws-metadata_2.0_spec (1.1.3) 49|Active | 86|org.apache.servicemix.specs.jaxb-api-2.1 (1.9.0) 50|Active | 54|org.apache.geronimo.specs.geronimo-servlet_3.0_spec (1.0.0)
Setting up Equinox
Verified with: Eclipse/Equinox 3.5 RC 3
In the distribution you will find a file called: .../conf/equinox.config.ini.append
. This file contains auto-start instructions for every bundle in the distribution.
- Create a directory in the Equinox installation, e.g.
dosgi_conf
and create a file calledconfig.ini
in this directory with the content of theequinox.config.ini.append
file. - Fix the
../apache-cxf-dosgi-ri
path locations in the file to point to where you have unzipped the distribution.
At the end the dosgi_conf/config.ini
file looks like this:
org.ops4j.pax.web.session.timeout=30 osgi.bundles=org.eclipse.osgi.services@start, \ c:/apache-cxf-dosgi-ri-1.1/dosgi_bundles/geronimo-annotation_1.0_spec-1.1.1.jar@start, c:/apache-cxf-dosgi-ri-1.1/dosgi_bundles/geronimo-activation_1.1_spec-1.0.2.jar@start, ... and so on ...
Now start Equinox:
.../eclipse> java -jar plugins/org.eclipse.osgi_3.5.0.v20090520.jar -console -configuration dosgi_conf ... some log messages may appear ... osgi> ss Framework is launched. id State Bundle 0 ACTIVE org.eclipse.osgi_3.5.0.v20090520 1 ACTIVE org.eclipse.osgi.services_3.2.0.v20090520-1800 2 ACTIVE org.apache.geronimo.specs.geronimo-annotation_1.0_spec_1.1.1 3 ACTIVE org.apache.geronimo.specs.geronimo-activation_1.1_spec_1.0.2 4 ACTIVE org.apache.geronimo.specs.geronimo-javamail_1.4_spec_1.2.0 5 ACTIVE org.apache.geronimo.specs.geronimo-ws-metadata_2.0_spec_1.1.2 6 ACTIVE com.springsource.org.apache.commons.logging_1.1.1 7 ACTIVE com.springsource.org.jdom_1.0.0 8 ACTIVE org.springframework.core_2.5.6 9 ACTIVE org.springframework.beans_2.5.6 10 ACTIVE org.springframework.context_2.5.6 11 ACTIVE com.springsource.org.aopalliance_1.0.0 12 ACTIVE org.springframework.aop_2.5.6 13 ACTIVE org.springframework.osgi.io_1.2.0 14 ACTIVE org.springframework.osgi.core_1.2.0 15 ACTIVE org.springframework.osgi.extender_1.2.0 16 ACTIVE org.ops4j.pax.web.service_0.5.1 17 ACTIVE org.apache.servicemix.bundles.jaxb-impl_2.1.6.1 18 ACTIVE org.apache.servicemix.bundles.wsdl4j_1.6.1.1 19 ACTIVE org.apache.servicemix.bundles.xmlsec_1.3.0.1 20 ACTIVE org.apache.servicemix.bundles.xmlschema_1.4.3.1 21 ACTIVE org.apache.servicemix.bundles.asm_2.2.3.1 22 ACTIVE org.apache.servicemix.bundles.xmlresolver_1.2.0.1 23 ACTIVE org.apache.servicemix.bundles.neethi_2.0.4.1 24 ACTIVE org.apache.servicemix.bundles.woodstox_3.2.7.1 25 ACTIVE org.apache.cxf.bundle-minimal_2.2.4 26 ACTIVE org.apache.servicemix.specs.saaj-api-1.3_1.3.0 27 ACTIVE org.apache.servicemix.specs.stax-api-1.0_1.3.0 28 ACTIVE org.apache.servicemix.specs.jaxb-api-2.1_1.3.0 29 ACTIVE org.apache.servicemix.specs.jaxws-api-2.1_1.3.0 30 ACTIVE org.apache.servicemix.specs.jsr311-api-1.0_1.3.0 31 ACTIVE cxf-dosgi-ri-discovery-local_1.1.0 32 ACTIVE cxf-dosgi-ri-dsw-cxf_1.1.0