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