obtain the instance lazily
diff --git a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
index a32a3f5..93fcd37 100644
--- a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
+++ b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
@@ -348,16 +348,14 @@
cachingServiceReference.getProperty(
"org.apache.aries.jax.rs.whiteboard.application.scoped")));
if (applicationScoped) {
- ServiceObjects<T> serviceObjects = serviceTuple.getServiceObjects();
-
- T service = serviceObjects.getService();
-
- return OSGi.<ResourceProvider>just(
- new SingletonServiceReferenceResourceProvider(
- cachingServiceReference, service)
+ return just(
+ serviceTuple.getServiceObjects().getService()
).effects(
- __ -> {},
- __ -> serviceObjects.ungetService(service)
+ __ -> {},
+ serviceTuple.getServiceObjects()::ungetService
+ ).map(
+ service -> new SingletonServiceReferenceResourceProvider(
+ cachingServiceReference, service)
);
}