You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ma...@apache.org on 2009/12/22 14:38:39 UTC

svn commit: r893164 - in /felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm: dependencies/ServiceDependency.java impl/dependencies/ServiceDependencyImpl.java

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