Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[recommenders-dev] Eclipse Code Recommenders and m2e 1.5

Hi all,

(Cc'ed to m2e-dev)

I have just updated our target platform for Luna M3 [1]. Unfortunately,
the changes made in version of 1.5 of org.eclipse.m2e.maven.runtime
cause breakage in a few (luckily well-localized) places:

- ModelRepository [2]
- ModelIndex [3]
- and the Artifacts utility class [4]

Breakage is caused primarily due to the switch from
org.sonatype.aether.* to org.eclipse.aether.*. Outside of Aether's core
functionality (in org.apache.maven.* land) we use very little (Wagon,
MavenXpp3Reader, and a couple of default implementations like
DefaultArtifactDescriptorReader).

The question is how to best react to this: Converting the few classes
mentioned above is certainly doable, in particular as ModelIndex would
work just as well in terms of our own ModelCoordinate abstraction and
Artifacts is nowadays mostly unused by Code Recommenders itself.

Given that we want to continue supporting both Kepler (with m2e 1.4
installed) and Luna (with m2e 1.5) with Code Recommenders, I can think
of two ways out of this:

1.) Switch to plain org.eclipse.aether (not wrapped in
org.eclipse.m2e.maven.runtime)

2.) Maintain two fragments contributing implementations of ModelRepository

The upside of option 1 is that the org.eclipse.aether bundles have
well-maintained headers with version information, so that we are
unlikely to run into the same version conflicts as with 1.4 vs 1.5 of
org.eclipse.m2e.maven.runtime. The downside is that we would need to
find alternatives to Wagon (Aether has "aether-transport-http") and
things like MavenXpp3Reader.

The upside of option 2 is that we have all the Maven goodies that go
beyond plain Aether still available. The downside is that we have to
maintain fragments and two update sites (one for kepler, one for luna).

Finally, there's the issue of whether we are allowed to depend on a a
0.9 version of Aether when participating in the release train. (But
apparently m2e can.)

Thoughts?

Andreas

[1] <https://git.eclipse.org/r/#/c/18269/>
[2]
<https://git.eclipse.org/c/recommenders/org.eclipse.recommenders.git/tree/plugins/org.eclipse.recommenders.models/src/org/eclipse/recommenders/models/ModelRepository.java>
[3]
<https://git.eclipse.org/c/recommenders/org.eclipse.recommenders.git/tree/plugins/org.eclipse.recommenders.models/src/org/eclipse/recommenders/models/ModelIndex.java>
[4]
<https://git.eclipse.org/c/recommenders/org.eclipse.recommenders.git/tree/plugins/org.eclipse.recommenders.utils/src/org/eclipse/recommenders/utils/Artifacts.java>
-- 
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