Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aether-users] Versioning fun with Aether milestones

Benjamin Bentmann wrote:
> After some initial research yesterday, I'm having trouble making sense out of this analysis. AFAIK, OSGi is proud of its package-level granularity when it comes to wiring dependencies. If that's right, how does wiring the package org.apache.maven.repository.internal to org.eclipse.m2e.maven.runtime *for com.google.inject* impose a uses constraint *for org.eclipse.aether* packages?
> 
> Export-Package: org.apache.maven.repository.internal;
>  uses:="com.google.inject,..."
> 
> AFAIU, the uses directive here forces that importers of org.apache.maven.repository.internal that also import com.google.inject get wired to the same exporter of com.google.inject as org.eclipse.aether.maven.
> 
> I fail to see how this affects the wiring of org.eclipse.aether packages. Wiring the org.eclipse.aether.* imports in org.eclipse.aether.maven to org.eclipse.aether bundles seems like a valid configuration to me from the manifests and OSGi rules, no? 

I wrote:
> So either the OSGi resolver is buggy or it simply doesn't apply the
> global, single-step constraint solving that you and I assume it does.
> The onl way out of this, if you agree that our
> org.eclipse.recommenders.models bundle doesn't do anything wrong w.r.t.
> to its package imports is to specify stricter version constraints for
> the imports of the org.eclipse.aether bundles; after all, there the API
> did change significantly between 0.9.0.M2 and the 0.9.0 release.

FYI: A mail to equinox-dev confirmed that Equinox doesn't do global
constraint solving. It takes whatever wiring has been in place
previously and only tries to wire the newly installed bundles, without
cutting any of the old wires. So, given the current version ranges on
Aether's Import-Packages, with m2e present, Equinox can paint itself
into a corner from which only "eclipse -clean" (i.e., global rewiring)
can free it again.

Would it thus be possible, given the still evolving nature of Aether's
API, to either tighten the version ranges to include the qualifier
(until 1.0.0 is reached) or to release a 0.9.1 in the foreseeable
future, i.e., before Luna? We (Eclipse Code Recommenders) would really
like to switch to Eclipse Aether to get rid of various proxy issues, but
the fact that m2e ships and exports Aether 0.9.0.M2 as part of their
Luna contribution prevents this.

Best wishes,

Andreas

-- 
Codetrails UG (haftungsbeschränkt)
The knowledge transfer company

Robert-Bosch-Str. 7, 64293 Darmstadt
Mobile: +49-170-811-3791
http://www.codetrails.com/

Managing Director: Dr. Marcel Bruch
Handelsregister: Darmstadt HRB 91940


Back to the top