please: 1. create a Jira issue 2. update our Class loading documentation [1] with MNG and Maven version reference
then ideally, having a core IT to show what difference is expected from new code would be great (I don't know how hard this one can be) Regards, Hervé [1] https://cwiki.apache.org/confluence/display/MAVEN/Maven+3.x+Class+Loading Le jeudi 8 janvier 2015 13:09:10 ifedore...@apache.org a écrit : > Repository: maven > Updated Branches: > refs/heads/master 5f71f9789 -> bb4988496 > > > better plugin/extensions realm parent classloader > > Signed-off-by: Igor Fedorenko <ifedore...@apache.org> > > > Project: http://git-wip-us.apache.org/repos/asf/maven/repo > Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/bb498849 > Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/bb498849 > Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/bb498849 > > Branch: refs/heads/master > Commit: bb4988496a0e3b50ee5a1922bcd54f731eb2d5b2 > Parents: 5f71f97 > Author: Igor Fedorenko <ifedore...@apache.org> > Authored: Thu Jan 8 08:08:42 2015 -0500 > Committer: Igor Fedorenko <ifedore...@apache.org> > Committed: Thu Jan 8 08:08:47 2015 -0500 > > ---------------------------------------------------------------------- > .../maven/classrealm/DefaultClassRealmManager.java | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/maven/blob/bb498849/maven-core/src/ma > in/java/org/apache/maven/classrealm/DefaultClassRealmManager.java > ---------------------------------------------------------------------- diff > --git > a/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmMan > ager.java > b/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmMan > ager.java index 3584d53..a5bb352 100644 > --- > a/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmMan > ager.java +++ > b/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmMan > ager.java @@ -59,6 +59,16 @@ public class DefaultClassRealmManager > implements ClassRealmManager > { > > + /** > + * During normal command line build, ClassWorld is loaded by jvm system > classloader, which only includes + * plexus-classworlds jar and > possibly javaagent classes, see http://jira.codehaus.org/browse/MNG-4747. + > * <p> > + * Using ClassWorld to determine plugin/extensions realm parent > classloaders gives m2e and integration test harness + * flexibility to > load multiple version of maven into dedicated classloaders without assuming > state of jvm system + * classloader. > + */ > + private static final ClassLoader PARENT_CLASSLOADER = > ClassWorld.class.getClassLoader(); + > @Requirement > private Logger logger; > > @@ -329,7 +339,7 @@ public class DefaultClassRealmManager > throw new IllegalArgumentException( "extension plugin missing" > ); } > > - ClassLoader parent = ClassLoader.getSystemClassLoader(); > + ClassLoader parent = PARENT_CLASSLOADER; > > Map<String, ClassLoader> foreignImports = > Collections.<String, ClassLoader>singletonMap( "", > getMavenApiRealm() ); @@ -347,7 +357,7 @@ public class > DefaultClassRealmManager > > if ( parent == null ) > { > - parent = ClassLoader.getSystemClassLoader(); > + parent = PARENT_CLASSLOADER; > } > > return createRealm( getKey( plugin, false ), RealmType.Plugin, > parent, parentImports, foreignImports, artifacts ); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org