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"
     }


Reply via email to