Affects Version/s: None
Linux Ubuntu 8.04; Java 1.5.0_15; x64 CPU; Eclipse 3.4.1; Spring IDE 2.2.1.v200811281800; SpringSource Tool Suite dm Server Tools 1.1.0.v200811281800
When a new version of a bundle that is used by two other bundles is added to the repository, it can consistently wire a different version of the shared bundle to each depending bundle. This pervents the two depending bundles from being able to reference any services, with an interface from the shared bundle, exported by the another. For example,
bundle.dao.impl imports bundle.dao.interfaces;version [1.0.0,2.0.0)
bundle.service.impl imports bundle.dao.interfaces;version [1.0.0,2.0.0)
and in the user repository, there are bundle.dao.interfaces versions 1.0.0.CI1 and 1.0.0.CI2.
What keeps happening, is that bundle.dao.impl uses version 1.0.0.CI2 and bundle.service.impl uses 1.0.0.CI1. So bundle.service.impl doesn't recognize the dao interfaces exported as services by bundle.dao.impl.
In the attached zip are simple projects I used to reproduce this problem, as well as related files. I have been able to reproduce this error by doing the following.
1. Copy bundle.dao.interfaces-1.0.0.BUILD20090203194937.jar (and source) to SERVER_HOME/repository/bundles/usr
2. Add bundle.dao.impl to springsource-dm-server via the Eclipse tooling (dragging the project to the Server view)
3. Start dm server via tooling
4. Stop dm server
5. Copy bundle.dao.interfaces-1.0.0.BUILD20090203194959.jar (and source) to SERVER_HOME/repository/bundles/usr
6. Add bundle.service.impl to springsource-dm-server via the Eclipse tooling (dragging the project to the Server view)
7. Start dm server via tooling
This is when the error occurs.