[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(