Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-dev] [tycho-user] <optionalDependencies> configuration parameter

On 12-01-10 3:56 AM, Oberlies, Tobias wrote:
-----Original Message-----
From: tycho-dev-bounces@xxxxxxxxxxx [mailto:tycho-dev-bounces@xxxxxxxxxxx]
On Behalf Of Igor Fedorenko
Sent: Montag, 9. Januar 2012 18:53
To: tycho-dev@xxxxxxxxxxx
Subject: Re: [tycho-dev] [tycho-user]<optionalDependencies>  configuration

On 12-01-09 12:35 PM, Oberlies, Tobias wrote:

Please note that this only affects dependencies of the test bundle
itself, all indirect optional dependencies are already ignored.

Is this the case now, or only once this bug is fixed?

This is already the case now, as far as I know.

The version of P2 used by Tycho 0.13 and newer interprets OSGi
resolution:=optional as P2 optional/nongreedy requirements... and I am
pretty sure you made this change ;-)

Oh, okay, now I see what you mean. Yes this works for dependencies to
outside the reactor, but for things within the reactor, the
optionalDependencies compiler parameter determines how optional
dependencies are treated. This is because the test runtime is created from
the dependency-only metadata, and not from the final metadata. We should
be able to change this once we have the full target platform object in
place (bug 364134 [1]), if we want to.


I am not sure I follow. For the in-reactor case, are you saying
dependency-only metadata has OSGi optional dependencies encoded as
greedy p2 requirements?

Didn't you change the publishing of dependency-only metadata so that optional runtime dependencies are either translated to mandatory p2 dependencies or ignored, depending on the optionalDependencies parameter? So with optionalDepenencies=require set for a module in the same reactor, the optional dependencies of that module are also in the test runtimes. This is bug 364134.

Got it. Yes, this is a bug and needs to be fixed. <optionalDependencies>
should only affect dependencies of the project itself and have no effect
on other projects dependencies.


Back to the top