diff --git a/sentry-opentelemetry/sentry-opentelemetry-agentless-spring/build.gradle.kts b/sentry-opentelemetry/sentry-opentelemetry-agentless-spring/build.gradle.kts index 005dfc477df..c02ca0ca468 100644 --- a/sentry-opentelemetry/sentry-opentelemetry-agentless-spring/build.gradle.kts +++ b/sentry-opentelemetry/sentry-opentelemetry-agentless-spring/build.gradle.kts @@ -30,6 +30,8 @@ buildConfig { tasks.jar { manifest { attributes( + "Sentry-Opentelemetry-SDK-Name" to + Config.Sentry.SENTRY_OPENTELEMETRY_AGENTLESS_SPRING_SDK_NAME, "Sentry-Version-Name" to project.version, "Sentry-SDK-Name" to Config.Sentry.SENTRY_OPENTELEMETRY_AGENTLESS_SPRING_SDK_NAME, "Sentry-SDK-Package-Name" to "maven:io.sentry:sentry-opentelemetry-agentless-spring", diff --git a/sentry-opentelemetry/sentry-opentelemetry-agentless/build.gradle.kts b/sentry-opentelemetry/sentry-opentelemetry-agentless/build.gradle.kts index a3cfd705717..43e87d53beb 100644 --- a/sentry-opentelemetry/sentry-opentelemetry-agentless/build.gradle.kts +++ b/sentry-opentelemetry/sentry-opentelemetry-agentless/build.gradle.kts @@ -28,6 +28,7 @@ buildConfig { tasks.jar { manifest { attributes( + "Sentry-Opentelemetry-SDK-Name" to Config.Sentry.SENTRY_OPENTELEMETRY_AGENTLESS_SDK_NAME, "Sentry-Version-Name" to project.version, "Sentry-SDK-Name" to Config.Sentry.SENTRY_OPENTELEMETRY_AGENTLESS_SDK_NAME, "Sentry-SDK-Package-Name" to "maven:io.sentry:sentry-opentelemetry-agentless", diff --git a/sentry/src/main/java/io/sentry/internal/ManifestVersionReader.java b/sentry/src/main/java/io/sentry/internal/ManifestVersionReader.java index a9fe2a54702..7e226764913 100644 --- a/sentry/src/main/java/io/sentry/internal/ManifestVersionReader.java +++ b/sentry/src/main/java/io/sentry/internal/ManifestVersionReader.java @@ -21,7 +21,7 @@ public final class ManifestVersionReader { private static final @NotNull AutoClosableReentrantLock staticLock = new AutoClosableReentrantLock(); private volatile boolean hasManifestBeenRead = false; - private volatile @Nullable VersionInfoHolder versionInfo = null; + private final @NotNull VersionInfoHolder versionInfo = new VersionInfoHolder(); private @NotNull AutoClosableReentrantLock lock = new AutoClosableReentrantLock(); public static @NotNull ManifestVersionReader getInstance() { @@ -40,6 +40,9 @@ private ManifestVersionReader() {} public @Nullable VersionInfoHolder readOpenTelemetryVersion() { readManifestFiles(); + if (versionInfo.sdkVersion == null) { + return null; + } return versionInfo; } @@ -48,7 +51,6 @@ public void readManifestFiles() { return; } - @Nullable VersionInfoHolder infoHolder = null; try (final @NotNull ISentryLifecycleToken ignored = lock.acquire()) { if (hasManifestBeenRead) { return; @@ -66,28 +68,32 @@ public void readManifestFiles() { final @Nullable String packageName = mainAttributes.getValue("Sentry-SDK-Package-Name"); if (name != null && version != null) { - infoHolder = new VersionInfoHolder(); - infoHolder.sdkName = name; - infoHolder.sdkVersion = version; - infoHolder.packages.add( - new SentryPackage("maven:io.sentry:sentry-opentelemetry-agent", version)); + versionInfo.sdkName = name; + versionInfo.sdkVersion = version; final @Nullable String otelVersion = mainAttributes.getValue("Sentry-Opentelemetry-Version-Name"); if (otelVersion != null) { - infoHolder.packages.add( + versionInfo.packages.add( new SentryPackage("maven:io.opentelemetry:opentelemetry-sdk", otelVersion)); - infoHolder.integrations.add("OpenTelemetry"); + versionInfo.integrations.add("OpenTelemetry"); } final @Nullable String otelJavaagentVersion = mainAttributes.getValue("Sentry-Opentelemetry-Javaagent-Version-Name"); if (otelJavaagentVersion != null) { - infoHolder.packages.add( + versionInfo.packages.add( new SentryPackage( "maven:io.opentelemetry.javaagent:opentelemetry-javaagent", otelJavaagentVersion)); - infoHolder.integrations.add("OpenTelemetry-Agent"); + versionInfo.integrations.add("OpenTelemetry-Agent"); + } + if (name.equals("sentry.java.opentelemetry.agentless")) { + SentryIntegrationPackageStorage.getInstance() + .addIntegration("OpenTelemetry-Agentless"); + } + if (name.equals("sentry.java.opentelemetry.agentless-spring")) { + SentryIntegrationPackageStorage.getInstance() + .addIntegration("OpenTelemetry-Agentless-Spring"); } - break; } if (sdkName != null @@ -105,13 +111,12 @@ public void readManifestFiles() { // ignore } finally { hasManifestBeenRead = true; - versionInfo = infoHolder; } } public static final class VersionInfoHolder { - private @Nullable String sdkName; - private @Nullable String sdkVersion; + private volatile @Nullable String sdkName; + private volatile @Nullable String sdkVersion; private List packages = new ArrayList<>(); private List integrations = new ArrayList<>();