diff --git a/android-agent/src/main/java/io/opentelemetry/android/OpenTelemetryRumBuilder.java b/android-agent/src/main/java/io/opentelemetry/android/OpenTelemetryRumBuilder.java index e620423c1..1bc423f7d 100644 --- a/android-agent/src/main/java/io/opentelemetry/android/OpenTelemetryRumBuilder.java +++ b/android-agent/src/main/java/io/opentelemetry/android/OpenTelemetryRumBuilder.java @@ -334,6 +334,7 @@ public OpenTelemetryRum build() { SdkPreconfiguredRumBuilder delegate = new SdkPreconfiguredRumBuilder(application, sdk, sessionId); instrumentationInstallers.forEach(delegate::addInstrumentation); + ServiceManager.get().start(); return delegate.build(); } diff --git a/android-agent/src/main/java/io/opentelemetry/android/internal/services/ServiceManager.java b/android-agent/src/main/java/io/opentelemetry/android/internal/services/ServiceManager.java index 2920c6b03..12d9451cf 100644 --- a/android-agent/src/main/java/io/opentelemetry/android/internal/services/ServiceManager.java +++ b/android-agent/src/main/java/io/opentelemetry/android/internal/services/ServiceManager.java @@ -76,9 +76,6 @@ public T getService(Class type) { } public static void resetForTest() { - if (instance != null) { - instance.stop(); - } instance = null; } diff --git a/android-agent/src/test/java/io/opentelemetry/android/OpenTelemetryRumBuilderTest.java b/android-agent/src/test/java/io/opentelemetry/android/OpenTelemetryRumBuilderTest.java index ff0862380..b0ffb761e 100644 --- a/android-agent/src/test/java/io/opentelemetry/android/OpenTelemetryRumBuilderTest.java +++ b/android-agent/src/test/java/io/opentelemetry/android/OpenTelemetryRumBuilderTest.java @@ -86,6 +86,7 @@ class OpenTelemetryRumBuilderTest { void setup() { when(application.getApplicationContext()).thenReturn(applicationContext); when(application.getMainLooper()).thenReturn(looper); + ServiceManager.resetForTest(); } @AfterEach @@ -315,6 +316,15 @@ void verifyServicesAreInitialized() { assertThat(ServiceManager.get()).isNotNull(); } + @Test + void verifyServicesAreStarted() { + setUpServiceManager(); + + makeBuilder().build(); + + verify(ServiceManager.get()).start(); + } + private static void setUpServiceManager(Service... services) { ServiceManager serviceManager = mock(); for (Service service : services) { diff --git a/android-agent/src/test/java/io/opentelemetry/android/internal/services/ServiceManagerTest.java b/android-agent/src/test/java/io/opentelemetry/android/internal/services/ServiceManagerTest.java index af921214f..73dc475eb 100644 --- a/android-agent/src/test/java/io/opentelemetry/android/internal/services/ServiceManagerTest.java +++ b/android-agent/src/test/java/io/opentelemetry/android/internal/services/ServiceManagerTest.java @@ -84,7 +84,7 @@ public void delegatingStopCall() { @Test public void validateRegisteredServices() { - ServiceManager.setForTest(null); + ServiceManager.resetForTest(); List> expectedServices = new ArrayList<>(); expectedServices.add(PreferencesService.class); expectedServices.add(CacheStorageService.class);