diff --git a/.fossa.yml b/.fossa.yml index 0b6c25d6df66..76378200dc4f 100644 --- a/.fossa.yml +++ b/.fossa.yml @@ -826,6 +826,9 @@ targets: - type: gradle path: ./ target: ':instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent' + - type: gradle + path: ./ + target: ':instrumentation:opentelemetry-api:opentelemetry-api-1.56:javaagent' - type: gradle path: ./ target: ':instrumentation:pekko:pekko-actor-1.0:javaagent' diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java index 184b0ef819ea..1eb1ebb0ffab 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java @@ -19,7 +19,10 @@ public class ApplicationOpenTelemetry implements OpenTelemetry { public static final OpenTelemetry INSTANCE; static { - OpenTelemetry instance = getOpenTelemetry127(); + OpenTelemetry instance = getOpenTelemetry156(); + if (instance == null) { + instance = getOpenTelemetry127(); + } if (instance == null) { instance = getOpenTelemetry110(); } @@ -52,26 +55,27 @@ public ContextPropagators getPropagators() { return applicationContextPropagators; } + @Nullable + private static OpenTelemetry getOpenTelemetry156() { + return getOpenTelemetry( + "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.ApplicationOpenTelemetry156Incubator"); + } + @Nullable private static OpenTelemetry getOpenTelemetry127() { - try { - // this class is defined in opentelemetry-api-1.27 - Class clazz = - Class.forName( - "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127"); - return (OpenTelemetry) clazz.getField("INSTANCE").get(null); - } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) { - return null; - } + return getOpenTelemetry( + "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127"); } @Nullable private static OpenTelemetry getOpenTelemetry110() { + return getOpenTelemetry( + "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.ApplicationOpenTelemetry110"); + } + + private static OpenTelemetry getOpenTelemetry(String className) { try { - // this class is defined in opentelemetry-api-1.10 - Class clazz = - Class.forName( - "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.ApplicationOpenTelemetry110"); + Class clazz = Class.forName(className); return (OpenTelemetry) clazz.getField("INSTANCE").get(null); } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) { return null; diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/ApplicationOpenTelemetry127.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/ApplicationOpenTelemetry127.java index 7e4b0df3fb4a..d2d5481e51dd 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/ApplicationOpenTelemetry127.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/ApplicationOpenTelemetry127.java @@ -22,7 +22,7 @@ import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_4.trace.ApplicationTracerProvider14; import java.lang.reflect.InvocationTargetException; -public final class ApplicationOpenTelemetry127 implements OpenTelemetry { +public class ApplicationOpenTelemetry127 implements OpenTelemetry { // Accessed with reflection @SuppressWarnings("unused") @@ -34,7 +34,7 @@ public final class ApplicationOpenTelemetry127 implements OpenTelemetry { private final LoggerProvider applicationLoggerProvider; @SuppressWarnings("UnnecessarilyFullyQualified") - private ApplicationOpenTelemetry127() { + protected ApplicationOpenTelemetry127() { io.opentelemetry.api.OpenTelemetry agentOpenTelemetry = io.opentelemetry.api.GlobalOpenTelemetry.get(); applicationTracerProvider = diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/build.gradle.kts new file mode 100644 index 000000000000..a78efb3431ce --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/build.gradle.kts @@ -0,0 +1,24 @@ +plugins { + id("otel.javaagent-instrumentation") +} + +dependencies { + compileOnly(project(":opentelemetry-api-shaded-for-instrumenting", configuration = "v1_56")) + compileOnly("io.opentelemetry:opentelemetry-api-incubator") + + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.40:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.42:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent")) + + testImplementation("io.opentelemetry:opentelemetry-api-incubator") +} + +tasks.withType().configureEach { + jvmArgs( + "-Dotel.experimental.config.file=$projectDir/src/test/resources/declarative-config.yaml" + ) +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ApplicationOpenTelemetry156Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ApplicationOpenTelemetry156Incubator.java new file mode 100644 index 000000000000..fff94b8f092b --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ApplicationOpenTelemetry156Incubator.java @@ -0,0 +1,46 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator; + +import application.io.opentelemetry.api.OpenTelemetry; +import application.io.opentelemetry.api.incubator.ExtendedOpenTelemetry; +import application.io.opentelemetry.api.incubator.config.ConfigProvider; +import io.opentelemetry.api.GlobalOpenTelemetry; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config.ApplicationConfigProvider156Incubator; +import javax.annotation.Nullable; + +public final class ApplicationOpenTelemetry156Incubator extends ApplicationOpenTelemetry127 + implements ExtendedOpenTelemetry { + + // Accessed with reflection + @Nullable + @SuppressWarnings("unused") + public static final OpenTelemetry INSTANCE = create(); + + private final ConfigProvider configProvider; + + @Nullable + private static ApplicationOpenTelemetry156Incubator create() { + io.opentelemetry.api.OpenTelemetry openTelemetry = GlobalOpenTelemetry.get(); + if (openTelemetry instanceof io.opentelemetry.api.incubator.ExtendedOpenTelemetry) { + return new ApplicationOpenTelemetry156Incubator( + ((io.opentelemetry.api.incubator.ExtendedOpenTelemetry) openTelemetry) + .getConfigProvider()); + } + return null; + } + + public ApplicationOpenTelemetry156Incubator( + io.opentelemetry.api.incubator.config.ConfigProvider configProvider) { + this.configProvider = new ApplicationConfigProvider156Incubator(configProvider); + } + + @Override + public ConfigProvider getConfigProvider() { + return configProvider; + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java new file mode 100644 index 000000000000..5c15fc0c87f5 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java @@ -0,0 +1,41 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator; + +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; +import static java.util.Collections.singletonList; + +import com.google.auto.service.AutoService; +import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; +import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule; +import java.util.List; +import net.bytebuddy.matcher.ElementMatcher; + +@AutoService(InstrumentationModule.class) +public class OpenTelemetryApiIncubatorInstrumentationModule extends InstrumentationModule + implements ExperimentalInstrumentationModule { + public OpenTelemetryApiIncubatorInstrumentationModule() { + super("opentelemetry-api", "opentelemetry-api-1.56", "opentelemetry-api-incubator-1.56"); + } + + @Override + public ElementMatcher.Junction classLoaderMatcher() { + return hasClassesNamed( + "application.io.opentelemetry.api.common.Value", + "application.io.opentelemetry.api.incubator.ExtendedOpenTelemetry"); + } + + @Override + public List typeInstrumentations() { + return singletonList(new OpenTelemetryIncubatorInstrumentation()); + } + + @Override + public String getModuleGroup() { + return "opentelemetry-api-bridge"; + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java new file mode 100644 index 000000000000..b5cc132ee775 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java @@ -0,0 +1,39 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator; + +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.none; + +import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; +import net.bytebuddy.asm.Advice; +import net.bytebuddy.description.type.TypeDescription; +import net.bytebuddy.matcher.ElementMatcher; + +public class OpenTelemetryIncubatorInstrumentation implements TypeInstrumentation { + + @Override + public ElementMatcher typeMatcher() { + return named("application.io.opentelemetry.api.GlobalOpenTelemetry"); + } + + @Override + public void transform(TypeTransformer transformer) { + transformer.applyAdviceToMethod( + none(), OpenTelemetryIncubatorInstrumentation.class.getName() + "$InitAdvice"); + } + + @SuppressWarnings({"ReturnValueIgnored", "unused"}) + public static class InitAdvice { + @Advice.OnMethodEnter + public static void init() { + // the sole purpose of this advice is to ensure that the classes are + // recognized as helper class and injected into class loader + ApplicationOpenTelemetry156Incubator.class.getName(); + } + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationConfigProvider156Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationConfigProvider156Incubator.java new file mode 100644 index 000000000000..9165adde7019 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationConfigProvider156Incubator.java @@ -0,0 +1,28 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config; + +import application.io.opentelemetry.api.incubator.config.ConfigProvider; +import application.io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; +import javax.annotation.Nullable; + +public final class ApplicationConfigProvider156Incubator implements ConfigProvider { + + private final DeclarativeConfigProperties declarativeConfigProperties; + + public ApplicationConfigProvider156Incubator( + io.opentelemetry.api.incubator.config.ConfigProvider configProvider) { + this.declarativeConfigProperties = + new ApplicationDeclarativeConfigProperties156Incubator( + configProvider.getInstrumentationConfig()); + } + + @Nullable + @Override + public DeclarativeConfigProperties getInstrumentationConfig() { + return declarativeConfigProperties; + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java new file mode 100644 index 000000000000..731defc77272 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java @@ -0,0 +1,124 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config; + +import application.io.opentelemetry.api.incubator.config.DeclarativeConfigException; +import application.io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; +import application.io.opentelemetry.common.ComponentLoader; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; +import javax.annotation.Nullable; + +public final class ApplicationDeclarativeConfigProperties156Incubator + implements DeclarativeConfigProperties { + private final io.opentelemetry.api.incubator.config.DeclarativeConfigProperties + instrumentationConfig; + + public ApplicationDeclarativeConfigProperties156Incubator( + io.opentelemetry.api.incubator.config.DeclarativeConfigProperties instrumentationConfig) { + this.instrumentationConfig = instrumentationConfig; + } + + @Nullable + @Override + public String getString(String name) { + return instrumentationConfig.getString(name); + } + + @Override + public String getString(String name, String defaultValue) { + return instrumentationConfig.getString(name, defaultValue); + } + + @Nullable + @Override + public Boolean getBoolean(String name) { + return instrumentationConfig.getBoolean(name); + } + + @Override + public boolean getBoolean(String name, boolean defaultValue) { + return instrumentationConfig.getBoolean(name, defaultValue); + } + + @Nullable + @Override + public Integer getInt(String name) { + return instrumentationConfig.getInt(name); + } + + @Override + public int getInt(String name, int defaultValue) { + return instrumentationConfig.getInt(name, defaultValue); + } + + @Nullable + @Override + public Long getLong(String name) { + return instrumentationConfig.getLong(name); + } + + @Override + public long getLong(String name, long defaultValue) { + return instrumentationConfig.getLong(name, defaultValue); + } + + @Nullable + @Override + public Double getDouble(String name) { + return instrumentationConfig.getDouble(name); + } + + @Override + public double getDouble(String name, double defaultValue) { + return instrumentationConfig.getDouble(name, defaultValue); + } + + @Nullable + @Override + public List getScalarList(String name, Class scalarType) { + return instrumentationConfig.getScalarList(name, scalarType); + } + + @Override + public List getScalarList(String name, Class scalarType, List defaultValue) { + return instrumentationConfig.getScalarList(name, scalarType, defaultValue); + } + + @Nullable + @Override + public DeclarativeConfigProperties getStructured(String name) { + return new ApplicationDeclarativeConfigProperties156Incubator( + instrumentationConfig.getStructured(name)); + } + + @Nullable + @Override + public List getStructuredList(String name) { + List structuredList = + instrumentationConfig.getStructuredList(name); + if (structuredList == null) { + return null; + } + + return structuredList.stream() + .map(e -> new ApplicationDeclarativeConfigProperties156Incubator(e)) + .collect(Collectors.toList()); + } + + @Override + public Set getPropertyKeys() { + return instrumentationConfig.getPropertyKeys(); + } + + @Override + public ComponentLoader getComponentLoader() { + throw new DeclarativeConfigException( + "getComponentLoader is not supported in application code. " + + "It is only used to set up the OpenTelemetry SDK in the agent."); + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ExtendedOpenTelemetryTest.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ExtendedOpenTelemetryTest.java new file mode 100644 index 000000000000..4cb46eeafef2 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ExtendedOpenTelemetryTest.java @@ -0,0 +1,41 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator; + +import static org.assertj.core.api.Assertions.assertThat; + +import io.opentelemetry.api.GlobalOpenTelemetry; +import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.incubator.ExtendedOpenTelemetry; +import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; +import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +class ExtendedOpenTelemetryTest { + @RegisterExtension + static final AgentInstrumentationExtension testing = AgentInstrumentationExtension.create(); + + private OpenTelemetry openTelemetry; + + @BeforeEach + void setup() { + openTelemetry = GlobalOpenTelemetry.get(); + } + + @Test + void getConfig() { + assertThat(openTelemetry).isInstanceOf(ExtendedOpenTelemetry.class); + + DeclarativeConfigProperties instrumentationConfig = + ((ExtendedOpenTelemetry) openTelemetry).getConfigProvider().getInstrumentationConfig(); + assertThat(instrumentationConfig).isNotNull(); + + assertThat(instrumentationConfig.getStructured("java").getStructured("foo").getString("bar")) + .isEqualTo("baz"); + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/resources/declarative-config.yaml b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/resources/declarative-config.yaml new file mode 100644 index 000000000000..5c56733593e3 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/resources/declarative-config.yaml @@ -0,0 +1,13 @@ +file_format: 1.0-rc.1 + +tracer_provider: + processors: + - simple: + exporter: + console: + +instrumentation/development: + java: + foo: + bar: baz + diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/metadata.yaml b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/metadata.yaml new file mode 100644 index 000000000000..5a03ece2f748 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/metadata.yaml @@ -0,0 +1 @@ +classification: internal diff --git a/javaagent/build.gradle.kts b/javaagent/build.gradle.kts index 9a7c777f6bc5..5c472c1f4034 100644 --- a/javaagent/build.gradle.kts +++ b/javaagent/build.gradle.kts @@ -90,6 +90,7 @@ dependencies { baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent")) + baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.56:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-instrumentation-api:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-instrumentation-annotations-1.16:javaagent")) baseJavaagentLibs(project(":instrumentation:executors:javaagent")) diff --git a/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts b/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts index 6f24d2c0ee6e..fe864970cfb1 100644 --- a/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts +++ b/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts @@ -93,6 +93,13 @@ val v1_52Deps by configurations.creating { exclude("io.opentelemetry", "opentelemetry-bom") exclude("io.opentelemetry", "opentelemetry-bom-alpha") } +val v1_56Deps by configurations.creating { + isCanBeResolved = true + isCanBeConsumed = false + // exclude the bom added by dependencyManagement + exclude("io.opentelemetry", "opentelemetry-bom") + exclude("io.opentelemetry", "opentelemetry-bom-alpha") +} // configuration for publishing the shadowed artifact val v1_10 by configurations.creating { isCanBeConsumed = true @@ -142,6 +149,10 @@ val v1_52 by configurations.creating { isCanBeConsumed = true isCanBeResolved = false } +val v1_56 by configurations.creating { + isCanBeConsumed = true + isCanBeResolved = false +} dependencies { latestDeps("io.opentelemetry:opentelemetry-api") @@ -223,6 +234,11 @@ dependencies { strictly("1.52.0-alpha") } } + v1_56Deps("io.opentelemetry:$it") { + version { + strictly("1.56.0-alpha") + } + } } } @@ -286,6 +302,10 @@ tasks { configurations = listOf(v1_52Deps) archiveClassifier.set("v1_52") } + val v1_56Shadow by registering(ShadowJar::class) { + configurations = listOf(v1_56Deps) + archiveClassifier.set("v1_56") + } artifacts { add(v1_10.name, v1_10Shadow) @@ -300,5 +320,6 @@ tasks { add(v1_47.name, v1_47Shadow) add(v1_50.name, v1_50Shadow) add(v1_52.name, v1_52Shadow) + add(v1_56.name, v1_56Shadow) } } diff --git a/settings.gradle.kts b/settings.gradle.kts index 4488c3620b13..311f1b477b2d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -503,6 +503,7 @@ include(":instrumentation:opentelemetry-api:opentelemetry-api-1.42:javaagent") include(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent") include(":instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent") include(":instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent") +include(":instrumentation:opentelemetry-api:opentelemetry-api-1.56:javaagent") include(":instrumentation:opentelemetry-extension-annotations-1.0:javaagent") include(":instrumentation:opentelemetry-extension-kotlin-1.0:javaagent") include(":instrumentation:opentelemetry-instrumentation-annotations-1.16:javaagent")