Modify config Module impls to co-exist with blueprint
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / resources / org / opendaylight / blueprint / clustered-datastore.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
3            xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
4            xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0">
5
6   <cm:property-placeholder persistent-id="org.opendaylight.controller.cluster.datastore.broker" update-strategy="none">
7     <cm:default-properties>
8       <cm:property name="max-data-broker-future-callback-queue-size" value="1000"/>
9       <cm:property name="max-data-broker-future-callback-pool-size" value="20"/>
10     </cm:default-properties>
11   </cm:property-placeholder>
12
13   <reference id="schemaService" interface="org.opendaylight.controller.sal.core.api.model.SchemaService" />
14
15   <!-- ActorSystemProvider -->
16
17   <bean id="actorSystemProvider" class="org.opendaylight.controller.config.yang.config.actor_system_provider.impl.ActorSystemProviderImpl"
18           destroy-method="close">
19     <argument ref="blueprintBundleContext"/>
20   </bean>
21
22   <service ref="actorSystemProvider" interface="org.opendaylight.controller.cluster.ActorSystemProvider"/>
23
24   <!-- Distributed Config Datastore -->
25
26   <bean id="datastoreSnapshotRestore" class="org.opendaylight.controller.cluster.datastore.DatastoreSnapshotRestore"
27           factory-method="instance" />
28
29   <bean id="configDatastoreContext" class="org.opendaylight.controller.config.yang.config.distributed_datastore_provider.DistributedConfigDataStoreProviderModule"
30           factory-method="newDatastoreContext" />
31
32   <bean id="configDatastore" class="org.opendaylight.controller.cluster.datastore.DistributedDataStoreFactory"
33           factory-method="createInstance" destroy-method="close">
34     <argument ref="schemaService"/>
35     <argument ref="configDatastoreContext"/>
36     <argument ref="datastoreSnapshotRestore"/>
37     <argument ref="actorSystemProvider"/>
38     <argument ref="blueprintBundleContext"/>
39   </bean>
40
41   <service ref="configDatastore" odl:type="distributed-config">
42     <interfaces>
43       <value>org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface</value>
44     </interfaces>
45   </service>
46
47   <!-- Distributed Operational Datastore -->
48
49   <bean id="operDatastoreContext" class="org.opendaylight.controller.config.yang.config.distributed_datastore_provider.DistributedOperationalDataStoreProviderModule"
50           factory-method="newDatastoreContext" />
51
52   <bean id="operDatastore" class="org.opendaylight.controller.cluster.datastore.DistributedDataStoreFactory"
53           factory-method="createInstance" destroy-method="close">
54     <argument ref="schemaService"/>
55     <argument ref="operDatastoreContext"/>
56     <argument ref="datastoreSnapshotRestore"/>
57     <argument ref="actorSystemProvider"/>
58     <argument ref="blueprintBundleContext"/>
59   </bean>
60
61   <service ref="operDatastore" odl:type="distributed-operational">
62     <interfaces>
63       <value>org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface</value>
64     </interfaces>
65   </service>
66
67   <!-- Concurrent DOMDataBroker -->
68
69   <bean id="listenableFutureExecutor" class="org.opendaylight.yangtools.util.concurrent.SpecialExecutors"
70           factory-method="newBlockingBoundedCachedThreadPool">
71     <argument value="${max-data-broker-future-callback-pool-size}"/>
72     <argument value="${max-data-broker-future-callback-queue-size}"/>
73     <argument value="CommitFutures"/>
74   </bean>
75
76   <bean id="commitStatsTracker" class="org.opendaylight.yangtools.util.DurationStatisticsTracker"
77           factory-method="createConcurrent"/>
78
79   <bean id="clusteredDOMDataBroker" class="org.opendaylight.controller.cluster.databroker.ConcurrentDOMDataBroker"
80           destroy-method="close">
81     <argument>
82       <map>
83         <entry key="CONFIGURATION" value-ref="configDatastore"/>
84         <entry key="OPERATIONAL" value-ref="operDatastore"/>
85       </map>
86     </argument>
87     <argument ref="listenableFutureExecutor"/>
88     <argument ref="commitStatsTracker"/>
89   </bean>
90
91   <service ref="clusteredDOMDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
92           odl:type="default"/>
93
94   <!-- JMX beans for the data broker -->
95
96   <bean id="commitStatsMXBean" class="org.opendaylight.controller.md.sal.dom.broker.impl.jmx.CommitStatsMXBeanImpl"
97           init-method="register" destroy-method="unregister">
98     <argument ref="commitStatsTracker"/>
99     <argument value="DOMDataBroker"/>
100   </bean>
101
102   <bean id="threadStatsMXBean" class="org.opendaylight.controller.md.sal.common.util.jmx.ThreadExecutorStatsMXBeanImpl"
103           factory-method="create" destroy-method="unregister">
104     <argument ref="listenableFutureExecutor"/>
105     <argument value="CommitFutureExecutorStats"/>
106     <argument value="DOMDataBroker"/>
107     <argument><null/></argument>
108   </bean>
109
110   <!-- Distributed EntityOwnershipService -->
111
112   <bean id="selectionStrategyConfig" class="org.opendaylight.controller.cluster.datastore.entityownership.selectionstrategy.EntityOwnerSelectionStrategyConfigReader"
113           factory-method="loadStrategyWithConfig">
114     <argument ref="blueprintBundleContext"/>
115   </bean>
116
117   <bean id="distributedEntityOwnershipService" class="org.opendaylight.controller.cluster.datastore.entityownership.DistributedEntityOwnershipService"
118           factory-method="start" destroy-method="close">
119     <argument>
120       <bean factory-ref="operDatastore" factory-method="getActorContext"/>
121     </argument>
122     <argument ref="selectionStrategyConfig"/>
123   </bean>
124
125   <service ref="distributedEntityOwnershipService" interface="org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService"
126         odl:type="default"/>
127 </blueprint>