1 module opendaylight-sal-binding-broker-impl {
3 namespace "urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl";
6 import config { prefix config; revision-date 2013-04-05; }
7 import opendaylight-md-sal-binding {prefix sal;}
8 import opendaylight-md-sal-binding-v1-codec {prefix v1codec;}
9 import opendaylight-md-sal-dom {prefix dom;}
10 import opendaylight-md-sal-common {prefix common;}
13 "Service definition for Binding Aware MD-SAL.";
15 revision "2013-10-28" {
20 identity binding-dom-mapping-service {
21 base config:service-type;
22 config:java-class "org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec";
23 config:disable-osgi-service-registration;
26 /* FIXME: move to opendaylight-md-sal-binding (cannot be there due to Class name confict with old implementation)*/
27 identity binding-new-notification-service {
29 base config:service-type;
30 config:java-class "org.opendaylight.controller.md.sal.binding.api.NotificationService";
31 config:disable-osgi-service-registration;
34 /* TODO: move to opendaylight-md-sal-binding (cannot be there due to Class name confict with old implementation)*/
35 identity binding-new-notification-publish-service {
37 base config:service-type;
38 config:java-class "org.opendaylight.controller.md.sal.binding.api.NotificationPublishService";
39 config:disable-osgi-service-registration;
42 identity binding-broker-impl {
44 base config:module-type;
45 config:provided-service sal:binding-broker-osgi-registry;
46 config:provided-service sal:binding-rpc-registry;
47 config:java-name-prefix BindingBrokerImpl;
50 identity binding-forwarded-data-broker {
52 base config:module-type;
53 config:provided-service sal:binding-async-data-broker;
54 config:java-name-prefix BindingAsyncDataBrokerImpl;
57 identity binding-notification-broker {
59 base config:module-type;
60 config:provided-service sal:binding-notification-service;
61 config:provided-service sal:binding-notification-subscription-service;
62 config:java-name-prefix NotificationBrokerImpl;
65 identity runtime-generated-mapping {
67 base config:module-type;
68 config:provided-service binding-dom-mapping-service;
69 config:provided-service sal:binding-codec-tree-factory;
70 config:provided-service sal:binding-normalized-node-serializer;
71 config:provided-service v1codec:binding-v1-codec-tree-factory;
72 config:provided-service v1codec:binding-v1-normalized-node-serializer;
73 config:java-name-prefix RuntimeMapping;
76 identity binding-notification-adapter {
78 base config:module-type;
79 config:provided-service binding-new-notification-service;
80 config:java-name-prefix BindingNotificationAdapter;
83 identity binding-notification-publish-adapter {
85 base config:module-type;
86 config:provided-service binding-new-notification-publish-service;
87 config:java-name-prefix BindingNotificationPublishAdapter;
90 grouping dom-forwarding-component {
92 container dom-async-broker {
93 uses config:service-ref {
96 config:required-identity dom:dom-broker-osgi-registry;
101 container binding-mapping-service {
102 uses config:service-ref {
105 config:required-identity binding-dom-mapping-service;
111 augment "/config:modules/config:module/config:configuration" {
112 case binding-broker-impl {
113 when "/config:modules/config:module/config:type = 'binding-broker-impl'";
116 container rpc-registry {
117 uses config:service-ref {
120 config:required-identity sal:binding-rpc-registry;
124 container binding-broker-impl {
125 uses dom-forwarding-component;
127 container notification-service {
129 uses config:service-ref {
132 config:required-identity sal:binding-notification-service;
137 container root-data-broker {
139 uses config:service-ref {
142 config:required-identity sal:binding-async-data-broker;
147 container notification-publish-service {
149 uses config:service-ref {
152 config:required-identity binding-new-notification-publish-service;
163 augment "/config:modules/config:module/config:configuration" {
164 case binding-forwarded-data-broker {
165 when "/config:modules/config:module/config:type = 'binding-forwarded-data-broker'";
166 container binding-forwarded-data-broker {
167 container dom-async-broker {
169 uses config:service-ref {
172 config:required-identity dom:dom-async-data-broker;
177 container binding-mapping-service {
179 uses config:service-ref {
182 config:required-identity binding-dom-mapping-service;
187 container schema-service {
189 uses config:service-ref {
192 config:required-identity dom:schema-service;
201 augment "/config:modules/config:module/config:configuration" {
202 case runtime-generated-mapping {
203 when "/config:modules/config:module/config:type = 'runtime-generated-mapping'";
204 leaf wait-for-schema {
212 augment "/config:modules/config:module/config:configuration" {
213 case binding-notification-broker {
214 when "/config:modules/config:module/config:type = 'binding-notification-broker'";
215 container notification-adapter {
217 uses config:service-ref {
220 config:required-identity binding-new-notification-service;
225 container notification-publish-adapter {
227 uses config:service-ref {
230 config:required-identity binding-new-notification-publish-service;
237 augment "/config:modules/config:module/config:state" {
238 case binding-notification-broker {
239 when "/config:modules/config:module/config:type = 'binding-notification-broker'";
240 uses common:notification-state;
244 augment "/config:modules/config:module/config:configuration" {
245 case binding-notification-adapter {
246 when "/config:modules/config:module/config:type = 'binding-notification-adapter'";
247 container binding-notification-adapter {
249 uses dom-forwarding-component;
254 augment "/config:modules/config:module/config:configuration" {
255 case binding-notification-publish-adapter {
256 when "/config:modules/config:module/config:type = 'binding-notification-publish-adapter'";
257 container binding-notification-publish-adapter {
259 uses dom-forwarding-component;