[maven-release-plugin] copy for tag org.apache.sling.distribution.core-0.1.8
git-svn-id: https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.distribution.core-0.1.8@1706845 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index 9c4e030..48775b9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.sling</groupId>
<artifactId>sling</artifactId>
- <version>24</version>
+ <version>25</version>
</parent>
<!-- ======================================================================= -->
@@ -112,7 +112,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.distribution.api</artifactId>
- <version>0.1.2</version>
+ <version>0.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
diff --git a/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java b/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java
index 0b48f29..270db2e 100644
--- a/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java
+++ b/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java
@@ -28,6 +28,7 @@
import org.apache.sling.distribution.agent.DistributionAgent;
import org.apache.sling.distribution.component.impl.DistributionComponentConstants;
import org.apache.sling.distribution.component.impl.DistributionComponentKind;
+import org.apache.sling.distribution.log.DistributionLog;
import org.apache.sling.distribution.log.impl.DefaultDistributionLog;
import org.apache.sling.distribution.resources.impl.OsgiUtils;
import org.apache.sling.distribution.trigger.DistributionTrigger;
@@ -88,6 +89,7 @@
if (componentReg == null) {
+ DefaultDistributionLog distributionLog = null;
try {
String logLevel = PropertiesUtil.toString(config.get(LOG_LEVEL), DefaultDistributionLog.LogLevel.INFO.name());
@@ -97,11 +99,14 @@
}
- DefaultDistributionLog distributionLog = new DefaultDistributionLog(DistributionComponentKind.AGENT, agentName, SimpleDistributionAgent.class, level);
+ distributionLog = new DefaultDistributionLog(DistributionComponentKind.AGENT, agentName, SimpleDistributionAgent.class, level);
agent = createAgent(agentName, context, config, distributionLog);
- } catch (IllegalArgumentException e) {
- log.warn("cannot create agent", e);
+ } catch (Throwable t) {
+ if (distributionLog != null) {
+ distributionLog.error("Cannot create agent", t);
+ }
+ log.error("Cannot create agent", t);
}
diff --git a/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java b/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java
index e1f5cb9..f7d99c9 100644
--- a/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java
+++ b/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java
@@ -203,7 +203,7 @@
boolean queueProcessingEnabled = PropertiesUtil.toBoolean(config.get(QUEUE_PROCESSING_ENABLED), true);
String[] passiveQueues = PropertiesUtil.toStringArray(config.get(PASSIVE_QUEUES), new String[0]);
- passiveQueues = SettingsUtils.removeEmptyEntries(passiveQueues);
+ passiveQueues = SettingsUtils.removeEmptyEntries(passiveQueues, new String[0]);
DistributionPackageExporter packageExporter = new LocalDistributionPackageExporter(packageBuilder);
diff --git a/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java b/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
index c51e6a0..6310002 100644
--- a/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
+++ b/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
@@ -229,7 +229,6 @@
private Collection<SimpleDistributionResponse> scheduleImportPackage(DistributionPackage distributionPackage) {
Collection<SimpleDistributionResponse> distributionResponses = new LinkedList<SimpleDistributionResponse>();
- log.debug("scheduling distribution of package {} {}", distributionPackage.getId(), distributionPackage);
// dispatch the distribution package to the queue distribution handler
try {
@@ -247,6 +246,9 @@
distributionPackage.close();
}
+ log.info("scheduled package {} with info {}", distributionPackage.getId(), distributionPackage.getInfo());
+
+
return distributionResponses;
}
@@ -337,6 +339,8 @@
}
try {
+ log.info("enabling trigger {}", trigger);
+
trigger.register(agentBasedRequestHandler);
} catch (DistributionTriggerException e) {
log.error("could not register handler from trigger {} {}", trigger, e);
@@ -350,6 +354,8 @@
}
try {
+ log.info("disabling trigger {}", trigger);
+
trigger.unregister(agentBasedRequestHandler);
} catch (DistributionTriggerException e) {
log.error("could not unregister handler from trigger {} {}", trigger, e);
@@ -398,6 +404,8 @@
success = reEnqueuePackage(distributionPackage);
DistributionPackageUtils.releaseOrDelete(distributionPackage, queueName);
}
+
+ log.info("processed package {} with info {} from queue {}", distributionPackage.getId(), distributionPackage.getInfo(), queueName);
} else {
success = true; // return success if package does not exist in order to clear the queue.
log.error("distribution package with id {} does not exist. the package will be skipped.", queueItem.getId());
@@ -422,7 +430,7 @@
return false;
}
- log.info("distribution package {} was delivered", distributionPackage.getId());
+ log.debug("distribution package {} was delivered", distributionPackage.getId());
return true;
}
diff --git a/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java b/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java
index 4910392..04ba114 100644
--- a/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java
+++ b/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java
@@ -208,7 +208,7 @@
boolean queueProcessingEnabled = PropertiesUtil.toBoolean(config.get(QUEUE_PROCESSING_ENABLED), true);
String[] passiveQueues = PropertiesUtil.toStringArray(config.get(PASSIVE_QUEUES), new String[0]);
- passiveQueues = SettingsUtils.removeEmptyEntries(passiveQueues);
+ passiveQueues = SettingsUtils.removeEmptyEntries(passiveQueues, new String[0]);
Object exporterEndpointsValue = config.get(EXPORTER_ENDPOINTS);
Object importerEndpointsValue = config.get(IMPORTER_ENDPOINTS);
diff --git a/src/main/java/org/apache/sling/distribution/component/impl/SettingsUtils.java b/src/main/java/org/apache/sling/distribution/component/impl/SettingsUtils.java
index dcb0d79..6c7b651 100644
--- a/src/main/java/org/apache/sling/distribution/component/impl/SettingsUtils.java
+++ b/src/main/java/org/apache/sling/distribution/component/impl/SettingsUtils.java
@@ -199,6 +199,16 @@
return result.toArray(new String[0]);
}
+ public static String[] removeEmptyEntries(String[] array, String[] defaultArray) {
+ String[] result = removeEmptyEntries(array);
+ if (result == null) {
+ return defaultArray;
+ } else {
+ return result;
+ }
+ }
+
+
public static String removeEmptyEntry(String entry) {
if (entry == null) {
diff --git a/src/main/java/org/apache/sling/distribution/impl/CompositeDistributionResponse.java b/src/main/java/org/apache/sling/distribution/impl/CompositeDistributionResponse.java
index 882eaba..7af076e 100644
--- a/src/main/java/org/apache/sling/distribution/impl/CompositeDistributionResponse.java
+++ b/src/main/java/org/apache/sling/distribution/impl/CompositeDistributionResponse.java
@@ -54,7 +54,7 @@
@Override
public boolean isSuccessful() {
- return !DistributionRequestState.DROPPED.equals(state);
+ return DistributionRequestState.ACCEPTED.equals(state) || DistributionRequestState.DISTRIBUTED.equals(state);
}
@Nonnull
@@ -85,9 +85,6 @@
case DISTRIBUTED:
aggregatedState = first;
break;
- case DROPPED:
- aggregatedState = DistributionRequestState.DISTRIBUTED;
- break;
case ACCEPTED:
if (first.equals(DistributionRequestState.DISTRIBUTED)) {
aggregatedState = DistributionRequestState.ACCEPTED;
diff --git a/src/main/java/org/apache/sling/distribution/impl/DefaultDistributor.java b/src/main/java/org/apache/sling/distribution/impl/DefaultDistributor.java
index ca46917..f95ba46 100644
--- a/src/main/java/org/apache/sling/distribution/impl/DefaultDistributor.java
+++ b/src/main/java/org/apache/sling/distribution/impl/DefaultDistributor.java
@@ -53,14 +53,14 @@
DistributionAgent agent = componentProvider.getService(DistributionAgent.class, agentName);
if (agent == null) {
- return new SimpleDistributionResponse(DistributionRequestState.DROPPED, "Agent is not available");
+ return new SimpleDistributionResponse(DistributionRequestState.NOT_EXECUTED, "Agent is not available");
}
try {
return agent.execute(resourceResolver, distributionRequest);
} catch (DistributionAgentException e) {
log.error("cannot execute", e);
- return new SimpleDistributionResponse(DistributionRequestState.FAILED, "Cannot execute request");
+ return new SimpleDistributionResponse(DistributionRequestState.DROPPED, "Cannot execute request");
}
}
}
diff --git a/src/main/java/org/apache/sling/distribution/impl/SimpleDistributionResponse.java b/src/main/java/org/apache/sling/distribution/impl/SimpleDistributionResponse.java
index a1ff61c..5c51b7b 100644
--- a/src/main/java/org/apache/sling/distribution/impl/SimpleDistributionResponse.java
+++ b/src/main/java/org/apache/sling/distribution/impl/SimpleDistributionResponse.java
@@ -40,7 +40,7 @@
}
public boolean isSuccessful() {
- return !DistributionRequestState.DROPPED.equals(state);
+ return DistributionRequestState.ACCEPTED.equals(state) || DistributionRequestState.DISTRIBUTED.equals(state);
}
@Nonnull
diff --git a/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageInfo.java b/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageInfo.java
index c230270..e8b9fa2 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageInfo.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageInfo.java
@@ -138,9 +138,9 @@
@Override
public String toString() {
return "DistributionPackageInfo{" +
- "origin=" + getOrigin() +
- ", requestType=" + getRequestType() +
+ " requestType=" + getRequestType() +
", paths=" + Arrays.toString(getPaths()) +
+ ", origin=" + getOrigin() +
'}';
}
}
diff --git a/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java b/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java
index 8b2c924..8f1f7d7 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java
@@ -26,6 +26,8 @@
import org.apache.sling.distribution.DistributionRequest;
import org.apache.sling.distribution.DistributionRequestType;
import org.apache.sling.distribution.agent.DistributionAgent;
+import org.apache.sling.distribution.log.DistributionLog;
+import org.apache.sling.distribution.log.impl.DefaultDistributionLog;
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageExportException;
import org.apache.sling.distribution.packaging.DistributionPackageExporter;
@@ -44,6 +46,7 @@
public class AgentDistributionPackageExporter implements DistributionPackageExporter {
private final Logger log = LoggerFactory.getLogger(getClass());
private final DistributionPackageBuilderProvider packageBuilderProvider;
+ private final String name;
final static String PACKAGE_TYPE = "agentexporter";
@@ -51,8 +54,9 @@
private DistributionAgent agent;
private String queueName;
- public AgentDistributionPackageExporter(String queueName, DistributionAgent agent, DistributionPackageBuilderProvider packageBuilderProvider) {
+ public AgentDistributionPackageExporter(String queueName, DistributionAgent agent, DistributionPackageBuilderProvider packageBuilderProvider, String name) {
this.packageBuilderProvider = packageBuilderProvider;
+ this.name = name;
if (agent == null || packageBuilderProvider == null) {
throw new IllegalArgumentException("Agent and package builder are required");
@@ -88,6 +92,7 @@
if (packageBuilder != null) {
distributionPackage = packageBuilder.getPackage(resourceResolver, queueItem.getId());
+
log.info("item {} fetched from the queue", info);
if (distributionPackage != null) {
result.add(new AgentDistributionPackage(distributionPackage, queue));
@@ -97,7 +102,6 @@
} else {
log.warn("cannot find package builder with type {}", info.getType());
}
-
}
} catch (Exception ex) {
@@ -158,6 +162,16 @@
String id = distributionPackage.getId();
queue.remove(id);
DistributionPackageUtils.releaseOrDelete(distributionPackage, queue.getName());
+ agentLog("exported package {} with info {} from queue {} by exporter {}", new Object[] {id, distributionPackage.getInfo(), queue.getName(), name});
+ }
+ }
+
+
+ private void agentLog(String message, Object[] values) {
+ DistributionLog agentLog = agent.getLog();
+
+ if (agentLog instanceof DefaultDistributionLog) {
+ ((DefaultDistributionLog) agentLog).info(message, values);
}
}
}
diff --git a/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterFactory.java b/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterFactory.java
index 0debf27..bf849ef 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterFactory.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterFactory.java
@@ -74,8 +74,10 @@
public void activate(Map<String, Object> config) throws Exception {
String queueName = PropertiesUtil.toString(config.get(QUEUE_NAME), "");
+ String name = PropertiesUtil.toString(config.get(NAME), "");
- packageExporter = new AgentDistributionPackageExporter(queueName, agent, packageBuilderProvider);
+
+ packageExporter = new AgentDistributionPackageExporter(queueName, agent, packageBuilderProvider, name);
}
@Nonnull
diff --git a/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java b/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java
index a2b2718..207f08a 100644
--- a/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java
+++ b/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java
@@ -51,7 +51,10 @@
Map<String, Object> properties = new HashMap<String, Object>();
for (String key : queueItem.keySet()) {
- properties.put(DISTRIBUTION_PACKAGE_PREFIX + key, queueItem.get(key));
+ Object value = queueItem.get(key);
+ if (value != null) {
+ properties.put(DISTRIBUTION_PACKAGE_PREFIX + key, queueItem.get(key));
+ }
}
properties.put(ID, queueItem.getId());
diff --git a/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterTest.java b/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterTest.java
index 18927f0..004668e 100644
--- a/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterTest.java
+++ b/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterTest.java
@@ -39,7 +39,7 @@
@Test
public void testTestExport() throws Exception {
AgentDistributionPackageExporter distributionPackageExporter = new AgentDistributionPackageExporter(null,
- mock(DistributionAgent.class), mock(DistributionPackageBuilderProvider.class));
+ mock(DistributionAgent.class), mock(DistributionPackageBuilderProvider.class), null);
ResourceResolver resourceResolver = mock(ResourceResolver.class);
DistributionRequest distributionRequest = new SimpleDistributionRequest(DistributionRequestType.TEST, null);
List<DistributionPackage> distributionPackages = distributionPackageExporter.exportPackages(resourceResolver, distributionRequest);