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">
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>
13 <reference id="schemaService" interface="org.opendaylight.controller.sal.core.api.model.SchemaService" />
15 <!-- ActorSystemProvider -->
17 <bean id="actorSystemProvider" class="org.opendaylight.controller.config.yang.config.actor_system_provider.impl.ActorSystemProviderImpl"
18 destroy-method="close">
19 <argument ref="blueprintBundleContext"/>
22 <service ref="actorSystemProvider" interface="org.opendaylight.controller.cluster.ActorSystemProvider"/>
24 <!-- Distributed Config Datastore -->
26 <bean id="datastoreSnapshotRestore" class="org.opendaylight.controller.cluster.datastore.DatastoreSnapshotRestore"
27 factory-method="instance">
28 <argument value="./clustered-datastore-restore"/>
31 <bean id="configDatastoreContext" class="org.opendaylight.controller.config.yang.config.distributed_datastore_provider.DistributedConfigDataStoreProviderModule"
32 factory-method="newDatastoreContext" />
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"/>
43 <service ref="configDatastore" odl:type="distributed-config">
45 <value>org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface</value>
49 <!-- Distributed Operational Datastore -->
51 <bean id="operDatastoreContext" class="org.opendaylight.controller.config.yang.config.distributed_datastore_provider.DistributedOperationalDataStoreProviderModule"
52 factory-method="newDatastoreContext" />
54 <bean id="operDatastore" class="org.opendaylight.controller.cluster.datastore.DistributedDataStoreFactory"
55 factory-method="createInstance" destroy-method="close">
56 <argument ref="schemaService"/>
57 <argument ref="operDatastoreContext"/>
58 <argument ref="datastoreSnapshotRestore"/>
59 <argument ref="actorSystemProvider"/>
60 <argument ref="blueprintBundleContext"/>
63 <service ref="operDatastore" odl:type="distributed-operational">
65 <value>org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface</value>
69 <!-- Concurrent DOMDataBroker -->
71 <bean id="listenableFutureExecutor" class="org.opendaylight.yangtools.util.concurrent.SpecialExecutors"
72 factory-method="newBlockingBoundedCachedThreadPool">
73 <argument value="${max-data-broker-future-callback-pool-size}"/>
74 <argument value="${max-data-broker-future-callback-queue-size}"/>
75 <argument value="CommitFutures"/>
78 <bean id="commitStatsTracker" class="org.opendaylight.yangtools.util.DurationStatisticsTracker"
79 factory-method="createConcurrent"/>
81 <bean id="clusteredDOMDataBroker" class="org.opendaylight.controller.cluster.databroker.ConcurrentDOMDataBroker"
82 destroy-method="close">
85 <entry key="CONFIGURATION" value-ref="configDatastore"/>
86 <entry key="OPERATIONAL" value-ref="operDatastore"/>
89 <argument ref="listenableFutureExecutor"/>
90 <argument ref="commitStatsTracker"/>
93 <service ref="clusteredDOMDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
96 <!-- JMX beans for the data broker -->
98 <bean id="commitStatsMXBean" class="org.opendaylight.controller.md.sal.dom.broker.impl.jmx.CommitStatsMXBeanImpl"
99 init-method="register" destroy-method="unregister">
100 <argument ref="commitStatsTracker"/>
101 <argument value="DOMDataBroker"/>
104 <bean id="threadStatsMXBean" class="org.opendaylight.controller.md.sal.common.util.jmx.ThreadExecutorStatsMXBeanImpl"
105 factory-method="create" destroy-method="unregister">
106 <argument ref="listenableFutureExecutor"/>
107 <argument value="CommitFutureExecutorStats"/>
108 <argument value="DOMDataBroker"/>
109 <argument><null/></argument>
112 <!-- Distributed EntityOwnershipService -->
114 <bean id="selectionStrategyConfig" class="org.opendaylight.controller.cluster.datastore.entityownership.selectionstrategy.EntityOwnerSelectionStrategyConfigReader"
115 factory-method="loadStrategyWithConfig">
116 <argument ref="blueprintBundleContext"/>
119 <bean id="distributedEntityOwnershipService" class="org.opendaylight.controller.cluster.datastore.entityownership.DistributedEntityOwnershipService"
120 factory-method="start" destroy-method="close">
122 <bean factory-ref="operDatastore" factory-method="getActorContext"/>
124 <argument ref="selectionStrategyConfig"/>
127 <service ref="distributedEntityOwnershipService" interface="org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService"