Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cross-project-issues-dev] Is it acceptable to have two com.google.common.collect providers?

Hi John

No they are not interchangeable, which is how I came across the problem.

They both do magic ClassLoader wizardry to support injection, and so when some plugins use variant A and dependent plugins use variant B the end result is a Guice class injection failure.

For OCL, the problem was avoidable. Xtext uses variant A and OCL's extended Xtext used variant B, so an M4a OCL build corrects it.

However it may not be avoidable tomorrow, because Acceleo also uses variant B, so if I have a plugin dependent on both Acceleo and Xtext, my plugin must use both variant A and B.

From a different perspective, it seems a break in binary compatibility. Since both packages are available somewhere in the staging repository, P2's standard 'find the missing bits' enables an Xtext editor that hasn't been fully rebuilt to install correctly but fail at run time.

    Regards

        Ed Willink

On 16/12/2011 05:57, John Arthorne wrote:
Ed Willink  wrote on 12/16/2011 08:39:27 AM:
> Does no-one have a view on whether provision of the
> com.google.common.collect package by two distinct Orbit bundles is
> acceptable?

Purely from an OSGi point of view it's perfectly fine for multiple bundles to export the same package. I'm sure we have plenty of other cases of this in the release train. There are even cases where there are multiple copies of the same bundle (with different versions). I don't know anything about the specific details of this package - does it causes problems for an application if they get wired to the wrong one? I.e., are the two packages interchangeable from the perspective of a consumer?

John

_______________________________________________
cross-project-issues-dev mailing list
cross-project-issues-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev


No virus found in this message.
Checked by AVG - www.avg.com
Version: 2012.0.1890 / Virus Database: 2108/4684 - Release Date: 12/16/11



Back to the top