Deprecate md-sal config modules
[controller.git] / opendaylight / md-sal / sal-binding-config / src / main / java / org / opendaylight / controller / config / yang / md / sal / binding / impl / BindingBrokerImplModule.java
1 /*
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 /**
9  * Generated file
10
11  * Generated from: yang module name: opendaylight-sal-binding-broker-impl  yang module local name: binding-broker-impl
12  * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
13  * Generated at: Wed Nov 20 17:33:01 CET 2013
14  *
15  * Do not modify this file unless it is present under src/main directory
16  */
17 package org.opendaylight.controller.config.yang.md.sal.binding.impl;
18
19 import org.opendaylight.controller.md.sal.binding.api.MountPointService;
20 import org.opendaylight.controller.md.sal.binding.compat.HeliumRpcProviderRegistry;
21 import org.opendaylight.controller.md.sal.binding.compat.HydrogenMountProvisionServiceAdapter;
22 import org.opendaylight.controller.md.sal.binding.impl.BindingDOMMountPointServiceAdapter;
23 import org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcProviderServiceAdapter;
24 import org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcServiceAdapter;
25 import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
26 import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService;
27 import org.opendaylight.controller.md.sal.dom.api.DOMRpcProviderService;
28 import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
29 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
30 import org.opendaylight.controller.sal.binding.api.mount.MountProviderService;
31 import org.opendaylight.controller.sal.binding.impl.RootBindingAwareBroker;
32 import org.opendaylight.controller.sal.core.api.Broker;
33 import org.opendaylight.controller.sal.core.api.Broker.ProviderSession;
34
35 /**
36  * @deprecated Replaced by blueprint wiring
37  */
38 @Deprecated
39 public final class BindingBrokerImplModule extends
40         org.opendaylight.controller.config.yang.md.sal.binding.impl.AbstractBindingBrokerImplModule {
41
42     public BindingBrokerImplModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier,
43             final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
44         super(identifier, dependencyResolver);
45     }
46
47     public BindingBrokerImplModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier,
48             final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
49             final BindingBrokerImplModule oldModule, final java.lang.AutoCloseable oldInstance) {
50         super(identifier, dependencyResolver, oldModule, oldInstance);
51     }
52
53     @Override
54     public void validate() {
55         super.validate();
56     }
57
58     @Override
59     public RootBindingAwareBroker createInstance() {
60         final Broker domBroker = getDomAsyncBrokerDependency();
61         final BindingToNormalizedNodeCodec codec = getBindingMappingServiceDependency();
62         final ProviderSession session = domBroker.registerProvider(new DummyDOMProvider());
63
64         final MountPointService mount = createMountPointAdapter(codec,session);
65         final BindingDOMRpcServiceAdapter rpcConsumer = createRpcConsumer(codec,session);
66         final BindingDOMRpcProviderServiceAdapter rpcProvider = createRpcProvider(codec,session);
67         final RootBindingAwareBroker broker = new RootBindingAwareBroker(getIdentifier().getInstanceName());
68         final RpcProviderRegistry heliumRpcBroker = new HeliumRpcProviderRegistry(rpcConsumer, rpcProvider);
69         final MountProviderService legacyMount = createLegacyMountPointService(mount);
70
71
72         broker.setLegacyDataBroker(getDataBrokerDependency());
73         broker.setNotificationBroker(getNotificationServiceDependency());
74         if (getNotificationPublishServiceDependency() != null) {
75             broker.setNotificationPublishService(getNotificationPublishServiceDependency());
76         }
77         broker.setRpcBroker(heliumRpcBroker);
78         broker.setDataBroker(getRootDataBrokerDependency());
79         broker.setMountService(mount);
80         broker.setLegacyMountManager(legacyMount);
81         broker.start();
82         return broker;
83     }
84
85
86     @SuppressWarnings("deprecation")
87     private MountProviderService createLegacyMountPointService(final MountPointService service) {
88         if(service != null) {
89             return new HydrogenMountProvisionServiceAdapter(service);
90         }
91         return null;
92     }
93
94     private BindingDOMRpcProviderServiceAdapter createRpcProvider(final BindingToNormalizedNodeCodec codec,
95             final ProviderSession session) {
96         final DOMRpcProviderService domService = session.getService(DOMRpcProviderService.class);
97         if(domService != null) {
98             return new BindingDOMRpcProviderServiceAdapter(domService, codec);
99         }
100         return null;
101     }
102
103     private BindingDOMRpcServiceAdapter createRpcConsumer(final BindingToNormalizedNodeCodec codec, final ProviderSession session) {
104         final DOMRpcService domService = session.getService(DOMRpcService.class);
105         if(domService != null) {
106             return new BindingDOMRpcServiceAdapter(domService, codec);
107         }
108         return null;
109     }
110
111     private MountPointService createMountPointAdapter(final BindingToNormalizedNodeCodec codec, final ProviderSession session) {
112         final DOMMountPointService domService = session.getService(DOMMountPointService.class);
113         if(domService != null) {
114             return new BindingDOMMountPointServiceAdapter(domService, codec);
115         }
116         return null;
117     }
118
119 }