[ 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)