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=82bae44a01b60148b9105e4e8ef98cc1530daf9f;hb=ba4f2e7197ba694576dda2c163f0b2edc3552c8f;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..82bae44a01 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,13 +7,16 @@ */ package org.opendaylight.controller.config.manager.impl; +import java.util.Collection; 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.ServiceReferenceWritableRegistry; import org.opendaylight.controller.config.api.ValidationException; +import org.opendaylight.controller.config.spi.ModuleFactory; +import org.osgi.framework.BundleContext; /** * Defines contract between {@link ConfigTransactionControllerImpl} (producer) @@ -22,11 +25,15 @@ import org.opendaylight.controller.config.api.ValidationException; interface ConfigTransactionControllerInternal extends ConfigTransactionControllerImplMXBean { + + /** - * 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 +69,10 @@ interface ConfigTransactionControllerInternal extends */ boolean isClosed(); + List getCurrentlyRegisteredFactories(); + + BundleContext getModuleFactoryBundleContext(String factoryName); + + ServiceReferenceWritableRegistry getWritableRegistry(); + }