Author: mpetria
Date: Fri Dec 5 13:24:00 2014
New Revision: 1643266
Log:
SLING-4153: changing events to be controlled by agent + some name changes for
settings
Added:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueDispatchingStrategy.java
Removed:
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/queue/DistributionQueueDispatchingStrategy.java
Modified:
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventType.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentUtils.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/event/impl/DefaultDistributionEventFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/event/impl/DistributionEventFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporter.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/AdvancedRemoteDistributionPackageImporter.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RepositoryDistributionPackageImporter.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackageBuilder.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilder.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilderFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/ChainDistributeDistributionTrigger.java
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilderTest.java
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.author/defaults/agents/global.json
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.publish/defaults/agents/global.json
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.publish/defaults/exporters/global.json
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.publish/defaults/importers/global.json
Modified:
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventType.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventType.java
(original)
+++
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventType.java
Fri Dec 5 13:24:00 2014
@@ -26,27 +26,17 @@ public enum DistributionEventType {
/**
* event for package created
*/
- PACKAGE_CREATED,
+ AGENT_PACKAGE_CREATED,
/**
* event for package queued
*/
- PACKAGE_QUEUED,
+ AGENT_PACKAGE_QUEUED,
/**
* event for package distributed
*/
- PACKAGE_DISTRIBUTED,
-
- /**
- * event for package installed
- */
- PACKAGE_INSTALLED,
-
- /**
- * event for package imported
- */
- PACKAGE_IMPORTED,
+ AGENT_PACKAGE_DISTRIBUTED,
/**
* event for agent created
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
Fri Dec 5 13:24:00 2014
@@ -146,7 +146,9 @@ public class SimpleDistributionAgent imp
distributionRequestAuthorizationStrategy.checkPermission(resourceResolver,
distributionRequest);
- return scheduleImport(exportPackages(agentResourceResolver,
distributionRequest));
+ List<DistributionPackage> distributionPackages =
exportPackages(agentResourceResolver, distributionRequest);
+
+ return scheduleImport(distributionPackages);
} catch (Exception e) {
log.error("[{}]Â Error executing distribution request {}", name,
distributionRequest);
throw new DistributionAgentException(e);
@@ -161,7 +163,12 @@ public class SimpleDistributionAgent imp
}
private List<DistributionPackage> exportPackages(ResourceResolver
agentResourceResolver, DistributionRequest distributionRequest) throws
DistributionPackageExportException {
- return
distributionPackageExporter.exportPackages(agentResourceResolver,
distributionRequest);
+ List<DistributionPackage> distributionPackages =
distributionPackageExporter.exportPackages(agentResourceResolver,
distributionRequest);
+ for (DistributionPackage distributionPackage : distributionPackages) {
+
distributionEventFactory.generateAgentPackageEvent(DistributionEventType.AGENT_PACKAGE_CREATED,
name, distributionPackage.getInfo());
+ }
+
+ return distributionPackages;
}
private DistributionResponse scheduleImport(List<DistributionPackage>
distributionPackages) {
@@ -181,16 +188,11 @@ public class SimpleDistributionAgent imp
try {
Iterable<DistributionQueueItemState> states =
queueDistributionStrategy.add(distributionPackage, queueProvider);
for (DistributionQueueItemState state : states) {
- Dictionary<Object, Object> properties = new Properties();
- if (distributionPackage.getInfo().getPaths() != null) {
- properties.put("distribution.package.paths",
distributionPackage.getInfo().getPaths());
- }
- properties.put("distribution.agent.name", name);
-
distributionEventFactory.generateEvent(DistributionEventType.PACKAGE_QUEUED,
properties);
-
DistributionRequestState requestState =
getRequestStateFromQueueState(state.getItemState());
distributionResponses.add(new
DistributionResponse(requestState, state.getItemState().toString()));
}
+
+
distributionEventFactory.generateAgentPackageEvent(DistributionEventType.AGENT_PACKAGE_QUEUED,
name, distributionPackage.getInfo());
} catch (Exception e) {
log.error("an error happened during dispatching items to the
queue(s)", e);
distributionResponses.add(new
DistributionResponse(DistributionRequestState.FAILED, e.toString()));
@@ -330,11 +332,7 @@ public class SimpleDistributionAgent imp
distributionPackage.getInfo().fillInfo(queueItem.getPackageInfo());
distributionPackageImporter.importPackage(agentResourceResolver,
distributionPackage);
-
- Dictionary<Object, Object> properties = new Properties();
- properties.put("distribution.package.paths",
distributionPackage.getInfo().getPaths());
- properties.put("distribution.agent.name", name);
-
distributionEventFactory.generateEvent(DistributionEventType.PACKAGE_DISTRIBUTED,
properties);
+
distributionEventFactory.generateAgentPackageEvent(DistributionEventType.AGENT_PACKAGE_DISTRIBUTED,
name, distributionPackage.getInfo());
if (distributionPackage instanceof SharedDistributionPackage) {
((SharedDistributionPackage)
distributionPackage).release(queueName);
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentUtils.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentUtils.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentUtils.java
Fri Dec 5 13:24:00 2014
@@ -93,17 +93,17 @@ public class DistributionComponentUtils
osgiConfigFactoryMap = new HashMap<String, String>();
osgiServiceMap = new HashMap<String, String>();
- // register "core" services
+ // register "core" services kind -> ComponentClass
registerService("agent", DistributionAgent.class);
registerService("exporter", DistributionPackageExporter.class);
registerService("importer", DistributionPackageImporter.class);
- registerService("packager", DistributionPackageBuilder.class);
+ registerService("packageBuilder", DistributionPackageBuilder.class);
registerService("requestAuthorization",
DistributionRequestAuthorizationStrategy.class);
- registerService("distributionTransportSecretProvider",
DistributionTransportSecretProvider.class);
+ registerService("transportSecretProvider",
DistributionTransportSecretProvider.class);
registerService("trigger", DistributionTrigger.class);
- // register "core" factoreis
+ // register "core" factories kind, type -> ComponentFactoryClass
registerFactory("agent", "simple",
SimpleDistributionAgentFactory.class);
registerFactory("exporter", "local",
LocalDistributionPackageExporterFactory.class);
@@ -113,11 +113,11 @@ public class DistributionComponentUtils
registerFactory("importer", "local",
LocalDistributionPackageImporterFactory.class);
registerFactory("importer", "remote",
RemoteDistributionPackageImporterFactory.class);
- registerFactory("packager", "vlt",
FileVaultDistributionPackageBuilderFactory.class);
+ registerFactory("packageBuilder", "vlt",
FileVaultDistributionPackageBuilderFactory.class);
registerFactory("requestAuthorization", "privilege",
PrivilegeDistributionRequestAuthorizationStrategy.class);
- registerFactory("distributionTransportSecretProvider", "user",
UserCredentialsDistributionTransportSecretProvider.class);
+ registerFactory("transportSecretProvider", "user",
UserCredentialsDistributionTransportSecretProvider.class);
registerFactory("trigger", "resourceEvent",
LocalDistributionTriggerFactory.class);
registerFactory("trigger", "scheduledEvent",
LocalDistributionTriggerFactory.class);
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/event/impl/DefaultDistributionEventFactory.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/event/impl/DefaultDistributionEventFactory.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/event/impl/DefaultDistributionEventFactory.java
Fri Dec 5 13:24:00 2014
@@ -20,11 +20,13 @@ package org.apache.sling.distribution.ev
import javax.annotation.Nonnull;
import java.util.Dictionary;
+import java.util.Hashtable;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.distribution.event.DistributionEventType;
+import org.apache.sling.distribution.packaging.DistributionPackageInfo;
import org.osgi.service.event.Event;
import org.osgi.service.event.EventAdmin;
import org.slf4j.Logger;
@@ -47,4 +49,12 @@ public class DefaultDistributionEventFac
log.debug("distribution event {} posted",
distributionEventType.name());
}
+ public void generateAgentPackageEvent(@Nonnull DistributionEventType
distributionEventType, @Nonnull String agentName, @Nonnull
DistributionPackageInfo info) {
+ Dictionary<String, Object> dictionary = new Hashtable<String,
Object>();
+ dictionary.put("distribution.agent.name", agentName);
+ dictionary.put("distribution.request.type", info.getRequestType());
+ dictionary.put("distribution.path", info.getPaths());
+ generateEvent(distributionEventType, dictionary);
+ }
+
}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/event/impl/DistributionEventFactory.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/event/impl/DistributionEventFactory.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/event/impl/DistributionEventFactory.java
Fri Dec 5 13:24:00 2014
@@ -22,6 +22,8 @@ import javax.annotation.Nonnull;
import java.util.Dictionary;
import org.apache.sling.distribution.event.DistributionEventType;
+import org.apache.sling.distribution.packaging.DistributionPackage;
+import org.apache.sling.distribution.packaging.DistributionPackageInfo;
/**
* generate distribution related events
@@ -32,7 +34,7 @@ public interface DistributionEventFactor
* generate a distribution event
*
* @param distributionEventType the type of event to be generated
- * @param properties a dictionary of properties to be attached
to the event
*/
- void generateEvent(@Nonnull DistributionEventType distributionEventType,
@Nonnull Dictionary<?, ?> properties);
+ void generateAgentPackageEvent(@Nonnull DistributionEventType
distributionEventType, @Nonnull String agentName, @Nonnull
DistributionPackageInfo info);
+
}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporter.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporter.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporter.java
Fri Dec 5 13:24:00 2014
@@ -54,6 +54,11 @@ public class RemoteDistributionPackageEx
throw new IllegalArgumentException("packageBuilder is required");
}
+ if (secretProvider == null) {
+ throw new
IllegalArgumentException("distributionTransportSecretProvider is required");
+ }
+
+
this.packageBuilder = packageBuilder;
this.secretProvider = secretProvider;
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java
Fri Dec 5 13:24:00 2014
@@ -93,8 +93,8 @@ public class RemoteDistributionPackageEx
@Reference(name = "packageBuilder")
private DistributionPackageBuilder packageBuilder;
- @Property(name = "distributionTransportSecretProvider.target")
- @Reference(name = "distributionTransportSecretProvider")
+ @Property(name = "transportSecretProvider.target")
+ @Reference(name = "transportSecretProvider")
private DistributionTransportSecretProvider
distributionTransportSecretProvider;
private DistributionPackageExporter exporter;
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/AdvancedRemoteDistributionPackageImporter.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/AdvancedRemoteDistributionPackageImporter.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/AdvancedRemoteDistributionPackageImporter.java
Fri Dec 5 13:24:00 2014
@@ -53,8 +53,8 @@ public class AdvancedRemoteDistributionP
private final Logger log = LoggerFactory.getLogger(getClass());
- @Property(name = "distributionTransportSecretProvider.target")
- @Reference(name = "distributionTransportSecretProvider")
+ @Property(name = "transportSecretProvider.target")
+ @Reference(name = "transportSecretProvider")
private volatile DistributionTransportSecretProvider
distributionTransportSecretProvider;
@Property(cardinality = 100)
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java
Fri Dec 5 13:24:00 2014
@@ -71,11 +71,6 @@ public class LocalDistributionPackageImp
if (success) {
log.info("Distribution package read and installed for path(s)
{}", Arrays.toString(distributionPackage.getInfo().getPaths()));
- Dictionary<String, Object> dictionary = new Hashtable<String,
Object>();
- dictionary.put("distribution.request.type",
distributionPackage.getInfo().getRequestType());
- dictionary.put("distribution.path",
distributionPackage.getInfo().getPaths());
-
distributionEventFactory.generateEvent(DistributionEventType.PACKAGE_INSTALLED,
dictionary);
-
} else {
log.warn("could not read a distribution package");
}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java
Fri Dec 5 13:24:00 2014
@@ -80,8 +80,8 @@ public class RemoteDistributionPackageIm
public static final String ENDPOINTS_STRATEGY = "endpoints.strategy";
- @Property(name = "distributionTransportSecretProvider.target")
- @Reference(name = "distributionTransportSecretProvider")
+ @Property(name = "transportSecretProvider.target")
+ @Reference(name = "transportSecretProvider")
DistributionTransportSecretProvider distributionTransportSecretProvider;
private DistributionPackageImporter importer;
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RepositoryDistributionPackageImporter.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RepositoryDistributionPackageImporter.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RepositoryDistributionPackageImporter.java
Fri Dec 5 13:24:00 2014
@@ -92,9 +92,6 @@ public class RepositoryDistributionPacka
log.info("package {} imported into the repository as node {} ",
distributionPackage.getId(), addedNode.getPath());
- Dictionary<Object, Object> props = new Properties();
- props.put("path", distributionPackage.getInfo().getPaths());
-
distributionEventFactory.generateEvent(DistributionEventType.PACKAGE_IMPORTED,
props);
} else {
throw new Exception("could not get a Session to deliver
package to the repository");
}
Added:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueDispatchingStrategy.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueDispatchingStrategy.java
(added)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueDispatchingStrategy.java
Fri Dec 5 13:24:00 2014
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.distribution.queue;
+
+import javax.annotation.Nonnull;
+import java.util.List;
+
+import aQute.bnd.annotation.ConsumerType;
+import org.apache.sling.distribution.packaging.DistributionPackage;
+
+/**
+ * a {@link DistributionQueueDispatchingStrategy} implements an algorithm for
dispatching
+ * {@link org.apache.sling.distribution.packaging.DistributionPackage}s among
the available queues.
+ * <p/>
+ * Usually a {@link
org.apache.sling.distribution.packaging.DistributionPackage} will be dispatched
to a single {@link org.apache.sling.distribution.queue.DistributionQueue}
+ * but it would also be possible to dispatch the same package to multiple
queues, resulting in obtaining multiple states
+ * (one for each queue) for a certain package.
+ */
+@ConsumerType
+public interface DistributionQueueDispatchingStrategy {
+ String DEFAULT_QUEUE_NAME = "default";
+
+ /**
+ * synchronously distribute a {@link
org.apache.sling.distribution.packaging.DistributionPackage}
+ * to one or more {@link DistributionQueue}s provided by the given {@link
DistributionQueueProvider}
+ *
+ * @param distributionPackage a {@link
org.apache.sling.distribution.packaging.DistributionPackage} to distribute
+ * @param queueProvider the {@link DistributionQueueProvider} used
to provide the queues to be used for the given package
+ * @return an {@link java.lang.Iterable} of {@link
org.apache.sling.distribution.queue.DistributionQueueItemState}s representing
+ * the states of the {@link
org.apache.sling.distribution.queue.DistributionQueueItem}s added to one or
more {@link org.apache.sling.distribution.queue.DistributionQueue}s
+ * @throws DistributionQueueException if any internal error happens during
distribution
+ */
+ Iterable<DistributionQueueItemState> add(@Nonnull DistributionPackage
distributionPackage, @Nonnull DistributionQueueProvider queueProvider) throws
DistributionQueueException;
+
+
+ /**
+ * Returns the queue names available for this strategy.
+ *
+ * @return a list of queue names
+ */
+ @Nonnull
+ List<String> getQueueNames();
+
+}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackageBuilder.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackageBuilder.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackageBuilder.java
Fri Dec 5 13:24:00 2014
@@ -51,11 +51,8 @@ public abstract class AbstractDistributi
private final String type;
- private final DistributionEventFactory distributionEventFactory;
-
- protected AbstractDistributionPackageBuilder(String type,
DistributionEventFactory distributionEventFactory) {
+ protected AbstractDistributionPackageBuilder(String type) {
this.type = type;
- this.distributionEventFactory = distributionEventFactory;
}
@CheckForNull
@@ -75,12 +72,6 @@ public abstract class AbstractDistributi
if (distributionPackage != null) {
distributionPackage.getInfo().setRequestType(request.getRequestType());
distributionPackage.getInfo().setPaths(request.getPaths());
- if (distributionEventFactory != null) {
- Dictionary<String, Object> dictionary = new Hashtable<String,
Object>();
- dictionary.put("distribution.request.type",
distributionPackage.getInfo().getRequestType());
- dictionary.put("distribution.path",
distributionPackage.getInfo().getPaths());
-
distributionEventFactory.generateEvent(DistributionEventType.PACKAGE_CREATED,
dictionary);
- }
}
return distributionPackage;
}
@@ -121,13 +112,6 @@ public abstract class AbstractDistributi
installed = installPackageInternal(resourceResolver,
distributionPackage);
}
- if (installed && distributionEventFactory != null) {
- Dictionary<String, Object> dictionary = new Hashtable<String,
Object>();
- dictionary.put("distribution.request.type",
distributionPackage.getInfo().getRequestType());
- dictionary.put("distribution.path",
distributionPackage.getInfo().getPaths());
-
distributionEventFactory.generateEvent(DistributionEventType.PACKAGE_INSTALLED,
dictionary);
- }
-
return installed;
}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilder.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilder.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilder.java
Fri Dec 5 13:24:00 2014
@@ -68,13 +68,13 @@ public class FileVaultDistributionPackag
private AccessControlHandling aclHandling;
- public FileVaultDistributionPackageBuilder(Packaging packaging,
DistributionEventFactory distributionEventFactory) {
- super(PACKAGING_TYPE, distributionEventFactory);
+ public FileVaultDistributionPackageBuilder(Packaging packaging) {
+ super(PACKAGING_TYPE);
this.packaging = packaging;
}
- public FileVaultDistributionPackageBuilder(Packaging packaging,
DistributionEventFactory distributionEventFactory, String importMode, String
aclHandling) {
- super(PACKAGING_TYPE, distributionEventFactory);
+ public FileVaultDistributionPackageBuilder(Packaging packaging, String
importMode, String aclHandling) {
+ super(PACKAGING_TYPE);
this.packaging = packaging;
this.importMode = ImportMode.valueOf(importMode);
this.aclHandling = AccessControlHandling.valueOf(aclHandling);
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilderFactory.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilderFactory.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilderFactory.java
Fri Dec 5 13:24:00 2014
@@ -69,9 +69,6 @@ public class FileVaultDistributionPackag
public static final String PACKAGE_BUILDER_FILEVLT_ACLHANDLING =
"aclHandling";
@Reference
- private DistributionEventFactory distributionEventFactory;
-
- @Reference
private Packaging packaging;
private DistributionPackageBuilder packageBuilder;
@@ -83,9 +80,9 @@ public class FileVaultDistributionPackag
String importMode =
PropertiesUtil.toString(config.get(PACKAGE_BUILDER_FILEVLT_IMPORT_MODE), null);
String aclHandling =
PropertiesUtil.toString(config.get(PACKAGE_BUILDER_FILEVLT_ACLHANDLING), null);
if (importMode != null && aclHandling != null) {
- packageBuilder = new ResourceSharedDistributionPackageBuilder(new
FileVaultDistributionPackageBuilder(packaging, distributionEventFactory,
importMode, aclHandling));
+ packageBuilder = new ResourceSharedDistributionPackageBuilder(new
FileVaultDistributionPackageBuilder(packaging, importMode, aclHandling));
} else {
- packageBuilder = new ResourceSharedDistributionPackageBuilder(new
FileVaultDistributionPackageBuilder(packaging, distributionEventFactory));
+ packageBuilder = new ResourceSharedDistributionPackageBuilder(new
FileVaultDistributionPackageBuilder(packaging));
}
}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/ChainDistributeDistributionTrigger.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/ChainDistributeDistributionTrigger.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/ChainDistributeDistributionTrigger.java
Fri Dec 5 13:24:00 2014
@@ -62,7 +62,7 @@ public class ChainDistributeDistribution
Dictionary<String, Object> properties = new Hashtable<String,
Object>();
// TODO : make it possible to configure the type of event handled
here, currently 'package-installed' is hardcoded
- properties.put(EventConstants.EVENT_TOPIC,
DistributionEventType.PACKAGE_INSTALLED.getTopic());
+ properties.put(EventConstants.EVENT_TOPIC,
DistributionEventType.AGENT_PACKAGE_DISTRIBUTED.getTopic());
log.info("handler {} will chain distribute on path '{}'",
requestHandler, pathPrefix);
// properties.put(EventConstants.EVENT_FILTER, "(path=" + path +
"/*)");
Modified:
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilderTest.java
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilderTest.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilderTest.java
Fri Dec 5 13:24:00 2014
@@ -74,10 +74,9 @@ public class FileVaultDistributionPackag
when(session.getWorkspace()).thenReturn(workspace);
when(resourceResolver.adaptTo(Session.class)).thenReturn(session);
- DistributionEventFactory eventFactory =
mock(DistributionEventFactory.class);
FileVaultDistributionPackageBuilder
fileVaultdistributionPackageBuilder = new FileVaultDistributionPackageBuilder(
- packaging, eventFactory);
+ packaging);
DistributionRequest request = new
DistributionRequest(DistributionRequestType.ADD, new String[]{"/"});
DistributionPackage distributionPackage =
fileVaultdistributionPackageBuilder.createPackageForAdd(resourceResolver,
request);
assertNotNull(distributionPackage);
@@ -89,10 +88,8 @@ public class FileVaultDistributionPackag
PackageManager packageManager = mock(PackageManager.class);
when(packaging.getPackageManager()).thenReturn(packageManager);
- DistributionEventFactory eventFactory =
mock(DistributionEventFactory.class);
-
FileVaultDistributionPackageBuilder
fileVaultdistributionPackageBuilder = new FileVaultDistributionPackageBuilder(
- packaging, eventFactory);
+ packaging);
ResourceResolver resourceResolver = mock(ResourceResolver.class);
InputStream stream = new ByteArrayInputStream("some
binary".getBytes("UTF-8"));
@@ -105,10 +102,9 @@ public class FileVaultDistributionPackag
Packaging packaging = mock(Packaging.class);
PackageManager packageManager = mock(PackageManager.class);
when(packaging.getPackageManager()).thenReturn(packageManager);
- DistributionEventFactory eventFactory =
mock(DistributionEventFactory.class);
FileVaultDistributionPackageBuilder
fileVaultdistributionPackageBuilder = new FileVaultDistributionPackageBuilder(
- packaging, eventFactory);
+ packaging);
ResourceResolver resourceResolver = mock(ResourceResolver.class);
String id = "some-id";
@@ -124,10 +120,9 @@ public class FileVaultDistributionPackag
VaultPackage vaultPackage = mock(VaultPackage.class);
when(packageManager.open(tempFile)).thenReturn(vaultPackage);
when(packaging.getPackageManager()).thenReturn(packageManager);
- DistributionEventFactory eventFactory =
mock(DistributionEventFactory.class);
FileVaultDistributionPackageBuilder
fileVaultdistributionPackageBuilder = new FileVaultDistributionPackageBuilder(
- packaging, eventFactory);
+ packaging);
ResourceResolver resourceResolver = mock(ResourceResolver.class);
Session session = mock(Session.class);
@@ -155,10 +150,9 @@ public class FileVaultDistributionPackag
VaultPackage vaultPackage = mock(VaultPackage.class);
when(packageManager.open(tempFile)).thenReturn(vaultPackage);
when(packaging.getPackageManager()).thenReturn(packageManager);
- DistributionEventFactory eventFactory =
mock(DistributionEventFactory.class);
FileVaultDistributionPackageBuilder
fileVaultdistributionPackageBuilder = new FileVaultDistributionPackageBuilder(
- packaging, eventFactory, ImportMode.MERGE.name(),
AccessControlHandling.MERGE.name());
+ packaging, ImportMode.MERGE.name(),
AccessControlHandling.MERGE.name());
ResourceResolver resourceResolver = mock(ResourceResolver.class);
Session session = mock(Session.class);
Modified:
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.author/defaults/agents/global.json
==============================================================================
---
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.author/defaults/agents/global.json
(original)
+++
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.author/defaults/agents/global.json
Fri Dec 5 13:24:00 2014
@@ -16,13 +16,13 @@
"kind" : "exporter",
"packageBuilder" : {
- "kind" : "packager",
+ "kind" : "packageBuilder",
"type" : "service",
"name" : "vlt"
},
- "distributionTransportSecretProvider" : {
- "kind" : "transportAuthenticator",
+ "transportSecretProvider" : {
+ "kind" : "transportSecretProvider",
"type" : "service",
"name" : "publishAdmin"
}
@@ -33,14 +33,14 @@
"kind" : "importer",
"packageBuilder" : {
- "kind" : "packager",
+ "kind" : "packageBuilder",
"type" : "service",
"name" : "vlt"
},
- "distributionTransportSecretProvider" : {
- "kind" : "transportAuthenticator",
+ "transportSecretProvider" : {
+ "kind" : "transportSecretProvider",
"type" : "service",
"name" : "publishAdmin"
}
Modified:
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.publish/defaults/agents/global.json
==============================================================================
---
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.publish/defaults/agents/global.json
(original)
+++
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.publish/defaults/agents/global.json
Fri Dec 5 13:24:00 2014
@@ -16,7 +16,7 @@
"kind" : "exporter",
"packageBuilder" : {
- "kind" : "packager",
+ "kind" : "packageBuilder",
"type" : "service",
"name" : "vlt"
}
@@ -27,7 +27,7 @@
"packageBuilder" : {
- "kind" : "packager",
+ "kind" : "packageBuilder",
"type" : "service",
"name" : "vlt"
Modified:
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.publish/defaults/exporters/global.json
==============================================================================
---
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.publish/defaults/exporters/global.json
(original)
+++
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.publish/defaults/exporters/global.json
Fri Dec 5 13:24:00 2014
@@ -6,7 +6,7 @@
"isResource" : "true",
"packageBuilder" : {
- "kind" : "packager",
+ "kind" : "packageBuilder",
"type" : "service",
"name" : "vlt"
}
Modified:
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.publish/defaults/importers/global.json
==============================================================================
---
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.publish/defaults/importers/global.json
(original)
+++
sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/settings.publish/defaults/importers/global.json
Fri Dec 5 13:24:00 2014
@@ -6,7 +6,7 @@
"isResource" : "true",
"packageBuilder" : {
- "kind" : "packager",
+ "kind" : "packageBuilder",
"type" : "service",
"name" : "vlt"
}