Author: marrs
Date: Tue Dec 22 13:38:38 2009
New Revision: 893164

URL: http://svn.apache.org/viewvc?rev=893164&view=rev
Log:
added a method to specify a service dependency that is based only on a filter 
condition

Modified:
    
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/dependencies/ServiceDependency.java
    
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java

Modified: 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/dependencies/ServiceDependency.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/dependencies/ServiceDependency.java?rev=893164&r1=893163&r2=893164&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/dependencies/ServiceDependency.java
 (original)
+++ 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/dependencies/ServiceDependency.java
 Tue Dec 22 13:38:38 2009
@@ -47,6 +47,16 @@
      * @return this service dependency
      */
     ServiceDependency setService(Class serviceName, String serviceFilter);
+    
+    /**
+     * Sets the filter for the services that should be tracked. Any service 
object
+     * matching the filter will be returned, without any additional filter on 
the
+     * class.
+     * 
+     * @param serviceFilter the filter condition
+     * @return this service dependency
+     */
+    ServiceDependency setService(String serviceFilter);
 
     /**
      * Sets the name of the service that should be tracked. You can either 
specify

Modified: 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java?rev=893164&r1=893163&r2=893164&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java
 (original)
+++ 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java
 Tue Dec 22 13:38:38 2009
@@ -545,6 +545,20 @@
         m_trackedServiceReference = null;
         return this;
     }
+    
+    public synchronized ServiceDependency setService(String serviceFilter) {
+        ensureNotActive();
+        if (serviceFilter == null) {
+            throw new IllegalArgumentException("Service filter cannot be 
null.");
+        }
+        m_trackedServiceName = Object.class;
+        if (serviceFilter != null) {
+            m_trackedServiceFilterUnmodified = serviceFilter;
+            m_trackedServiceFilter = serviceFilter;
+        }
+        m_trackedServiceReference = null;
+        return this;
+    }
 
     /**
      * Sets the name of the service that should be tracked. You can either 
specify


Reply via email to