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
...
4.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.
At the end the conf/config.properties
file looks like this:
3)
Change directory to the felix framework main dir. Unpack the cxf dosgi distro there. Append the felix config from the distro to the felix config.properties. Start felix.
Code Block |
---|
tar -xzvf cxf-dosgi-ri-multibundle-distribution-1.4-SNAPSHOT-dir.tar.gz
cat |
Code Block |
... 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:
Code Block |
---|
.../felix-4.0.2> 4-SNAPSHOT/conf/felix.config.properties.append >> conf/config.properties 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
...
Verify that all bundles are in state Active. There should be no exceptions in the logs.
Setting up Eclipse Equinox (verified with Equinox 3.6.2)
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.
...
Code Block |
---|
org.ops4j.pax.web.session.timeout=30 osgi.bundles=org.eclipse.osgi.services@start, \ c:/apache-cxf-dosgi-ri-1.13/dosgi_bundles/geronimo-annotation_1.0_spec-1.1.1.jar@start, c:/apache-cxf-dosgi-ri-1.13/dosgi_bundles/geronimo-activation_1.1_spec-1.0.2.jar@start, ... and so on ... |
Now start Equinox :and verify that all bundles are in state Active
Code Block |
---|
.../eclipse> java -jar plugins/org.eclipse.osgi_3.56.02.v20090520R36x_v20110210.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 osgi> ss |