You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by eo...@apache.org on 2020/05/10 14:45:03 UTC

[maven-metric] 01/01: Follow Robert's suggestions

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

eolivelli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-metric.git

commit 3905526b47bcfd6ee8755bfdf83100e222cf7d7d
Author: Enrico Olivelli <eo...@apache.org>
AuthorDate: Sun May 10 16:28:49 2020 +0200

    Follow Robert's suggestions
---
 .../java/org/apache/maven/metrics/Counter.java     |  8 ++---
 .../org/apache/maven/metrics/MetricsContext.java   | 14 ++++----
 .../org/apache/maven/metrics/MetricsProvider.java  | 10 +++---
 .../org/apache/maven/metrics/MetricsSystem.java    |  8 ++---
 .../java/org/apache/maven/metrics/Summary.java     |  4 +--
 .../java/org/apache/maven/metrics/SummarySet.java  |  4 +--
 .../maven/metrics/impl/NullMetricsProvider.java    | 10 +++---
 .../{MetricsSystem.java => util/MetricsUtils.java} | 37 ++++++++++++++--------
 8 files changed, 53 insertions(+), 42 deletions(-)

diff --git a/maven-metrics-api/src/main/java/org/apache/maven/metrics/Counter.java b/maven-metrics-api/src/main/java/org/apache/maven/metrics/Counter.java
index e2eb1d1..a22e4e1 100644
--- a/maven-metrics-api/src/main/java/org/apache/maven/metrics/Counter.java
+++ b/maven-metrics-api/src/main/java/org/apache/maven/metrics/Counter.java
@@ -23,14 +23,14 @@ package org.apache.maven.metrics;
  * A counter refers to a value which can only increase.
  * Usually the value is reset when the process starts.
  */
-public interface Counter
+public abstract class Counter
 {
 
     /**
      * Increment the value by one.
      * <p>This method is thread safe, The MetricsProvider will take care of synchronization.</p>
      */
-    default void inc()
+    public void inc()
     {
         add( 1 );
     }
@@ -41,7 +41,7 @@ public interface Counter
      *
      * @param delta amount to increment, this cannot be a negative number.
      */
-    void add( long delta );
+    public abstract void add( long delta );
 
     /**
      * Get the current value held by the counter.
@@ -49,6 +49,6 @@ public interface Counter
      *
      * @return the current value
      */
-    long get();
+    public abstract long get();
 
 }
diff --git a/maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsContext.java b/maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsContext.java
index cb85793..a01b185 100644
--- a/maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsContext.java
+++ b/maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsContext.java
@@ -32,7 +32,7 @@ package org.apache.maven.metrics;
  * </p>
  *
  */
-public interface MetricsContext
+public abstract class MetricsContext
 {
 
     /**
@@ -42,7 +42,7 @@ public interface MetricsContext
      *
      * @return a new metrics context.
      */
-    MetricsContext getContext( String name );
+    public abstract MetricsContext getContext( String name );
 
     /**
      * Returns a counter.
@@ -50,7 +50,7 @@ public interface MetricsContext
      * @param name
      * @return the counter identified by name in this context.
      */
-    Counter getCounter( String name, String description );
+    public abstract Counter getCounter( String name, String description );
 
     /**
      * Registers an user provided {@link Gauge} which will be called by the
@@ -63,7 +63,7 @@ public interface MetricsContext
      * @param gauge the implementation of the Gauge
      *
      */
-    void registerGauge( String name, String description, Gauge gauge );
+    public abstract void registerGauge( String name, String description, Gauge gauge );
 
     /**
      * Unregisters the user provided {@link Gauge} bound to the given name.
@@ -71,7 +71,7 @@ public interface MetricsContext
      * @param name unique name of the Gauge in this context
      *
      */
-    void unregisterGauge( String name );
+    public abstract void unregisterGauge( String name );
 
     /**
      * Returns a summary.
@@ -79,7 +79,7 @@ public interface MetricsContext
      * @param name
      * @return the summary identified by name in this context.
      */
-    Summary getSummary( String name, String description );
+    public abstract Summary getSummary( String name, String description );
 
     /**
      * Returns a set of summaries.
@@ -87,6 +87,6 @@ public interface MetricsContext
      * @param name
      * @return the summary identified by name in this context.
      */
-    SummarySet getSummarySet( String name, String description );
+    public abstract SummarySet getSummarySet( String name, String description );
 
 }
