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-jobs.git
commit 56c325acbe3635bc445a34e3af3c5e0a02cdabc6 Author: Carsten Ziegeler <[email protected]> AuthorDate: Thu Mar 2 07:30:37 2017 +0000 SLING-6576 : Use official OSGi annotations git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1785076 13f79535-47bb-0310-9956-ffa450edef68 --- .../sling/jobs/impl/JobQueueConsumerFactory.java | 34 ++++++++++++---------- .../org/apache/sling/jobs/impl/JobSubsystem.java | 25 +++++++--------- .../apache/sling/jobs/impl/ManagerSubscriber.java | 17 +++++------ 3 files changed, 37 insertions(+), 39 deletions(-) diff --git a/src/main/java/org/apache/sling/jobs/impl/JobQueueConsumerFactory.java b/src/main/java/org/apache/sling/jobs/impl/JobQueueConsumerFactory.java index 62c5214..d4f9b41 100644 --- a/src/main/java/org/apache/sling/jobs/impl/JobQueueConsumerFactory.java +++ b/src/main/java/org/apache/sling/jobs/impl/JobQueueConsumerFactory.java @@ -25,13 +25,6 @@ import java.util.Set; import javax.annotation.Nonnull; -import org.apache.felix.scr.annotations.Activate; -import org.apache.felix.scr.annotations.Component; -import org.apache.felix.scr.annotations.ConfigurationPolicy; -import org.apache.felix.scr.annotations.Properties; -import org.apache.felix.scr.annotations.Property; -import org.apache.felix.scr.annotations.Reference; -import org.apache.felix.scr.annotations.Service; import org.apache.sling.jobs.Job; import org.apache.sling.jobs.JobCallback; import org.apache.sling.jobs.JobConsumer; @@ -44,6 +37,13 @@ import org.apache.sling.mom.QueueReader; import org.apache.sling.mom.RequeueMessageException; import org.apache.sling.mom.TopicManager; import org.apache.sling.mom.Types; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.ConfigurationPolicy; +import org.osgi.service.component.annotations.Reference; +import org.osgi.service.metatype.annotations.AttributeDefinition; +import org.osgi.service.metatype.annotations.Designate; +import org.osgi.service.metatype.annotations.ObjectClassDefinition; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,17 +52,19 @@ import org.slf4j.LoggerFactory; * service and are registered using the OSGi Whiteboard pattern with the QueueManager. The JobManager service must implement JobConsumer. * */ -@Component(configurationFactory = true, - policy = ConfigurationPolicy.REQUIRE, - metatype = true, - immediate = true) -@Properties({ - @Property(name= QueueReader.QUEUE_NAME_PROP) -}) -@Service(value = QueueReader.class) +@Component(configurationPolicy = ConfigurationPolicy.REQUIRE, + service = QueueReader.class) +@Designate(factory=true, ocd=JobQueueConsumerFactory.Config.class) public class JobQueueConsumerFactory implements QueueReader, MessageFilter { - private static final Logger LOGGER = LoggerFactory.getLogger(JobQueueConsumerFactory.class); + @ObjectClassDefinition() + public @interface Config { + + @AttributeDefinition(name = "queue-name") + String queuename(); + } + + private final Logger LOGGER = LoggerFactory.getLogger(JobQueueConsumerFactory.class); private static final Set<JobUpdate.JobUpdateCommand> ALLOWED_COMMANDS = Collections.unmodifiableSet(Collections.singleton(JobUpdate.JobUpdateCommand.UPDATE_JOB)); @Reference diff --git a/src/main/java/org/apache/sling/jobs/impl/JobSubsystem.java b/src/main/java/org/apache/sling/jobs/impl/JobSubsystem.java index e8f5750..bed86dc 100644 --- a/src/main/java/org/apache/sling/jobs/impl/JobSubsystem.java +++ b/src/main/java/org/apache/sling/jobs/impl/JobSubsystem.java @@ -30,13 +30,6 @@ import java.util.concurrent.ConcurrentHashMap; import javax.annotation.Nonnull; import javax.annotation.Nullable; -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.felix.scr.annotations.ReferencePolicy; -import org.apache.felix.scr.annotations.Service; import org.apache.sling.jobs.Job; import org.apache.sling.jobs.JobBuilder; import org.apache.sling.jobs.JobCallback; @@ -50,14 +43,19 @@ import org.apache.sling.jobs.impl.storage.InMemoryJobStorage; import org.apache.sling.mom.QueueManager; import org.apache.sling.mom.TopicManager; 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.service.component.annotations.Reference; +import org.osgi.service.component.annotations.ReferenceCardinality; +import org.osgi.service.component.annotations.ReferencePolicy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * NB, this does *not* register as a JobConsumer service. it implements a JobConsumer so that it can consume Jobs from JobQueueConsumers. */ -@Component(immediate = true) -@Service(value = JobManager.class) +@Component(service = JobManager.class, immediate=true) public class JobSubsystem implements JobManager, JobConsumer { @@ -69,11 +67,6 @@ public class JobSubsystem implements JobManager, JobConsumer { /** * Contains a map of JobConsumers wrapped by JobConsumerHolders keyed by ServiceReference. */ - @Reference(referenceInterface = JobConsumer.class, - cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, - policy = ReferencePolicy.DYNAMIC, - bind="addConsumer", - unbind="removeConsumer") private final Map<ServiceReference<JobConsumer>, JobConsumerHolder> registrations = new ConcurrentHashMap<ServiceReference<JobConsumer>, JobConsumerHolder>(); @@ -132,6 +125,10 @@ public class JobSubsystem implements JobManager, JobConsumer { // ---- JobConsumer Registration // Register Consumers using + @Reference(service = JobConsumer.class, + cardinality = ReferenceCardinality.MULTIPLE, + policy = ReferencePolicy.DYNAMIC, + unbind="removeConsumer") public synchronized void addConsumer(ServiceReference<JobConsumer> serviceRef) { if (registrations.containsKey(serviceRef)) { LOGGER.error("Registration for service reference is already present {}",serviceRef); diff --git a/src/main/java/org/apache/sling/jobs/impl/ManagerSubscriber.java b/src/main/java/org/apache/sling/jobs/impl/ManagerSubscriber.java index 76ff8e2..81aed8f 100644 --- a/src/main/java/org/apache/sling/jobs/impl/ManagerSubscriber.java +++ b/src/main/java/org/apache/sling/jobs/impl/ManagerSubscriber.java @@ -18,25 +18,24 @@ */ package org.apache.sling.jobs.impl; -import org.apache.felix.scr.annotations.*; +import java.util.Map; + import org.apache.sling.jobs.JobManager; import org.apache.sling.jobs.JobUpdateListener; import org.apache.sling.mom.Subscriber; import org.apache.sling.mom.Types; - -import java.util.Map; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Reference; /** * Listens to a topic to retrieve control messages. */ -@Component(immediate = true, metatype = true) -@Service(value = Subscriber.class) -@Properties({ - @Property(name= Subscriber.TOPIC_NAMES_PROP, cardinality = Integer.MAX_VALUE, value = {"sling/jobupdates"} ) -}) +@Component(service = Subscriber.class, + property = { + Subscriber.TOPIC_NAMES_PROP + "=sling/jobupdates" + }) public class ManagerSubscriber implements Subscriber { - @Reference private JobManager jobManager; -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
