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-dom {prefix dom;}
9 import opendaylight-md-sal-common {prefix common;}
12 "Service definition for Binding Aware MD-SAL.";
14 revision "2013-10-28" {
19 identity binding-dom-mapping-service {
20 base config:service-type;
21 config:java-class "org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec";
22 config:disable-osgi-service-registration;
25 /* FIXME: move to opendaylight-md-sal-binding (cannot be there due to Class name confict with old implementation)*/
26 identity binding-new-notification-service {
28 base config:service-type;
29 config:java-class "org.opendaylight.controller.md.sal.binding.api.NotificationService";
30 config:disable-osgi-service-registration;
33 /* TODO: move to opendaylight-md-sal-binding (cannot be there due to Class name confict with old implementation)*/
34 identity binding-new-notification-publish-service {
36 base config:service-type;
37 config:java-class "org.opendaylight.controller.md.sal.binding.api.NotificationPublishService";
38 config:disable-osgi-service-registration;
41 identity binding-broker-impl {
43 base config:module-type;
44 config:provided-service sal:binding-broker-osgi-registry;
45 config:provided-service sal:binding-rpc-registry;
46 config:java-name-prefix BindingBrokerImpl;
49 identity binding-data-compatible-broker {
51 base config:module-type;
52 config:provided-service sal:binding-data-broker;
53 config:provided-service sal:binding-data-consumer-broker;
54 config:java-name-prefix ForwardedCompatibleDataBrokerImpl;
57 identity binding-forwarded-data-broker {
59 base config:module-type;
60 config:provided-service sal:binding-async-data-broker;
61 config:java-name-prefix BindingAsyncDataBrokerImpl;
64 identity binding-notification-broker {
66 base config:module-type;
67 config:provided-service sal:binding-notification-service;
68 config:provided-service sal:binding-notification-subscription-service;
69 config:java-name-prefix NotificationBrokerImpl;
72 identity runtime-generated-mapping {
74 base config:module-type;
75 config:provided-service binding-dom-mapping-service;
76 config:provided-service sal:binding-codec-tree-factory;
77 config:provided-service sal:binding-normalized-node-serializer;
78 config:java-name-prefix RuntimeMapping;
81 identity binding-notification-adapter {
83 base config:module-type;
84 config:provided-service binding-new-notification-service;
85 config:java-name-prefix BindingNotificationAdapter;
88 identity binding-notification-publish-adapter {
90 base config:module-type;
91 config:provided-service binding-new-notification-publish-service;
92 config:java-name-prefix BindingNotificationPublishAdapter;
95 grouping dom-forwarding-component {
97 container dom-async-broker {
98 uses config:service-ref {
101 config:required-identity dom:dom-broker-osgi-registry;
106 container binding-mapping-service {
107 uses config:service-ref {
110 config:required-identity binding-dom-mapping-service;
116 augment "/config:modules/config:module/config:configuration" {
117 case binding-broker-impl {
118 when "/config:modules/config:module/config:type = 'binding-broker-impl'";
121 container rpc-registry {
122 uses config:service-ref {
125 config:required-identity sal:binding-rpc-registry;
129 container binding-broker-impl {
130 uses dom-forwarding-component;
132 container data-broker {
134 uses config:service-ref {
137 config:required-identity sal:binding-data-broker;
142 container notification-service {
144 uses config:service-ref {
147 config:required-identity sal:binding-notification-service;
152 container root-data-broker {
154 uses config:service-ref {
157 config:required-identity sal:binding-async-data-broker;
162 container notification-publish-service {
164 uses config:service-ref {
167 config:required-identity binding-new-notification-publish-service;
178 augment "/config:modules/config:module/config:configuration" {
179 case binding-data-compatible-broker {
180 when "/config:modules/config:module/config:type = 'binding-data-compatible-broker'";
182 container binding-data-compatible-broker {
183 container data-broker {
185 uses config:service-ref {
188 config:required-identity sal:binding-async-data-broker;
196 augment "/config:modules/config:module/config:configuration" {
197 case binding-forwarded-data-broker {
198 when "/config:modules/config:module/config:type = 'binding-forwarded-data-broker'";
199 container binding-forwarded-data-broker {
200 container dom-async-broker {
202 uses config:service-ref {
205 config:required-identity dom:dom-async-data-broker;
210 container binding-mapping-service {
212 uses config:service-ref {
215 config:required-identity binding-dom-mapping-service;
220 container schema-service {
222 uses config:service-ref {
225 config:required-identity dom:schema-service;
234 augment "/config:modules/config:module/config:configuration" {
235 case runtime-generated-mapping {
236 when "/config:modules/config:module/config:type = 'runtime-generated-mapping'";
237 leaf wait-for-schema {
245 augment "/config:modules/config:module/config:configuration" {
246 case binding-notification-broker {
247 when "/config:modules/config:module/config:type = 'binding-notification-broker'";
248 container notification-adapter {
250 uses config:service-ref {
253 config:required-identity binding-new-notification-service;
258 container notification-publish-adapter {
260 uses config:service-ref {
263 config:required-identity binding-new-notification-publish-service;
270 augment "/config:modules/config:module/config:state" {
271 case binding-notification-broker {
272 when "/config:modules/config:module/config:type = 'binding-notification-broker'";
273 uses common:notification-state;
277 augment "/config:modules/config:module/config:configuration" {
278 case binding-notification-adapter {
279 when "/config:modules/config:module/config:type = 'binding-notification-adapter'";
280 container binding-notification-adapter {
282 uses dom-forwarding-component;
287 augment "/config:modules/config:module/config:configuration" {
288 case binding-notification-publish-adapter {
289 when "/config:modules/config:module/config:type = 'binding-notification-publish-adapter'";
290 container binding-notification-publish-adapter {
292 uses dom-forwarding-component;