f7d08e005d0f81ab0b521af25cb7ae19db5e6851
[alto.git] / alto-provider / src / main / java / org / opendaylight / controller / config / yang / config / alto_provider / impl / AltoProviderModule.java
1 package org.opendaylight.controller.config.yang.config.alto_provider.impl;
2
3 import org.opendaylight.controller.alto.provider.AltoProvider;
4 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
5 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
6 import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev150404.AltoServiceService;
7
8 public class AltoProviderModule extends AbstractAltoProviderModule {
9     public AltoProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
10         super(identifier, dependencyResolver);
11     }
12
13     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) {
14         super(identifier, dependencyResolver, oldModule, oldInstance);
15     }
16
17     @Override
18     public void customValidation() {
19         // add custom validation form module attributes here.
20     }
21
22     @Override
23     public java.lang.AutoCloseable createInstance() {
24                 final AltoProvider altoProvider = new AltoProvider();
25
26                 DataBroker dataBrokerService = getDataBrokerDependency();
27                 altoProvider.setDataProvider(dataBrokerService);
28                 
29                 final BindingAwareBroker.RpcRegistration<AltoServiceService> rpcRegistration = getRpcRegistryDependency()
30             .addRpcImplementation(AltoServiceService.class, altoProvider);
31                 final AltoProviderRuntimeRegistration runtimeReg = getRootRuntimeBeanRegistratorWrapper().register(altoProvider);
32                 
33                 final class AutoCloseableAlto implements AutoCloseable {
34                         @Override
35                         public void close() throws Exception {
36                             rpcRegistration.close();
37                             runtimeReg.close();
38                             altoProvider.close();
39                         }
40                 }
41
42                 return new AutoCloseableAlto();
43     }
44
45 }