Consider three bundles, A, B, and C. A has imports from B and C. All three import Guava.
A and B import with a constraint of [18, 19), C takes [15, 16). The container obediently wires A and B to one bundle, and C to the other. Now, no Guava objects flow _directly_ from C to A. However, A calls C with some Json, and asks C to turn it onto Java objects, and passes a class (X) from B as the target of the conversion. X has a field of type ImmutableList. The code in C looked at that field, and does not recognize it, because it has a Class<ImmutableList> for Guava 15, while the Class object seen reflectively is for 18. This raises two questions: is there some diagnostic technique I'm missing here that would have made this more evident? And, is there any legitimate way to tell the OSGi container "I know that C works with 18 even if that fails the version constraint." --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

