Hi,

after some investigation Paul and I have good news: *none* of the classes is leaking into the plugin.

Some details: the Annotation scanners doesn't only scan the compiled classes in the outputDirectory, but also in all the dependencies in search for other (Abstract)Mojo's. One of the files which the scanner found was asm-6.0_ALPHA.jar!/module-info.class maven-plugin-plugin:3.2 will throw a NullPointerException on this file, more recent versions throw an IllegalArgumentException.
The plugin can't handle this Java9 file, yet.

I will create some Jira issues regarding this:
- ensure that special classes are never scanned
- better control over the dependencies to scan, where I would prefer a solution where the plugin knows if additional scanning of dependencies is required based on the superclass(es) of the mojo's.

thanks,
Robert

On Mon, 18 Jul 2016 22:20:41 +0200, Robert Scholte <[email protected]> wrote:

sure

On Mon, 18 Jul 2016 22:13:46 +0200, Paul Benedict <[email protected]> wrote:

Sure, I'll just have to produce a dummy example from my current project.
Can I mail you a zip personally?

Cheers,
Paul

On Mon, Jul 18, 2016 at 3:10 PM, Robert Scholte <[email protected]>
wrote:

Do you have the code somewhere so we can have a look at what's happening?
I did a quick look at the scanner code but can't find a reason why ASM
should be leaking.

Robert


On Mon, 18 Jul 2016 22:03:23 +0200, Paul Benedict <[email protected]>
wrote:

If I may expand this thread to the subject of class loaders, how is it
possible that a plugin's own dependencies can ever leak into mine? I know
shading is a common solution, but I am curious why this particular
situation can occur at all. Got any insight on the matter? I read the
stock
documentation on this subject [1], but I think more information is needed.

[1] http://maven.apache.org/guides/mini/guide-maven-classloading.html

Cheers,
Paul

On Mon, Jul 18, 2016 at 2:39 PM, Robert Scholte <[email protected]>
wrote:

On Mon, 18 Jul 2016 19:18:36 +0200, Paul Benedict <[email protected]>
wrote:

Hi. It seems when I build my maven plugin, ASM is being used to scan for
my

Mojo annotations. I use ASM internally for my own code. My ASM is the latest 6.0_ALPHA and it's causing an NPE when the Maven Plugin Plugin
executes. If I downgrade to something less, then there is no
interference
with the build.

I am surprised to see ASM leak into my plugin like this. Whatever
version
I
am using is clearly affecting the Plugin Plugin. I would classify this behavior as a bug -- no need for ASM to leak into my project. Thoughts?

Cheers,
Paul


Hard to tell, you might be right. Unless it is something like surefire,
which also needs surefire to execute the unittests. This causes class
collisions, so surefire uses a shaded version of the
maven-surefire-plugin
to handle this.
If we can't isolate ASM, we might need to shade or have a second
implementation.

Robert

---------------------------------------------------------------------
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]


---------------------------------------------------------------------
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]

Reply via email to