better respect of serviceref#unget
diff --git a/winegrower-core/src/main/java/org/apache/winegrower/deployer/BundleContextImpl.java b/winegrower-core/src/main/java/org/apache/winegrower/deployer/BundleContextImpl.java
index ffcc271..e1f3133 100644
--- a/winegrower-core/src/main/java/org/apache/winegrower/deployer/BundleContextImpl.java
+++ b/winegrower-core/src/main/java/org/apache/winegrower/deployer/BundleContextImpl.java
@@ -238,7 +238,7 @@
         if (Constants.SCOPE_BUNDLE.equals(serviceReference.getProperty(Constants.SERVICE_SCOPE))) {
             return serviceInstances.remove(serviceReference) != null;
         }
-        return serviceReference.unget();
+        return serviceReference.unget(null);
     }
 
     @Override
diff --git a/winegrower-core/src/main/java/org/apache/winegrower/deployer/ServiceObjectsImpl.java b/winegrower-core/src/main/java/org/apache/winegrower/deployer/ServiceObjectsImpl.java
index 4d178ac..75a1783 100644
--- a/winegrower-core/src/main/java/org/apache/winegrower/deployer/ServiceObjectsImpl.java
+++ b/winegrower-core/src/main/java/org/apache/winegrower/deployer/ServiceObjectsImpl.java
@@ -35,7 +35,7 @@
         if (reference.hasFactory()) {
             ServiceFactory.class.cast(reference.getFactory()).ungetService(reference.getBundle(), reference.getRegistration(), service);
         } else if (reference.getReference() == service) {
-            reference.unget();
+            reference.unget(service);
         }
     }
 
diff --git a/winegrower-core/src/main/java/org/apache/winegrower/service/ServiceReferenceImpl.java b/winegrower-core/src/main/java/org/apache/winegrower/service/ServiceReferenceImpl.java
index 4184e1d..7118e95 100644
--- a/winegrower-core/src/main/java/org/apache/winegrower/service/ServiceReferenceImpl.java
+++ b/winegrower-core/src/main/java/org/apache/winegrower/service/ServiceReferenceImpl.java
@@ -93,9 +93,12 @@
         return properties;
     }
 
-    public boolean unget() {
+    public boolean unget(final Object instance) {
         if (usesFactory) {
-            throw new UnsupportedOperationException();
+            if (instance == null) {
+                return false;
+            }
+            ServiceFactory.class.cast(reference).ungetService(bundle, registration, instance);
         }
         return true;
     }