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