[ 
https://issues.apache.org/jira/browse/MNG-7574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus updated MNG-7574:
---------------------------------
    Description: 
Currently if a Maven plugin is loaded with {{<extensions>true</extensions}} all 
classes of the underlying artifact are exposed through the Maven Core 
Classloader 
(https://github.com/apache/maven/blob/415eaf31de407efcbf61166afd8cf4e86cdafe11/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java#L243
 and 
https://github.com/apache/maven/blob/415eaf31de407efcbf61166afd8cf4e86cdafe11/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java#L345).
At least the Mojo classes should IMHO be excluded otherwise they are exposed 
through both the plugin and core classloader for no reason (as the core 
classloader as parent always takes precedence).

As {{extensions}} is accepting String values 
(https://github.com/apache/maven/blob/daa8e1690226fc385db3d448ad962997afe3dba8/api/maven-api-model/src/main/mdo/maven.mdo#L2215)
 one could accept the old values "true" (all) and "false" (nothing) next to 
some allowed resource name prefixes (comma-separated).

  was:
Currently if a Maven plugin is loaded with {{<extensions>true</extensions}} all 
classes of the underlying artifact are exposed through the Maven Core 
Classloader 
(https://github.com/apache/maven/blob/415eaf31de407efcbf61166afd8cf4e86cdafe11/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java#L243
 and 
https://github.com/apache/maven/blob/415eaf31de407efcbf61166afd8cf4e86cdafe11/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java#L345).
At least the Mojo classes should IMHO be excluded otherwise they are exposed 
through both the plugin and core classloader for no reason (as the core 
classloader as parent always takes precedence).


> Never expose Mojo classes via Core Classloader
> ----------------------------------------------
>
>                 Key: MNG-7574
>                 URL: https://issues.apache.org/jira/browse/MNG-7574
>             Project: Maven
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Konrad Windszus
>            Priority: Major
>
> Currently if a Maven plugin is loaded with {{<extensions>true</extensions}} 
> all classes of the underlying artifact are exposed through the Maven Core 
> Classloader 
> (https://github.com/apache/maven/blob/415eaf31de407efcbf61166afd8cf4e86cdafe11/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java#L243
>  and 
> https://github.com/apache/maven/blob/415eaf31de407efcbf61166afd8cf4e86cdafe11/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java#L345).
> At least the Mojo classes should IMHO be excluded otherwise they are exposed 
> through both the plugin and core classloader for no reason (as the core 
> classloader as parent always takes precedence).
> As {{extensions}} is accepting String values 
> (https://github.com/apache/maven/blob/daa8e1690226fc385db3d448ad962997afe3dba8/api/maven-api-model/src/main/mdo/maven.mdo#L2215)
>  one could accept the old values "true" (all) and "false" (nothing) next to 
> some allowed resource name prefixes (comma-separated).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to