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-data-compatible-broker {
52 base config:module-type;
53 config:provided-service sal:binding-data-broker;
54 config:provided-service sal:binding-data-consumer-broker;
55 config:java-name-prefix ForwardedCompatibleDataBrokerImpl;
58 identity binding-forwarded-data-broker {
60 base config:module-type;
61 config:provided-service sal:binding-async-data-broker;
62 config:java-name-prefix BindingAsyncDataBrokerImpl;
65 identity binding-notification-broker {
67 base config:module-type;
68 config:provided-service sal:binding-notification-service;
69 config:provided-service sal:binding-notification-subscription-service;
70 config:java-name-prefix NotificationBrokerImpl;
73 identity runtime-generated-mapping {
75 base config:module-type;
76 config:provided-service binding-dom-mapping-service;
77 config:provided-service sal:binding-codec-tree-factory;
78 config:provided-service sal:binding-normalized-node-serializer;
79 config:provided-service v1codec:binding-v1-codec-tree-factory;
80 config:provided-service v1codec:binding-v1-normalized-node-serializer;
81 config:java-name-prefix RuntimeMapping;
84 identity binding-notification-adapter {
86 base config:module-type;
87 config:provided-service binding-new-notification-service;
88 config:java-name-prefix BindingNotificationAdapter;
91 identity binding-notification-publish-adapter {
93 base config:module-type;
94 config:provided-service binding-new-notification-publish-service;
95 config:java-name-prefix BindingNotificationPublishAdapter;
98 grouping dom-forwarding-component {
100 container dom-async-broker {
101 uses config:service-ref {
104 config:required-identity dom:dom-broker-osgi-registry;
109 container binding-mapping-service {
110 uses config:service-ref {
113 config:required-identity binding-dom-mapping-service;
119 augment "/config:modules/config:module/config:configuration" {
120 case binding-broker-impl {
121 when "/config:modules/config:module/config:type = 'binding-broker-impl'";
124 container rpc-registry {
125 uses config:service-ref {
128 config:required-identity sal:binding-rpc-registry;
132 container binding-broker-impl {
133 uses dom-forwarding-component;
135 container data-broker {
137 uses config:service-ref {
140 config:required-identity sal:binding-data-broker;
145 container notification-service {
147 uses config:service-ref {
150 config:required-identity sal:binding-notification-service;
155 container root-data-broker {
157 uses config:service-ref {
160 config:required-identity sal:binding-async-data-broker;
165 container notification-publish-service {
167 uses config:service-ref {
170 config:required-identity binding-new-notification-publish-service;
181 augment "/config:modules/config:module/config:configuration" {
182 case binding-data-compatible-broker {
183 when "/config:modules/config:module/config:type = 'binding-data-compatible-broker'";
185 container binding-data-compatible-broker {
186 container data-broker {
188 uses config:service-ref {
191 config:required-identity sal:binding-async-data-broker;
199 augment "/config:modules/config:module/config:configuration" {
200 case binding-forwarded-data-broker {
201 when "/config:modules/config:module/config:type = 'binding-forwarded-data-broker'";
202 container binding-forwarded-data-broker {
203 container dom-async-broker {
205 uses config:service-ref {
208 config:required-identity dom:dom-async-data-broker;
213 container binding-mapping-service {
215 uses config:service-ref {
218 config:required-identity binding-dom-mapping-service;
223 container schema-service {
225 uses config:service-ref {
228 config:required-identity dom:schema-service;
237 augment "/config:modules/config:module/config:configuration" {
238 case runtime-generated-mapping {
239 when "/config:modules/config:module/config:type = 'runtime-generated-mapping'";
240 leaf wait-for-schema {
248 augment "/config:modules/config:module/config:configuration" {
249 case binding-notification-broker {
250 when "/config:modules/config:module/config:type = 'binding-notification-broker'";
251 container notification-adapter {
253 uses config:service-ref {
256 config:required-identity binding-new-notification-service;
261 container notification-publish-adapter {
263 uses config:service-ref {
266 config:required-identity binding-new-notification-publish-service;
273 augment "/config:modules/config:module/config:state" {
274 case binding-notification-broker {
275 when "/config:modules/config:module/config:type = 'binding-notification-broker'";
276 uses common:notification-state;
280 augment "/config:modules/config:module/config:configuration" {
281 case binding-notification-adapter {
282 when "/config:modules/config:module/config:type = 'binding-notification-adapter'";
283 container binding-notification-adapter {
285 uses dom-forwarding-component;
290 augment "/config:modules/config:module/config:configuration" {
291 case binding-notification-publish-adapter {
292 when "/config:modules/config:module/config:type = 'binding-notification-publish-adapter'";
293 container binding-notification-publish-adapter {
295 uses dom-forwarding-component;