This PR migrates the OTel Maven Extension from Plexus to JSR-330.
The OpenTelemetry Maven Extension primarily relies on the AbstractExecutionListener API which is unfortunately not supported by Maven's JSR-330 / Sisu APIs as it was by Maven's Plexus APIs.
This PR works around this limitation hooking the OtelExecutionListener using the AbstractMavenLifecycleParticipant#afterProjectsRead API that is well supported by Maven's JSR-330/Sisu APIs.
works building with a pom.xml but not yet with the Gradle build.
pom.xml to build the Maven Extension
```xml
4.0.0io.opentelemetry.contribopentelemetry-maven-extension0.0.1-SNAPSHOT171.10.4javax.injectjavax.inject1providedio.opentelemetryopentelemetry-apiio.opentelemetryopentelemetry-sdkio.opentelemetryopentelemetry-sdk-traceio.opentelemetryopentelemetry-sdk-extension-autoconfigureio.opentelemetryopentelemetry-sdk-extension-autoconfigure-spiio.opentelemetry.semconvopentelemetry-semconv1.25.0-alphaio.opentelemetry.semconvopentelemetry-semconv-incubating1.25.0-alphaio.opentelemetryopentelemetry-exporter-otlpcom.google.auto.valueauto-value-annotations${auto-value.version}providedorg.slf4jslf4j-api1.7.36providedcom.google.code.findbugsjsr3053.0.2compileorg.apache.mavenmaven-core3.5.0providedorg.slf4jslf4j-simple1.7.36testorg.junit.jupiterjunit-jupiter-api5.10.2testorg.assertjassertj-core3.25.3testio.opentelemetryopentelemetry-bom1.37.0pomimportio.opentelemetryopentelemetry-bom-alpha1.37.0-alphapomimportmaven-compiler-plugincom.google.auto.valueauto-value${auto-value.version}org.eclipse.sisusisu-maven-plugin0.9.0.M2generate-indexmain-indexorg.apache.maven.pluginsmaven-shade-plugin3.5.3packageshade
```
Description:
Maven is migrating its Dependency Injection framework from Plexus to JSR-330 and Eclipse Sisu as documented in https://maven.apache.org/maven-jsr330.html .
This PR migrates the OTel Maven Extension from Plexus to JSR-330.
The OpenTelemetry Maven Extension primarily relies on the
AbstractExecutionListener
API which is unfortunately not supported by Maven's JSR-330 / Sisu APIs as it was by Maven's Plexus APIs. This PR works around this limitation hooking theOtelExecutionListener
using theAbstractMavenLifecycleParticipant#afterProjectsRead
API that is well supported by Maven's JSR-330/Sisu APIs.Details on MAven JSR-330 / Sisu APIs behavior
See test Maven extensions https://github.com/cyrille-leclerc/maven-extension-test
Existing Issue(s):
Testing:
Unfortunately, there is no testing framework for Maven extensions. I've done manual tests including tests of a Jenkins + Maven pipeline.
Documentation:
No change for the users
Outstanding items:
None