Author: marrs
Date: Mon Nov 16 07:51:10 2009
New Revision: 880645

URL: http://svn.apache.org/viewvc?rev=880645&view=rev
Log:
FELIX-1278 applied the patch so the dependency remembers someone explicitly 
setting auto config.

Modified:
    
felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceDependency.java

Modified: 
felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceDependency.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceDependency.java?rev=880645&r1=880644&r2=880645&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceDependency.java
 (original)
+++ 
felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceDependency.java
 Mon Nov 16 07:51:10 2009
@@ -60,6 +60,7 @@
     private Object m_serviceInstance;
     private final Logger m_logger;
     private String m_autoConfigInstance;
+    private boolean m_autoConfigInvoked;
     private Object m_defaultImplementation;
     private Object m_defaultImplementationInstance;
     
@@ -596,6 +597,7 @@
     public synchronized ServiceDependency setAutoConfig(boolean autoConfig) {
         ensureNotActive();
         m_autoConfig = autoConfig;
+        m_autoConfigInvoked = true;
         return this;
     }
     
@@ -611,6 +613,7 @@
         ensureNotActive();
         m_autoConfig = (instanceName != null);
         m_autoConfigInstance = instanceName;
+        m_autoConfigInvoked = true;
         return this;
     }
     
@@ -672,8 +675,9 @@
      */
     public synchronized ServiceDependency setCallbacks(Object instance, String 
added, String changed, String removed) {
         ensureNotActive();
-        // if at least one valid callback is specified, we turn off auto 
configuration
-        if (added != null || removed != null || changed != null) {
+        // if at least one valid callback is specified, we turn off auto 
configuration, unless
+        // someone already explicitly invoked autoConfig
+        if ((added != null || removed != null || changed != null) && ! 
m_autoConfigInvoked) {
             setAutoConfig(false);
         }
         m_callbackInstance = instance;


Reply via email to