Author: tommaso
Date: Mon Aug  1 13:33:57 2016
New Revision: 1754749

URL: http://svn.apache.org/viewvc?rev=1754749&view=rev
Log:
SLING-5933 - make it possible to configure async delivery in forward agent

Modified:
    
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.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=1754749&r1=1754748&r2=1754749&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
 Mon Aug  1 13:33:57 2016
@@ -52,6 +52,7 @@ import org.apache.sling.distribution.que
 import 
org.apache.sling.distribution.queue.impl.AsyncDeliveryDispatchingStrategy;
 import 
org.apache.sling.distribution.queue.impl.DistributionQueueDispatchingStrategy;
 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.JobHandlingDistributionQueueProvider;
 import 
org.apache.sling.distribution.queue.impl.simple.SimpleDistributionQueueProvider;
@@ -92,7 +93,6 @@ public class ForwardDistributionAgentFac
     @Property(boolValue = true, label = "Enabled", description = "Whether or 
not to start the distribution agent.")
     private static final String ENABLED = "enabled";
 
-
     @Property(label = "Service Name", description = "The name of the service 
used to access the repository.")
     private static final String SERVICE_NAME = "serviceName";
 
@@ -171,6 +171,9 @@ public class ForwardDistributionAgentFac
     )
     public static final String QUEUE_PROVIDER = "queue.provider";
 
+    @Property(boolValue = false, label = "Async delivery", description = 
"Whether or not to use a separate delivery queue to maximize transport 
throughput when queue has more than 100 items")
+    public static final String ASYNC_DELIVERY = "async.delivery";
+
     @Reference
     private Packaging packaging;
 
@@ -261,14 +264,19 @@ public class ForwardDistributionAgentFac
             importerEndpointsMap = 
SettingsUtils.expandUriMap(importerEndpointsMap, queueAliases);
             exportQueueStrategy = dispatchingStrategy;
         } else {
-            // delivery queues' names
-            Map<String, String> deliveryQueues = new HashMap<String, String>();
-            for (String e : endpointNames) {
-                deliveryQueues.put(e, "delivery-"+e);
+            boolean asyncDelivery = 
PropertiesUtil.toBoolean(config.get(ASYNC_DELIVERY), false);
+            if (asyncDelivery) {
+                // delivery queues' names
+                Map<String, String> deliveryQueues = new HashMap<String, 
String>();
+                for (String e : endpointNames) {
+                    deliveryQueues.put(e, "delivery-" + e);
+                }
+
+                processingQueues.addAll(deliveryQueues.values());
+                exportQueueStrategy = new 
AsyncDeliveryDispatchingStrategy(deliveryQueues);
+            } else {
+                exportQueueStrategy = new 
MultipleQueueDispatchingStrategy(endpointNames.toArray(new 
String[endpointNames.size()]));
             }
-
-            processingQueues.addAll(deliveryQueues.values());
-            exportQueueStrategy = new 
AsyncDeliveryDispatchingStrategy(deliveryQueues);
         }
 
         processingQueues.addAll(endpointNames);


Reply via email to