From: Ed Warnicke Date: Sat, 7 Dec 2013 23:03:29 +0000 (+0000) Subject: Merge "Added transactions statistics for BI Broker." X-Git-Tag: jenkins-controller-bulk-release-prepare-only-2-1~235 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=ac65af650d550ae56dd02b660e1c5eef24b78740;hp=237237663265bfda9069c66151371ce7697aed59 Merge "Added transactions statistics for BI Broker." --- diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/statistics/DataBrokerRuntimeMXBeanImpl.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/statistics/DataBrokerRuntimeMXBeanImpl.java index a1a24ebc8a..5da084e9bd 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/statistics/DataBrokerRuntimeMXBeanImpl.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/statistics/DataBrokerRuntimeMXBeanImpl.java @@ -1,14 +1,15 @@ package org.opendaylight.controller.config.yang.md.sal.binding.statistics; +import org.opendaylight.controller.config.yang.md.sal.binding.impl.Data; import org.opendaylight.controller.config.yang.md.sal.binding.impl.DataBrokerImplRuntimeMXBean; import org.opendaylight.controller.config.yang.md.sal.binding.impl.Transactions; import org.opendaylight.controller.sal.binding.impl.DataBrokerImpl; public class DataBrokerRuntimeMXBeanImpl extends DataBrokerImpl implements DataBrokerImplRuntimeMXBean { - private Transactions transactions = new Transactions(); + private final Transactions transactions = new Transactions(); + private final Data data = new Data(); - @Override public Transactions getTransactions() { transactions.setCreated(getCreatedTransactionsCount().get()); transactions.setSubmitted(getSubmittedTransactionsCount().get()); @@ -16,4 +17,14 @@ public class DataBrokerRuntimeMXBeanImpl extends DataBrokerImpl implements DataB transactions.setFailed(getFailedTransactionsCount().get()); return transactions; } + + @Override + public Data getData() { + transactions.setCreated(getCreatedTransactionsCount().get()); + transactions.setSubmitted(getSubmittedTransactionsCount().get()); + transactions.setSuccessful(getFinishedTransactionsCount().get()); + transactions.setFailed(getFailedTransactionsCount().get()); + data.setTransactions(transactions); + return data; + } } diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/yang/opendaylight-binding-broker-impl.yang b/opendaylight/md-sal/sal-binding-broker/src/main/yang/opendaylight-binding-broker-impl.yang index 9da073f71b..b040aa025e 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/yang/opendaylight-binding-broker-impl.yang +++ b/opendaylight/md-sal/sal-binding-broker/src/main/yang/opendaylight-binding-broker-impl.yang @@ -121,7 +121,9 @@ module opendaylight-sal-binding-broker-impl { 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" { diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java index 050966faa0..9a2a90445e 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java @@ -9,10 +9,12 @@ */ 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.*; /** @@ -37,14 +39,15 @@ public final class DomBrokerImplModule extends org.opendaylight.controller.confi 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; } diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/statistics/DomBrokerRuntimeMXBeanImpl.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/statistics/DomBrokerRuntimeMXBeanImpl.java new file mode 100644 index 0000000000..bc13979d67 --- /dev/null +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/statistics/DomBrokerRuntimeMXBeanImpl.java @@ -0,0 +1,36 @@ +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; + } +} diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/BrokerConfigActivator.xtend b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/BrokerConfigActivator.xtend index da7cccb156..482cfa959f 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/BrokerConfigActivator.xtend +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/BrokerConfigActivator.xtend @@ -19,15 +19,16 @@ class BrokerConfigActivator implements AutoCloseable { private static val ROOT = InstanceIdentifier.builder().toInstance(); + + @Property + private var DataBrokerImpl dataService; private var ServiceRegistration schemaReg; private var ServiceRegistration dataReg; private var ServiceRegistration dataProviderReg; private var ServiceRegistration mountReg; private var ServiceRegistration mountProviderReg; - private var SchemaServiceImpl schemaService; - private var DataBrokerImpl dataService; private var MountPointManagerImpl mountService; SchemaAwareDataStoreAdapter wrappedStore diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/DataBrokerImpl.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/DataBrokerImpl.java index ac5313a9ca..56eae97848 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/DataBrokerImpl.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/DataBrokerImpl.java @@ -2,7 +2,6 @@ package org.opendaylight.controller.sal.dom.broker; 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; @@ -15,17 +14,23 @@ import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; public class DataBrokerImpl extends AbstractDataBroker 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); } @@ -66,4 +71,9 @@ public class DataBrokerImpl extends AbstractDataBroker