SLING-6977 - applied patch from Simone Tripodi
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1800389 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index 19c1d47..ab3a1bc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -244,12 +244,10 @@
<artifactId>servlet-api</artifactId>
</dependency>
<dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.compendium</artifactId>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.framework</artifactId>
+ <version>5.6.4</version>
+ <scope>provided</scope>
</dependency>
<!-- FILEVAULT -->
<dependency>
diff --git a/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentProvider.java b/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentProvider.java
index 86c3e37..cf5a916 100644
--- a/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentProvider.java
+++ b/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentProvider.java
@@ -59,11 +59,17 @@
private static final String NAME = DistributionComponentConstants.PN_NAME;
private final Map<String, DistributionComponent<DistributionAgent>> distributionAgentMap = new ConcurrentHashMap<String, DistributionComponent<DistributionAgent>>();
+
private final Map<String, DistributionComponent<DistributionQueueProvider>> distributionQueueProviderMap = new ConcurrentHashMap<String, DistributionComponent<DistributionQueueProvider>>();
+
private final Map<String, DistributionComponent<DistributionQueueDispatchingStrategy>> distributionQueueDistributionStrategyMap = new ConcurrentHashMap<String, DistributionComponent<DistributionQueueDispatchingStrategy>>();
+
private final Map<String, DistributionComponent<DistributionTransportSecretProvider>> distributionTransportSecretProviderMap = new ConcurrentHashMap<String, DistributionComponent<DistributionTransportSecretProvider>>();
+
private final Map<String, DistributionComponent<DistributionPackageImporter>> distributionPackageImporterMap = new ConcurrentHashMap<String, DistributionComponent<DistributionPackageImporter>>();
+
private final Map<String, DistributionComponent<DistributionPackageExporter>> distributionPackageExporterMap = new ConcurrentHashMap<String, DistributionComponent<DistributionPackageExporter>>();
+
private final Map<String, DistributionComponent<DistributionPackageBuilder>> distributionPackageBuilderMap = new ConcurrentHashMap<String, DistributionComponent<DistributionPackageBuilder>>();
public DistributionComponent<?> getComponent(DistributionComponentKind kind, String componentName) {
@@ -92,7 +98,6 @@
return type.cast(component.getService());
}
-
@SuppressWarnings({ "unchecked", "rawtypes" })
private Map<String, DistributionComponent<?>> getComponentMap(Class<?> type) {
if (type.isAssignableFrom(DistributionAgent.class)) {
@@ -114,83 +119,66 @@
return null;
}
- // TODO are these methods still needed?!?
+ // (un)binding methods
- private void bindDistributionQueueProvider(DistributionQueueProvider distributionQueueProvider, Map<String, Object> config) {
-
+ public void bindDistributionQueueProvider(DistributionQueueProvider distributionQueueProvider, Map<String, Object> config) {
put(DistributionQueueProvider.class, distributionQueueProvider, config);
}
- private void unbindDistributionQueueProvider(DistributionQueueProvider distributionQueueProvider, Map<String, Object> config) {
-
+ public void unbindDistributionQueueProvider(DistributionQueueProvider distributionQueueProvider, Map<String, Object> config) {
remove(DistributionQueueProvider.class, distributionQueueProvider, config);
}
- private void bindDistributionQueueDistributionStrategy(DistributionQueueDispatchingStrategy distributionQueueDispatchingStrategy, Map<String, Object> config) {
-
+ public void bindDistributionQueueDistributionStrategy(DistributionQueueDispatchingStrategy distributionQueueDispatchingStrategy, Map<String, Object> config) {
put(DistributionQueueDispatchingStrategy.class, distributionQueueDispatchingStrategy, config);
}
- private void unbindDistributionQueueDistributionStrategy(DistributionQueueDispatchingStrategy distributionQueueDispatchingStrategy, Map<String, Object> config) {
-
+ public void unbindDistributionQueueDistributionStrategy(DistributionQueueDispatchingStrategy distributionQueueDispatchingStrategy, Map<String, Object> config) {
remove(DistributionQueueDispatchingStrategy.class, distributionQueueDispatchingStrategy, config);
}
- private void bindDistributionTransportSecretProvider(DistributionTransportSecretProvider distributionTransportSecretProvider, Map<String, Object> config) {
-
+ public void bindDistributionTransportSecretProvider(DistributionTransportSecretProvider distributionTransportSecretProvider, Map<String, Object> config) {
put(DistributionTransportSecretProvider.class, distributionTransportSecretProvider, config);
-
}
- private void unbindDistributionTransportSecretProvider(DistributionTransportSecretProvider distributionTransportSecretProvider, Map<String, Object> config) {
-
+ public void unbindDistributionTransportSecretProvider(DistributionTransportSecretProvider distributionTransportSecretProvider, Map<String, Object> config) {
remove(DistributionTransportSecretProvider.class, distributionTransportSecretProvider, config);
}
- private void bindDistributionPackageImporter(DistributionPackageImporter distributionPackageImporter, Map<String, Object> config) {
-
+ public void bindDistributionPackageImporter(DistributionPackageImporter distributionPackageImporter, Map<String, Object> config) {
put(DistributionPackageImporter.class, distributionPackageImporter, config);
}
- private void unbindDistributionPackageImporter(DistributionPackageImporter distributionPackageImporter, Map<String, Object> config) {
-
+ public void unbindDistributionPackageImporter(DistributionPackageImporter distributionPackageImporter, Map<String, Object> config) {
remove(DistributionPackageImporter.class, distributionPackageImporter, config);
}
- private void bindDistributionPackageExporter(DistributionPackageExporter distributionPackageExporter, Map<String, Object> config) {
-
+ public void bindDistributionPackageExporter(DistributionPackageExporter distributionPackageExporter, Map<String, Object> config) {
put(DistributionPackageExporter.class, distributionPackageExporter, config);
}
- private void unbindDistributionPackageExporter(DistributionPackageExporter distributionPackageExporter, Map<String, Object> config) {
-
+ public void unbindDistributionPackageExporter(DistributionPackageExporter distributionPackageExporter, Map<String, Object> config) {
remove(DistributionPackageExporter.class, distributionPackageExporter, config);
-
}
- private void bindDistributionAgent(DistributionAgent distributionAgent, Map<String, Object> config) {
-
+ public void bindDistributionAgent(DistributionAgent distributionAgent, Map<String, Object> config) {
put(DistributionAgent.class, distributionAgent, config);
}
- private void unbindDistributionAgent(DistributionAgent distributionAgent, Map<String, Object> config) {
-
+ public void unbindDistributionAgent(DistributionAgent distributionAgent, Map<String, Object> config) {
remove(DistributionAgent.class, distributionAgent, config);
-
}
-
- private void bindDistributionPackageBuilder(DistributionPackageBuilder distributionPackageBuilder, Map<String, Object> config) {
-
+ public void bindDistributionPackageBuilder(DistributionPackageBuilder distributionPackageBuilder, Map<String, Object> config) {
put(DistributionPackageBuilder.class, distributionPackageBuilder, config);
}
- private void unbindDistributionPackageBuilder(DistributionPackageBuilder distributionPackageBuilder, Map<String, Object> config) {
-
+ public void unbindDistributionPackageBuilder(DistributionPackageBuilder distributionPackageBuilder, Map<String, Object> config) {
remove(DistributionPackageBuilder.class, distributionPackageBuilder, config);
-
}
+ // internals
+
private <ComponentType> void put(Class<ComponentType> typeClass, ComponentType service, Map<String, Object> config) {
Map<String, DistributionComponent<?>> componentMap = getComponentMap(typeClass);
@@ -199,19 +187,15 @@
if (name != null && kind != null) {
componentMap.put(name, new DistributionComponent<ComponentType>(kind, name, service, config));
}
-
}
private <ComponentType> void remove(Class<ComponentType> typeClass, ComponentType service, Map<String, Object> config) {
-
Map<String, DistributionComponent<?>> componentMap = getComponentMap(typeClass);
String name = PropertiesUtil.toString(config.get(NAME), null);
if (name != null) {
componentMap.remove(name);
}
-
}
-
}
diff --git a/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java b/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java
index 4d52ba2..32066c9 100644
--- a/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java
+++ b/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java
@@ -22,7 +22,6 @@
import java.util.Dictionary;
import java.util.Hashtable;
import java.util.Queue;
-import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.LinkedBlockingDeque;
import javax.annotation.Nonnull;
diff --git a/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java b/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java
index 1c62e57..3abda50 100644
--- a/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java
+++ b/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java
@@ -121,7 +121,7 @@
List<Job> result = new ArrayList<Job>();
try {
- Collection<Job> jobs = jobManager.findJobs(QueryType.ALL, topic, actualLimit);
+ Collection<Job> jobs = jobManager.findJobs(QueryType.ALL, topic, actualLimit, (Map<String, Object>[]) null);
int i = 0;
for (Job job : jobs) {