You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by to...@apache.org on 2016/05/18 12:40:31 UTC

svn commit: r1744404 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: agent/impl/ queue/impl/jobhandling/ queue/impl/simple/

Author: tommaso
Date: Wed May 18 12:40:31 2016
New Revision: 1744404

URL: http://svn.apache.org/viewvc?rev=1744404&view=rev
Log:
SLING-5734 - added support for using both in-memory and jobs queues

Modified:
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java?rev=1744404&r1=1744403&r2=1744404&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java Wed May 18 12:40:31 2016
@@ -36,6 +36,7 @@ import org.apache.felix.scr.annotations.
 import org.apache.jackrabbit.vault.packaging.Packaging;
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.commons.osgi.PropertiesUtil;
+import org.apache.sling.commons.scheduler.Scheduler;
 import org.apache.sling.distribution.DistributionRequestType;
 import org.apache.sling.distribution.component.impl.DistributionComponentConstants;
 import org.apache.sling.distribution.component.impl.SettingsUtils;
@@ -50,7 +51,9 @@ import org.apache.sling.distribution.que
 import org.apache.sling.distribution.queue.impl.ErrorQueueDispatchingStrategy;
 import org.apache.sling.distribution.queue.impl.MultipleQueueDispatchingStrategy;
 import org.apache.sling.distribution.queue.impl.PriorityQueueDispatchingStrategy;
+import org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueue;
 import org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueueProvider;
+import org.apache.sling.distribution.queue.impl.simple.SimpleDistributionQueueProvider;
 import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
 import org.apache.sling.distribution.transport.DistributionTransportSecretProvider;
 import org.apache.sling.distribution.trigger.DistributionTrigger;
@@ -161,6 +164,14 @@ public class ForwardDistributionAgentFac
             "e.g. use target=(name=...) to bind to services by name.")
     public static final String TRIGGERS_TARGET = "triggers.target";
 
+    @Property(options = {
+            @PropertyOption(name = JobHandlingDistributionQueueProvider.TYPE, value = "Sling Jobs"),
+            @PropertyOption(name = SimpleDistributionQueueProvider.TYPE, value = "In-memory")},
+            value = "info",
+            label = "Log Level", description = "The log level recorded in the transient log accessible via http."
+    )
+    public static final String QUEUE_PROVIDER = "queue.provider";
+
     @Reference
     private Packaging packaging;
 
@@ -179,6 +190,9 @@ public class ForwardDistributionAgentFac
     @Reference
     private SlingRepository slingRepository;
 
+    @Reference
+    private Scheduler scheduler;
+
 
     @Activate
     protected void activate(BundleContext context, Map<String, Object> config) {
@@ -213,9 +227,16 @@ public class ForwardDistributionAgentFac
         Map<String, String> priorityQueues = PropertiesUtil.toMap(config.get(PRIORITY_QUEUES), new String[0]);
         priorityQueues = SettingsUtils.removeEmptyEntries(priorityQueues);
 
-
         DistributionPackageExporter packageExporter = new LocalDistributionPackageExporter(packageBuilder);
-        DistributionQueueProvider queueProvider = new JobHandlingDistributionQueueProvider(agentName, jobManager, context);
+
+        DistributionQueueProvider queueProvider;
+        String queueProviderName = PropertiesUtil.toString(config.get(QUEUE_PROVIDER), JobHandlingDistributionQueueProvider.TYPE);
+        if (JobHandlingDistributionQueueProvider.TYPE.equals(queueProviderName)) {
+           queueProvider = new JobHandlingDistributionQueueProvider(agentName, jobManager, context);
+        }
+        else {
+            queueProvider = new SimpleDistributionQueueProvider(scheduler, agentName);
+        }
 
         DistributionQueueDispatchingStrategy exportQueueStrategy;
         DistributionQueueDispatchingStrategy errorQueueStrategy = null;

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java?rev=1744404&r1=1744403&r2=1744404&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java Wed May 18 12:40:31 2016
@@ -44,6 +44,9 @@ import org.slf4j.LoggerFactory;
  * {@link org.apache.sling.distribution.queue.DistributionQueue}s
  */
 public class JobHandlingDistributionQueueProvider implements DistributionQueueProvider {
+
+    public static final String TYPE = "jobs";
+
     private final Logger log = LoggerFactory.getLogger(getClass());
 
     private final String name;

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java?rev=1744404&r1=1744403&r2=1744404&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java Wed May 18 12:40:31 2016
@@ -37,6 +37,8 @@ import org.slf4j.LoggerFactory;
  */
 public class SimpleDistributionQueueProvider implements DistributionQueueProvider {
 
+    public static final String TYPE = "simple";
+
     private final Logger log = LoggerFactory.getLogger(getClass());
 
     private final String name;