1 package org.opendaylight.controller.config.yang.config.alto_provider.impl;
3 import org.opendaylight.alto.provider.AltoProvider;
4 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
5 import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
6 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
7 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
8 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev150404.AltoServiceService;
10 import org.opendaylight.yangtools.concepts.ListenerRegistration;
11 import org.slf4j.Logger;
12 import org.slf4j.LoggerFactory;
14 public class AltoProviderModule extends AbstractAltoProviderModule {
15 private static final Logger log = LoggerFactory.getLogger(AltoProviderModule.class);
17 public AltoProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
18 super(identifier, dependencyResolver);
21 public AltoProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.config.alto_provider.impl.AltoProviderModule oldModule, java.lang.AutoCloseable oldInstance) {
22 super(identifier, dependencyResolver, oldModule, oldInstance);
26 public void customValidation() {
27 // add custom validation form module attributes here.
31 public java.lang.AutoCloseable createInstance() {
32 final AltoProvider altoProvider = new AltoProvider();
34 DataBroker dataBrokerService = getDataBrokerDependency();
35 altoProvider.setDataProvider(dataBrokerService);
37 final BindingAwareBroker.RpcRegistration<AltoServiceService> rpcRegistration = getRpcRegistryDependency()
38 .addRpcImplementation(AltoServiceService.class, altoProvider);
40 final ListenerRegistration<DataChangeListener> altoDataChangeListenerRegistration =
41 dataBrokerService.registerDataChangeListener(LogicalDatastoreType.CONFIGURATION, AltoProvider.ALTO_IID, altoProvider, DataChangeScope.SUBTREE);
42 final AltoProviderRuntimeRegistration runtimeReg = getRootRuntimeBeanRegistratorWrapper().register(altoProvider);
44 final class AutoCloseableAlto implements AutoCloseable {
46 public void close() throws Exception {
47 rpcRegistration.close();
48 altoDataChangeListenerRegistration.close();
54 return new AutoCloseableAlto();