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;
+ }
}