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 1.8.0
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. - Felix 1.8.0 has changed the startlevel property, which may need fixing in this file. Change from
org.osgi.framework.startlevel=32
toorg.osgi.framework.startlevel.beginning=32
(This step will not be needed in future releases of CXF/DOSGi).
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=32 felix.auto.start.2=http://www.apache.org/dist/felix/org.osgi.compendium-1.2.0.jar felix.auto.start.3=file:///c:/apache-cxf-dosgi-ri-1.0/dosgi_bundles/geronimo-annotation_1.0_spec-1.1.1.jar felix.auto.start.4=file:///c:/apache-cxf-dosgi-ri-1.0/dosgi_bundles/geronimo-activation_1.1_spec-1.0.2.jar ... and so on ...
Now start Felix:
.../felix-1.8.0> java -jar bin/felix.jar Welcome to Felix. ================= ... some log messages may appear ... -> ps START LEVEL 32 ID State Level Name [ 0] [Active ] [ 0] System Bundle (1.8.0) [ 1] [Active ] [ 21] Apache ServiceMix Bundles: xmlschema-1.4.3 (1.4.3.1) [ 2] [Active ] [ 20] Apache ServiceMix Bundles: xmlsec-1.3.0 (1.3.0.1) [ 3] [Active ] [ 19] Apache ServiceMix Bundles: wsdl4j-1.6.1 (1.6.1.1) [ 4] [Active ] [ 18] Apache ServiceMix Bundles: jaxb-impl-2.1.6 (2.1.6.1) [ 5] [Active ] [ 17] OPS4J Pax Web - Service (0.5.1) [ 6] [Active ] [ 16] spring-osgi-extender (1.2.0) [ 7] [Active ] [ 15] spring-osgi-core (1.2.0) [ 8] [Active ] [ 14] spring-osgi-io (1.2.0) [ 9] [Active ] [ 13] Spring AOP (2.5.6) [ 10] [Active ] [ 12] AOP Alliance API (1.0.0) [ 11] [Active ] [ 11] Spring Context (2.5.6) [ 12] [Active ] [ 10] Spring Beans (2.5.6) [ 13] [Active ] [ 32] CXF Distributed Software Bundle (1.0) [ 14] [Active ] [ 31] CXF Local Discovery Service Bundle (1.0) [ 15] [Active ] [ 30] Apache ServiceMix Specs :: JAXWS API 2.1 (1.1.1) [ 16] [Active ] [ 9] Spring Core (2.5.6) [ 17] [Active ] [ 8] JDOM DOM Processor (1.0.0) [ 18] [Active ] [ 7] Apache Commons Logging (1.1.1) [ 19] [Active ] [ 6] geronimo-ws-metadata_2.0_spec (1.1.2) [ 20] [Active ] [ 5] geronimo-javamail_1.4_spec (1.2) [ 21] [Active ] [ 4] geronimo-activation_1.1_spec (1.0.2) [ 22] [Active ] [ 3] geronimo-annotation_1.0_spec (1.1.1) [ 23] [Active ] [ 2] OSGi R4 Compendium Bundle (4.1.0) [ 24] [Active ] [ 1] Apache Felix Shell Service (1.2.0) [ 25] [Active ] [ 1] Apache Felix Shell TUI (1.2.0) [ 26] [Active ] [ 1] Apache Felix Bundle Repository (1.4.0) [ 27] [Active ] [ 29] Apache ServiceMix Specs :: JAXB API 2.1 (1.1.1) [ 28] [Active ] [ 28] Apache ServiceMix Specs :: STAX API 1.0 (1.1.1) [ 29] [Active ] [ 27] Apache ServiceMix Specs :: SAAJ API 1.3 (1.1.1) [ 30] [Active ] [ 26] Apache CXF Minimal Bundle Jar (2.2.1) [ 31] [Active ] [ 25] Apache ServiceMix Bundles: woodstox-3.2.7 (3.2.7.1) [ 32] [Active ] [ 24] Apache ServiceMix Bundles: neethi-2.0.4 (2.0.4.1) [ 33] [Active ] [ 23] Apache ServiceMix Bundles: xmlresolver-1.2 (1.2.0.1) [ 34] [Active ] [ 22] Apache ServiceMix Bundles: asm-2.2.3 (2.2.3.1)
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.0/dosgi_bundles/geronimo-annotation_1.0_spec-1.1.1.jar@start, c:/apache-cxf-dosgi-ri-1.0/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.1 26 ACTIVE org.apache.servicemix.specs.saaj-api-1.3_1.1.1 27 ACTIVE org.apache.servicemix.specs.stax-api-1.0_1.1.1 28 ACTIVE org.apache.servicemix.specs.jaxb-api-2.1_1.1.1 29 ACTIVE org.apache.servicemix.specs.jaxws-api-2.1_1.1.1 30 ACTIVE cxf-dosgi-ri-discovery-local_1.0.0 31 ACTIVE cxf-dosgi-ri-dsw-cxf_1.0.0