Author: chetanm
Date: Wed Jan  6 11:39:03 2016
New Revision: 1723286

URL: http://svn.apache.org/viewvc?rev=1723286&view=rev
Log:
SLING-4080 - API to capture/measure application-level metrics

Remove dependency on Sling API by folding in the adapt interface as part of 
Metric interface. This would allow this bundle to be useful in non Sling based 
OSGi env also

Modified:
    sling/whiteboard/chetanm/metrics/pom.xml
    
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Counter.java
    
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Histogram.java
    
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Meter.java
    
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Metric.java
    
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Timer.java
    
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/CounterImpl.java
    
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/HistogramImpl.java
    
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/MeterImpl.java
    
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/TimerImpl.java

Modified: sling/whiteboard/chetanm/metrics/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/chetanm/metrics/pom.xml?rev=1723286&r1=1723285&r2=1723286&view=diff
==============================================================================
--- sling/whiteboard/chetanm/metrics/pom.xml (original)
+++ sling/whiteboard/chetanm/metrics/pom.xml Wed Jan  6 11:39:03 2016
@@ -80,11 +80,6 @@
       <version>2.2.0</version>
     </dependency>
     <dependency>
-      <groupId>org.apache.sling</groupId>
-      <artifactId>org.apache.sling.api</artifactId>
-      <version>2.1.0</version>
-    </dependency>
-    <dependency>
       <groupId>org.osgi</groupId>
       <artifactId>org.osgi.core</artifactId>
       <version>4.3.1</version>

Modified: 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Counter.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Counter.java?rev=1723286&r1=1723285&r2=1723286&view=diff
==============================================================================
--- 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Counter.java
 (original)
+++ 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Counter.java
 Wed Jan  6 11:39:03 2016
@@ -20,10 +20,9 @@
 package org.apache.sling.metrics;
 
 import aQute.bnd.annotation.ProviderType;
-import org.apache.sling.api.adapter.Adaptable;
 
 @ProviderType
-public interface Counter extends Counting, Metric, Adaptable{
+public interface Counter extends Counting, Metric{
     /**
      * Increment the counter by one.
      */

Modified: 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Histogram.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Histogram.java?rev=1723286&r1=1723285&r2=1723286&view=diff
==============================================================================
--- 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Histogram.java
 (original)
+++ 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Histogram.java
 Wed Jan  6 11:39:03 2016
@@ -20,10 +20,9 @@
 package org.apache.sling.metrics;
 
 import aQute.bnd.annotation.ProviderType;
-import org.apache.sling.api.adapter.Adaptable;
 
 @ProviderType
-public interface Histogram extends Counting, Metric, Adaptable {
+public interface Histogram extends Counting, Metric {
     /**
      * Adds a recorded value.
      *

Modified: 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Meter.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Meter.java?rev=1723286&r1=1723285&r2=1723286&view=diff
==============================================================================
--- 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Meter.java
 (original)
+++ 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Meter.java
 Wed Jan  6 11:39:03 2016
@@ -20,10 +20,9 @@
 package org.apache.sling.metrics;
 
 import aQute.bnd.annotation.ProviderType;
-import org.apache.sling.api.adapter.Adaptable;
 
 @ProviderType
-public interface Meter extends Counting, Metric, Adaptable {
+public interface Meter extends Counting, Metric{
     /**
      * Mark the occurrence of an event.
      */

Modified: 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Metric.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Metric.java?rev=1723286&r1=1723285&r2=1723286&view=diff
==============================================================================
--- 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Metric.java
 (original)
+++ 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Metric.java
 Wed Jan  6 11:39:03 2016
@@ -23,4 +23,13 @@ import aQute.bnd.annotation.ProviderType
 
 @ProviderType
 public interface Metric {
+    /**
+     * Adapts the Metric to the specified type.
+     *
+     * @param <A> The type to which this metric is to be adapted.
+     * @param type Class object for the type to which this metric is to be 
adapted.
+     * @return The object, of the specified type, to which this metric has 
been adapted
+     * or null if this metric cannot be adapted to the specified type.
+     */
+    <A> A adaptTo(Class<A> type);
 }

Modified: 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Timer.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Timer.java?rev=1723286&r1=1723285&r2=1723286&view=diff
==============================================================================
--- 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Timer.java
 (original)
+++ 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/Timer.java
 Wed Jan  6 11:39:03 2016
@@ -23,10 +23,9 @@ import java.io.Closeable;
 import java.util.concurrent.TimeUnit;
 
 import aQute.bnd.annotation.ProviderType;
-import org.apache.sling.api.adapter.Adaptable;
 
 @ProviderType
-public interface Timer extends Counting, Metric, Adaptable {
+public interface Timer extends Counting, Metric{
     /**
      * A timing context.
      *

Modified: 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/CounterImpl.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/CounterImpl.java?rev=1723286&r1=1723285&r2=1723286&view=diff
==============================================================================
--- 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/CounterImpl.java
 (original)
+++ 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/CounterImpl.java
 Wed Jan  6 11:39:03 2016
@@ -56,9 +56,9 @@ final class CounterImpl implements Count
 
     @SuppressWarnings("unchecked")
     @Override
-    public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
+    public <A> A adaptTo(Class<A> type) {
         if (type == com.codahale.metrics.Counter.class){
-            return (AdapterType) counter;
+            return (A) counter;
         }
         return null;
     }

Modified: 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/HistogramImpl.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/HistogramImpl.java?rev=1723286&r1=1723285&r2=1723286&view=diff
==============================================================================
--- 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/HistogramImpl.java
 (original)
+++ 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/HistogramImpl.java
 Wed Jan  6 11:39:03 2016
@@ -41,9 +41,9 @@ final class HistogramImpl implements His
 
     @SuppressWarnings("unchecked")
     @Override
-    public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
+    public <A> A adaptTo(Class<A> type) {
         if (type == com.codahale.metrics.Histogram.class){
-            return (AdapterType) histogram;
+            return (A) histogram;
         }
         return null;
     }

Modified: 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/MeterImpl.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/MeterImpl.java?rev=1723286&r1=1723285&r2=1723286&view=diff
==============================================================================
--- 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/MeterImpl.java
 (original)
+++ 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/MeterImpl.java
 Wed Jan  6 11:39:03 2016
@@ -45,9 +45,9 @@ final class MeterImpl implements Meter {
 
     @SuppressWarnings("unchecked")
     @Override
-    public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
+    public <A> A adaptTo(Class<A> type) {
         if (type == com.codahale.metrics.Meter.class){
-            return (AdapterType)meter;
+            return (A)meter;
         }
         return null;
     }

Modified: 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/TimerImpl.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/TimerImpl.java?rev=1723286&r1=1723285&r2=1723286&view=diff
==============================================================================
--- 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/TimerImpl.java
 (original)
+++ 
sling/whiteboard/chetanm/metrics/src/main/java/org/apache/sling/metrics/internal/TimerImpl.java
 Wed Jan  6 11:39:03 2016
@@ -48,9 +48,9 @@ final class TimerImpl implements Timer {
 
     @SuppressWarnings("unchecked")
     @Override
-    public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
+    public <A> A adaptTo(Class<A> type) {
         if (type == com.codahale.metrics.Timer.class) {
-            return (AdapterType) timer;
+            return (A) timer;
         }
         return null;
     }


Reply via email to