Hi all, As you know, ActiveMQ 5.19.x is in preparation with importants changes: JMS 2, Jakarta namespace, Spring 6, ...
For ActiveMQ 5.19.x, I propose to change the OSGi packaging (client and broker). Today we have OSGi bundles for client and broker, with Karaf features installing all dependent features/bundles (spring, commons-*, etc). This approach has few issues: - any update requires SMX bundles or Karaf features, coupling ActiveMQ OSGi with Karaf (jetty, spring, ...) - it's very hard to install ActiveMQ OSGi without Karaf - we can have some side effects depending of what's installed in the Karaf runtime (we already had refresh issues in the past, amd cascading refresh) My proposal is to use a new uber bundle approach for ActiveMQ OSGi client and broker. The idea is to provide OSGi bundles that self-contains everything needed to use/run ActiveMQ. The export packages are the same, but the import packages will be very minimal, most the packages will go private. The advantage is that ActiveMQ OSGi doesn't depend on anything at runtime, it's just a single bundle to install (one bundle for client, one bundle for broker), no extra dependency (so not release dependencies like ServiceMix Bundles or Karaf features), dedicated classloader avoiding refreshes, etc. The only drawbacks are the size of the ActiveMQ client & broker bundles (as they ship other packages, is it really a big deal ?) and the fact that ActiveMQ won't share packages with other bundles (I'm thinking about Spring bundles for instance). It's basically using something similar to the apache-activemq distribution but in OSGi/Karaf. Thoughts ? Regards JB