You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ch...@apache.org on 2016/11/17 06:56:52 UTC

svn commit: r1770126 - in /sling/trunk/bundles/commons/metrics: ./ src/main/java/org/apache/sling/commons/metrics/ src/main/java/org/apache/sling/commons/metrics/internal/

Author: chetanm
Date: Thu Nov 17 06:56:52 2016
New Revision: 1770126

URL: http://svn.apache.org/viewvc?rev=1770126&view=rev
Log:
SLING-6297 - Switch to standard OSGi annotation in Metrics

Modified:
    sling/trunk/bundles/commons/metrics/pom.xml
    sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Counter.java
    sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Counting.java
    sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Gauge.java
    sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Histogram.java
    sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Meter.java
    sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Metric.java
    sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/MetricsService.java
    sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Timer.java
    sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/internal/MetricWebConsolePlugin.java
    sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/internal/MetricsServiceImpl.java
    sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/package-info.java

Modified: sling/trunk/bundles/commons/metrics/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/metrics/pom.xml?rev=1770126&r1=1770125&r2=1770126&view=diff
==============================================================================
--- sling/trunk/bundles/commons/metrics/pom.xml (original)
+++ sling/trunk/bundles/commons/metrics/pom.xml Thu Nov 17 06:56:52 2016
@@ -64,11 +64,21 @@
               org.apache.felix.inventory;version="[1.0.0,2)"
             </DynamicImport-Package>
           </instructions>
+          <!-- Export SCR metadata to classpath to have them available in unit tests -->
+          <exportScr>true</exportScr>
         </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-scr-plugin</artifactId>
+        <executions>
+          <!-- Configure extra execution of 'manifest' in process-classes phase to make sure SCR metadata is generated before unit test runs -->
+          <execution>
+            <id>scr-metadata</id>
+            <goals>
+              <goal>manifest</goal>
+            </goals>
+            <configuration>
+              <supportIncrementalBuild>true</supportIncrementalBuild>
+            </configuration>
+          </execution>
+        </executions>
       </plugin>
     </plugins>
   </build>
@@ -91,14 +101,10 @@
     <dependency>
       <groupId>org.osgi</groupId>
       <artifactId>osgi.core</artifactId>
-      <version>6.0.0</version>
-      <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
       <artifactId>osgi.cmpn</artifactId>
-      <version>6.0.0</version>
-      <scope>provided</scope>
     </dependency>
 
     <dependency>
@@ -141,6 +147,7 @@
       <groupId>org.mockito</groupId>
       <artifactId>mockito-core</artifactId>
       <version>1.10.19</version>
+      <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>

Modified: sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Counter.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Counter.java?rev=1770126&r1=1770125&r2=1770126&view=diff
==============================================================================
--- sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Counter.java (original)
+++ sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Counter.java Thu Nov 17 06:56:52 2016
@@ -19,7 +19,8 @@
 
 package org.apache.sling.commons.metrics;
 
