+ /**
+ * Can be used during validation or commit phase to get attribute value of
+ * dependent module.
+ *
+ * @param name
+ * either direct ObjectName of a Module (type=Module) or service
+ * reference (type=ServiceReference) of dependent Module
+ * @param attribute
+ * String identifying attribute name in JMX. Note that attributes
+ * start with upper case. See
+ * {@link org.opendaylight.controller.config.api.JmxAttribute#getAttributeName()}
+ */
+ Object getAttribute(ObjectName name, String attribute)
+ throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException;
+
+ /**
+ * Helper method around.
+ * {@link javax.management
+ * .JMX#newMXBeanProxy(javax.management.MBeanServerConnection, javax.management.ObjectName, Class)}}.
+ *
+ * Returns MXBean proxy for dependent module. Can be used during validation or
+ * commit phase to inspect dependent module's attributes.
+ *
+ * @param objectName
+ * either direct ObjectName of a Module (type=Module) or service
+ * reference (type=ServiceReference) of dependent Module
+ * @param interfaceClass
+ * MXBean interface to be used as a proxy
+ * @param <T>
+ * type of proxy for type safe return value
+ * @return instance of MXBean proxy
+ */
+ <T> T newMXBeanProxy(ObjectName objectName, Class<T> interfaceClass);
+
+ /**
+ * Check whether a dependency will be reused or (re)created. Useful when
+ * deciding if current module could be also reused.
+ *
+ * @param objectName
+ * ObjectName ID of a dependency
+ * @param jmxAttribute
+ * JMXAttribute ID of a dependency
+ * @return true if the dependency will be reused false otherwise
+ */
+ boolean canReuseDependency(ObjectName objectName, JmxAttribute jmxAttribute);