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

Cyrille Le Clerc updated MNG-8217:
----------------------------------
    Description: 
The `{{@PreDestroy}}` method of JSR 330 based Maven extensions fail with a 
`{{ClassNotFoundException}}` when the extension is declared through the 
`{{<build><extensions>...</extensions></build>}}`.
The problem doesn't happen when the Maven extension is declared through the 
`{{.mvn/extensions.xml}}` file or `{{mvn -Dmaven.ext.class.path=...}}` command 
line arg.

This suggest the classes of the extension are unloaded too early, before 
`{{@PreDestroy}}` is invoked, when  when the extension is declared through the 
`{{<build><extensions>...</extensions></build>}}`.

Test case: 
* 
https://github.com/cyrille-leclerc/maven-extension-test/tree/f2cc78c15e0b9a59547c111db69e2c261c9872ea/test-jsr-330-extension/src/maven-it/extension-declared-in-pom-xml
* 
https://github.com/cyrille-leclerc/maven-extension-test/tree/f2cc78c15e0b9a59547c111db69e2c261c9872ea/test-jsr-330-extension/src/maven-it/extension-declared-in-dot-mvn-extensions-xml

This problem impact the OpenTelemetry Maven Extension:

https://github.com/open-telemetry/opentelemetry-java-contrib/issues/1391



  was:
The `{{@PreDestroy}}` method of JSR 330 based Maven extensions fail with a 
`{{ClassNotFoundException}}` when the extension is declared through the 
`{{<build><extensions>...</extensions></build>}}`.
The problem doesn't happen when the Maven extension is declared through the 
`{{.mvn/extensions.xml}}` file or `{{mvn -Dmaven.ext.class.path=...}}` command 
line arg.

This suggest the classes of the extension are unloaded too early, before 
`{{@PreDestroy}}` is invoked, when  when the extension is declared through the 
`{{<build><extensions>...</extensions></build>}}`.

Test case: 
* 
https://github.com/cyrille-leclerc/maven-extension-test/tree/f2cc78c15e0b9a59547c111db69e2c261c9872ea/test-jsr-330-extension/src/maven-it/extension-declared-in-pom-xml
* 
https://github.com/cyrille-leclerc/maven-extension-test/tree/f2cc78c15e0b9a59547c111db69e2c261c9872ea/test-jsr-330-extension/src/maven-it/extension-declared-in-dot-mvn-extensions-xml




> `ClassNotFoundException` in `@PreDestroy` method when Maven extension 
> declared in `pom.xml`
> -------------------------------------------------------------------------------------------
>
>                 Key: MNG-8217
>                 URL: https://issues.apache.org/jira/browse/MNG-8217
>             Project: Maven
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 3.9.8
>            Reporter: Cyrille Le Clerc
>            Priority: Major
>
> The `{{@PreDestroy}}` method of JSR 330 based Maven extensions fail with a 
> `{{ClassNotFoundException}}` when the extension is declared through the 
> `{{<build><extensions>...</extensions></build>}}`.
> The problem doesn't happen when the Maven extension is declared through the 
> `{{.mvn/extensions.xml}}` file or `{{mvn -Dmaven.ext.class.path=...}}` 
> command line arg.
> This suggest the classes of the extension are unloaded too early, before 
> `{{@PreDestroy}}` is invoked, when  when the extension is declared through 
> the `{{<build><extensions>...</extensions></build>}}`.
> Test case: 
> * 
> https://github.com/cyrille-leclerc/maven-extension-test/tree/f2cc78c15e0b9a59547c111db69e2c261c9872ea/test-jsr-330-extension/src/maven-it/extension-declared-in-pom-xml
> * 
> https://github.com/cyrille-leclerc/maven-extension-test/tree/f2cc78c15e0b9a59547c111db69e2c261c9872ea/test-jsr-330-extension/src/maven-it/extension-declared-in-dot-mvn-extensions-xml
> This problem impact the OpenTelemetry Maven Extension:
> https://github.com/open-telemetry/opentelemetry-java-contrib/issues/1391



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

Reply via email to