You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by mp...@apache.org on 2015/02/04 11:01:49 UTC

svn commit: r1657075 - in /sling/trunk/contrib/extensions/distribution: api/src/main/java/org/apache/sling/distribution/event/ core/src/main/java/org/apache/sling/distribution/agent/impl/ core/src/main/java/org/apache/sling/distribution/event/impl/ cor...

Author: mpetria
Date: Wed Feb  4 10:01:48 2015
New Revision: 1657075

URL: http://svn.apache.org/r1657075
Log:
SLING-4391: changing distribution event api to contain constants

Added:
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventProperties.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventTopics.java
Removed:
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventType.java
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/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/importer/LocalDistributionPackageImporterFactory.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/DistributionEventDistributeDistributionTrigger.java

Added: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventProperties.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventProperties.java?rev=1657075&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventProperties.java (added)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventProperties.java Wed Feb  4 10:01:48 2015
@@ -0,0 +1,47 @@
+/*
+ * 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.event;
+
+
+/**
+ * an interface containing of the possible properties of events related to distribution
+ */
+public interface DistributionEventProperties {
+
+    /**
+     * property containing the name of component generating the event
+     */
+    public static final String DISTRIBUTION_COMPONENT_NAME = "distribution.component.name";
+
+
+    /**
+     * property containing the kind of the component generating the event
+     */
+    public static final String DISTRIBUTION_COMPONENT_KIND= "distribution.component.kind";
+
+    /**
+     * property containing the type of the distribution request
+     */
+    public static final String DISTRIBUTION_TYPE = "distribution.type";
+
+    /**
+     * property containing the type of the distribution paths
+     */
+    public static final String DISTRIBUTION_PATHS= "distribution.paths";
+}

Added: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventTopics.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventTopics.java?rev=1657075&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventTopics.java (added)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventTopics.java Wed Feb  4 10:01:48 2015
@@ -0,0 +1,49 @@
+/*
+ * 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.event;
+
+/**
+ * an interface containing of the possible topics of events related to distribution
+ */
+public interface DistributionEventTopics {
+
+
+    public static final String EVENT_BASE = "org/apache/sling/distribution";
+
+    /**
+     * event for package created
+     */
+    public static final String AGENT_PACKAGE_CREATED = EVENT_BASE + "/agent/package/created";
+
+    /**
+     * event for package queued
+     */
+    public static final String AGENT_PACKAGE_QUEUED = EVENT_BASE + "/agent/package/queued";
+
+    /**
+     * event for package distributed
+     */
+    public static final String AGENT_PACKAGE_DISTRIBUTED = EVENT_BASE + "/agent/package/distributed";
+
+
+    /**
+     * event for package imported
+     */
+    public static final String IMPORTER_PACKAGE_IMPORTED = EVENT_BASE + "/importer/package/imported";
+}

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java?rev=1657075&r1=1657074&r2=1657075&view=diff
==============================================================================
--- 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 Wed Feb  4 10:01:48 2015
@@ -39,9 +39,9 @@ import org.apache.sling.distribution.Dis
 import org.apache.sling.distribution.DistributionResponse;
 import org.apache.sling.distribution.agent.DistributionAgentState;
 import org.apache.sling.distribution.component.impl.DistributionComponentKind;
+import org.apache.sling.distribution.event.DistributionEventTopics;
 import org.apache.sling.distribution.impl.CompositeDistributionResponse;
 import org.apache.sling.distribution.impl.SimpleDistributionResponse;
-import org.apache.sling.distribution.event.DistributionEventType;
 import org.apache.sling.distribution.event.impl.DistributionEventFactory;
 import org.apache.sling.distribution.log.DistributionLog;
 import org.apache.sling.distribution.log.impl.DefaultDistributionLog;
@@ -191,7 +191,7 @@ public class SimpleDistributionAgent imp
     private List<DistributionPackage> exportPackages(ResourceResolver agentResourceResolver, DistributionRequest distributionRequest) throws DistributionPackageExportException {
         List<DistributionPackage> distributionPackages = distributionPackageExporter.exportPackages(agentResourceResolver, distributionRequest);
 
-        generatePackageEvent(DistributionEventType.AGENT_PACKAGE_CREATED);
+        generatePackageEvent(DistributionEventTopics.AGENT_PACKAGE_CREATED);
 
         return distributionPackages;
     }
@@ -218,7 +218,7 @@ public class SimpleDistributionAgent imp
                 distributionResponses.add(new SimpleDistributionResponse(requestState, state.getItemState().toString()));
             }
 
