I created a branch on my github account that shows how we can run Artemis in OSGi. I started with the ueber bundle branch of Guillaume but wanted to create a more modular solution.

As we have all these duplicate packages I was not able to make each jar a separate bundle. I needed to combine the artemis-commons, artemis-core-client and artemis-server as they contain most of the duplicates. I also added the jms support as it will probably be always needed. Everything that artemis-server depends on also needed to be included as else the bundles would have circular references.

I split off all protocols though. Each protocol published a service and the artemis-server-osgi bundle picks up the services to populate the ProtocolManagerFactory list. Currently this is done in a very simplistic way but it can be improved to wait for all needed protocols that are listed in a config.

Apart from the duplicate packages the Artemis behaves quite well in OSGi.

See
https://github.com/cschneider/activemq-artemis/tree/OSGi

You can install Artemis with all protocols using:
feature:repo-add mvn:org.apache.activemq/artemis-features/1.1.1-SNAPSHOT/xml
feature:install artemis-core artemis-hornetq artemis-stomp artemis-mqtt artemis-amqp

I would be happy about your feedback.

Christian

--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com

Reply via email to