You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/10/18 23:23:05 UTC
[sling-org-apache-sling-jobs] 10/13: SLING-6576 : Use official OSGi
annotations
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 <cz...@apache.org>
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
"commits@sling.apache.org" <co...@sling.apache.org>.