X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Fmd%2Fsal%2Fdom%2Fimpl%2FSchemaServiceImplSingletonModuleFactory.java;h=0908fe573bbf28ba4d285e046f13e14ce5ece55f;hb=a1f366e3d9e04524d44a4c2ea40709b7a410d39c;hp=22ad3fde0029707302201cf079ce3bdfc12295b1;hpb=9303b14b9dba1a940f0d0a6fe1604bfcd0f9e294;p=controller.git diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/SchemaServiceImplSingletonModuleFactory.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/SchemaServiceImplSingletonModuleFactory.java index 22ad3fde00..0908fe573b 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/SchemaServiceImplSingletonModuleFactory.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/SchemaServiceImplSingletonModuleFactory.java @@ -7,38 +7,31 @@ */ package org.opendaylight.controller.config.yang.md.sal.dom.impl; -import java.util.Collections; -import java.util.Set; - import org.opendaylight.controller.config.api.DependencyResolver; -import org.opendaylight.controller.config.api.DependencyResolverFactory; -import org.opendaylight.controller.config.api.ModuleIdentifier; -import org.opendaylight.controller.config.spi.Module; import org.osgi.framework.BundleContext; -/** -* -*/ +import static com.google.common.base.Preconditions.checkArgument; + public class SchemaServiceImplSingletonModuleFactory extends org.opendaylight.controller.config.yang.md.sal.dom.impl.AbstractSchemaServiceImplSingletonModuleFactory { - private static final ModuleIdentifier IDENTIFIER = new ModuleIdentifier(NAME, "yang-schema-service"); - public static SchemaServiceImplSingletonModule SINGLETON; + public static final String SINGLETON_NAME = "yang-schema-service"; @Override - public Module createModule(String instanceName, DependencyResolver dependencyResolver, BundleContext bundleContext) { - throw new UnsupportedOperationException("Only default instance supported."); + public SchemaServiceImplSingletonModule instantiateModule(String instanceName, DependencyResolver dependencyResolver, SchemaServiceImplSingletonModule oldModule, AutoCloseable oldInstance, BundleContext bundleContext) { + checkArgument(SINGLETON_NAME.equals(instanceName),"Illegal instance name '" + instanceName + "', only allowed name is " + SINGLETON_NAME); + SchemaServiceImplSingletonModule module = super.instantiateModule(instanceName, dependencyResolver, oldModule, oldInstance, bundleContext); + // FIXME bundle context should not be passed around + module.setBundleContext(bundleContext); + return module; } @Override - public Set getDefaultModules(DependencyResolverFactory dependencyResolverFactory, - BundleContext bundleContext) { - DependencyResolver dependencyResolver = dependencyResolverFactory.createDependencyResolver(IDENTIFIER); - - if (SINGLETON == null) { - SINGLETON = new SchemaServiceImplSingletonModule(IDENTIFIER, dependencyResolver); - SINGLETON.setBundleContext(bundleContext); - } - return Collections.singleton(SINGLETON); + public SchemaServiceImplSingletonModule instantiateModule(String instanceName, DependencyResolver dependencyResolver, BundleContext bundleContext) { + checkArgument(SINGLETON_NAME.equals(instanceName),"Illegal instance name '" + instanceName + "', only allowed name is " + SINGLETON_NAME); + SchemaServiceImplSingletonModule module = super.instantiateModule(instanceName, dependencyResolver, bundleContext); + // FIXME bundle context should not be passed around + module.setBundleContext(bundleContext); + return module; } }