There is still a compatibility issuue in Karaf 3 with at least ActiveMQ.
It is described in the two issues below:
https://issues.apache.org/jira/browse/KARAF-2307
https://issues.apache.org/jira/browse/AMQ-4492
In fact it is two issues:
1. The package org.apache.felix.gogo.commands.basic was moved to
org.apache.karaf.shell.commands.basic.
2. The package org.apache.karaf.shell.console is now at version 3.0.0
which is incompatible to the range of [2,3) ActiveMQ imports.
So for the issue 1 we have two options:
a. Create the new package in upcoming 2.x versions.
+ We a clean state in Karaf 3 with the old package removed. The
problem is that as soon as
- ActiveMQ switches it will not work with older 2.x versions anymore.
b. Create the old package in Karaf 3
+ All present versions of ActiveMQ will still work
- As soon as ActiveMQ switches it will not be compatible with Karaf
2.x anymore
- Karaf 3 contains old packages while it should clean up these things
in a major release
There is also the option to create old and new packages in Karaf 2.x and
3 so ActiveMQ will work in both versions.
We then later have too remove to old package for karaf 3 at some point.
The issue 2 is less dramatic as it can be fixed by a wider import of the
package version in ActiveMQ. Still I wonder if we could do better here.
For API packages we could version each package separately so as long as
a package is incompatible it could still report the old version which would
make it more compatible. This can be handled with a package info file in
the package like in the OSGi specs.
So in any case I think this shows we should have a good concept for
package versioning for API packages.
What do you think?
Christian
--
Christian Schneider
http://www.liquid-reality.de
Open Source Architect
Talend Application Integration Division http://www.talend.com