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";
24 /* FIXME: move to opendaylight-md-sal-binding (cannot be there due to Class name confict with old implementation)*/
25 identity binding-new-notification-service {
26 base config:service-type;
27 config:java-class "org.opendaylight.controller.md.sal.binding.api.NotificationService";
30 /* TODO: move to opendaylight-md-sal-binding (cannot be there due to Class name confict with old implementation)*/
31 identity binding-new-notification-publish-service {
32 base config:service-type;
33 config:java-class "org.opendaylight.controller.md.sal.binding.api.NotificationPublishService";
36 identity binding-broker-impl {
37 base config:module-type;
38 config:provided-service sal:binding-broker-osgi-registry;
39 config:provided-service sal:binding-rpc-registry;
40 config:java-name-prefix BindingBrokerImpl;
43 identity binding-data-compatible-broker {
44 base config:module-type;
45 config:provided-service sal:binding-data-broker;
46 config:provided-service sal:binding-data-consumer-broker;
47 config:java-name-prefix ForwardedCompatibleDataBrokerImpl;
50 identity binding-forwarded-data-broker {
51 base config:module-type;
52 config:provided-service sal:binding-async-data-broker;
53 config:java-name-prefix BindingAsyncDataBrokerImpl;
56 identity binding-rpc-broker {
57 base config:module-type;
58 config:provided-service sal:binding-rpc-registry;
59 config:java-name-prefix RpcBrokerImpl;
62 identity binding-notification-broker {
63 base config:module-type;
64 config:provided-service sal:binding-notification-service;
65 config:provided-service sal:binding-notification-subscription-service;
66 config:java-name-prefix NotificationBrokerImpl;
69 identity runtime-generated-mapping {
70 base config:module-type;
71 config:provided-service binding-dom-mapping-service;
72 config:provided-service sal:binding-codec-tree-factory;
73 config:provided-service sal:binding-normalized-node-serializer;
74 config:java-name-prefix RuntimeMapping;
77 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 {
84 base config:module-type;
85 config:provided-service binding-new-notification-publish-service;
86 config:java-name-prefix BindingNotificationPublishAdapter;
89 grouping dom-forwarding-component {
90 container dom-async-broker {
91 uses config:service-ref {
94 config:required-identity dom:dom-broker-osgi-registry;
99 container binding-mapping-service {
100 uses config:service-ref {
103 config:required-identity binding-dom-mapping-service;
109 augment "/config:modules/config:module/config:configuration" {
110 case binding-broker-impl {
111 when "/config:modules/config:module/config:type = 'binding-broker-impl'";
114 container rpc-registry {
115 uses config:service-ref {
118 config:required-identity sal:binding-rpc-registry;
122 container binding-broker-impl {
123 uses dom-forwarding-component;
125 container data-broker {
126 uses config:service-ref {
129 config:required-identity sal:binding-data-broker;
134 container notification-service {
135 uses config:service-ref {
138 config:required-identity sal:binding-notification-service;
143 container root-data-broker {
144 uses config:service-ref {
147 config:required-identity sal:binding-async-data-broker;
152 container notification-publish-service {
153 uses config:service-ref {
156 config:required-identity binding-new-notification-publish-service;
167 augment "/config:modules/config:module/config:configuration" {
168 case binding-data-compatible-broker {
169 when "/config:modules/config:module/config:type = 'binding-data-compatible-broker'";
171 container binding-data-compatible-broker {
172 container data-broker {
173 uses config:service-ref {
176 config:required-identity sal:binding-async-data-broker;
184 augment "/config:modules/config:module/config:configuration" {
185 case binding-forwarded-data-broker {
186 when "/config:modules/config:module/config:type = 'binding-forwarded-data-broker'";
187 container binding-forwarded-data-broker {
188 container dom-async-broker {
189 uses config:service-ref {
192 config:required-identity dom:dom-async-data-broker;
197 container binding-mapping-service {
198 uses config:service-ref {
201 config:required-identity binding-dom-mapping-service;
206 container schema-service {
207 uses config:service-ref {
210 config:required-identity dom:schema-service;
219 augment "/config:modules/config:module/config:configuration" {
220 case runtime-generated-mapping {
221 when "/config:modules/config:module/config:type = 'runtime-generated-mapping'";
222 leaf wait-for-schema {
229 augment "/config:modules/config:module/config:state" {
230 case binding-rpc-broker {
231 when "/config:modules/config:module/config:type = 'binding-rpc-broker'";
232 uses common:rpc-state;
236 augment "/config:modules/config:module/config:configuration" {
237 case binding-notification-broker {
238 when "/config:modules/config:module/config:type = 'binding-notification-broker'";
239 container notification-adapter {
240 uses config:service-ref {
243 config:required-identity binding-new-notification-service;
248 container notification-publish-adapter {
249 uses config:service-ref {
252 config:required-identity binding-new-notification-publish-service;
259 augment "/config:modules/config:module/config:state" {
260 case binding-notification-broker {
261 when "/config:modules/config:module/config:type = 'binding-notification-broker'";
262 uses common:notification-state;
266 augment "/config:modules/config:module/config:configuration" {
267 case binding-notification-adapter {
268 when "/config:modules/config:module/config:type = 'binding-notification-adapter'";
269 container binding-notification-adapter {
270 uses dom-forwarding-component;
275 augment "/config:modules/config:module/config:configuration" {
276 case binding-notification-publish-adapter {
277 when "/config:modules/config:module/config:type = 'binding-notification-publish-adapter'";
278 container binding-notification-publish-adapter {
279 uses dom-forwarding-component;