Skip to content

Commit 5c4b71e

Browse files
committed
maven component provider
1 parent 3d56842 commit 5c4b71e

File tree

5 files changed

+55
-0
lines changed

5 files changed

+55
-0
lines changed

maven-extension/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ dependencies {
1616
compileOnly("javax.inject:javax.inject:1")
1717

1818
implementation("io.opentelemetry:opentelemetry-api")
19+
compileOnly("io.opentelemetry:opentelemetry-api-incubator")
1920
implementation("io.opentelemetry:opentelemetry-sdk")
2021
implementation("io.opentelemetry:opentelemetry-sdk-trace")
2122
implementation("io.opentelemetry:opentelemetry-sdk-metrics")
@@ -32,6 +33,7 @@ dependencies {
3233
compileOnly("org.apache.maven:maven-core:3.5.0") // do not auto-update, support older mvn versions
3334
compileOnly("org.slf4j:slf4j-api")
3435

36+
testImplementation("io.opentelemetry:opentelemetry-api-incubator")
3537
testImplementation("org.apache.maven:maven-core:3.5.0")
3638
testImplementation("org.slf4j:slf4j-simple")
3739
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.maven.resources;
7+
8+
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
9+
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
10+
import io.opentelemetry.sdk.resources.Resource;
11+
12+
public class MavenResourceDetector implements ComponentProvider<Resource> {
13+
14+
@Override
15+
public Class<Resource> getType() {
16+
return Resource.class;
17+
}
18+
19+
@Override
20+
public String getName() {
21+
return "maven";
22+
}
23+
24+
@Override
25+
public Resource create(DeclarativeConfigProperties config) {
26+
return MavenResourceProvider.create();
27+
}
28+
}

maven-extension/src/main/java/io/opentelemetry/maven/resources/MavenResourceProvider.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ public class MavenResourceProvider implements ResourceProvider {
2323

2424
@Override
2525
public Resource createResource(ConfigProperties config) {
26+
return create();
27+
}
28+
29+
static Resource create() {
2630
return Resource.builder()
2731
.put(ServiceAttributes.SERVICE_NAME, MavenOtelSemanticAttributes.SERVICE_NAME_VALUE)
2832
.put(ServiceAttributes.SERVICE_VERSION, getMavenRuntimeVersion())
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
io.opentelemetry.maven.resources.MavenResourceDetector
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.opentelemetry.maven.resources;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
6+
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
7+
import java.util.List;
8+
import org.junit.jupiter.api.Test;
9+
10+
public class ResourceComponentProviderTest {
11+
12+
@Test
13+
@SuppressWarnings("rawtypes")
14+
void providerIsLoaded() {
15+
List<ComponentProvider> providers = SpiHelper.create(
16+
ResourceComponentProviderTest.class.getClassLoader())
17+
.load(ComponentProvider.class);
18+
assertThat(providers).extracting(ComponentProvider::getName).contains("maven");
19+
}
20+
}

0 commit comments

Comments
 (0)