-import aQute.bnd.annotation.ProviderType;
+
+import org.osgi.annotation.versioning.ProviderType;
 
 /**
  * An incrementing and decrementing counter metric.

Modified: sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Counting.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Counting.java?rev=1770126&r1=1770125&r2=1770126&view=diff
==============================================================================
--- sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Counting.java (original)
+++ sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Counting.java Thu Nov 17 06:56:52 2016
@@ -19,7 +19,8 @@
 
 package org.apache.sling.commons.metrics;
 
-import aQute.bnd.annotation.ProviderType;
+
+import org.osgi.annotation.versioning.ProviderType;
 
 @ProviderType
 public interface Counting {

Modified: sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Gauge.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Gauge.java?rev=1770126&r1=1770125&r2=1770126&view=diff
==============================================================================
--- sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Gauge.java (original)
+++ sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Gauge.java Thu Nov 17 06:56:52 2016
@@ -19,7 +19,8 @@
 
 package org.apache.sling.commons.metrics;
 
-import aQute.bnd.annotation.ConsumerType;
+
+import org.osgi.annotation.versioning.ConsumerType;
 
 /**
  * A gauge metric is an instantaneous reading of a particular value. To instrument a queue's depth,

Modified: sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Histogram.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Histogram.java?rev=1770126&r1=1770125&r2=1770126&view=diff
==============================================================================
--- sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Histogram.java (original)
+++ sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Histogram.java Thu Nov 17 06:56:52 2016
@@ -19,7 +19,8 @@
 
 package org.apache.sling.commons.metrics;
 
-import aQute.bnd.annotation.ProviderType;
+
+import org.osgi.annotation.versioning.ProviderType;
 
 /**
  * A metric which calculates the distribution of a value.

Modified: sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Meter.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Meter.java?rev=1770126&r1=1770125&r2=1770126&view=diff
==============================================================================
--- sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Meter.java (original)
+++ sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Meter.java Thu Nov 17 06:56:52 2016
@@ -19,7 +19,8 @@
 
 package org.apache.sling.commons.metrics;
 
-import aQute.bnd.annotation.ProviderType;
+
+import org.osgi.annotation.versioning.ProviderType;
 
 /**
  * A meter metric which measures mean throughput

Modified: sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Metric.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Metric.java?rev=1770126&r1=1770125&r2=1770126&view=diff
==============================================================================
--- sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Metric.java (original)
+++ sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Metric.java Thu Nov 17 06:56:52 2016
@@ -19,7 +19,8 @@
 
 package org.apache.sling.commons.metrics;
 
-import aQute.bnd.annotation.ProviderType;
+
+import org.osgi.annotation.versioning.ProviderType;
 
 @ProviderType
 public interface Metric {

Modified: sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/MetricsService.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/MetricsService.java?rev=1770126&r1=1770125&r2=1770126&view=diff
==============================================================================
--- sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/MetricsService.java (original)
+++ sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/MetricsService.java Thu Nov 17 06:56:52 2016
@@ -19,7 +19,8 @@
 
 package org.apache.sling.commons.metrics;
 
-import aQute.bnd.annotation.ProviderType;
+
+import org.osgi.annotation.versioning.ProviderType;
 
 /**
  * The {@code MetricsService} enables creation of various types of {@code Metric}.

Modified: sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Timer.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Timer.java?rev=1770126&r1=1770125&r2=1770126&view=diff
==============================================================================
--- sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Timer.java (original)
+++ sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Timer.java Thu Nov 17 06:56:52 2016
@@ -22,7 +22,8 @@ package org.apache.sling.commons.metrics
 import java.io.Closeable;
 import java.util.concurrent.TimeUnit;
 
-import aQute.bnd.annotation.ProviderType;
+import org.osgi.annotation.versioning.ProviderType;
+
 
 /**
  * A timer metric which aggregates timing durations and provides duration statistics.

Modified: sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/internal/MetricWebConsolePlugin.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/internal/MetricWebConsolePlugin.java?rev=1770126&r1=1770125&r2=1770126&view=diff
==============================================================================
--- sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/internal/MetricWebConsolePlugin.java (original)
+++ sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/internal/MetricWebConsolePlugin.java Thu Nov 17 06:56:52 2016
@@ -47,30 +47,27 @@ import com.codahale.metrics.Timer;
 import org.apache.commons.io.output.WriterOutputStream;
 import org.apache.felix.inventory.Format;
 import org.apache.felix.inventory.InventoryPrinter;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 import org.osgi.util.tracker.ServiceTracker;
 import org.osgi.util.tracker.ServiceTrackerCustomizer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@Component
-@Service(value = {InventoryPrinter.class, Servlet.class})
-@Properties({
-        @Property(name = "felix.webconsole.label", value = "slingmetrics"),
-        @Property(name = "felix.webconsole.title", value = "Metrics"),
-        @Property(name = "felix.webconsole.category", value = "Sling"),
-        @Property(name = InventoryPrinter.FORMAT, value = {"TEXT" , "JSON"}),
-        @Property(name = InventoryPrinter.NAME, value = "slingmetrics"),
-        @Property(name = InventoryPrinter.TITLE, value = "Sling Metrics"),
-        @Property(name = InventoryPrinter.WEBCONSOLE, boolValue = true)
-})
+@Component(service = {InventoryPrinter.class, Servlet.class},
+        property = {
+                "felix.webconsole.label=slingmetrics",
+                "felix.webconsole.title=Metrics",
+                "felix.webconsole.category=Sling",
+                InventoryPrinter.FORMAT + "=TEXT",
+                InventoryPrinter.FORMAT + "=JSON",
+                InventoryPrinter.TITLE + "=Sling Metrics",
+                InventoryPrinter.NAME + "=slingmetrics"
+        }
+)
 public class MetricWebConsolePlugin extends HttpServlet implements
         InventoryPrinter, ServiceTrackerCustomizer<MetricRegistry, MetricRegistry>{
     /**
@@ -82,7 +79,7 @@ public class MetricWebConsolePlugin exte
     private BundleContext context;
     private ServiceTracker<MetricRegistry, MetricRegistry> tracker;
     private ConcurrentMap<ServiceReference, MetricRegistry> registries
-            = new ConcurrentHashMap<ServiceReference, MetricRegistry>();
+            = new ConcurrentHashMap<>();
 
     private TimeUnit rateUnit = TimeUnit.SECONDS;
     private TimeUnit durationUnit = TimeUnit.MILLISECONDS;
@@ -94,7 +91,7 @@ public class MetricWebConsolePlugin exte
     private void activate(BundleContext context){
         this.context = context;
         this.timeUnit = new MetricTimeUnits(rateUnit, durationUnit, specificRateUnits, specificDurationUnits);
-        tracker = new ServiceTracker<MetricRegistry, MetricRegistry>(context, MetricRegistry.class, this);
+        tracker = new ServiceTracker<>(context, MetricRegistry.class, this);
         tracker.open();
     }
 

Modified: sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/internal/MetricsServiceImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/internal/MetricsServiceImpl.java?rev=1770126&r1=1770125&r2=1770126&view=diff
==============================================================================
--- sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/internal/MetricsServiceImpl.java (original)
+++ sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/internal/MetricsServiceImpl.java Thu Nov 17 06:56:52 2016
@@ -33,11 +33,6 @@ import javax.management.MBeanServer;
 
 import com.codahale.metrics.JmxReporter;
 import com.codahale.metrics.MetricRegistry;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.sling.commons.metrics.Meter;
 import org.apache.sling.commons.metrics.MetricsService;
 import org.apache.sling.commons.metrics.Timer;
@@ -47,8 +42,13 @@ import org.apache.sling.commons.metrics.
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
 
-@Component
+@Component(service = {}, immediate = true)
 public class MetricsServiceImpl implements MetricsService {
     private final List<ServiceRegistration> regs = new ArrayList<>();
     private final ConcurrentMap<String, Metric> metrics = new ConcurrentHashMap<>();
@@ -56,7 +56,7 @@ public class MetricsServiceImpl implemen
     private final BundleMetricsMapper metricsMapper = new BundleMetricsMapper(registry);
     private GaugeManager gaugeManager;
 
-    @Reference(cardinality = ReferenceCardinality.OPTIONAL_UNARY)
+    @Reference(cardinality = ReferenceCardinality.OPTIONAL)
     private MBeanServer server;
 
     private JmxReporter reporter;

Modified: sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/package-info.java?rev=1770126&r1=1770125&r2=1770126&view=diff
==============================================================================
--- sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/package-info.java (original)
+++ sling/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/package-info.java Thu Nov 17 06:56:52 2016
@@ -23,9 +23,7 @@
  * @version 1.0
  */
 @Version("1.1.0")
-@Export(optional = "provide:=true")
 package org.apache.sling.commons.metrics;
 
-import aQute.bnd.annotation.Export;
-import aQute.bnd.annotation.Version;
 
+import org.osgi.annotation.versioning.Version;
\ No newline at end of file