From 817d0efe25becd8d457550b11bf985298e169954 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 23 Oct 2020 17:16:50 +0200 Subject: [PATCH] Move MXBean definitions to cds-mgmt-api Downstreams are very interested in the details of CDS operation and end up going through all kinds of hoops to get at the information exposed in our MXBeans. They mostly do that without touching the definition itself, so let's make it easier and publish the definitions in an API artifact. We also end up evacuating implementations to the packages that expose them, hiding them from plain sight. Since we want them to really be final, also adjust tests which are mocking them for no good reason. JIRA: CONTROLLER-1965 Change-Id: I9bb1eb792c7ce4b7197b4da715c2c5223b41ff73 Signed-off-by: Robert Varga --- artifacts/pom.xml | 5 +++ opendaylight/md-sal/cds-mgmt-api/pom.xml | 34 +++++++++++++++++++ .../jmx/mbeans/CommitStatsMXBean.java | 2 -- .../mbeans/DatastoreConfigurationMXBean.java | 0 .../jmx/mbeans/DatastoreInfoMXBean.java | 6 ++-- opendaylight/md-sal/pom.xml | 1 + .../md-sal/sal-distributed-datastore/pom.xml | 4 +++ .../CommitStatsMXBeanImpl.java | 10 +++--- .../cluster/databroker/OSGiDOMDataBroker.java | 1 - .../cluster/datastore/AbstractDataStore.java | 2 -- .../DatastoreConfigurationMXBeanImpl.java | 8 ++--- .../mbeans => }/DatastoreInfoMXBeanImpl.java | 7 ++-- .../shard => }/OnDemandShardStateCache.java | 4 +-- .../controller/cluster/datastore/Shard.java | 3 -- .../cluster/datastore/ShardDataTree.java | 1 - .../ShardDataTreeListenerInfoMXBeanImpl.java | 8 ++--- .../mbeans/shard => }/ShardMBeanFactory.java | 7 ++-- .../datastore/ShardReadTransaction.java | 1 - .../datastore/ShardReadWriteTransaction.java | 1 - .../{jmx/mbeans/shard => }/ShardStats.java | 8 ++--- .../cluster/datastore/ShardTransaction.java | 1 - .../ShardTransactionActorFactory.java | 1 - .../datastore/ShardWriteTransaction.java | 1 - .../CommitStatsMXBeanImplTest.java | 8 ++--- .../cluster/datastore/IntegrationTestKit.java | 1 - .../cluster/datastore/ShardDataTreeTest.java | 3 +- .../mbeans/shard => }/ShardStatsTest.java | 2 +- .../cluster/datastore/ShardTest.java | 1 - .../ShardTransactionFailureTest.java | 6 ++-- 29 files changed, 78 insertions(+), 59 deletions(-) create mode 100644 opendaylight/md-sal/cds-mgmt-api/pom.xml rename opendaylight/md-sal/{sal-distributed-datastore => cds-mgmt-api}/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/CommitStatsMXBean.java (99%) rename opendaylight/md-sal/{sal-distributed-datastore => cds-mgmt-api}/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreConfigurationMXBean.java (100%) rename opendaylight/md-sal/{sal-distributed-datastore => cds-mgmt-api}/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreInfoMXBean.java (81%) rename opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/{datastore/jmx/mbeans => databroker}/CommitStatsMXBeanImpl.java (81%) rename opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/{jmx/mbeans => }/DatastoreConfigurationMXBeanImpl.java (91%) rename opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/{jmx/mbeans => }/DatastoreInfoMXBeanImpl.java (77%) rename opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/{jmx/mbeans/shard => }/OnDemandShardStateCache.java (95%) rename opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/{jmx/mbeans/shard => }/ShardDataTreeListenerInfoMXBeanImpl.java (88%) rename opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/{jmx/mbeans/shard => }/ShardMBeanFactory.java (74%) rename opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/{jmx/mbeans/shard => }/ShardStats.java (96%) rename opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/{datastore/jmx/mbeans => databroker}/CommitStatsMXBeanImplTest.java (85%) rename opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/{jmx/mbeans/shard => }/ShardStatsTest.java (98%) diff --git a/artifacts/pom.xml b/artifacts/pom.xml index f0595dda5b..7fba70554b 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -158,6 +158,11 @@ cds-dom-api ${project.version} + + org.opendaylight.controller + cds-mgmt-api + ${project.version} + diff --git a/opendaylight/md-sal/cds-mgmt-api/pom.xml b/opendaylight/md-sal/cds-mgmt-api/pom.xml new file mode 100644 index 0000000000..9dee448583 --- /dev/null +++ b/opendaylight/md-sal/cds-mgmt-api/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + + org.opendaylight.controller + mdsal-parent + 3.0.2-SNAPSHOT + ../parent + + + cds-mgmt-api + bundle + + + + + org.apache.felix + maven-bundle-plugin + + + org.opendaylight.controller.cluster.mgmt.api + + + + + + + + scm:git:http://git.opendaylight.org/gerrit/controller.git + scm:git:ssh://git.opendaylight.org:29418/controller.git + HEAD + https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:Architecture:Clustering + + diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/CommitStatsMXBean.java b/opendaylight/md-sal/cds-mgmt-api/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/CommitStatsMXBean.java similarity index 99% rename from opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/CommitStatsMXBean.java rename to opendaylight/md-sal/cds-mgmt-api/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/CommitStatsMXBean.java index 1524578234..fee73688f8 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/CommitStatsMXBean.java +++ b/opendaylight/md-sal/cds-mgmt-api/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/CommitStatsMXBean.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.cluster.datastore.jmx.mbeans; /** @@ -14,7 +13,6 @@ package org.opendaylight.controller.cluster.datastore.jmx.mbeans; * @author Thomas Pantelis */ public interface CommitStatsMXBean { - /** * Returns the total number of commits that have occurred. * diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreConfigurationMXBean.java b/opendaylight/md-sal/cds-mgmt-api/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreConfigurationMXBean.java similarity index 100% rename from opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreConfigurationMXBean.java rename to opendaylight/md-sal/cds-mgmt-api/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreConfigurationMXBean.java diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreInfoMXBean.java b/opendaylight/md-sal/cds-mgmt-api/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreInfoMXBean.java similarity index 81% rename from opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreInfoMXBean.java rename to opendaylight/md-sal/cds-mgmt-api/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreInfoMXBean.java index 53bc70cb80..8764493c25 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreInfoMXBean.java +++ b/opendaylight/md-sal/cds-mgmt-api/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreInfoMXBean.java @@ -7,8 +7,6 @@ */ package org.opendaylight.controller.cluster.datastore.jmx.mbeans; -import akka.pattern.AskTimeoutException; - /** * JMX bean for general datastore info. * @@ -19,14 +17,14 @@ public interface DatastoreInfoMXBean { double getTransactionCreationRateLimit(); /** - * Return the number of {@link AskTimeoutException}s encountered by the datastore. + * Return the number of {@code AskTimeoutException}s encountered by the datastore. * * @return Number of exceptions encountered */ long getAskTimeoutExceptionCount(); /** - * Reset the number of {@link AskTimeoutException}s encountered by the datastore. + * Reset the number of {@code AskTimeoutException}s encountered by the datastore. */ void resetAskTimeoutExceptionCount(); } diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index b4835b0f38..21cc20e898 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -35,6 +35,7 @@ cds-access-api cds-access-client cds-dom-api + cds-mgmt-api sal-akka-segmented-journal diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index c8f4736407..92c49eff09 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -83,6 +83,10 @@ org.opendaylight.controller cds-dom-api + + org.opendaylight.controller + cds-mgmt-api + org.opendaylight.controller sal-akka-raft-example diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/CommitStatsMXBeanImpl.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/CommitStatsMXBeanImpl.java similarity index 81% rename from opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/CommitStatsMXBeanImpl.java rename to opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/CommitStatsMXBeanImpl.java index 463f42d5f5..64d229ab9b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/CommitStatsMXBeanImpl.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/CommitStatsMXBeanImpl.java @@ -5,9 +5,10 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.controller.cluster.datastore.jmx.mbeans; +package org.opendaylight.controller.cluster.databroker; import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.controller.cluster.datastore.jmx.mbeans.CommitStatsMXBean; import org.opendaylight.controller.md.sal.common.util.jmx.AbstractMXBean; import org.opendaylight.yangtools.util.DurationStatisticsTracker; @@ -16,8 +17,7 @@ import org.opendaylight.yangtools.util.DurationStatisticsTracker; * * @author Thomas Pantelis */ -public class CommitStatsMXBeanImpl extends AbstractMXBean implements CommitStatsMXBean { - +final class CommitStatsMXBeanImpl extends AbstractMXBean implements CommitStatsMXBean { private final DurationStatisticsTracker commitStatsTracker; /** @@ -26,8 +26,8 @@ public class CommitStatsMXBeanImpl extends AbstractMXBean implements CommitStats * @param commitStatsTracker the DurationStatsTracker used to obtain the stats. * @param mbeantype mBeanType Used as the type property in the bean's ObjectName. */ - public CommitStatsMXBeanImpl(@NonNull DurationStatisticsTracker commitStatsTracker, - @NonNull String mbeantype) { + CommitStatsMXBeanImpl(final @NonNull DurationStatisticsTracker commitStatsTracker, + final @NonNull String mbeantype) { super("CommitStats", mbeantype, null); this.commitStatsTracker = commitStatsTracker; } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/OSGiDOMDataBroker.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/OSGiDOMDataBroker.java index f0dbf96252..3395c7268f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/OSGiDOMDataBroker.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/OSGiDOMDataBroker.java @@ -12,7 +12,6 @@ import com.google.common.collect.ClassToInstanceMap; import com.google.common.collect.ImmutableMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.CommitStatsMXBeanImpl; import org.opendaylight.controller.md.sal.common.util.jmx.ThreadExecutorStatsMXBeanImpl; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.DOMDataBroker; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractDataStore.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractDataStore.java index 95cd0adc8a..a4c87279b6 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractDataStore.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractDataStore.java @@ -30,8 +30,6 @@ import org.opendaylight.controller.cluster.databroker.actors.dds.DataStoreClient import org.opendaylight.controller.cluster.databroker.actors.dds.DistributedDataStoreClientActor; import org.opendaylight.controller.cluster.datastore.config.Configuration; import org.opendaylight.controller.cluster.datastore.identifiers.ShardManagerIdentifier; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.DatastoreConfigurationMXBeanImpl; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.DatastoreInfoMXBeanImpl; import org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot; import org.opendaylight.controller.cluster.datastore.shardmanager.AbstractShardManagerCreator; import org.opendaylight.controller.cluster.datastore.shardmanager.ShardManagerCreator; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreConfigurationMXBeanImpl.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreConfigurationMXBeanImpl.java similarity index 91% rename from opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreConfigurationMXBeanImpl.java rename to opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreConfigurationMXBeanImpl.java index ac3f30b73a..7d778bfabd 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreConfigurationMXBeanImpl.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreConfigurationMXBeanImpl.java @@ -5,10 +5,10 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.controller.cluster.datastore.jmx.mbeans; +package org.opendaylight.controller.cluster.datastore; import java.util.concurrent.TimeUnit; -import org.opendaylight.controller.cluster.datastore.DatastoreContext; +import org.opendaylight.controller.cluster.datastore.jmx.mbeans.DatastoreConfigurationMXBean; import org.opendaylight.controller.md.sal.common.util.jmx.AbstractMXBean; /** @@ -16,12 +16,12 @@ import org.opendaylight.controller.md.sal.common.util.jmx.AbstractMXBean; * * @author Thomas Pantelis */ -public class DatastoreConfigurationMXBeanImpl extends AbstractMXBean implements DatastoreConfigurationMXBean { +final class DatastoreConfigurationMXBeanImpl extends AbstractMXBean implements DatastoreConfigurationMXBean { public static final String JMX_CATEGORY_CONFIGURATION = "Configuration"; private DatastoreContext context; - public DatastoreConfigurationMXBeanImpl(final String mxBeanType) { + DatastoreConfigurationMXBeanImpl(final String mxBeanType) { super("Datastore", mxBeanType, JMX_CATEGORY_CONFIGURATION); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreInfoMXBeanImpl.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreInfoMXBeanImpl.java similarity index 77% rename from opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreInfoMXBeanImpl.java rename to opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreInfoMXBeanImpl.java index 00ecb72703..db547d5401 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/DatastoreInfoMXBeanImpl.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreInfoMXBeanImpl.java @@ -5,8 +5,9 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.controller.cluster.datastore.jmx.mbeans; +package org.opendaylight.controller.cluster.datastore; +import org.opendaylight.controller.cluster.datastore.jmx.mbeans.DatastoreInfoMXBean; import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.controller.md.sal.common.util.jmx.AbstractMXBean; @@ -15,10 +16,10 @@ import org.opendaylight.controller.md.sal.common.util.jmx.AbstractMXBean; * * @author Thomas Pantelis */ -public class DatastoreInfoMXBeanImpl extends AbstractMXBean implements DatastoreInfoMXBean { +final class DatastoreInfoMXBeanImpl extends AbstractMXBean implements DatastoreInfoMXBean { private final ActorUtils actorUtils; - public DatastoreInfoMXBeanImpl(final String mxBeanType, final ActorUtils actorUtils) { + DatastoreInfoMXBeanImpl(final String mxBeanType, final ActorUtils actorUtils) { super("GeneralRuntimeInfo", mxBeanType, null); this.actorUtils = actorUtils; } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/OnDemandShardStateCache.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/OnDemandShardStateCache.java similarity index 95% rename from opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/OnDemandShardStateCache.java rename to opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/OnDemandShardStateCache.java index a830c799c8..7aff93237f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/OnDemandShardStateCache.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/OnDemandShardStateCache.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard; +package org.opendaylight.controller.cluster.datastore; import static java.util.Objects.requireNonNull; @@ -25,7 +25,7 @@ import scala.concurrent.Await; * * @author Thomas Pantelis */ -class OnDemandShardStateCache { +final class OnDemandShardStateCache { private static final Cache ONDEMAND_SHARD_STATE_CACHE = CacheBuilder.newBuilder().expireAfterWrite(2, TimeUnit.SECONDS).build(); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java index d476b332b3..8003e2b4d3 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java @@ -66,9 +66,6 @@ import org.opendaylight.controller.cluster.common.actor.MessageTracker.Error; import org.opendaylight.controller.cluster.common.actor.MeteringBehavior; import org.opendaylight.controller.cluster.datastore.exceptions.NoShardLeaderException; import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardDataTreeListenerInfoMXBeanImpl; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardMBeanFactory; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; import org.opendaylight.controller.cluster.datastore.messages.AbortTransaction; import org.opendaylight.controller.cluster.datastore.messages.ActorInitialized; import org.opendaylight.controller.cluster.datastore.messages.BatchedModifications; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java index b2549eaf4d..d4dabe5e85 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java @@ -51,7 +51,6 @@ import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifie import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.DataTreeCohortActorRegistry.CohortRegistryCommand; import org.opendaylight.controller.cluster.datastore.ShardDataTreeCohort.State; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; import org.opendaylight.controller.cluster.datastore.node.utils.transformer.ReusableNormalizedNodePruner; import org.opendaylight.controller.cluster.datastore.persisted.AbortTransactionPayload; import org.opendaylight.controller.cluster.datastore.persisted.AbstractIdentifiablePayload; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardDataTreeListenerInfoMXBeanImpl.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeListenerInfoMXBeanImpl.java similarity index 88% rename from opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardDataTreeListenerInfoMXBeanImpl.java rename to opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeListenerInfoMXBeanImpl.java index 6384735cf1..4b34397adc 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardDataTreeListenerInfoMXBeanImpl.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeListenerInfoMXBeanImpl.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard; +package org.opendaylight.controller.cluster.datastore; import static java.util.Objects.requireNonNull; @@ -23,6 +23,7 @@ import java.util.List; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.stream.Collectors; +import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardDataTreeListenerInfoMXBean; import org.opendaylight.controller.cluster.datastore.messages.DataTreeListenerInfo; import org.opendaylight.controller.cluster.datastore.messages.GetInfo; import org.opendaylight.controller.cluster.datastore.messages.OnDemandShardState; @@ -36,13 +37,12 @@ import scala.concurrent.Future; * * @author Thomas Pantelis */ -public class ShardDataTreeListenerInfoMXBeanImpl extends AbstractMXBean implements ShardDataTreeListenerInfoMXBean { +final class ShardDataTreeListenerInfoMXBeanImpl extends AbstractMXBean implements ShardDataTreeListenerInfoMXBean { private static final String JMX_CATEGORY = "ShardDataTreeListenerInfo"; private final OnDemandShardStateCache stateCache; - public ShardDataTreeListenerInfoMXBeanImpl(final String shardName, final String mxBeanType, - final ActorRef shardActor) { + ShardDataTreeListenerInfoMXBeanImpl(final String shardName, final String mxBeanType, final ActorRef shardActor) { super(shardName, mxBeanType, JMX_CATEGORY); stateCache = new OnDemandShardStateCache(shardName, requireNonNull(shardActor)); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardMBeanFactory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardMBeanFactory.java similarity index 74% rename from opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardMBeanFactory.java rename to opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardMBeanFactory.java index 17f4ba6686..565fad3217 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardMBeanFactory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardMBeanFactory.java @@ -5,22 +5,21 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard; +package org.opendaylight.controller.cluster.datastore; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.controller.cluster.datastore.Shard; /** * Factory for creating ShardStats mbeans. * * @author Basheeruddin syedbahm@cisco.com */ -public final class ShardMBeanFactory { +final class ShardMBeanFactory { private ShardMBeanFactory() { } - public static ShardStats getShardStatsMBean(final String shardName, final String mxBeanType, + static ShardStats getShardStatsMBean(final String shardName, final String mxBeanType, final @NonNull Shard shard) { String finalMXBeanType = mxBeanType != null ? mxBeanType : "DistDataStore"; ShardStats shardStatsMBeanImpl = new ShardStats(shardName, finalMXBeanType, shard); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadTransaction.java index 3b0105bf67..49cb3c4d38 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadTransaction.java @@ -10,7 +10,6 @@ package org.opendaylight.controller.cluster.datastore; import static java.util.Objects.requireNonNull; import akka.actor.ActorRef; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; import org.opendaylight.controller.cluster.datastore.messages.DataExists; import org.opendaylight.controller.cluster.datastore.messages.ReadData; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadWriteTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadWriteTransaction.java index 5e5a2a42cf..8cbf143673 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadWriteTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadWriteTransaction.java @@ -9,7 +9,6 @@ package org.opendaylight.controller.cluster.datastore; import akka.actor.ActorRef; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; import org.opendaylight.controller.cluster.datastore.messages.DataExists; import org.opendaylight.controller.cluster.datastore.messages.ReadData; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardStats.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardStats.java similarity index 96% rename from opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardStats.java rename to opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardStats.java index 954032a323..7a2831b329 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardStats.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardStats.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard; +package org.opendaylight.controller.cluster.datastore; import akka.actor.ActorRef; import com.google.common.base.Joiner; @@ -16,7 +16,7 @@ import java.util.List; import java.util.concurrent.atomic.AtomicLong; import org.checkerframework.checker.lock.qual.GuardedBy; import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.controller.cluster.datastore.Shard; +import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStatsMXBean; import org.opendaylight.controller.cluster.raft.base.messages.InitiateCaptureSnapshot; import org.opendaylight.controller.cluster.raft.client.messages.FollowerInfo; import org.opendaylight.controller.cluster.raft.client.messages.OnDemandRaftState; @@ -27,7 +27,7 @@ import org.opendaylight.controller.md.sal.common.util.jmx.AbstractMXBean; * * @author Basheeruddin syedbahm@cisco.com */ -public class ShardStats extends AbstractMXBean implements ShardStatsMXBean { +final class ShardStats extends AbstractMXBean implements ShardStatsMXBean { public static final String JMX_CATEGORY_SHARD = "Shards"; // FIXME: migrate this to Java 8 thread-safe time @@ -62,7 +62,7 @@ public class ShardStats extends AbstractMXBean implements ShardStatsMXBean { private long lastLeadershipChangeTime; - public ShardStats(final String shardName, final String mxBeanType, final @Nullable Shard shard) { + ShardStats(final String shardName, final String mxBeanType, final @Nullable Shard shard) { super(shardName, mxBeanType, JMX_CATEGORY_SHARD); this.shard = shard; stateCache = new OnDemandShardStateCache(shardName, shard != null ? shard.self() : null); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransaction.java index 9e50f17d19..44393a14f1 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransaction.java @@ -17,7 +17,6 @@ import akka.japi.Creator; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.common.actor.AbstractUntypedActorWithMetering; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; import org.opendaylight.controller.cluster.datastore.messages.CloseTransaction; import org.opendaylight.controller.cluster.datastore.messages.CloseTransactionReply; import org.opendaylight.controller.cluster.datastore.messages.DataExists; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransactionActorFactory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransactionActorFactory.java index 26c4086c2e..881f3c39d0 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransactionActorFactory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransactionActorFactory.java @@ -16,7 +16,6 @@ import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; import org.opendaylight.controller.cluster.access.concepts.FrontendIdentifier; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; /** * A factory for creating ShardTransaction actors. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardWriteTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardWriteTransaction.java index b3f4b0b0d6..f900e1383a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardWriteTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardWriteTransaction.java @@ -12,7 +12,6 @@ package org.opendaylight.controller.cluster.datastore; import akka.actor.ActorRef; import akka.actor.PoisonPill; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; import org.opendaylight.controller.cluster.datastore.messages.BatchedModifications; import org.opendaylight.controller.cluster.datastore.messages.BatchedModificationsReply; import org.opendaylight.controller.cluster.datastore.messages.DataExists; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/CommitStatsMXBeanImplTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/CommitStatsMXBeanImplTest.java similarity index 85% rename from opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/CommitStatsMXBeanImplTest.java rename to opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/CommitStatsMXBeanImplTest.java index d5c10d6390..464445fa8e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/CommitStatsMXBeanImplTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/CommitStatsMXBeanImplTest.java @@ -5,8 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - -package org.opendaylight.controller.cluster.datastore.jmx.mbeans; +package org.opendaylight.controller.cluster.databroker; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -20,13 +19,10 @@ import org.opendaylight.yangtools.util.DurationStatisticsTracker; * @author Thomas Pantelis */ public class CommitStatsMXBeanImplTest { - @Test public void test() { - DurationStatisticsTracker commitStatsTracker = DurationStatisticsTracker.createConcurrent(); - CommitStatsMXBeanImpl bean = - new CommitStatsMXBeanImpl(commitStatsTracker, "Test"); + CommitStatsMXBeanImpl bean = new CommitStatsMXBeanImpl(commitStatsTracker, "Test"); commitStatsTracker.addDuration(100); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/IntegrationTestKit.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/IntegrationTestKit.java index e827cdcaf9..0bf67fa45e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/IntegrationTestKit.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/IntegrationTestKit.java @@ -34,7 +34,6 @@ import org.opendaylight.controller.cluster.datastore.DatastoreContext.Builder; import org.opendaylight.controller.cluster.datastore.config.Configuration; import org.opendaylight.controller.cluster.datastore.config.ConfigurationImpl; import org.opendaylight.controller.cluster.datastore.config.EmptyModuleShardConfigProvider; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; import org.opendaylight.controller.cluster.datastore.messages.OnDemandShardState; import org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot; import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTest.java index 73b5e560be..6a8635b2c2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTest.java @@ -49,7 +49,6 @@ import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.InOrder; import org.mockito.Mockito; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; import org.opendaylight.controller.cluster.datastore.persisted.CommitTransactionPayload; import org.opendaylight.controller.cluster.datastore.persisted.MetadataShardDataTreeSnapshot; import org.opendaylight.controller.cluster.datastore.persisted.PayloadVersion; @@ -90,7 +89,7 @@ public class ShardDataTreeTest extends AbstractTest { @Before public void setUp() { doReturn(Ticker.systemTicker()).when(mockShard).ticker(); - doReturn(mock(ShardStats.class)).when(mockShard).getShardMBean(); + doReturn(new ShardStats("shardName", "mxBeanType", mockShard)).when(mockShard).getShardMBean(); doReturn(DATASTORE_CONTEXT).when(mockShard).getDatastoreContext(); fullSchema = SchemaContextHelper.full(); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardStatsTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardStatsTest.java similarity index 98% rename from opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardStatsTest.java rename to opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardStatsTest.java index 4114116780..c4399558a0 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardStatsTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardStatsTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard; +package org.opendaylight.controller.cluster.datastore; import java.lang.management.ManagementFactory; import java.text.SimpleDateFormat; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java index 6429307dc1..833f97a540 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java @@ -52,7 +52,6 @@ import org.opendaylight.controller.cluster.access.concepts.MemberName; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.exceptions.NoShardLeaderException; import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; import org.opendaylight.controller.cluster.datastore.messages.AbortTransaction; import org.opendaylight.controller.cluster.datastore.messages.AbortTransactionReply; import org.opendaylight.controller.cluster.datastore.messages.BatchedModifications; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionFailureTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionFailureTest.java index fdd055c046..1ca294db58 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionFailureTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionFailureTest.java @@ -7,8 +7,8 @@ */ package org.opendaylight.controller.cluster.datastore; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import akka.actor.ActorRef; import akka.actor.Props; @@ -18,7 +18,6 @@ import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.cluster.access.concepts.MemberName; import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; import org.opendaylight.controller.cluster.datastore.messages.DataExists; import org.opendaylight.controller.cluster.datastore.messages.ReadData; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; @@ -60,8 +59,7 @@ public class ShardTransactionFailureTest extends AbstractActorTest { @Before public void setup() { - ShardStats stats = mock(ShardStats.class); - when(MOCK_SHARD.getShardMBean()).thenReturn(stats); + doReturn(new ShardStats("inventory", "mxBeanType", MOCK_SHARD)).when(MOCK_SHARD).getShardMBean(); } @Test(expected = ReadFailedException.class) -- 2.36.6