a40acc87a04e3bcfe74209d69a92e842ea460a03
[controller.git] / opendaylight / md-sal / sal-binding-config / src / main / yang / opendaylight-binding-broker-impl.yang
1 module opendaylight-sal-binding-broker-impl {
2     yang-version 1;
3     namespace "urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl";
4     prefix "binding-impl";
5
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;}
11
12     description
13         "Service definition for Binding Aware MD-SAL.";
14
15     revision "2013-10-28" {
16         description
17             "Initial revision";
18     }
19
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;
24     }
25
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 {
28         status deprecated;
29         base config:service-type;
30         config:java-class "org.opendaylight.controller.md.sal.binding.api.NotificationService";
31         config:disable-osgi-service-registration;
32     }
33
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 {
36         status deprecated;
37         base config:service-type;
38         config:java-class "org.opendaylight.controller.md.sal.binding.api.NotificationPublishService";
39         config:disable-osgi-service-registration;
40     }
41
42     identity binding-broker-impl {
43         status deprecated;
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;
48     }
49
50     identity binding-forwarded-data-broker {
51         status deprecated;
52         base config:module-type;
53         config:provided-service sal:binding-async-data-broker;
54         config:java-name-prefix BindingAsyncDataBrokerImpl;
55     }
56
57     identity binding-notification-broker {
58         status deprecated;
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;
63     }
64
65     identity runtime-generated-mapping {
66         status deprecated;
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;
74     }
75
76     identity binding-notification-adapter {
77         status deprecated;
78         base config:module-type;
79         config:provided-service binding-new-notification-service;
80         config:java-name-prefix BindingNotificationAdapter;
81     }
82
83     identity binding-notification-publish-adapter {
84         status deprecated;
85         base config:module-type;
86         config:provided-service binding-new-notification-publish-service;
87         config:java-name-prefix BindingNotificationPublishAdapter;
88     }
89
90     grouping dom-forwarding-component {
91         status deprecated;
92         container dom-async-broker {
93                 uses config:service-ref {
94                     refine type {
95                         mandatory true;
96                         config:required-identity dom:dom-broker-osgi-registry;
97                     }
98                 }
99             }
100
101         container binding-mapping-service {
102             uses config:service-ref {
103                 refine type {
104                     mandatory true;
105                     config:required-identity binding-dom-mapping-service;
106                 }
107             }
108         }
109     }
110
111     augment "/config:modules/config:module/config:configuration" {
112         case binding-broker-impl {
113             when "/config:modules/config:module/config:type = 'binding-broker-impl'";
114
115             /*
116             container rpc-registry {
117                 uses config:service-ref {
118                     refine type {
119                         mandatory true;
120                         config:required-identity sal:binding-rpc-registry;
121                     }
122                 }
123             }*/
124             container binding-broker-impl {
125                 uses dom-forwarding-component;
126
127                 container notification-service {
128                     status deprecated;
129                     uses config:service-ref {
130                         refine type {
131                             mandatory false;
132                             config:required-identity sal:binding-notification-service;
133                         }
134                     }
135                 }
136
137                 container root-data-broker {
138                     status deprecated;
139                     uses config:service-ref {
140                         refine type {
141                             mandatory false;
142                             config:required-identity sal:binding-async-data-broker;
143                         }
144                     }
145                 }
146
147                 container notification-publish-service {
148                     status deprecated;
149                     uses config:service-ref {
150                         refine type {
151                             mandatory false;
152                             config:required-identity binding-new-notification-publish-service;
153                         }
154                         refine name {
155                             mandatory false;
156                         }
157                     }
158                 }
159             }
160         }
161     }
162
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 {
168                     status deprecated;
169                     uses config:service-ref {
170                         refine type {
171                             mandatory true;
172                             config:required-identity dom:dom-async-data-broker;
173                         }
174                     }
175                 }
176
177                 container binding-mapping-service {
178                     status deprecated;
179                     uses config:service-ref {
180                         refine type {
181                             mandatory true;
182                             config:required-identity binding-dom-mapping-service;
183                         }
184                     }
185                 }
186
187                 container schema-service {
188                     status deprecated;
189                     uses config:service-ref {
190                         refine type {
191                             mandatory true;
192                             config:required-identity dom:schema-service;
193                         }
194                     }
195                 }
196             }
197         }
198     }
199
200
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 {
205                 status deprecated;
206                 default "false";
207                 type boolean;
208             }
209         }
210     }
211
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 {
216                 status deprecated;
217                 uses config:service-ref {
218                     refine type {
219                         mandatory true;
220                         config:required-identity binding-new-notification-service;
221                     }
222                 }
223             }
224
225             container notification-publish-adapter {
226                 status deprecated;
227                 uses config:service-ref {
228                     refine type {
229                         mandatory true;
230                         config:required-identity binding-new-notification-publish-service;
231                     }
232                 }
233             }
234         }
235     }
236
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;
241         }
242     }
243
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 {
248                 status deprecated;
249                 uses dom-forwarding-component;
250             }
251         }
252     }
253
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 {
258                 status deprecated;
259                 uses dom-forwarding-component;
260             }
261         }
262     }
263 }

©2013 OpenDaylight, A Linux Foundation Collaborative Project. All Rights Reserved.
OpenDaylight is a registered trademark of The OpenDaylight Project, Inc.
Linux Foundation and OpenDaylight are registered trademarks of the Linux Foundation.
Linux is a registered trademark of Linus Torvalds.