You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by mp...@apache.org on 2015/01/08 09:45:15 UTC
svn commit: r1650232 - in /sling/trunk/contrib/extensions/distribution:
core/src/main/java/org/apache/sling/distribution/agent/impl/
sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/publish-multiple/
Author: mpetria
Date: Thu Jan 8 08:45:15 2015
New Revision: 1650232
URL: http://svn.apache.org/r1650232
Log:
SLING-4009: making multiple queue delivery option explicit via osgi config
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/agent/impl/SyncDistributionAgentFactory.java
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/publish-multiple/org.apache.sling.distribution.agent.impl.ForwardDistributionAgentFactory-publish-multiple.json
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=1650232&r1=1650231&r2=1650232&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 Thu Jan 8 08:45:15 2015
@@ -39,6 +39,7 @@ import org.apache.sling.distribution.pac
import org.apache.sling.distribution.queue.DistributionQueueProvider;
import org.apache.sling.distribution.queue.impl.DistributionQueueDispatchingStrategy;
import org.apache.sling.distribution.queue.impl.MultipleQueueDispatchingStrategy;
+import org.apache.sling.distribution.queue.impl.SingleQueueDispatchingStrategy;
import org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueueProvider;
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
import org.apache.sling.distribution.transport.DistributionTransportSecretProvider;
@@ -84,6 +85,9 @@ public class ForwardDistributionAgentFac
@Property(cardinality = -1)
public static final String IMPORTER_ENDPOINTS = "packageImporter.endpoints";
+ @Property(label = "Use multiple queues", boolValue = false)
+ public static final String USE_MULTIPLE_QUEUES = "useMultipleQueues";
+
@Reference
private Packaging packaging;
@@ -140,15 +144,24 @@ public class ForwardDistributionAgentFac
protected SimpleDistributionAgent createAgent(String agentName, BundleContext context, Map<String, Object> config) {
String serviceName = PropertiesUtil.toString(config.get(SERVICE_NAME), null);
- Map<String, String> importerEndpointsMap = SettingsUtils.toUriMap(config.get(IMPORTER_ENDPOINTS));
-
DistributionPackageExporter packageExporter = new LocalDistributionPackageExporter(packageBuilder);
- DistributionPackageImporter packageImporter = new RemoteDistributionPackageImporter(transportSecretProvider, importerEndpointsMap, TransportEndpointStrategyType.One);
DistributionQueueProvider queueProvider = new JobHandlingDistributionQueueProvider(agentName, jobManager, context);
- String[] queueNames = importerEndpointsMap.keySet().toArray(new String[0]);
- DistributionQueueDispatchingStrategy dispatchingStrategy = new MultipleQueueDispatchingStrategy(queueNames);
+ DistributionQueueDispatchingStrategy dispatchingStrategy = null;
+ DistributionPackageImporter packageImporter = null;
+ Map<String, String> importerEndpointsMap = SettingsUtils.toUriMap(config.get(IMPORTER_ENDPOINTS));
+ boolean useMultipleQueues = PropertiesUtil.toBoolean(config.get(USE_MULTIPLE_QUEUES), false);
+
+ if (useMultipleQueues) {
+ String[] queueNames = importerEndpointsMap.keySet().toArray(new String[0]);
+ dispatchingStrategy = new MultipleQueueDispatchingStrategy(queueNames);
+ packageImporter = new RemoteDistributionPackageImporter(transportSecretProvider, importerEndpointsMap, TransportEndpointStrategyType.One);
+ } else {
+ dispatchingStrategy = new SingleQueueDispatchingStrategy();
+ packageImporter = new RemoteDistributionPackageImporter(transportSecretProvider, importerEndpointsMap, TransportEndpointStrategyType.All);
+ }
+
return new SimpleDistributionAgent(agentName, false, serviceName,
packageImporter, packageExporter, requestAuthorizationStrategy,
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java?rev=1650232&r1=1650231&r2=1650232&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java Thu Jan 8 08:45:15 2015
@@ -38,6 +38,7 @@ import org.apache.sling.distribution.pac
import org.apache.sling.distribution.packaging.impl.importer.RemoteDistributionPackageImporter;
import org.apache.sling.distribution.queue.impl.DistributionQueueDispatchingStrategy;
import org.apache.sling.distribution.queue.DistributionQueueProvider;
+import org.apache.sling.distribution.queue.impl.MultipleQueueDispatchingStrategy;
import org.apache.sling.distribution.queue.impl.SingleQueueDispatchingStrategy;
import org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueueProvider;
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
@@ -90,6 +91,11 @@ public class SyncDistributionAgentFactor
@Property(cardinality = -1)
public static final String IMPORTER_ENDPOINTS = "packageImporter.endpoints";
+
+
+ @Property(label = "Use multiple queues", boolValue = false)
+ public static final String USE_MULTIPLE_QUEUES = "useMultipleQueues";
+
@Reference
private Packaging packaging;
@@ -149,13 +155,25 @@ public class SyncDistributionAgentFactor
String[] exporterEndpoints = PropertiesUtil.toStringArray(config.get(EXPORTER_ENDPOINTS), new String[0]);
+
+
+ DistributionQueueDispatchingStrategy dispatchingStrategy = null;
+ DistributionPackageImporter packageImporter = null;
Map<String, String> importerEndpointsMap = SettingsUtils.toUriMap(config.get(IMPORTER_ENDPOINTS));
+ boolean useMultipleQueues = PropertiesUtil.toBoolean(config.get(USE_MULTIPLE_QUEUES), false);
+
+ if (useMultipleQueues) {
+ String[] queueNames = importerEndpointsMap.keySet().toArray(new String[0]);
+ dispatchingStrategy = new MultipleQueueDispatchingStrategy(queueNames);
+ packageImporter = new RemoteDistributionPackageImporter(transportSecretProvider, importerEndpointsMap, TransportEndpointStrategyType.One);
+ } else {
+ dispatchingStrategy = new SingleQueueDispatchingStrategy();
+ packageImporter = new RemoteDistributionPackageImporter(transportSecretProvider, importerEndpointsMap, TransportEndpointStrategyType.All);
+ }
DistributionPackageExporter packageExporter = new RemoteDistributionPackageExporter(packageBuilder, transportSecretProvider, exporterEndpoints, TransportEndpointStrategyType.All, 1);
- DistributionPackageImporter packageImporter = new RemoteDistributionPackageImporter(transportSecretProvider, importerEndpointsMap, TransportEndpointStrategyType.All);
DistributionQueueProvider queueProvider = new JobHandlingDistributionQueueProvider(agentName, jobManager, context);
- DistributionQueueDispatchingStrategy dispatchingStrategy = new SingleQueueDispatchingStrategy();
return new SimpleDistributionAgent(agentName, false, serviceName,
packageImporter, packageExporter, requestAuthorizationStrategy,
Modified: sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/publish-multiple/org.apache.sling.distribution.agent.impl.ForwardDistributionAgentFactory-publish-multiple.json
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/publish-multiple/org.apache.sling.distribution.agent.impl.ForwardDistributionAgentFactory-publish-multiple.json?rev=1650232&r1=1650231&r2=1650232&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/publish-multiple/org.apache.sling.distribution.agent.impl.ForwardDistributionAgentFactory-publish-multiple.json (original)
+++ sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/publish-multiple/org.apache.sling.distribution.agent.impl.ForwardDistributionAgentFactory-publish-multiple.json Thu Jan 8 08:45:15 2015
@@ -11,6 +11,8 @@
"transportSecretProvider.target" : "(name=publishAdmin)",
+ "useMultipleQueues" : true,
+
"packageImporter.endpoints" : [
"endpoint1=http://localhost:4503/libs/sling/distribution/services/importers/default",
"endpoint2=http://localhost:4503/libs/sling/distribution/services/importers/defaultbadaddress"