package org.opendaylight.controller.config.yang.md.sal.binding.statistics;\r
\r
+import org.opendaylight.controller.config.yang.md.sal.binding.impl.Data;\r
import org.opendaylight.controller.config.yang.md.sal.binding.impl.DataBrokerImplRuntimeMXBean;\r
import org.opendaylight.controller.config.yang.md.sal.binding.impl.Transactions;\r
import org.opendaylight.controller.sal.binding.impl.DataBrokerImpl;\r
\r
public class DataBrokerRuntimeMXBeanImpl extends DataBrokerImpl implements DataBrokerImplRuntimeMXBean {\r
\r
- private Transactions transactions = new Transactions();\r
+ private final Transactions transactions = new Transactions();\r
+ private final Data data = new Data();\r
\r
- @Override\r
public Transactions getTransactions() {\r
transactions.setCreated(getCreatedTransactionsCount().get());\r
transactions.setSubmitted(getSubmittedTransactionsCount().get());\r
transactions.setFailed(getFailedTransactionsCount().get());\r
return transactions;\r
}\r
+\r
+ @Override\r
+ public Data getData() {\r
+ transactions.setCreated(getCreatedTransactionsCount().get());\r
+ transactions.setSubmitted(getSubmittedTransactionsCount().get());\r
+ transactions.setSuccessful(getFinishedTransactionsCount().get());\r
+ transactions.setFailed(getFailedTransactionsCount().get());\r
+ data.setTransactions(transactions);\r
+ return data;\r
+ }\r
}\r
augment "/config:modules/config:module/config:state" {
case binding-data-broker {
when "/config:modules/config:module/config:type = 'binding-data-broker'";
- uses common:data-state;
+ container data {
+ uses common:data-state;
+ }
}
}
augment "/config:modules/config:module/config:state" {
*/
package org.opendaylight.controller.config.yang.md.sal.dom.impl;
+import org.opendaylight.controller.config.yang.md.sal.dom.statistics.DomBrokerRuntimeMXBeanImpl;
import org.opendaylight.controller.sal.core.api.data.DataStore;
import org.opendaylight.controller.sal.dom.broker.BrokerConfigActivator;
import org.opendaylight.controller.sal.dom.broker.BrokerImpl;
import org.osgi.framework.BundleContext;
+
import static com.google.common.base.Preconditions.*;
/**
checkArgument(getDataStore() != null, "Data Store needs to be provided for DomBroker");
}
-
-
@Override
public java.lang.AutoCloseable createInstance() {
- BrokerImpl broker = new BrokerImpl();
- BrokerConfigActivator activator = new BrokerConfigActivator();
- DataStore store = getDataStoreDependency();
- activator.start(broker, store,getBundleContext());
+ final BrokerImpl broker = new BrokerImpl();
+ final BrokerConfigActivator activator = new BrokerConfigActivator();
+ final DataStore store = getDataStoreDependency();
+ activator.start(broker, store, getBundleContext());
+
+ final DomBrokerImplRuntimeMXBean domBrokerRuntimeMXBean = new DomBrokerRuntimeMXBeanImpl(activator.getDataService());
+ getRootRuntimeBeanRegistratorWrapper().register(domBrokerRuntimeMXBean);
return broker;
}
--- /dev/null
+package org.opendaylight.controller.config.yang.md.sal.dom.statistics;
+
+import org.opendaylight.controller.config.yang.md.sal.dom.impl.Data;
+import org.opendaylight.controller.config.yang.md.sal.dom.impl.DomBrokerImplRuntimeMXBean;
+import org.opendaylight.controller.config.yang.md.sal.dom.impl.Transactions;
+import org.opendaylight.controller.sal.dom.broker.DataBrokerImpl;
+
+public class DomBrokerRuntimeMXBeanImpl implements
+ DomBrokerImplRuntimeMXBean {
+
+ private final DataBrokerImpl dataService;
+ private final Transactions transactions = new Transactions();
+ private final Data data = new Data();
+
+ public DomBrokerRuntimeMXBeanImpl(DataBrokerImpl dataService) {
+ this.dataService = dataService;
+ }
+
+ public Transactions getTransactions() {
+ transactions.setCreated(dataService.getCreatedTransactionsCount().get());
+ transactions.setSubmitted(dataService.getSubmittedTransactionsCount().get());
+ transactions.setSuccessful(dataService.getFinishedTransactionsCount().get());
+ transactions.setFailed(dataService.getFailedTransactionsCount().get());
+ return transactions;
+ }
+
+ @Override
+ public Data getData() {
+ transactions.setCreated(dataService.getCreatedTransactionsCount().get());
+ transactions.setSubmitted(dataService.getSubmittedTransactionsCount().get());
+ transactions.setSuccessful(dataService.getFinishedTransactionsCount().get());
+ transactions.setFailed(dataService.getFailedTransactionsCount().get());
+ data.setTransactions(transactions);
+ return data;
+ }
+}
private static val ROOT = InstanceIdentifier.builder().toInstance();
+
+ @Property
+ private var DataBrokerImpl dataService;
private var ServiceRegistration<SchemaService> schemaReg;
private var ServiceRegistration<DataBrokerService> dataReg;
private var ServiceRegistration<DataProviderService> dataProviderReg;
private var ServiceRegistration<MountService> mountReg;
private var ServiceRegistration<MountProvisionService> mountProviderReg;
-
private var SchemaServiceImpl schemaService;
- private var DataBrokerImpl dataService;
private var MountPointManagerImpl mountService;
SchemaAwareDataStoreAdapter wrappedStore
import java.util.concurrent.atomic.AtomicLong;
-import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent;
import org.opendaylight.controller.md.sal.common.api.data.DataReader;
import org.opendaylight.controller.md.sal.common.impl.service.AbstractDataBroker;
import org.opendaylight.controller.sal.common.DataStoreIdentifier;
import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
public class DataBrokerImpl extends AbstractDataBroker<InstanceIdentifier, CompositeNode, DataChangeListener> implements
- DataProviderService {
+ DataProviderService, AutoCloseable {
+ private AtomicLong nextTransaction = new AtomicLong();
+ private final AtomicLong createdTransactionsCount = new AtomicLong();
+
public DataBrokerImpl() {
setDataReadRouter(new DataReaderRouter());
}
-
- private AtomicLong nextTransaction = new AtomicLong();
+
+ public AtomicLong getCreatedTransactionsCount() {
+ return createdTransactionsCount;
+ }
@Override
public DataTransactionImpl beginTransaction() {
String transactionId = "DOM-" + nextTransaction.getAndIncrement();
+ createdTransactionsCount.getAndIncrement();
return new DataTransactionImpl(transactionId,this);
}
throw new UnsupportedOperationException("Deprecated");
}
+ @Override
+ public void close() throws Exception {
+
+ }
+
}
\ No newline at end of file
import config { prefix config; revision-date 2013-04-05; }
import opendaylight-md-sal-dom {prefix sal;}
+ import opendaylight-md-sal-common {prefix common;}
description
"Service definition for Binding Aware MD-SAL.";
base config:module-type;
config:provided-service sal:dom-broker-osgi-registry;
config:java-name-prefix DomBrokerImpl;
- }
+ }
identity hash-map-data-store {
base config:module-type;
}
}
+ augment "/config:modules/config:module/config:state" {
+ case dom-broker-impl {
+ when "/config:modules/config:module/config:type = 'dom-broker-impl'";
+ container data {
+ uses common:data-state;
+ }
+ }
+ }
}
\ No newline at end of file