diff --git a/maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsProvider.java b/maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsProvider.java
index f4af144..6532e0e 100644
--- a/maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsProvider.java
+++ b/maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsProvider.java
@@ -29,7 +29,7 @@ package org.apache.maven.metrics;
  * <br>
  * Providers can be used both on ZooKeeper servers and on ZooKeeper clients.
  */
-public interface MetricsProvider
+public abstract class MetricsProvider
 {
     /**
      * Start the provider.
@@ -37,7 +37,7 @@ public interface MetricsProvider
      *
      * @throws MetricsProviderLifeCycleException in case of failure
      */
-    default void start() throws MetricsProviderLifeCycleException
+    public void start() throws MetricsProviderLifeCycleException
     {
     }
 
@@ -46,7 +46,7 @@ public interface MetricsProvider
      *
      * @return the root context
      */
-    MetricsContext getRootContext();
+    public abstract MetricsContext getRootContext();
 
     /**
      * Releases resources held by the provider.<br>
@@ -55,7 +55,7 @@ public interface MetricsProvider
      * the results to an external <br>
      * This method can be called more than once.
      */
-    default void stop()
+    public void stop()
     {
     }
 
@@ -64,7 +64,7 @@ public interface MetricsProvider
      * This method is optional and can be noop, depending
      * on the underlying implementation.
      */
-    default void resetAllValues()
+    public  void resetAllValues()
     {
     }
 
diff --git a/maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsSystem.java b/maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsSystem.java
index 9e70db5..6f57428 100644
--- a/maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsSystem.java
+++ b/maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsSystem.java
@@ -23,20 +23,20 @@ package org.apache.maven.metrics;
  * Component to access Metrics System
  * @author Enrico Olivelli
  */
-public interface MetricsSystem
+public abstract class MetricsSystem
 {
 
-    String HINT = "metricsSystem";
+    public static final String HINT = "metricsSystem";
     
     /**
      * Access current metrics context.
      * @return the metrics context
      */
-    MetricsContext getMetricsContext();
+    public abstract MetricsContext getMetricsContext();
     
     /**
      * Low level Access to the Provider
      * @return the provider
      */
-    MetricsProvider getMetricsProvider();
+    public abstract MetricsProvider getMetricsProvider();
 }
diff --git a/maven-metrics-api/src/main/java/org/apache/maven/metrics/Summary.java b/maven-metrics-api/src/main/java/org/apache/maven/metrics/Summary.java
index 9ad49c1..6d48c7d 100644
--- a/maven-metrics-api/src/main/java/org/apache/maven/metrics/Summary.java
+++ b/maven-metrics-api/src/main/java/org/apache/maven/metrics/Summary.java
@@ -23,7 +23,7 @@ package org.apache.maven.metrics;
  * Summaries track the size and number of events.
  * They are able to publish minumum, maximum, average values, depending on the capabilities of the MetricsProvider.
  */
-public interface Summary
+public abstract class Summary
 {
 
     /**
@@ -32,6 +32,6 @@ public interface Summary
      *
      * @param value current value
      */
-    void add( long value );
+    public abstract void add( long value );
 
 }
diff --git a/maven-metrics-api/src/main/java/org/apache/maven/metrics/SummarySet.java b/maven-metrics-api/src/main/java/org/apache/maven/metrics/SummarySet.java
index e31764a..991a52d 100644
--- a/maven-metrics-api/src/main/java/org/apache/maven/metrics/SummarySet.java
+++ b/maven-metrics-api/src/main/java/org/apache/maven/metrics/SummarySet.java
@@ -24,7 +24,7 @@ package org.apache.maven.metrics;
  * They are able to publish minumum, maximum, average values, depending on the capabilities of the MetricsProvider.
  * A SummarySet is a set of {@link Summary}.
  */
-public interface SummarySet
+public abstract class SummarySet
 {
 
     /**
@@ -34,6 +34,6 @@ public interface SummarySet
      * @param key the key to access the Summary for the given key
      * @param value current value
      */
-    void add( String key, long value );
+    public abstract void add( String key, long value );
 
 }
diff --git a/maven-metrics-api/src/main/java/org/apache/maven/metrics/impl/NullMetricsProvider.java b/maven-metrics-api/src/main/java/org/apache/maven/metrics/impl/NullMetricsProvider.java
index a94c3b2..b11e07f 100644
--- a/maven-metrics-api/src/main/java/org/apache/maven/metrics/impl/NullMetricsProvider.java
+++ b/maven-metrics-api/src/main/java/org/apache/maven/metrics/impl/NullMetricsProvider.java
@@ -29,7 +29,7 @@ import org.apache.maven.metrics.SummarySet;
 /**
  * This is a dummy MetricsProvider which does nothing.
  */
-public class NullMetricsProvider implements MetricsProvider
+public class NullMetricsProvider extends MetricsProvider
 {
 
     /**
@@ -46,7 +46,7 @@ public class NullMetricsProvider implements MetricsProvider
     /**
      * Default no-op implementation.
      */
-    public static final class NullMetricsContext implements MetricsContext
+    public static final class NullMetricsContext extends MetricsContext
     {
 
         public static final NullMetricsContext INSTANCE = new NullMetricsContext();
@@ -87,7 +87,7 @@ public class NullMetricsProvider implements MetricsProvider
 
     }
 
-    private static final class NullCounter implements Counter
+    private static final class NullCounter extends Counter
     {
 
         private static final NullCounter INSTANCE = new NullCounter();
@@ -105,7 +105,7 @@ public class NullMetricsProvider implements MetricsProvider
 
     }
 
-    private static final class NullSummary implements Summary
+    private static final class NullSummary extends Summary
     {
 
         private static final NullSummary INSTANCE = new NullSummary();
@@ -117,7 +117,7 @@ public class NullMetricsProvider implements MetricsProvider
 
     }
 
-    private static final class NullSummarySet implements SummarySet
+    private static final class NullSummarySet extends SummarySet
     {
 
         private static final NullSummarySet INSTANCE = new NullSummarySet();
diff --git a/maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsSystem.java b/maven-metrics-api/src/main/java/org/apache/maven/metrics/util/MetricsUtils.java
similarity index 56%
copy from maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsSystem.java
copy to maven-metrics-api/src/main/java/org/apache/maven/metrics/util/MetricsUtils.java
index 9e70db5..8ee663f 100644
--- a/maven-metrics-api/src/main/java/org/apache/maven/metrics/MetricsSystem.java
+++ b/maven-metrics-api/src/main/java/org/apache/maven/metrics/util/MetricsUtils.java
@@ -1,4 +1,4 @@
-package org.apache.maven.metrics;
+package org.apache.maven.metrics.util;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -20,23 +20,34 @@ package org.apache.maven.metrics;
  */
 
 /**
- * Component to access Metrics System
- * @author Enrico Olivelli
+ * General utility for Metrics
+ *
+ * @author eolivelli
  */
-public interface MetricsSystem
+public abstract class MetricsUtils
 {
+    private MetricsUtils()
+    {
+
+    }
 
-    String HINT = "metricsSystem";
-    
     /**
-     * Access current metrics context.
-     * @return the metrics context
+     * Sample current time in milliseconds
+     * @return current time in milliseconds
+     * @see #elapsedMillis(long)
      */
-    MetricsContext getMetricsContext();
-    
+    public static long now()
+    {
+        return System.currentTimeMillis();
+    }
+
     /**
-     * Low level Access to the Provider
-     * @return the provider
+     * Return the number of elapsed milliseconds since a given timestamp.
+     * @param start the timestamp, supposed to be sampled with {@link #now() }
+     * @return the time in milliseconds
      */
-    MetricsProvider getMetricsProvider();
+    public static long elapsedMillis( long start )
+    {
+        return now() - start;
+    }
 }