@@ -21,7 +21,7 @@ public final class ManifestVersionReader {
2121 private static final @ NotNull AutoClosableReentrantLock staticLock =
2222 new AutoClosableReentrantLock ();
2323 private volatile boolean hasManifestBeenRead = false ;
24- private volatile @ Nullable VersionInfoHolder versionInfo = null ;
24+ private final @ NotNull VersionInfoHolder versionInfo = new VersionInfoHolder () ;
2525 private @ NotNull AutoClosableReentrantLock lock = new AutoClosableReentrantLock ();
2626
2727 public static @ NotNull ManifestVersionReader getInstance () {
@@ -40,6 +40,9 @@ private ManifestVersionReader() {}
4040
4141 public @ Nullable VersionInfoHolder readOpenTelemetryVersion () {
4242 readManifestFiles ();
43+ if (versionInfo .sdkVersion == null ) {
44+ return null ;
45+ }
4346 return versionInfo ;
4447 }
4548
@@ -48,7 +51,6 @@ public void readManifestFiles() {
4851 return ;
4952 }
5053
51- @ Nullable VersionInfoHolder infoHolder = null ;
5254 try (final @ NotNull ISentryLifecycleToken ignored = lock .acquire ()) {
5355 if (hasManifestBeenRead ) {
5456 return ;
@@ -66,28 +68,30 @@ public void readManifestFiles() {
6668 final @ Nullable String packageName = mainAttributes .getValue ("Sentry-SDK-Package-Name" );
6769
6870 if (name != null && version != null ) {
69- infoHolder = new VersionInfoHolder ();
70- infoHolder .sdkName = name ;
71- infoHolder .sdkVersion = version ;
72- infoHolder .packages .add (
73- new SentryPackage ("maven:io.sentry:sentry-opentelemetry-agent" , version ));
71+ versionInfo .sdkName = name ;
72+ versionInfo .sdkVersion = version ;
7473 final @ Nullable String otelVersion =
7574 mainAttributes .getValue ("Sentry-Opentelemetry-Version-Name" );
7675 if (otelVersion != null ) {
77- infoHolder .packages .add (
76+ versionInfo .packages .add (
7877 new SentryPackage ("maven:io.opentelemetry:opentelemetry-sdk" , otelVersion ));
79- infoHolder .integrations .add ("OpenTelemetry" );
78+ versionInfo .integrations .add ("OpenTelemetry" );
8079 }
8180 final @ Nullable String otelJavaagentVersion =
8281 mainAttributes .getValue ("Sentry-Opentelemetry-Javaagent-Version-Name" );
8382 if (otelJavaagentVersion != null ) {
84- infoHolder .packages .add (
83+ versionInfo .packages .add (
8584 new SentryPackage (
8685 "maven:io.opentelemetry.javaagent:opentelemetry-javaagent" ,
8786 otelJavaagentVersion ));
88- infoHolder .integrations .add ("OpenTelemetry-Agent" );
87+ versionInfo .integrations .add ("OpenTelemetry-Agent" );
88+ }
89+ if (name .equals ("sentry.java.opentelemetry.agentless" )) {
90+ SentryIntegrationPackageStorage .getInstance ().addIntegration ("OpenTelemetry-Agentless" );
91+ }
92+ if (name .equals ("sentry.java.opentelemetry.agentless-spring" )) {
93+ SentryIntegrationPackageStorage .getInstance ().addIntegration ("OpenTelemetry-Agentless-Spring" );
8994 }
90- break ;
9195 }
9296
9397 if (sdkName != null
@@ -105,13 +109,12 @@ public void readManifestFiles() {
105109 // ignore
106110 } finally {
107111 hasManifestBeenRead = true ;
108- versionInfo = infoHolder ;
109112 }
110113 }
111114
112115 public static final class VersionInfoHolder {
113- private @ Nullable String sdkName ;
114- private @ Nullable String sdkVersion ;
116+ private volatile @ Nullable String sdkName ;
117+ private volatile @ Nullable String sdkVersion ;
115118 private List <SentryPackage > packages = new ArrayList <>();
116119 private List <String > integrations = new ArrayList <>();
117120
0 commit comments