[ARIES-2001] Dispose the serviceTuple as soon as the registration is complete
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 6fd10b5..a32a3f5 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
@@ -333,7 +333,7 @@
}
}
- private static <T> OSGi<ResourceProvider> getResourceProvider(
+ private static <T> OSGi<? extends ResourceProvider> getResourceProvider(
ServiceTuple<T> serviceTuple) {
CachingServiceReference<T> cachingServiceReference =
@@ -362,10 +362,16 @@
}
return just(
- new PrototypeServiceReferenceResourceProvider(
- cachingServiceReference,
- serviceTuple.getService().getClass(),
- serviceTuple.getServiceObjects()));
+ new PrototypeServiceReferenceResourceProvider(
+ cachingServiceReference,
+ serviceTuple.getService().getClass(),
+ serviceTuple.getServiceObjects())
+ ).effects(
+ __ -> {},
+ __ -> serviceTuple.dispose(),
+ __ -> {},
+ __ -> {}
+ );
}
else {
return just(