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.