4. Installing the NMR in Equinox
Installation
Here are the required steps to install the NMR and JBI layer in Equinox:
- create a new folder
- create a subfolder named
system
and another one namedconfiguration
- create a file named
configuration/config.ini
in this folder and paste the contents below - download the equinox framework jar (org.eclipse.osgi_xxx.jar) from here
- in the system folder, you need to download and put all the files listed in the configuration file. These files are available from Equinox, Orbit, the maven central repo and ServiceMix maven2 repo
osgi.bundles= \ system/org.apache.commons.logging_1.0.4.v200803061811.jar@start, \ system/org.eclipse.equinox.cm_3.2.0.v20070116.jar@start, \ system/org.eclipse.osgi.services_3.1.200.v20070605.jar@start, \ system/org.eclipse.equinox.common_3.3.0.v20070426.jar@start, \ system/org.eclipse.equinox.preferences_3.2.101.R33x_v20080117.jar@start, \ system/geronimo-activation_1.1_spec-1.0.2.jar@start, \ system/geronimo-jta_1.1_spec-1.1.1.jar@start, \ system/xbean-classloader-3.3.1-r631610.jar@start, \ system/org.apache.servicemix.bundles.aopalliance-1.0-1.0-m3.jar@start, \ system/org.apache.servicemix.bundles.ant-1.7.0-1.0-m3.jar@start, \ system/spring-aop-2.5.2.jar@start, \ system/spring-beans-2.5.2.jar@start, \ system/spring-context-2.5.2.jar@start, \ system/spring-core-2.5.2.jar@start, \ system/spring-osgi-core-1.0.2.jar@start, \ system/spring-osgi-extender-1.0.2.jar@start, \ system/spring-osgi-io-1.0.2.jar@start, \ system/org.apache.servicemix.kernel.filemonitor-1.0-m3.jar@start, \ system/org.apache.servicemix.nmr.api-1.0-m1.jar@start, \ system/org.apache.servicemix.nmr.core-1.0-m1.jar@start, \ system/org.apache.servicemix.nmr.osgi-1.0-m1.jar@start, \ system/org.apache.servicemix.nmr.spring-1.0-m1.jar@start, \ system/org.apache.servicemix.jbi.api-1.0-m1.jar@start, \ system/org.apache.servicemix.jbi.deployer-1.0-m1.jar@start, \ system/org.apache.servicemix.jbi.osgi-1.0-m1.jar@start, \ system/org.apache.servicemix.jbi.runtime-1.0-m1.jar@start eclipse.ignoreApp=true # removed javax.transaction from the system bundle org.osgi.framework.system.packages= \ com.sun.jimi.core, \ com.sun.net.ssl, \ com.sun.net.ssl.internal.ssl, \ com.sun.org.apache.xalan.internal, \ com.sun.org.apache.xalan.internal.res, \ com.sun.org.apache.xalan.internal.xsltc.trax, \ com.sun.org.apache.xerces.internal.dom, \ com.sun.org.apache.xerces.internal.jaxp, \ com.sun.org.apache.xerces.internal.xni, \ com.sun.org.apache.xml.internal, \ com.sun.org.apache.xml.internal.utils, \ com.sun.org.apache.xpath.internal, \ com.sun.org.apache.xpath.internal.jaxp, \ com.sun.org.apache.xpath.internal.objects, \ com.sun.xml.fastinfoset.dom, \ com.sun.xml.fastinfoset.sax, \ com.sun.xml.fastinfoset.stax, \ javax.annotation, \ javax.annotation.security, \ javax.crypto, \ javax.crypto.interfaces, \ javax.crypto.spec, \ javax.imageio, \ javax.imageio.metadata, \ javax.imageio.stream, \ javax.jms, \ javax.management, \ javax.management.loading, \ javax.management.modelmbean, \ javax.management.remote, \ javax.naming, \ javax.naming.directory, \ javax.naming.spi, \ javax.net, \ javax.net.ssl, \ javax.rmi, \ javax.security.auth, \ javax.security.auth.callback, \ javax.security.auth.login, \ javax.security.auth.spi, \ javax.security.auth.x500, \ javax.security.cert, \ javax.security.sasl, \ javax.servlet, \ javax.sql, \ javax.swing, \ javax.swing.event, \ javax.xml.datatype, \ javax.xml.namespace, \ javax.xml.parsers, \ javax.xml.transform, \ javax.xml.transform.dom, \ javax.xml.transform.sax, \ javax.xml.transform.stream, \ javax.xml.validation, \ javax.xml.xpath, \ org.jvnet.fastinfoset, \ org.jvnet.staxex, \ org.omg.CORBA, \ org.omg.CosNaming, \ org.w3c.dom, \ org.w3c.dom.bootstrap, \ org.w3c.dom.ls, \ org.w3c.dom.traversal, \ org.xml.sax, \ org.xml.sax.ext, \ org.xml.sax.helpers, \ sun.misc, \ sun.security.provider
Running Equinox
Run the following command:
java -jar org.eclipse.osgi_3.3.2.R33x_v20080105.jar -console
and the NMR and JBI layer should be started.
Installing a JBI application
In the console, run the following commands:
install jbi:file:///Users/gnodet/.m2/repository/org/apache/servicemix/servicemix-shared-compat/3.2.1/servicemix-shared-compat-3.2.1-installer.zip install jbi:file:///Users/gnodet/.m2/repository/org/apache/servicemix/servicemix-jsr181/3.2.1/servicemix-jsr181-3.2.1-installer.zip install jbi:file:///Users/gnodet/.m2/repository/org/apache/servicemix/servicemix-http/3.2.1/servicemix-http-3.2.1-installer.zip install jbi:file:///Users/gnodet/.m2/repository/org/apache/servicemix/samples/wsdl-first/wsdl-first-sa/3.2.1/wsdl-first-sa-3.2.1.zip
Use the ss
command to find the IDs of the four installed bundles and start them:
start xxx
Below is an example of the output of the start command:
osgi> start 27 May 15, 2008 3:10:14 PM org.apache.servicemix.jbi.deployer.impl.Deployer installSharedLibrary INFO: Deploying bundle 'null (servicemix-shared)' as a JBI shared library osgi> start 28 May 15, 2008 3:10:18 PM org.apache.servicemix.jbi.deployer.impl.Deployer installComponent INFO: Deploying bundle 'null (servicemix-jsr181)' as a JBI component May 15, 2008 3:10:22 PM org.apache.servicemix.jbi.runtime.impl.ComponentRegistryImpl doRegister INFO: JBI component registered with properties: {NAME=servicemix-jsr181, TYPE=service-engine, objectClass=[Ljava.lang.String;@5b2fd8, service.id=37} log4j:WARN No appenders could be found for logger (org.apache.servicemix.jsr181.Jsr181Component). log4j:WARN Please initialize the log4j system properly. osgi> start 29 May 15, 2008 3:10:26 PM org.apache.servicemix.jbi.deployer.impl.Deployer installComponent INFO: Deploying bundle 'null (servicemix-http)' as a JBI component May 15, 2008 3:10:26 PM org.apache.servicemix.jbi.runtime.impl.ComponentRegistryImpl doRegister INFO: JBI component registered with properties: {NAME=servicemix-http, TYPE=binding-component, objectClass=[Ljava.lang.String;@ef33ad, service.id=41} osgi> start 30 May 15, 2008 3:10:30 PM org.apache.servicemix.jbi.deployer.impl.Deployer deployServiceAssembly INFO: Deploying bundle 'null (wsdl-first-sa)' as a JBI service assembly
Starting the JBI application
Now that the JBI artifacts have been deployed, we need to start it...
Come back later to learn how (in smx, this is done automatically when dropping the jar in the deploy folder, can be done through the command line or jmx, but none of those works at the above environment).