Filter out certain properties when propagating them (adapters on aspects went wrong as the aspect properties were copied).
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@988580 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/AdapterServiceImpl.java b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/AdapterServiceImpl.java
index e4f6b25..761c877 100644
--- a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/AdapterServiceImpl.java
+++ b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/AdapterServiceImpl.java
@@ -25,6 +25,7 @@
import org.apache.felix.dm.DependencyManager;
import org.apache.felix.dm.Service;
import org.apache.felix.dm.ServiceStateListener;
+import org.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
/**
@@ -63,7 +64,13 @@
Properties props = new Properties();
String[] keys = ref.getPropertyKeys();
for (int i = 0; i < keys.length; i++) {
- props.put(keys[i], ref.getProperty(keys[i]));
+ String key = keys[i];
+ if (key.equals(Constants.SERVICE_ID) || key.equals(Constants.SERVICE_RANKING) || key.equals(DependencyManager.ASPECT) || key.equals(Constants.OBJECTCLASS)) {
+ // do not copy these
+ }
+ else {
+ props.put(key, ref.getProperty(key));
+ }
}
if (m_serviceProperties != null) {
Enumeration e = m_serviceProperties.keys();