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/10 10:48:19 UTC

svn commit: r889163 - in /felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm: dependencies/ impl/ impl/dependencies/

Author: marrs
Date: Thu Dec 10 09:48:17 2009
New Revision: 889163

URL: http://svn.apache.org/viewvc?rev=889163&view=rev
Log:
added generic support for propagation of a dependency's properties to a service, implemented for configuration and resource dependencies

Modified:
    felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/dependencies/Dependency.java
    felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ServiceImpl.java
    felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/BundleDependencyImpl.java
    felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
    felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ResourceDependencyImpl.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/Dependency.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/dependencies/Dependency.java?rev=889163&r1=889162&r2=889163&view=diff
==============================================================================
--- felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/dependencies/Dependency.java (original)
+++ felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/dependencies/Dependency.java Thu Dec 10 09:48:17 2009
@@ -18,6 +18,8 @@
  */
 package org.apache.felix.dm.dependencies;
 
+import java.util.Dictionary;
+
 import org.apache.felix.dm.impl.dependencies.DependencyService;
 
 /**
@@ -104,4 +106,7 @@
      * @param service
      */
     public void invokeRemoved(DependencyService service);
+    
+    public boolean isPropagated();
+    public Dictionary getProperties();
 }

Modified: felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ServiceImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ServiceImpl.java?rev=889163&r1=889162&r2=889163&view=diff
==============================================================================
--- felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ServiceImpl.java (original)
+++ felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ServiceImpl.java Thu Dec 10 09:48:17 2009
@@ -781,12 +781,9 @@
 		addTo(properties, m_serviceProperties);
 		for (int i = 0; i < m_dependencies.size(); i++) {
 			Dependency d = (Dependency) m_dependencies.get(i);
-			if (d instanceof ConfigurationDependencyImpl) {
-				ConfigurationDependencyImpl cd = (ConfigurationDependencyImpl) d;
-				if (cd.isPropagated()) {
-					Dictionary dict = cd.getConfiguration();
-					addTo(properties, dict);
-				}
+			if (d.isPropagated()) {
+				Dictionary dict = d.getProperties();
+				addTo(properties, dict);
 			}
 		}
 		if (properties.size() == 0) {

Modified: felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/BundleDependencyImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/BundleDependencyImpl.java?rev=889163&r1=889162&r2=889163&view=diff
==============================================================================
--- felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/BundleDependencyImpl.java (original)
+++ felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/BundleDependencyImpl.java Thu Dec 10 09:48:17 2009
@@ -389,4 +389,14 @@
         invokeRemoved(service, m_bundleInstance);
         m_bundleInstance = null;
     }
+
+    public Dictionary getProperties() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public boolean isPropagated() {
+        // TODO Auto-generated method stub
+        return false;
+    }
 }

Modified: felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java?rev=889163&r1=889162&r2=889163&view=diff
==============================================================================
--- felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java (original)
+++ felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java Thu Dec 10 09:48:17 2009
@@ -298,4 +298,8 @@
         // TODO Auto-generated method stub
         return false;
     }
+
+    public Dictionary getProperties() {
+        return getConfiguration();
+    }
 }

Modified: felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ResourceDependencyImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ResourceDependencyImpl.java?rev=889163&r1=889162&r2=889163&view=diff
==============================================================================
--- felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ResourceDependencyImpl.java (original)
+++ felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ResourceDependencyImpl.java Thu Dec 10 09:48:17 2009
@@ -22,6 +22,7 @@
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.util.ArrayList;
+import java.util.Dictionary;
 import java.util.List;
 import java.util.Properties;
 
@@ -47,11 +48,11 @@
     protected List m_services = new ArrayList();
 	private boolean m_isRequired;
 	private String m_resourceFilter;
-//	private Resource m_resource;
 	private Resource m_trackedResource;
     private boolean m_isStarted;
     private List m_resources = new ArrayList();
     private Resource m_resourceInstance;
+    private boolean m_propagate;
 	
     public ResourceDependencyImpl(BundleContext context, Logger logger) {
     	m_context = context;
@@ -414,4 +415,28 @@
         invokeRemoved(service, m_resourceInstance);
         m_resourceInstance = null;
     }
+
+    public ResourceDependency setPropagate(boolean propagate) {
+        ensureNotActive();
+        m_propagate = propagate;
+        return this;
+    }
+    
+    public Dictionary getProperties() {
+        Resource resource = lookupResource();
+        if (resource != null) {
+            Properties props = new Properties();
+            props.put(Resource.NAME, resource.getName());
+            props.put(Resource.PATH, resource.getPath());
+            props.put(Resource.REPOSITORY, resource.getRepository());
+            return props;
+        }
+        else {
+            throw new IllegalStateException("cannot find resource");
+        }
+    }
+
+    public boolean isPropagated() {
+        return m_propagate;
+    }
 }

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=889163&r1=889162&r2=889163&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 Thu Dec 10 09:48:17 2009
@@ -23,6 +23,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Comparator;
+import java.util.Dictionary;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -753,4 +754,14 @@
         m_reference = null;
         m_serviceInstance = null;
     }
+
+    public Dictionary getProperties() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public boolean isPropagated() {
+        // TODO Auto-generated method stub
+        return false;
+    }
 }