-            generatePackageEvent(DistributionEventType.AGENT_PACKAGE_QUEUED, distributionPackage);
+            generatePackageEvent(DistributionEventTopics.AGENT_PACKAGE_QUEUED, distributionPackage);
         } catch (Exception e) {
             log.error("an error happened during dispatching items to the queue(s)", e);
             distributionResponses.add(new SimpleDistributionResponse(DistributionRequestState.DROPPED, e.toString()));
@@ -363,7 +363,7 @@ public class SimpleDistributionAgent imp
 
                 DistributionPackageUtils.releaseOrDelete(distributionPackage, queueName);
 
-                generatePackageEvent(DistributionEventType.AGENT_PACKAGE_DISTRIBUTED, distributionPackage);
+                generatePackageEvent(DistributionEventTopics.AGENT_PACKAGE_DISTRIBUTED, distributionPackage);
                 success = true;
                 log.info("distribution package {} was delivered", queueItem.getId());
             } else {
@@ -406,9 +406,9 @@ public class SimpleDistributionAgent imp
 
     }
 
-    private void generatePackageEvent(DistributionEventType type, DistributionPackage... distributionPackages) {
+    private void generatePackageEvent(String topic, DistributionPackage... distributionPackages) {
         for (DistributionPackage distributionPackage : distributionPackages) {
-            distributionEventFactory.generatePackageEvent(type, DistributionComponentKind.AGENT, name, distributionPackage.getInfo());
+            distributionEventFactory.generatePackageEvent(topic, DistributionComponentKind.AGENT, name, distributionPackage.getInfo());
         }
     }
 

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/event/impl/DefaultDistributionEventFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/event/impl/DefaultDistributionEventFactory.java?rev=1657075&r1=1657074&r2=1657075&view=diff
==============================================================================
--- 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 Wed Feb  4 10:01:48 2015
@@ -26,7 +26,7 @@ import org.apache.felix.scr.annotations.
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.distribution.component.impl.DistributionComponentKind;
-import org.apache.sling.distribution.event.DistributionEventType;
+import org.apache.sling.distribution.event.DistributionEventProperties;
 import org.apache.sling.distribution.packaging.DistributionPackageInfo;
 import org.osgi.service.event.Event;
 import org.osgi.service.event.EventAdmin;
@@ -45,19 +45,19 @@ public class DefaultDistributionEventFac
     @Reference
     private EventAdmin eventAdmin;
 
-    private void generateEvent(@Nonnull DistributionEventType distributionEventType, @Nonnull Dictionary<?, ?> properties) {
-        eventAdmin.postEvent(new Event(distributionEventType.getTopic(), properties));
-        log.debug("distribution event {} posted", distributionEventType.name());
+    private void generateEvent(@Nonnull String distributionEventTopic, @Nonnull Dictionary<?, ?> properties) {
+        eventAdmin.postEvent(new Event(distributionEventTopic, properties));
+        log.debug("distribution event {} posted", distributionEventTopic);
     }
 
-    public void generatePackageEvent(@Nonnull DistributionEventType distributionEventType, DistributionComponentKind kind, @Nonnull String name, @Nonnull DistributionPackageInfo info) {
+    public void generatePackageEvent(@Nonnull String distributionEventTopic, DistributionComponentKind kind, @Nonnull String name, @Nonnull DistributionPackageInfo info) {
         try {
             Dictionary<String, Object> dictionary = new Hashtable<String, Object>();
-            dictionary.put(DistributionEventType.PROPERTY_DISTRIBUTION_COMPONENT_NAME, name);
-            dictionary.put(DistributionEventType.PROPERTY_DISTRIBUTION_COMPONENT_KIND, kind.name());
-            dictionary.put(DistributionEventType.PROPERTY_DISTRIBUTION_TYPE, info.getRequestType());
-            dictionary.put(DistributionEventType.PROPERTY_DISTRIBUTION_PATHS, info.getPaths());
-            generateEvent(distributionEventType, dictionary);
+            dictionary.put(DistributionEventProperties.DISTRIBUTION_COMPONENT_NAME, name);
+            dictionary.put(DistributionEventProperties.DISTRIBUTION_COMPONENT_KIND, kind.name());
+            dictionary.put(DistributionEventProperties.DISTRIBUTION_TYPE, info.getRequestType());
+            dictionary.put(DistributionEventProperties.DISTRIBUTION_PATHS, info.getPaths());
+            generateEvent(distributionEventTopic, dictionary);
 
         } catch (Throwable e) {
             log.error("Cannot generate package event", e);

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/event/impl/DistributionEventFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/event/impl/DistributionEventFactory.java?rev=1657075&r1=1657074&r2=1657075&view=diff
==============================================================================
--- 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 Wed Feb  4 10:01:48 2015
@@ -21,7 +21,6 @@ package org.apache.sling.distribution.ev
 import javax.annotation.Nonnull;
 
 import org.apache.sling.distribution.component.impl.DistributionComponentKind;
-import org.apache.sling.distribution.event.DistributionEventType;
 import org.apache.sling.distribution.packaging.DistributionPackageInfo;
 
 /**
@@ -34,7 +33,7 @@ public interface DistributionEventFactor
      *
      * @param distributionEventType the type of event to be generated
      */
-    void generatePackageEvent(@Nonnull DistributionEventType distributionEventType, @Nonnull DistributionComponentKind kind,
+    void generatePackageEvent(@Nonnull String distributionEventType, @Nonnull DistributionComponentKind kind,
                               @Nonnull String name, @Nonnull DistributionPackageInfo info);
 
 }

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java?rev=1657075&r1=1657074&r2=1657075&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java Wed Feb  4 10:01:48 2015
@@ -32,7 +32,7 @@ import org.apache.sling.api.resource.Res
 import org.apache.sling.commons.osgi.PropertiesUtil;
 import org.apache.sling.distribution.component.impl.DistributionComponentKind;
 import org.apache.sling.distribution.component.impl.DistributionComponentUtils;
-import org.apache.sling.distribution.event.DistributionEventType;
+import org.apache.sling.distribution.event.DistributionEventTopics;
 import org.apache.sling.distribution.event.impl.DistributionEventFactory;
 import org.apache.sling.distribution.packaging.DistributionPackage;
 import org.apache.sling.distribution.packaging.DistributionPackageImportException;
@@ -82,7 +82,7 @@ public class LocalDistributionPackageImp
 
     public void importPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionPackage distributionPackage) throws DistributionPackageImportException {
         importer.importPackage(resourceResolver, distributionPackage);
-        eventFactory.generatePackageEvent(DistributionEventType.IMPORTER_PACKAGE_IMPORTED, DistributionComponentKind.IMPORTER, name, distributionPackage.getInfo());
+        eventFactory.generatePackageEvent(DistributionEventTopics.IMPORTER_PACKAGE_IMPORTED, DistributionComponentKind.IMPORTER, name, distributionPackage.getInfo());
     }
 
     public DistributionPackage importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
@@ -90,7 +90,7 @@ public class LocalDistributionPackageImp
 
 
         if (distributionPackage != null) {
-            eventFactory.generatePackageEvent(DistributionEventType.IMPORTER_PACKAGE_IMPORTED, DistributionComponentKind.IMPORTER, name, distributionPackage.getInfo());
+            eventFactory.generatePackageEvent(DistributionEventTopics.IMPORTER_PACKAGE_IMPORTED, DistributionComponentKind.IMPORTER, name, distributionPackage.getInfo());
         }
 
         return distributionPackage;

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/DistributionEventDistributeDistributionTrigger.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/DistributionEventDistributeDistributionTrigger.java?rev=1657075&r1=1657074&r2=1657075&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/DistributionEventDistributeDistributionTrigger.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/DistributionEventDistributeDistributionTrigger.java Wed Feb  4 10:01:48 2015
@@ -26,7 +26,8 @@ import java.util.concurrent.ConcurrentHa
 
 import org.apache.sling.distribution.DistributionRequestType;
 import org.apache.sling.distribution.SimpleDistributionRequest;
-import org.apache.sling.distribution.event.DistributionEventType;
+import org.apache.sling.distribution.event.DistributionEventProperties;
+import org.apache.sling.distribution.event.DistributionEventTopics;
 import org.apache.sling.distribution.trigger.DistributionRequestHandler;
 import org.apache.sling.distribution.trigger.DistributionTrigger;
 import org.apache.sling.distribution.trigger.DistributionTriggerException;
@@ -39,7 +40,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * {@link org.apache.sling.distribution.trigger.DistributionTrigger} for chain distribution upon a certain {@link org.apache.sling.distribution.event.DistributionEventType}
+ * {@link org.apache.sling.distribution.trigger.DistributionTrigger} for chain distribution upon a certain {@link org.apache.sling.distribution.event.DistributionEventTopics}
  */
 public class DistributionEventDistributeDistributionTrigger implements DistributionTrigger {
 
@@ -63,7 +64,7 @@ public class DistributionEventDistribute
         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.AGENT_PACKAGE_DISTRIBUTED.getTopic());
+        properties.put(EventConstants.EVENT_TOPIC, DistributionEventTopics.AGENT_PACKAGE_DISTRIBUTED);
         log.info("handler {} will chain distribute on path '{}'", requestHandler, pathPrefix);
 
 //            properties.put(EventConstants.EVENT_FILTER, "(path=" + path + "/*)");
@@ -108,8 +109,8 @@ public class DistributionEventDistribute
         }
 
         public void handleEvent(Event event) {
-            Object actionProperty = event.getProperty(DistributionEventType.PROPERTY_DISTRIBUTION_TYPE);
-            Object pathProperty = event.getProperty(DistributionEventType.PROPERTY_DISTRIBUTION_PATHS);
+            Object actionProperty = event.getProperty(DistributionEventProperties.DISTRIBUTION_TYPE);
+            Object pathProperty = event.getProperty(DistributionEventProperties.DISTRIBUTION_PATHS);
             if (actionProperty != null && pathProperty != null) {
                 String[] paths = (String[]) pathProperty;
                 for (String p : paths) {