X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fmanager%2Fimpl%2FConfigTransactionControllerInternal.java;h=c9df3409db46366acbae22d44166e05202e844fc;hb=f3714846c0eedf09fe83844c0dc30889f790fbc2;hp=58d3bc1e4b97c4a41af3b9bf43900feb7aaf7eb1;hpb=9fb64948564e252018f9b1e13e7cea2c92f991aa;p=controller.git diff --git a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerInternal.java b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerInternal.java index 58d3bc1e4b..c9df3409db 100644 --- a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerInternal.java +++ b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerInternal.java @@ -7,26 +7,31 @@ */ 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 entries, List lastListOfFactories); /** * Call {@link org.opendaylight.controller.config.spi.Module#validate()} on @@ -62,4 +67,14 @@ interface ConfigTransactionControllerInternal extends */ boolean isClosed(); + List getCurrentlyRegisteredFactories(); + + BundleContext getModuleFactoryBundleContext(String factoryName); + + SearchableServiceReferenceWritableRegistry getWritableRegistry(); + + TransactionIdentifier getTransactionIdentifier(); + + @Override + void close(); }