Refactored to use InvocationUtil which is dynamic proxy aware.
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@955928 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
index c6f37dd..6a3a8b0 100644
--- a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
+++ b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
@@ -19,7 +19,6 @@
package org.apache.felix.dm.impl.dependencies;
import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Dictionary;
import java.util.HashSet;
@@ -29,6 +28,7 @@
import org.apache.felix.dm.dependencies.ConfigurationDependency;
import org.apache.felix.dm.dependencies.PropertyMetaData;
+import org.apache.felix.dm.impl.InvocationUtil;
import org.apache.felix.dm.impl.Logger;
import org.apache.felix.dm.impl.metatype.MetaTypeProviderImpl;
import org.apache.felix.dm.management.ServiceComponentDependency;
@@ -204,17 +204,14 @@
}
if (wasAdded) {
String callback = (m_callback == null) ? "updated" : m_callback;
- Method m;
try {
- m = service.getClass().getDeclaredMethod(callback, new Class[] { Dictionary.class });
- m.setAccessible(true);
// if exception is thrown here, what does that mean for the
// state of this dependency? how smart do we want to be??
// it's okay like this, if the new settings contain errors, we
// remain in the state we were, assuming that any error causes
// the "old" configuration to stay in effect.
// CM will log any thrown exceptions.
- m.invoke(service, new Object[] { settings });
+ InvocationUtil.invokeMethod(service, service.getClass(), callback, new Class[][] {{ Dictionary.class }}, new Object[][] {{ settings }}, false);
}
catch (InvocationTargetException e) {
// The component has thrown an exception during it's callback invocation.