This is an automated email from the ASF dual-hosted git repository.

szetszwo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ratis.git


The following commit(s) were added to refs/heads/master by this push:
     new ee8a99641 RATIS-1710. Refactor metrics api and implementation to 
separated modules. (#749)
ee8a99641 is described below

commit ee8a99641b0861d4bf0a31d37a59a0f8a0d0af89
Author: Tsz-Wo Nicholas Sze <[email protected]>
AuthorDate: Thu Sep 22 17:05:53 2022 +0800

    RATIS-1710. Refactor metrics api and implementation to separated modules. 
(#749)
---
 pom.xml                                            | 24 +++++++-----
 ratis-assembly/pom.xml                             |  6 ++-
 ratis-assembly/src/main/assembly/bin.xml           |  3 +-
 ratis-assembly/src/main/assembly/src.xml           |  3 +-
 ratis-examples/pom.xml                             |  5 +++
 {ratis-metrics => ratis-metrics-api}/pom.xml       | 25 +-----------
 .../java/org/apache/ratis/metrics/LongCounter.java |  0
 .../org/apache/ratis/metrics/MetricRegistries.java |  0
 .../ratis/metrics/MetricRegistriesLoader.java      |  0
 .../ratis/metrics/MetricRegistryFactory.java       |  5 +--
 .../apache/ratis/metrics/MetricRegistryInfo.java   | 41 +++++++++++++-------
 .../apache/ratis/metrics/RatisMetricRegistry.java  |  0
 .../org/apache/ratis/metrics/RatisMetrics.java     |  8 +---
 .../java/org/apache/ratis/metrics/Timekeeper.java  |  0
 {ratis-metrics => ratis-metrics-default}/pom.xml   |  8 +++-
 .../ratis/metrics/impl/DefaultTimekeeperImpl.java  |  0
 .../org/apache/ratis/metrics/impl/JvmMetrics.java  |  0
 .../ratis/metrics/impl/MetricRegistriesImpl.java   |  0
 .../metrics/impl/MetricRegistryFactoryImpl.java    |  0
 .../ratis/metrics/impl/MetricsReporting.java       |  0
 .../metrics/impl/RatisMetricRegistryImpl.java      |  8 ++--
 .../ratis/metrics/impl/RatisObjectNameFactory.java |  0
 .../apache/ratis/metrics/impl/RefCountingMap.java  |  0
 .../org.apache.ratis.metrics.MetricRegistries      |  0
 .../ratis/metrics/TestMetricRegistriesLoader.java  |  2 +-
 .../ratis/metrics/impl/TestRefCountingMap.java     |  0
 .../src/test/resources/hadoop-metrics2.properties  | 45 ----------------------
 ratis-server/pom.xml                               |  6 +--
 ratis-test/pom.xml                                 |  6 +++
 .../ratis/grpc/server/TestGrpcServerMetrics.java   |  0
 30 files changed, 82 insertions(+), 113 deletions(-)

diff --git a/pom.xml b/pom.xml
index 6c7b6701e..aa2de1694 100644
--- a/pom.xml
+++ b/pom.xml
@@ -83,7 +83,8 @@
 
     <module>ratis-examples</module>
     <module>ratis-replicated-map</module>
-    <module>ratis-metrics</module>
+    <module>ratis-metrics-api</module>
+    <module>ratis-metrics-default</module>
     <module>ratis-tools</module>
     <module>ratis-shell</module>
     <module>ratis-assembly</module>
@@ -271,16 +272,21 @@
         <version>${project.version}</version>
       </dependency>
       <dependency>
-       <artifactId>ratis-metrics</artifactId>
-       <groupId>org.apache.ratis</groupId>
-       <version>${project.version}</version>
+        <artifactId>ratis-metrics-api</artifactId>
+        <groupId>org.apache.ratis</groupId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <artifactId>ratis-metrics-default</artifactId>
+        <groupId>org.apache.ratis</groupId>
+        <version>${project.version}</version>
       </dependency>
       <dependency>
-       <artifactId>ratis-metrics</artifactId>
-       <groupId>org.apache.ratis</groupId>
-       <version>${project.version}</version>
-       <type>test-jar</type>
-       <scope>test</scope>
+        <artifactId>ratis-metrics-default</artifactId>
+        <groupId>org.apache.ratis</groupId>
+        <version>${project.version}</version>
+        <type>test-jar</type>
+        <scope>test</scope>
       </dependency>
       <dependency>
         <artifactId>ratis-tools</artifactId>
diff --git a/ratis-assembly/pom.xml b/ratis-assembly/pom.xml
index 6cb0f0182..588e2a84f 100644
--- a/ratis-assembly/pom.xml
+++ b/ratis-assembly/pom.xml
@@ -291,7 +291,11 @@
 
     <dependency>
       <groupId>org.apache.ratis</groupId>
-      <artifactId>ratis-metrics</artifactId>
+      <artifactId>ratis-metrics-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.ratis</groupId>
+      <artifactId>ratis-metrics-default</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.ratis</groupId>
diff --git a/ratis-assembly/src/main/assembly/bin.xml 
b/ratis-assembly/src/main/assembly/bin.xml
index 59462c322..85c14fc33 100644
--- a/ratis-assembly/src/main/assembly/bin.xml
+++ b/ratis-assembly/src/main/assembly/bin.xml
@@ -39,7 +39,8 @@
         <include>org.apache.ratis:ratis-server-api</include>
         <include>org.apache.ratis:ratis-server</include>
         <include>org.apache.ratis:ratis-test</include>
-        <include>org.apache.ratis:ratis-metrics</include>
+        <include>org.apache.ratis:ratis-metrics-api</include>
+        <include>org.apache.ratis:ratis-metrics-default</include>
         <include>org.apache.ratis:ratis-tools</include>
         <include>org.apache.ratis:ratis-resource-bundle</include>
       </includes>
diff --git a/ratis-assembly/src/main/assembly/src.xml 
b/ratis-assembly/src/main/assembly/src.xml
index 4207472b2..6b001af63 100644
--- a/ratis-assembly/src/main/assembly/src.xml
+++ b/ratis-assembly/src/main/assembly/src.xml
@@ -42,7 +42,8 @@
         <include>org.apache.ratis:ratis-server</include>
         <include>org.apache.ratis:ratis-shell</include>
         <include>org.apache.ratis:ratis-test</include>
-        <include>org.apache.ratis:ratis-metrics</include>
+        <include>org.apache.ratis:ratis-metrics-api</include>
+        <include>org.apache.ratis:ratis-metrics-default</include>
         <include>org.apache.ratis:ratis-tools</include>
         <include>org.apache.ratis:ratis-resource-bundle</include>
       </includes>
diff --git a/ratis-examples/pom.xml b/ratis-examples/pom.xml
index 7dae2e1cb..9fa6c841b 100644
--- a/ratis-examples/pom.xml
+++ b/ratis-examples/pom.xml
@@ -64,6 +64,11 @@
       <type>test-jar</type>
     </dependency>
 
+    <dependency>
+      <artifactId>ratis-metrics-default</artifactId>
+      <groupId>org.apache.ratis</groupId>
+    </dependency>
+
     <dependency>
       <artifactId>ratis-grpc</artifactId>
       <groupId>org.apache.ratis</groupId>
diff --git a/ratis-metrics/pom.xml b/ratis-metrics-api/pom.xml
similarity index 66%
copy from ratis-metrics/pom.xml
copy to ratis-metrics-api/pom.xml
index 96e871652..bb22fc5b1 100644
--- a/ratis-metrics/pom.xml
+++ b/ratis-metrics-api/pom.xml
@@ -21,39 +21,18 @@
     <version>3.0.0-SNAPSHOT</version>
   </parent>
 
-  <artifactId>ratis-metrics</artifactId>
-  <name>Apache Ratis Metrics</name>
+  <artifactId>ratis-metrics-api</artifactId>
+  <name>Apache Ratis Metrics API</name>
 
   <dependencies>
-    <dependency>
-      <artifactId>ratis-proto</artifactId>
-      <groupId>org.apache.ratis</groupId>
-    </dependency>
-    <dependency>
-      <artifactId>ratis-common</artifactId>
-      <groupId>org.apache.ratis</groupId>
-    </dependency>
     <dependency>
       <artifactId>ratis-common</artifactId>
       <groupId>org.apache.ratis</groupId>
-      <scope>test</scope>
-      <type>test-jar</type>
     </dependency>
 
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>
-
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-core</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 </project>
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/LongCounter.java 
b/ratis-metrics-api/src/main/java/org/apache/ratis/metrics/LongCounter.java
similarity index 100%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/LongCounter.java
rename to 
ratis-metrics-api/src/main/java/org/apache/ratis/metrics/LongCounter.java
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/MetricRegistries.java 
b/ratis-metrics-api/src/main/java/org/apache/ratis/metrics/MetricRegistries.java
similarity index 100%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/MetricRegistries.java
rename to 
ratis-metrics-api/src/main/java/org/apache/ratis/metrics/MetricRegistries.java
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/MetricRegistriesLoader.java
 
b/ratis-metrics-api/src/main/java/org/apache/ratis/metrics/MetricRegistriesLoader.java
similarity index 100%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/MetricRegistriesLoader.java
rename to 
ratis-metrics-api/src/main/java/org/apache/ratis/metrics/MetricRegistriesLoader.java
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/MetricRegistryFactory.java
 
b/ratis-metrics-api/src/main/java/org/apache/ratis/metrics/MetricRegistryFactory.java
similarity index 99%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/MetricRegistryFactory.java
rename to 
ratis-metrics-api/src/main/java/org/apache/ratis/metrics/MetricRegistryFactory.java
index 8f45deb2b..deb15f344 100644
--- 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/MetricRegistryFactory.java
+++ 
b/ratis-metrics-api/src/main/java/org/apache/ratis/metrics/MetricRegistryFactory.java
@@ -1,5 +1,4 @@
-/**
- *
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -16,8 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-
 package org.apache.ratis.metrics;
 
 /**
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/MetricRegistryInfo.java 
b/ratis-metrics-api/src/main/java/org/apache/ratis/metrics/MetricRegistryInfo.java
similarity index 69%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/MetricRegistryInfo.java
rename to 
ratis-metrics-api/src/main/java/org/apache/ratis/metrics/MetricRegistryInfo.java
index 70efac627..8cf30a97f 100644
--- 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/MetricRegistryInfo.java
+++ 
b/ratis-metrics-api/src/main/java/org/apache/ratis/metrics/MetricRegistryInfo.java
@@ -18,23 +18,25 @@
 
 package org.apache.ratis.metrics;
 
-import org.apache.ratis.thirdparty.com.codahale.metrics.MetricRegistry;
+import org.apache.ratis.util.JavaUtils;
+import org.apache.ratis.util.MemoizedSupplier;
 
 import java.util.Objects;
+import java.util.function.Supplier;
 
 /**
- *
- * This class holds the name and description and JMX related context names for 
such group of
- * metrics.
+ * This class holds the name, description and JMX related context names for 
such group of metrics.
+ * <p>
+ * This class is immutable.
  */
 public class MetricRegistryInfo {
-
   private final String prefix;
   private final String metricsDescription;
   private final String metricsComponentName;
-  private final String fullName;
   private final String applicationName;
 
+  private final Supplier<Integer> hash = 
MemoizedSupplier.valueOf(this::computeHash);
+
   /**
    * @param prefix   className or component name this metric registry collects 
metric for
    * @param applicationName application Name needs to be in small case as it 
is used for hadoop2metrics
@@ -48,7 +50,6 @@ public class MetricRegistryInfo {
     this.applicationName = applicationName;
     this.metricsComponentName = metricsComponentName;
     this.metricsDescription = metricsDescription;
-    this.fullName = MetricRegistry.name(applicationName, metricsComponentName, 
prefix);
   }
 
   public String getApplicationName() {
@@ -79,21 +80,33 @@ public class MetricRegistryInfo {
 
   @Override
   public boolean equals(Object obj) {
-    if (obj instanceof MetricRegistryInfo) {
-      return this.hashCode() == obj.hashCode();
-    } else {
+    if (this == obj) {
+      return true;
+    } else if (!(obj instanceof MetricRegistryInfo)) {
       return false;
     }
+    final MetricRegistryInfo that = (MetricRegistryInfo) obj;
+    return Objects.equals(prefix, that.prefix)
+        && Objects.equals(metricsDescription, that.metricsDescription)
+        && Objects.equals(metricsComponentName, that.metricsComponentName)
+        && Objects.equals(applicationName, that.applicationName);
   }
 
   @Override
   public int hashCode() {
-    return Objects.hash(prefix, metricsDescription, metricsComponentName);
+    return hash.get();
   }
 
-  public String getName() {
-    return fullName;
+  private Integer computeHash() {
+    return Objects.hash(prefix, metricsDescription, metricsComponentName);
   }
 
-
+  @Override
+  public String toString() {
+    return JavaUtils.getClassSimpleName(getClass())
+        + ": applicationName=" + getApplicationName()
+        + ", metricsComponentName=" + getMetricsComponentName()
+        + ", prefix=" + getPrefix()
+        + ", metricsDescription=" + getMetricsDescription();
+  }
 }
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/RatisMetricRegistry.java 
b/ratis-metrics-api/src/main/java/org/apache/ratis/metrics/RatisMetricRegistry.java
similarity index 100%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/RatisMetricRegistry.java
rename to 
ratis-metrics-api/src/main/java/org/apache/ratis/metrics/RatisMetricRegistry.java
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/RatisMetrics.java 
b/ratis-metrics-api/src/main/java/org/apache/ratis/metrics/RatisMetrics.java
similarity index 93%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/RatisMetrics.java
rename to 
ratis-metrics-api/src/main/java/org/apache/ratis/metrics/RatisMetrics.java
index 7481394ee..32bcf52e3 100644
--- a/ratis-metrics/src/main/java/org/apache/ratis/metrics/RatisMetrics.java
+++ b/ratis-metrics-api/src/main/java/org/apache/ratis/metrics/RatisMetrics.java
@@ -59,9 +59,7 @@ public class RatisMetrics {
   protected static RatisMetricRegistry create(MetricRegistryInfo info) {
     Optional<RatisMetricRegistry> metricRegistry = 
MetricRegistries.global().get(info);
     return metricRegistry.orElseGet(() -> {
-      if (LOG.isDebugEnabled()) {
-        LOG.debug("Creating Metrics Registry : {}", info.getName());
-      }
+      LOG.debug("Creating {}", info);
       return MetricRegistries.global().create(info);
     });
   }
@@ -74,9 +72,7 @@ public class RatisMetrics {
 
   public void unregister() {
     MetricRegistryInfo info = registry.getMetricRegistryInfo();
-    if (LOG.isDebugEnabled()) {
-      LOG.debug("Unregistering Metrics Registry : {}", info.getName());
-    }
+    LOG.debug("Unregistering {}", info);
     Optional<RatisMetricRegistry> metricRegistry = 
MetricRegistries.global().get(info);
     if (metricRegistry.isPresent()) {
       MetricRegistries.global().remove(info);
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/Timekeeper.java 
b/ratis-metrics-api/src/main/java/org/apache/ratis/metrics/Timekeeper.java
similarity index 100%
rename from ratis-metrics/src/main/java/org/apache/ratis/metrics/Timekeeper.java
rename to 
ratis-metrics-api/src/main/java/org/apache/ratis/metrics/Timekeeper.java
diff --git a/ratis-metrics/pom.xml b/ratis-metrics-default/pom.xml
similarity index 88%
rename from ratis-metrics/pom.xml
rename to ratis-metrics-default/pom.xml
index 96e871652..178f89276 100644
--- a/ratis-metrics/pom.xml
+++ b/ratis-metrics-default/pom.xml
@@ -21,10 +21,14 @@
     <version>3.0.0-SNAPSHOT</version>
   </parent>
 
-  <artifactId>ratis-metrics</artifactId>
-  <name>Apache Ratis Metrics</name>
+  <artifactId>ratis-metrics-default</artifactId>
+  <name>Apache Ratis Metrics Default Implementation</name>
 
   <dependencies>
+    <dependency>
+      <artifactId>ratis-metrics-api</artifactId>
+      <groupId>org.apache.ratis</groupId>
+    </dependency>
     <dependency>
       <artifactId>ratis-proto</artifactId>
       <groupId>org.apache.ratis</groupId>
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/DefaultTimekeeperImpl.java
 
b/ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/DefaultTimekeeperImpl.java
similarity index 100%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/DefaultTimekeeperImpl.java
rename to 
ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/DefaultTimekeeperImpl.java
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/JvmMetrics.java 
b/ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/JvmMetrics.java
similarity index 100%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/JvmMetrics.java
rename to 
ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/JvmMetrics.java
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/MetricRegistriesImpl.java
 
b/ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/MetricRegistriesImpl.java
similarity index 100%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/MetricRegistriesImpl.java
rename to 
ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/MetricRegistriesImpl.java
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/MetricRegistryFactoryImpl.java
 
b/ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/MetricRegistryFactoryImpl.java
similarity index 100%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/MetricRegistryFactoryImpl.java
rename to 
ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/MetricRegistryFactoryImpl.java
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/MetricsReporting.java
 
b/ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/MetricsReporting.java
similarity index 100%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/MetricsReporting.java
rename to 
ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/MetricsReporting.java
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java
 
b/ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java
similarity index 94%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java
rename to 
ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java
index 0de6bc02d..4e8e58d47 100644
--- 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java
+++ 
b/ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java
@@ -32,6 +32,7 @@ import 
org.apache.ratis.thirdparty.com.codahale.metrics.jmx.JmxReporter;
 import 
org.apache.ratis.thirdparty.com.google.common.annotations.VisibleForTesting;
 
 import java.util.Map;
+import java.util.Objects;
 import java.util.SortedMap;
 import java.util.function.Supplier;
 
@@ -49,13 +50,14 @@ public class RatisMetricRegistryImpl implements 
RatisMetricRegistry {
   private final MetricRegistry metricRegistry = new MetricRegistry();
 
   private final MetricRegistryInfo info;
+  private final String namePrefix;
 
   private JmxReporter jmxReporter;
   private ConsoleReporter consoleReporter;
 
   public RatisMetricRegistryImpl(MetricRegistryInfo info) {
-    super();
-    this.info = info;
+    this.info = Objects.requireNonNull(info, "info == null");
+    this.namePrefix = MetricRegistry.name(info.getApplicationName(), 
info.getMetricsComponentName(), info.getPrefix());
   }
 
   @Override
@@ -111,7 +113,7 @@ public class RatisMetricRegistryImpl implements 
RatisMetricRegistry {
   }
 
   private String getMetricName(String shortName) {
-    return MetricRegistry.name(info.getName(), shortName);
+    return MetricRegistry.name(namePrefix, shortName);
   }
 
   private <T extends Metric> T register(String name, T metric) throws 
IllegalArgumentException {
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisObjectNameFactory.java
 
b/ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/RatisObjectNameFactory.java
similarity index 100%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisObjectNameFactory.java
rename to 
ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/RatisObjectNameFactory.java
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RefCountingMap.java 
b/ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/RefCountingMap.java
similarity index 100%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RefCountingMap.java
rename to 
ratis-metrics-default/src/main/java/org/apache/ratis/metrics/impl/RefCountingMap.java
diff --git 
a/ratis-metrics/src/main/resources/META-INF/services/org.apache.ratis.metrics.MetricRegistries
 
b/ratis-metrics-default/src/main/resources/META-INF/services/org.apache.ratis.metrics.MetricRegistries
similarity index 100%
rename from 
ratis-metrics/src/main/resources/META-INF/services/org.apache.ratis.metrics.MetricRegistries
rename to 
ratis-metrics-default/src/main/resources/META-INF/services/org.apache.ratis.metrics.MetricRegistries
diff --git 
a/ratis-metrics/src/test/java/org/apache/ratis/metrics/TestMetricRegistriesLoader.java
 
b/ratis-metrics-default/src/test/java/org/apache/ratis/metrics/TestMetricRegistriesLoader.java
similarity index 99%
rename from 
ratis-metrics/src/test/java/org/apache/ratis/metrics/TestMetricRegistriesLoader.java
rename to 
ratis-metrics-default/src/test/java/org/apache/ratis/metrics/TestMetricRegistriesLoader.java
index 8429ded13..cbfa6810c 100644
--- 
a/ratis-metrics/src/test/java/org/apache/ratis/metrics/TestMetricRegistriesLoader.java
+++ 
b/ratis-metrics-default/src/test/java/org/apache/ratis/metrics/TestMetricRegistriesLoader.java
@@ -1,4 +1,4 @@
-/**
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
diff --git 
a/ratis-metrics/src/test/java/org/apache/ratis/metrics/impl/TestRefCountingMap.java
 
b/ratis-metrics-default/src/test/java/org/apache/ratis/metrics/impl/TestRefCountingMap.java
similarity index 100%
rename from 
ratis-metrics/src/test/java/org/apache/ratis/metrics/impl/TestRefCountingMap.java
rename to 
ratis-metrics-default/src/test/java/org/apache/ratis/metrics/impl/TestRefCountingMap.java
diff --git a/ratis-metrics/src/test/resources/hadoop-metrics2.properties 
b/ratis-metrics/src/test/resources/hadoop-metrics2.properties
deleted file mode 100644
index fdec0fad2..000000000
--- a/ratis-metrics/src/test/resources/hadoop-metrics2.properties
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#There are two options with file names:
-#  1. hadoop-metrics2-[prefix].properties
-#  2. hadoop-metrics2.properties
-# Either will be loaded by the metrics system (but not both).
-#
-# NOTE: The metrics system is only initialized once per JVM (but does 
ref-counting, so we can't
-# shutdown and restart), so we only load the first prefix that we find. 
Generally, this will be
-# ratis_log_service_metadata/ratis_log_service/ratis (unless someone else 
registers first,
-# but for many clients, there should only be one).
-#
-# Usually, you would use hadoop-metrics2-phoenix.properties, but we use the 
generic
-# hadoop-metrics2.properties to ensure it these are loaded regardless of where 
we are running,
-# assuming there isn't another config on the classpath.
-
-#
-# When specifying sinks, the syntax to use is:
-#    [prefix].[source|sink].[instance].[options]
-# See javadoc of package-info.java for org.apache.hadoop.metrics2 for detail
-
-ratis_test.source.start_mbeans=true
-ratis.sink.sink0.class=org.apache.ratis.metrics.TestHadoop2MetricsSink
-#ratis_test.sink.ganglia.servers=localhost:8649
-#*.sink.graphite.class=org.apache.hadoop.metrics2.sink.GraphiteSink
-#ratis_test.sink.graphite.server_host=localhost
-#ratis_test.sink.graphite.server_port=2003
-# Frequency, in seconds, of sampling from the sources
-*.period=1
diff --git a/ratis-server/pom.xml b/ratis-server/pom.xml
index c145137f0..c1a433e13 100644
--- a/ratis-server/pom.xml
+++ b/ratis-server/pom.xml
@@ -82,15 +82,15 @@
     </dependency>
     <dependency>
       <groupId>org.apache.ratis</groupId>
-      <artifactId>ratis-metrics</artifactId>
+      <artifactId>ratis-metrics-api</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.ratis</groupId>
-      <artifactId>ratis-metrics</artifactId>
-      <type>test-jar</type>
+      <artifactId>ratis-metrics-default</artifactId>
       <scope>test</scope>
     </dependency>
 
+
     <dependency>
       <groupId>com.github.spotbugs</groupId>
       <artifactId>spotbugs-annotations</artifactId>
diff --git a/ratis-test/pom.xml b/ratis-test/pom.xml
index ce05786a9..fcc751049 100644
--- a/ratis-test/pom.xml
+++ b/ratis-test/pom.xml
@@ -54,6 +54,12 @@
       <type>test-jar</type>
     </dependency>
 
+    <dependency>
+      <artifactId>ratis-metrics-default</artifactId>
+      <groupId>org.apache.ratis</groupId>
+      <scope>test</scope>
+    </dependency>
+
     <dependency>
       <artifactId>ratis-netty</artifactId>
       <groupId>org.apache.ratis</groupId>
diff --git 
a/ratis-grpc/src/test/java/org/apache/ratis/grpc/server/TestGrpcServerMetrics.java
 
b/ratis-test/src/test/java/org/apache/ratis/grpc/server/TestGrpcServerMetrics.java
similarity index 100%
rename from 
ratis-grpc/src/test/java/org/apache/ratis/grpc/server/TestGrpcServerMetrics.java
rename to 
ratis-test/src/test/java/org/apache/ratis/grpc/server/TestGrpcServerMetrics.java

Reply via email to