This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-metrics.git
commit fc929340e3e71ebc3e86688a17e07f39cedbe004 Author: Chetan Mehrotra <chet...@apache.org> AuthorDate: Thu Nov 17 06:56:52 2016 +0000 SLING-6297 - Switch to standard OSGi annotation in Metrics git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1770126 13f79535-47bb-0310-9956-ffa450edef68 --- pom.xml | 23 +++++++++----- .../org/apache/sling/commons/metrics/Counter.java | 3 +- .../org/apache/sling/commons/metrics/Counting.java | 3 +- .../org/apache/sling/commons/metrics/Gauge.java | 3 +- .../apache/sling/commons/metrics/Histogram.java | 3 +- .../org/apache/sling/commons/metrics/Meter.java | 3 +- .../org/apache/sling/commons/metrics/Metric.java | 3 +- .../sling/commons/metrics/MetricsService.java | 3 +- .../org/apache/sling/commons/metrics/Timer.java | 3 +- .../metrics/internal/MetricWebConsolePlugin.java | 35 ++++++++++------------ .../metrics/internal/MetricsServiceImpl.java | 14 ++++----- .../apache/sling/commons/metrics/package-info.java | 4 +-- 12 files changed, 55 insertions(+), 45 deletions(-) diff --git a/pom.xml b/pom.xml index 3a45b75..31cfea9 100644 --- a/pom.xml +++ b/pom.xml @@ -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> diff --git a/src/main/java/org/apache/sling/commons/metrics/Counter.java b/src/main/java/org/apache/sling/commons/metrics/Counter.java index 8269d5b..64730dd 100644 --- a/src/main/java/org/apache/sling/commons/metrics/Counter.java +++ b/src/main/java/org/apache/sling/commons/metrics/Counter.java @@ -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. diff --git a/src/main/java/org/apache/sling/commons/metrics/Counting.java b/src/main/java/org/apache/sling/commons/metrics/Counting.java index 890d650..f974ea6 100644 --- a/src/main/java/org/apache/sling/commons/metrics/Counting.java +++ b/src/main/java/org/apache/sling/commons/metrics/Counting.java @@ -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 { diff --git a/src/main/java/org/apache/sling/commons/metrics/Gauge.java b/src/main/java/org/apache/sling/commons/metrics/Gauge.java index ac723a6..9813120 100644 --- a/src/main/java/org/apache/sling/commons/metrics/Gauge.java +++ b/src/main/java/org/apache/sling/commons/metrics/Gauge.java @@ -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, diff --git a/src/main/java/org/apache/sling/commons/metrics/Histogram.java b/src/main/java/org/apache/sling/commons/metrics/Histogram.java index 7f87cdc..d78f3a8 100644 --- a/src/main/java/org/apache/sling/commons/metrics/Histogram.java +++ b/src/main/java/org/apache/sling/commons/metrics/Histogram.java @@ -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. diff --git a/src/main/java/org/apache/sling/commons/metrics/Meter.java b/src/main/java/org/apache/sling/commons/metrics/Meter.java index 3fef3f8..6674fbf 100644 --- a/src/main/java/org/apache/sling/commons/metrics/Meter.java +++ b/src/main/java/org/apache/sling/commons/metrics/Meter.java @@ -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 diff --git a/src/main/java/org/apache/sling/commons/metrics/Metric.java b/src/main/java/org/apache/sling/commons/metrics/Metric.java index b8a12bb..bf07b69 100644 --- a/src/main/java/org/apache/sling/commons/metrics/Metric.java +++ b/src/main/java/org/apache/sling/commons/metrics/Metric.java @@ -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 { diff --git a/src/main/java/org/apache/sling/commons/metrics/MetricsService.java b/src/main/java/org/apache/sling/commons/metrics/MetricsService.java index 56e87e6..5bf4eae 100644 --- a/src/main/java/org/apache/sling/commons/metrics/MetricsService.java +++ b/src/main/java/org/apache/sling/commons/metrics/MetricsService.java @@ -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}. diff --git a/src/main/java/org/apache/sling/commons/metrics/Timer.java b/src/main/java/org/apache/sling/commons/metrics/Timer.java index 8de1707..f5d79cb 100644 --- a/src/main/java/org/apache/sling/commons/metrics/Timer.java +++ b/src/main/java/org/apache/sling/commons/metrics/Timer.java @@ -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. diff --git a/src/main/java/org/apache/sling/commons/metrics/internal/MetricWebConsolePlugin.java b/src/main/java/org/apache/sling/commons/metrics/internal/MetricWebConsolePlugin.java index d0321ef..0ebc173 100644 --- a/src/main/java/org/apache/sling/commons/metrics/internal/MetricWebConsolePlugin.java +++ b/src/main/java/org/apache/sling/commons/metrics/internal/MetricWebConsolePlugin.java @@ -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 extends HttpServlet implements 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 extends HttpServlet implements 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(); } diff --git a/src/main/java/org/apache/sling/commons/metrics/internal/MetricsServiceImpl.java b/src/main/java/org/apache/sling/commons/metrics/internal/MetricsServiceImpl.java index 1bc6514..cec64bb 100644 --- a/src/main/java/org/apache/sling/commons/metrics/internal/MetricsServiceImpl.java +++ b/src/main/java/org/apache/sling/commons/metrics/internal/MetricsServiceImpl.java @@ -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.Metric; 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 implements MetricsService { 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; diff --git a/src/main/java/org/apache/sling/commons/metrics/package-info.java b/src/main/java/org/apache/sling/commons/metrics/package-info.java index 5b24541..3d6a101 100644 --- a/src/main/java/org/apache/sling/commons/metrics/package-info.java +++ b/src/main/java/org/apache/sling/commons/metrics/package-info.java @@ -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 -- To stop receiving notification emails like this one, please contact "commits@sling.apache.org" <commits@sling.apache.org>.