FELIX-5146: Service adapters must not turn on autoconf mode if callbacks are ever used.
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1720962 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/AdapterServiceImpl.java b/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/AdapterServiceImpl.java
index 6ee3264..202f667 100644
--- a/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/AdapterServiceImpl.java
+++ b/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/AdapterServiceImpl.java
@@ -57,13 +57,12 @@
Object callbackInstance, String add, String change, String remove, String swap, boolean propagate)
{
super(dm.createComponent()); // This service will be filtered by our super class, allowing us to take control.
- m_component.setImplementation(new AdapterImpl(adapteeInterface, adapteeFilter, autoConfig, callbackInstance, add,
- change, remove, swap, propagate))
- .add(dm.createServiceDependency()
- .setService(adapteeInterface, adapteeFilter)
- .setAutoConfig(false)
- .setCallbacks("added", null, "removed", "swapped"))
- .setCallbacks("init", null, "stop", null);
+ m_component.setImplementation(new AdapterImpl(adapteeInterface, adapteeFilter, autoConfig, callbackInstance, add, change, remove, swap, propagate))
+ .add(dm.createServiceDependency()
+ .setService(adapteeInterface, adapteeFilter)
+ .setAutoConfig(false)
+ .setCallbacks("added", null, "removed", "swapped"))
+ .setCallbacks("init", null, "stop", null);
}
public class AdapterImpl extends AbstractDecorator {
@@ -106,9 +105,6 @@
}
if (m_autoConfig != null) {
dependency.setAutoConfig(m_autoConfig);
- } else {
- // enable auto configuration if there is no add callback or if there is one on a callbackInstance
- dependency.setAutoConfig(m_add == null || (m_add != null && m_dependencyCallbackInstance != null));
}
if (m_propagate) {