[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[papyrus-rt-dev] Fwd: [cross-project-issues-dev] Guava 15/21 warning
|
Hi Team,
Some discussion from cross-project came under my radar (see below) about guava dependencies.
Cheers,
Rémi
---------- Forwarded message ----------
From:
Andreas Sewe <andreas.sewe@xxxxxxxxxxxxxx>Date: 2017-03-14 14:52 GMT+01:00
Subject: Re: [cross-project-issues-dev] Guava 15/21 warning
To:
cross-project-issues-dev@xxxxxxxxxxxHi Ed,
> Please read the
> Bugzillas. https://bugs.eclipse.org/bugs/show_bug.cgi?id=427862
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=437107
Reading through Bug 427862 comment 8 ff. [1], it seems like OSGi's uses
constraints would solve your problem.
> The problem never occurs for individual projects. It only occurs when an
> integrating project 'inherits' conflicting Guava loads from two distinct
> component projects with Guava in the APIs.
>
> So Mylyn only is no problem, but something that integrates Mylyn and
> Xtext can encounter obscure failures when the wrong class is re-used on
> a code path in which both are used.
I had a *brief* look at the Papyrus (RT) code and I think I know why you
continue to have problems with Guava:
1.) A bundle like org.eclipse.papyrusrt.umlrt.
core requires
com.google.guava, but only provides a lower version bound [2]:
> Require-Bundle: com.google.guava;bundle-version="11.0.0"
This is dangerous, as Guava may change API in incompatible ways between
major versions (and has done so in the past).
2.) Your bundles export packages [3] whose classes have Guava classes in
their public API [4]:
> Export-Package: org.eclipse.papyrus.infra.core.resource
> Optional<Boolean> isReadOnly(...)
The above package should clearly have a uses constraints:
> Export-Package:
org.eclipse.papyrus.infra.core.resource;uses:="com.google.common.base"
Have a look at this article [5] that nicely explains "What is a Uses
Constraint Anyway".
Hope this helps,
Andreas
[1] <https://bugs.eclipse.org/bugs/show_bug.cgi?id=427862#c8>
[2]
<http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/tree/plugins/umlrt/core/org.eclipse.papyrusrt.umlrt.core/META-INF/MANIFEST.MF#n18>
[3]
<http://git.eclipse.org/c/papyrus/org.eclipse.papyrus.git/tree/plugins/infra/core/org.eclipse.papyrus.infra.core/META-INF/MANIFEST.MF#n2>
[4]
<http://git.eclipse.org/c/papyrus/org.eclipse.papyrus.git/tree/plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/resource/AbstractReadOnlyHandler.java#n68>
[5] <http://njbartlett.name/2011/09/02/uses-constraints.html>
--
Codetrails GmbH
The knowledge transfer company
Robert-Bosch-Str. 7, 64293 Darmstadt
Phone: +49-6151-276-7092
Mobile: +49-170-811-3791
http://www.codetrails.com/
Managing Director: Dr. Marcel Bruch
Handelsregister: Darmstadt HRB 91940
_______________________________________________
cross-project-issues-dev mailing list
cross-project-issues-dev@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev
--
German Phone: +49 89 21 555 30 - 25
Fax: +49 89 21 555 30 - 19
Registered Office: 7 rue de la Croix Martre, 91120 Palaiseau, France
Commercial Register 824 977 516 R.C.S. EVRY
Attachment:
signature.asc
Description: PGP signature