Bug 8994 - FileModuleShardConfigProvider should not use hard-coded paths
[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   <odl:static-reference id="schemaService" interface="org.opendaylight.mdsal.dom.api.DOMSchemaService" />
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     <argument value="./clustered-datastore-restore"/>
29   </bean>
30
31   <bean id="configDatastoreContext" class="org.opendaylight.controller.config.yang.config.distributed_datastore_provider.DistributedConfigDataStoreProviderModule"
32           factory-method="newDatastoreContext" />
33
34   <bean id="configDatastore" class="org.opendaylight.controller.cluster.datastore.DistributedDataStoreFactory"
35           factory-method="createInstance" destroy-method="close">
36     <argument ref="schemaService"/>
37     <argument ref="configDatastoreContext"/>
38     <argument ref="datastoreSnapshotRestore"/>
39     <argument ref="actorSystemProvider"/>
40     <argument ref="blueprintBundleContext"/>
41   </bean>
42
43   <service ref="configDatastore" odl:type="distributed-config">
44     <interfaces>
45       <value>org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface</value>
46     </interfaces>
47   </service>
48
49   <!-- Distributed Operational Datastore -->
50   <bean id="fileModuleShardConfigProvider" class="org.opendaylight.controller.cluster.datastore.config.FileModuleShardConfigProvider">
51     <argument value="./configuration/initial/module-shards.conf"/>
52     <argument value="./configuration/initial/modules.conf"/>
53   </bean>
54
55   <bean id="configurationImpl" class="org.opendaylight.controller.cluster.datastore.config.ConfigurationImpl">
56     <argument ref="fileModuleShardConfigProvider"/>
57   </bean>
58
59   <bean id="operDatastoreContext" class="org.opendaylight.controller.config.yang.config.distributed_datastore_provider.DistributedOperationalDataStoreProviderModule"
60           factory-method="newDatastoreContext" />
61
62   <bean id="operDatastore" class="org.opendaylight.controller.cluster.datastore.DistributedDataStoreFactory"
63           factory-method="createInstance" destroy-method="close">
64     <argument ref="schemaService"/>
65     <argument ref="operDatastoreContext"/>
66     <argument ref="datastoreSnapshotRestore"/>
67     <argument ref="actorSystemProvider"/>
68     <argument ref="blueprintBundleContext"/>
69     <argument ref="configurationImpl" />
70   </bean>
71
72   <service ref="operDatastore" odl:type="distributed-operational">
73     <interfaces>
74       <value>org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface</value>
75     </interfaces>
76   </service>
77
78   <!-- Concurrent DOMDataBroker -->
79
80   <bean id="listenableFutureExecutor" class="org.opendaylight.yangtools.util.concurrent.SpecialExecutors"
81           factory-method="newBlockingBoundedCachedThreadPool">
82     <argument value="${max-data-broker-future-callback-pool-size}"/>
83     <argument value="${max-data-broker-future-callback-queue-size}"/>
84     <argument value="CommitFutures"/>
85   </bean>
86
87   <bean id="commitStatsTracker" class="org.opendaylight.yangtools.util.DurationStatisticsTracker"
88           factory-method="createConcurrent"/>
89
90   <bean id="clusteredDOMDataBroker" class="org.opendaylight.controller.cluster.databroker.ConcurrentDOMDataBroker"
91           destroy-method="close">
92     <argument>
93       <map>
94         <entry key="CONFIGURATION" value-ref="configDatastore"/>
95         <entry key="OPERATIONAL" value-ref="operDatastore"/>
96       </map>
97     </argument>
98     <argument ref="listenableFutureExecutor"/>
99     <argument ref="commitStatsTracker"/>
100   </bean>
101
102   <service ref="clusteredDOMDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
103           odl:type="default"/>
104
105   <!-- JMX beans for the data broker -->
106
107   <bean id="commitStatsMXBean" class="org.opendaylight.controller.md.sal.dom.broker.impl.jmx.CommitStatsMXBeanImpl"
108           init-method="register" destroy-method="unregister">
109     <argument ref="commitStatsTracker"/>
110     <argument value="DOMDataBroker"/>
111   </bean>
112
113   <bean id="threadStatsMXBean" class="org.opendaylight.controller.md.sal.common.util.jmx.ThreadExecutorStatsMXBeanImpl"
114           factory-method="create" destroy-method="unregister">
115     <argument ref="listenableFutureExecutor"/>
116     <argument value="CommitFutureExecutorStats"/>
117     <argument value="DOMDataBroker"/>
118     <argument><null/></argument>
119   </bean>
120
121   <!-- Distributed EntityOwnershipService -->
122
123   <bean id="selectionStrategyConfig" class="org.opendaylight.controller.cluster.datastore.entityownership.selectionstrategy.EntityOwnerSelectionStrategyConfigReader"
124           factory-method="loadStrategyWithConfig">
125     <argument ref="blueprintBundleContext"/>
126   </bean>
127
128   <bean id="distributedEntityOwnershipService" class="org.opendaylight.controller.cluster.datastore.entityownership.DistributedEntityOwnershipService"
129           factory-method="start" destroy-method="close">
130     <argument>
131       <bean factory-ref="operDatastore" factory-method="getActorContext"/>
132     </argument>
133     <argument ref="selectionStrategyConfig"/>
134   </bean>
135
136   <service ref="distributedEntityOwnershipService" interface="org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService"
137         odl:type="default"/>
138
139   <!-- CDS shard manager -->
140   <bean id="cdsNodeManager" class="org.opendaylight.controller.cluster.sharding.DistributedShardedDOMDataTree"
141           init-method="init">
142     <argument ref="actorSystemProvider"/>
143     <argument ref="operDatastore"/>
144     <argument ref="configDatastore"/>
145   </bean>
146
147   <service ref="cdsNodeManager" odl:type="default">
148     <interfaces>
149       <value>org.opendaylight.mdsal.dom.api.DOMDataTreeShardingService</value>
150       <value>org.opendaylight.mdsal.dom.api.DOMDataTreeService</value>
151       <value>org.opendaylight.controller.cluster.sharding.DistributedShardFactory</value>
152     </interfaces>
153   </service>
154
155 </blueprint>