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

Reply via email to