*/
package org.opendaylight.controller.config.manager.impl;
-import java.util.List;
-
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.ObjectName;
-
import org.opendaylight.controller.config.api.ModuleIdentifier;
import org.opendaylight.controller.config.api.ValidationException;
+import org.opendaylight.controller.config.spi.ModuleFactory;
+import org.osgi.framework.BundleContext;
+
+import javax.management.ObjectName;
+import java.util.Collection;
+import java.util.List;
/**
* Defines contract between {@link ConfigTransactionControllerImpl} (producer)
* and {@link ConfigRegistryImpl} (consumer).
*/
interface ConfigTransactionControllerInternal extends
- ConfigTransactionControllerImplMXBean {
+ ConfigTransactionControllerImplMXBean, AutoCloseable {
+
+
/**
- * Copy already committed module to current transaction.
+ * 1, Copy already committed modules to current transaction.
+ * 2, Diff: compute added and removed factories from last run, then create new modules using
+ * {@link org.opendaylight.controller.config.spi.ModuleFactory#getDefaultModules(org.opendaylight.controller.config.api.DependencyResolverFactory)}
+ * and remove modules belonging to removed factories.
*/
- void copyExistingModule(ModuleInternalInfo oldConfigBeanInfo)
- throws InstanceAlreadyExistsException;
+ void copyExistingModulesAndProcessFactoryDiff(Collection<ModuleInternalInfo> entries, List<ModuleFactory> lastListOfFactories);
/**
* Call {@link org.opendaylight.controller.config.spi.Module#validate()} on
*/
boolean isClosed();
+ List<ModuleFactory> getCurrentlyRegisteredFactories();
+
+ BundleContext getModuleFactoryBundleContext(String factoryName);
+
+ SearchableServiceReferenceWritableRegistry getWritableRegistry();
+
+ TransactionIdentifier getTransactionIdentifier();
+
+ @Override
+ void close();
}