diff --git a/maven-extension/build.gradle.kts b/maven-extension/build.gradle.kts
index 15755f0ce..5a1d62d2c 100644
--- a/maven-extension/build.gradle.kts
+++ b/maven-extension/build.gradle.kts
@@ -27,7 +27,9 @@ dependencies {
implementation("io.opentelemetry.semconv:opentelemetry-semconv")
implementation("io.opentelemetry.semconv:opentelemetry-semconv-incubating")
+ annotationProcessor("com.google.auto.service:auto-service")
annotationProcessor("com.google.auto.value:auto-value")
+ compileOnly("com.google.auto.service:auto-service")
compileOnly("com.google.auto.value:auto-value-annotations")
compileOnly("org.apache.maven:maven-core:3.5.0") // do not auto-update, support older mvn versions
@@ -36,6 +38,7 @@ dependencies {
testImplementation("io.opentelemetry:opentelemetry-api-incubator")
testImplementation("org.apache.maven:maven-core:3.5.0")
testImplementation("org.slf4j:slf4j-simple")
+ testImplementation("com.google.auto.service:auto-service")
}
// The jar dependencies bundled in the uber-jar by the shadow plugin are wrongly added as
diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java
index b31c22ee3..5e6201136 100644
--- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java
+++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java
@@ -5,6 +5,7 @@
package io.opentelemetry.maven.handler;
+import com.google.auto.service.AutoService;
import io.opentelemetry.api.trace.SpanBuilder;
import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.maven.MavenGoal;
@@ -21,7 +22,8 @@
import org.slf4j.LoggerFactory;
/** See https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin */
-final class GoogleJibBuildHandler implements MojoGoalExecutionHandler {
+@AutoService(MojoGoalExecutionHandler.class)
+public final class GoogleJibBuildHandler implements MojoGoalExecutionHandler {
private static final Logger logger = LoggerFactory.getLogger(GoogleJibBuildHandler.class);
@Override
diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/MavenDeployHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/MavenDeployHandler.java
index b9e889cda..379e76b73 100644
--- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/MavenDeployHandler.java
+++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/MavenDeployHandler.java
@@ -5,6 +5,7 @@
package io.opentelemetry.maven.handler;
+import com.google.auto.service.AutoService;
import io.opentelemetry.api.trace.SpanBuilder;
import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.maven.MavenGoal;
@@ -26,7 +27,8 @@
* achieve this instrumenting the Aether library
*/
-final class MavenDeployHandler implements MojoGoalExecutionHandler {
+@AutoService(MojoGoalExecutionHandler.class)
+public final class MavenDeployHandler implements MojoGoalExecutionHandler {
private static final Logger logger = LoggerFactory.getLogger(MavenDeployHandler.class);
@Override
diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerConfiguration.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerConfiguration.java
index 617b78474..a0131d626 100644
--- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerConfiguration.java
+++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerConfiguration.java
@@ -20,13 +20,7 @@ public static Map loadMojoGoalExecutionHand
ClassLoader classLoader) {
// built-in handlers
- List builtInHandlers =
- Arrays.asList(
- new GoogleJibBuildHandler(),
- new MavenDeployHandler(),
- new SnykMonitorHandler(),
- new SnykTestHandler(),
- new SpringBootBuildImageHandler());
+ List builtInHandlers = Arrays.asList();
List spiHandlers = new ArrayList<>();
// Must use the classloader of the class rather the default ThreadContextClassloader to prevent
diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykMonitorHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykMonitorHandler.java
index 2215f0c6b..33b8c6d17 100644
--- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykMonitorHandler.java
+++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykMonitorHandler.java
@@ -5,6 +5,7 @@
package io.opentelemetry.maven.handler;
+import com.google.auto.service.AutoService;
import io.opentelemetry.api.trace.SpanBuilder;
import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.maven.MavenGoal;
@@ -16,7 +17,8 @@
import org.apache.maven.execution.ExecutionEvent;
/** See https://github.com/snyk/snyk-maven-plugin */
-final class SnykMonitorHandler implements MojoGoalExecutionHandler {
+@AutoService(MojoGoalExecutionHandler.class)
+public final class SnykMonitorHandler implements MojoGoalExecutionHandler {
/**
* Snyk command "reversed engineered" invoking the Snyk CLI on a Maven project with the `-d` debug
diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykTestHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykTestHandler.java
index 1467ad253..bf9036a32 100644
--- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykTestHandler.java
+++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykTestHandler.java
@@ -5,6 +5,7 @@
package io.opentelemetry.maven.handler;
+import com.google.auto.service.AutoService;
import io.opentelemetry.api.trace.SpanBuilder;
import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.maven.MavenGoal;
@@ -16,7 +17,8 @@
import org.apache.maven.execution.ExecutionEvent;
/** See https://github.com/snyk/snyk-maven-plugin */
-final class SnykTestHandler implements MojoGoalExecutionHandler {
+@AutoService(MojoGoalExecutionHandler.class)
+public final class SnykTestHandler implements MojoGoalExecutionHandler {
/**
* Snyk command "reversed engineered" invoking the Snyk CLI on a Maven project with the `-d` debug
diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SpringBootBuildImageHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SpringBootBuildImageHandler.java
index ff405559d..f9e3ee73b 100644
--- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SpringBootBuildImageHandler.java
+++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SpringBootBuildImageHandler.java
@@ -5,6 +5,7 @@
package io.opentelemetry.maven.handler;
+import com.google.auto.service.AutoService;
import io.opentelemetry.api.trace.SpanBuilder;
import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.maven.MavenGoal;
@@ -32,7 +33,8 @@
* : spring-boot/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/
*
*/
-final class SpringBootBuildImageHandler implements MojoGoalExecutionHandler {
+@AutoService(MojoGoalExecutionHandler.class)
+public final class SpringBootBuildImageHandler implements MojoGoalExecutionHandler {
private static final Logger logger = LoggerFactory.getLogger(SpringBootBuildImageHandler.class);
@Override
diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/resources/MavenResourceDetector.java b/maven-extension/src/main/java/io/opentelemetry/maven/resources/MavenResourceDetector.java
index 47ff50759..7edb641c6 100644
--- a/maven-extension/src/main/java/io/opentelemetry/maven/resources/MavenResourceDetector.java
+++ b/maven-extension/src/main/java/io/opentelemetry/maven/resources/MavenResourceDetector.java
@@ -5,10 +5,13 @@
package io.opentelemetry.maven.resources;
+import com.google.auto.service.AutoService;
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
import io.opentelemetry.sdk.resources.Resource;
+@SuppressWarnings("rawtypes")
+@AutoService(ComponentProvider.class)
public class MavenResourceDetector implements ComponentProvider {
@Override
diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/resources/MavenResourceProvider.java b/maven-extension/src/main/java/io/opentelemetry/maven/resources/MavenResourceProvider.java
index 9b75d11d0..ea2922a4f 100644
--- a/maven-extension/src/main/java/io/opentelemetry/maven/resources/MavenResourceProvider.java
+++ b/maven-extension/src/main/java/io/opentelemetry/maven/resources/MavenResourceProvider.java
@@ -5,6 +5,7 @@
package io.opentelemetry.maven.resources;
+import com.google.auto.service.AutoService;
import io.opentelemetry.maven.semconv.MavenOtelSemanticAttributes;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider;
@@ -17,6 +18,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@AutoService(ResourceProvider.class)
public class MavenResourceProvider implements ResourceProvider {
private static final Logger logger = LoggerFactory.getLogger(MavenResourceProvider.class);
diff --git a/maven-extension/src/main/resources/META-INF/services/io.opentelemetry.maven.handler.MojoGoalExecutionHandler b/maven-extension/src/main/resources/META-INF/services/io.opentelemetry.maven.handler.MojoGoalExecutionHandler
deleted file mode 100644
index 8b1378917..000000000
--- a/maven-extension/src/main/resources/META-INF/services/io.opentelemetry.maven.handler.MojoGoalExecutionHandler
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/maven-extension/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider b/maven-extension/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider
deleted file mode 100644
index 977f7168d..000000000
--- a/maven-extension/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider
+++ /dev/null
@@ -1 +0,0 @@
-io.opentelemetry.maven.resources.MavenResourceProvider
diff --git a/maven-extension/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider b/maven-extension/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider
deleted file mode 100644
index baac89a6a..000000000
--- a/maven-extension/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider
+++ /dev/null
@@ -1 +0,0 @@
-io.opentelemetry.maven.resources.MavenResourceDetector
diff --git a/maven-extension/src/test/java/io/opentelemetry/maven/MavenUtilsTests.java b/maven-extension/src/test/java/io/opentelemetry/maven/MavenUtilsTests.java
index 9c4fee91b..637b4f841 100644
--- a/maven-extension/src/test/java/io/opentelemetry/maven/MavenUtilsTests.java
+++ b/maven-extension/src/test/java/io/opentelemetry/maven/MavenUtilsTests.java
@@ -9,7 +9,7 @@
import org.junit.jupiter.api.Test;
-public class MavenUtilsTests {
+class MavenUtilsTests {
@Test
public void getPluginArtifactIdShortName_builtinPluginName() {
diff --git a/maven-extension/src/test/java/io/opentelemetry/maven/OpenTelemetrySdkServiceTest.java b/maven-extension/src/test/java/io/opentelemetry/maven/OpenTelemetrySdkServiceTest.java
index e2cc37a28..0b94dce54 100644
--- a/maven-extension/src/test/java/io/opentelemetry/maven/OpenTelemetrySdkServiceTest.java
+++ b/maven-extension/src/test/java/io/opentelemetry/maven/OpenTelemetrySdkServiceTest.java
@@ -17,11 +17,11 @@
* Note: if otel-java-contrib bumps to Java 11+, we could use junit-pioneer's
* {@code @SetSystemProperty} and {@code @ClearSystemProperty} but no bump is planned for now.
*/
-public class OpenTelemetrySdkServiceTest {
+class OpenTelemetrySdkServiceTest {
/** Verify default config */
@Test
- public void testDefaultConfiguration() {
+ void testDefaultConfiguration() {
System.clearProperty("otel.exporter.otlp.endpoint");
System.clearProperty("otel.service.name");
System.clearProperty("otel.resource.attributes");
@@ -40,7 +40,7 @@ public void testDefaultConfiguration() {
/** Verify overwritten `service.name`,`key1` and `key2` */
@Test
- public void testOverwrittenResourceAttributes() {
+ void testOverwrittenResourceAttributes() {
System.setProperty("otel.service.name", "my-maven");
System.setProperty("otel.resource.attributes", "key1=val1,key2=val2");
@@ -59,7 +59,7 @@ public void testOverwrittenResourceAttributes() {
/** Verify defining `otel.exporter.otlp.endpoint` works */
@Test
- public void testOverwrittenExporterConfiguration_1() {
+ void testOverwrittenExporterConfiguration_1() {
System.setProperty("otel.exporter.otlp.endpoint", "https://example.com:4317");
try (OpenTelemetrySdkService openTelemetrySdkService = new OpenTelemetrySdkService()) {
@@ -78,7 +78,7 @@ public void testOverwrittenExporterConfiguration_1() {
/** Verify defining `otel.exporter.otlp.traces.endpoint` works */
@Test
- public void testOverwrittenExporterConfiguration_2() {
+ void testOverwrittenExporterConfiguration_2() {
System.clearProperty("otel.exporter.otlp.endpoint");
System.clearProperty("otel.traces.exporter");
System.setProperty("otel.exporter.otlp.traces.endpoint", "https://example.com:4317/");
@@ -102,7 +102,7 @@ public void testOverwrittenExporterConfiguration_2() {
/** Verify defining `otel.exporter.otlp.traces.endpoint` and `otel.traces.exporter` works */
@Test
- public void testOverwrittenExporterConfiguration_3() {
+ void testOverwrittenExporterConfiguration_3() {
System.clearProperty("otel.exporter.otlp.endpoint");
System.setProperty("otel.traces.exporter", "otlp");
System.setProperty("otel.exporter.otlp.traces.endpoint", "https://example.com:4317/");
diff --git a/maven-extension/src/test/java/io/opentelemetry/maven/SpanRegistryTest.java b/maven-extension/src/test/java/io/opentelemetry/maven/SpanRegistryTest.java
index 864ce8df8..2a01a1754 100644
--- a/maven-extension/src/test/java/io/opentelemetry/maven/SpanRegistryTest.java
+++ b/maven-extension/src/test/java/io/opentelemetry/maven/SpanRegistryTest.java
@@ -12,11 +12,11 @@
import io.opentelemetry.api.trace.Tracer;
import org.junit.jupiter.api.Test;
-public class SpanRegistryTest {
+class SpanRegistryTest {
/** MVND reuses the same Maven process and thus the Span Registry is reused. */
@Test
- public void testSpanRegistryReuseWhenUsingMvnDaemon() {
+ void testSpanRegistryReuseWhenUsingMvnDaemon() {
SpanRegistry spanRegistry = new SpanRegistry();
Tracer tracer = OpenTelemetry.noop().getTracer("test");
diff --git a/maven-extension/src/test/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerConfigurationTest.java b/maven-extension/src/test/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerConfigurationTest.java
index 21748cebb..ae8e4798b 100644
--- a/maven-extension/src/test/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerConfigurationTest.java
+++ b/maven-extension/src/test/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerConfigurationTest.java
@@ -12,7 +12,7 @@
import java.util.Map;
import org.junit.jupiter.api.Test;
-public class MojoGoalExecutionHandlerConfigurationTest {
+class MojoGoalExecutionHandlerConfigurationTest {
@Test
public void mojoGoalExecutionHandlers() {
diff --git a/maven-extension/src/test/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerTest.java b/maven-extension/src/test/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerTest.java
index b193ccdb5..645ecfa0d 100644
--- a/maven-extension/src/test/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerTest.java
+++ b/maven-extension/src/test/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerTest.java
@@ -47,10 +47,10 @@
* https://github.com/takari/takari-lifecycle/blob/master/takari-lifecycle-plugin/src/test/java/io/takari/maven/plugins/plugin/PluginDescriptorMojoTest.java
*/
@SuppressWarnings({"DeduplicateConstants", "deprecation"})
-public class MojoGoalExecutionHandlerTest {
+class MojoGoalExecutionHandlerTest {
@Test
- public void testMavenDeploy() throws Exception {
+ void testMavenDeploy() throws Exception {
String pomXmlPath = "projects/jar/pom.xml";
String mojoGroupId = "org.apache.maven.plugins";
@@ -92,7 +92,7 @@ public void testMavenDeploy() throws Exception {
}
@Test
- public void testSpringBootBuildImage_springboot_1() throws Exception {
+ void testSpringBootBuildImage_springboot_1() throws Exception {
String pomXmlPath = "projects/springboot_1/pom.xml";
String mojoGroupId = "org.springframework.boot";
@@ -136,7 +136,7 @@ public void testSpringBootBuildImage_springboot_1() throws Exception {
}
@Test
- public void testSpringBootBuildImage_springboot_2() throws Exception {
+ void testSpringBootBuildImage_springboot_2() throws Exception {
String pomXmlPath = "projects/springboot_2/pom.xml";
String mojoGroupId = "org.springframework.boot";
@@ -180,7 +180,7 @@ public void testSpringBootBuildImage_springboot_2() throws Exception {
}
@Test
- public void testGoogleJibBuild_jib_1() throws Exception {
+ void testGoogleJibBuild_jib_1() throws Exception {
String pomXmlPath = "projects/jib_1/pom.xml";
String mojoGroupId = "com.google.cloud.tools";
@@ -221,7 +221,7 @@ public void testGoogleJibBuild_jib_1() throws Exception {
}
@Test
- public void testGoogleJibBuild_jib_2() throws Exception {
+ void testGoogleJibBuild_jib_2() throws Exception {
String pomXmlPath = "projects/jib_2/pom.xml";
String mojoGroupId = "com.google.cloud.tools";
@@ -262,7 +262,7 @@ public void testGoogleJibBuild_jib_2() throws Exception {
}
@Test
- public void testSnykTest_snyk_1() throws Exception {
+ void testSnykTest_snyk_1() throws Exception {
String pomXmlPath = "projects/snyk_1/pom.xml";
String mojoGroupId = "io.snyk";
@@ -298,7 +298,7 @@ public void testSnykTest_snyk_1() throws Exception {
}
@Test
- public void testSnykMonitor_snyk_1() throws Exception {
+ void testSnykMonitor_snyk_1() throws Exception {
String pomXmlPath = "projects/snyk_1/pom.xml";
String mojoGroupId = "io.snyk";