On 19 Apr 2013, at 14:49, Sievers, Jan wrote: > Hi, > > I tried adapting tycho to maven 3.1.0-alpha-1, see [1]. > > One thing I noticed is that maven now brings asm-3.3.1 as part of its core > classloader. > This breaks a build plugin in tycho (binary mismach errors at runtime) which > happens to use asm-4.0. > Am I right that shipping asm with maven core means potentially breaking any > maven plugin directly or indirectly using a different version of asm?
This used to be shaded into the container jar, but is not shaded at the moment - the ASM packages are not exposed from the core realm so this shouldn't break plugins unless they hook into the core via another mechanism. I'll need to look more at how Tycho hooks into Maven to see how it's getting access to these packages. It is on my list to update the container to ASM4, I'm not sure about re-introducing shading as that causes problems elsewhere (for example makes debugging harder, has been known to confuse downstream repackagers). > The other change which breaks tycho is aether moved to the org.eclipse > package namespace. > Looks like for aether users it's a simple "organize imports"; no API changes > other than package rename, right? > As there seems to be no compatibility layer for aether, this means the new > tycho version will have to require at least maven 3.1 The approach taken by Hervé in the maven-site-plugin (actually in the shared maven-report-exec component) and the maven-dependency-plugin code was to abstract out their particular use of Aether into two class files (one for the old API, one for the new API), build against both libraries, and then use reflection to select the appropriate class file at runtime. > We use maven-plugin-testing-harness 2.1 [2] for some of our tests which seems > to no longer work with maven 3.1.0-alpha-1. Could you raise an issue on http://jira.codehaus.org/browse/MNG with more details and attach the exception/log? > To avoid tight coupling between maven and tycho in the future, what would be > the official APIs to use for aether and sisu? Wrt. Sisu the only container-related packages exposed from the core realm (apart from the old Plexus API) is the JSR330 API AFAIK the new Aether API is stable going forwards, but where possible it's better to rely on the Maven repository/artifact API (or on Maven shared components). The core realm also now exposes SLF4J, but I don't believe Tycho uses that at the moment. > Regards, > Jan > > [1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=406056 > [2] > http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.apache.maven.plugin-testing%22%20AND%20a%3A%22maven-plugin-testing-harness%22 > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
