Merge "Fix for Bug 3"
[controller.git] / opendaylight / md-sal / sal-binding-broker / 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-dom {prefix dom;}
9     import opendaylight-md-sal-common {prefix common;}
10
11     description
12         "Service definition for Binding Aware MD-SAL.";
13  
14     revision "2013-10-28" {
15         description
16             "Initial revision";
17     }
18
19     identity binding-dom-mapping-service {
20         base config:service-type;
21         config:java-class "org.opendaylight.controller.sal.binding.impl.connect.dom.BindingIndependentMappingService";
22     }
23
24
25     identity binding-broker-impl {
26         base config:module-type;
27         config:provided-service sal:binding-broker-osgi-registry;
28         config:provided-service sal:binding-rpc-registry;
29         config:java-name-prefix BindingBrokerImpl;
30     }
31     
32     identity binding-data-broker {
33         base config:module-type;
34         config:provided-service sal:binding-data-broker;
35         config:provided-service sal:binding-data-consumer-broker;
36         config:java-name-prefix DataBrokerImpl;
37     }
38     
39     identity binding-rpc-broker {
40         base config:module-type;
41         config:provided-service sal:binding-rpc-registry;
42         config:java-name-prefix RpcBrokerImpl;
43     }
44     
45     identity binding-notification-broker {
46         base config:module-type;
47         config:provided-service sal:binding-notification-service;
48         config:provided-service sal:binding-notification-subscription-service;
49         config:java-name-prefix NotificationBrokerImpl;
50     }
51
52     identity runtime-generated-mapping {
53         base config:module-type;
54         config:provided-service binding-dom-mapping-service;
55         config:java-name-prefix RuntimeMapping;
56     }
57
58     augment "/config:modules/config:module/config:configuration" {
59         case binding-broker-impl {
60             when "/config:modules/config:module/config:type = 'binding-broker-impl'";
61             
62             /*
63             container rpc-registry {
64                 uses config:service-ref {
65                     refine type {
66                         mandatory true;
67                         config:required-identity sal:binding-rpc-registry;
68                     }
69                 }
70             }*/
71             
72             container data-broker {
73                 uses config:service-ref {
74                     refine type {
75                         mandatory true;
76                         config:required-identity sal:binding-data-broker;
77                     }
78                 }
79             }
80             
81             container notification-service {
82                 uses config:service-ref {
83                     refine type {
84                         mandatory true;
85                         config:required-identity sal:binding-notification-service;
86                     }
87                 }
88             }
89         }
90     }
91
92     augment "/config:modules/config:module/config:configuration" {
93         case binding-data-broker {
94             when "/config:modules/config:module/config:type = 'binding-data-broker'";
95             container dom-broker {
96                 uses config:service-ref {
97                     refine type {
98                         mandatory true;
99                         config:required-identity dom:dom-broker-osgi-registry;
100                     }
101                 }
102             }
103
104             container mapping-service {
105                 uses config:service-ref {
106                     refine type {
107                         mandatory true;
108                         config:required-identity binding-dom-mapping-service;
109                     }
110                 }
111             } 
112         }
113     }
114     
115
116     augment "/config:modules/config:module/config:state" {
117         case runtime-generated-mapping {
118             when "/config:modules/config:module/config:type = 'runtime-generated-mapping'";
119         }
120     }
121
122     augment "/config:modules/config:module/config:state" {
123         case binding-data-broker {
124             when "/config:modules/config:module/config:type = 'binding-data-broker'";
125             container data {
126                 uses common:data-state;
127             }
128         }
129     }
130     augment "/config:modules/config:module/config:state" {
131         case binding-rpc-broker {
132             when "/config:modules/config:module/config:type = 'binding-rpc-broker'";
133             uses common:rpc-state;
134         }
135     }
136     augment "/config:modules/config:module/config:state" {
137         case binding-notification-broker {
138             when "/config:modules/config:module/config:type = 'binding-notification-broker'";
139             uses common:notification-state;
140         }
141     }
142 }