This is an automated email from the ASF dual-hosted git repository.

pauls pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature.git


The following commit(s) were added to refs/heads/master by this push:
     new bc42473  Pass Extension object to FeatureExtensionHandler instead of 
just the extension name.
bc42473 is described below

commit bc42473612d9acb6c1b210a1d8b22284c94c0d95
Author: Karl Pauls <[email protected]>
AuthorDate: Tue Aug 28 22:41:23 2018 +0200

    Pass Extension object to FeatureExtensionHandler instead of just the 
extension name.
---
 .../java/org/apache/sling/feature/FeatureConstants.java |  2 +-
 .../apache/sling/feature/builder/BuilderContext.java    | 12 ++++++------
 .../org/apache/sling/feature/builder/BuilderUtil.java   |  6 +++---
 .../sling/feature/builder/FeatureExtensionHandler.java  | 17 +++++++++--------
 .../apache/sling/feature/builder/FeatureProvider.java   |  3 +--
 5 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/src/main/java/org/apache/sling/feature/FeatureConstants.java 
b/src/main/java/org/apache/sling/feature/FeatureConstants.java
index 85023da..3072711 100644
--- a/src/main/java/org/apache/sling/feature/FeatureConstants.java
+++ b/src/main/java/org/apache/sling/feature/FeatureConstants.java
@@ -36,7 +36,7 @@ public abstract class FeatureConstants {
 
     /**
      * Extension name containing the assembled features as produced
-     * by {@link #assemble(ArtifactId, BuilderContext, Feature...)}.
+     * by {@link 
org.apache.sling.feature.builder.FeatureBuilder#assemble(ArtifactId, 
BuilderContext, Feature...)}.
      * This extension is of type {@link ExtensionType#ARTIFACTS} and is
      * optional.
      */
diff --git a/src/main/java/org/apache/sling/feature/builder/BuilderContext.java 
b/src/main/java/org/apache/sling/feature/builder/BuilderContext.java
index ca3d82a..24afc23 100644
--- a/src/main/java/org/apache/sling/feature/builder/BuilderContext.java
+++ b/src/main/java/org/apache/sling/feature/builder/BuilderContext.java
@@ -16,12 +16,12 @@
  */
 package org.apache.sling.feature.builder;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
- * Builder context holds services used by {@link ApplicationBuilder}
- * and {@link FeatureBuilder}.
+ * Builder context holds services used by  {@link FeatureBuilder}.
  */
 public class BuilderContext {
 
@@ -43,12 +43,12 @@ public class BuilderContext {
     }
 
     /**
-     * Add a feature extension handler
-     * @param handler A handler
+     * Add a feature extension handlers
+     * @param handlers Handler(s) to add
      * @return This instance
      */
-    public BuilderContext add(final FeatureExtensionHandler handler) {
-        featureExtensionHandlers.add(handler);
+    public BuilderContext add(final FeatureExtensionHandler... handlers) {
+        featureExtensionHandlers.addAll(Arrays.asList(handlers));
         return this;
     }
 
diff --git a/src/main/java/org/apache/sling/feature/builder/BuilderUtil.java 
b/src/main/java/org/apache/sling/feature/builder/BuilderUtil.java
index baecc97..0993d49 100644
--- a/src/main/java/org/apache/sling/feature/builder/BuilderUtil.java
+++ b/src/main/java/org/apache/sling/feature/builder/BuilderUtil.java
@@ -210,8 +210,8 @@ class BuilderUtil {
                     }
                     boolean handled = false;
                     for(final FeatureExtensionHandler fem : 
context.getFeatureExtensionHandlers()) {
-                        if ( fem.canMerge(current.getName()) ) {
-                            fem.merge(target, source, current.getName());
+                        if ( fem.canMerge(current) ) {
+                            fem.merge(target, source, current);
                             handled = true;
                             break;
                         }
@@ -229,7 +229,7 @@ class BuilderUtil {
         // post processing
         for(final Extension ext : target.getExtensions()) {
             for(final FeatureExtensionHandler fem : 
context.getFeatureExtensionHandlers()) {
-                fem.postProcess(target, ext.getName());
+                fem.postProcess(target, ext);
             }
         }
     }
diff --git 
a/src/main/java/org/apache/sling/feature/builder/FeatureExtensionHandler.java 
b/src/main/java/org/apache/sling/feature/builder/FeatureExtensionHandler.java
index 2907f9b..8434b5a 100644
--- 
a/src/main/java/org/apache/sling/feature/builder/FeatureExtensionHandler.java
+++ 
b/src/main/java/org/apache/sling/feature/builder/FeatureExtensionHandler.java
@@ -16,6 +16,7 @@
  */
 package org.apache.sling.feature.builder;
 
+import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.Feature;
 import org.osgi.annotation.versioning.ConsumerType;
 
@@ -28,32 +29,32 @@ public interface FeatureExtensionHandler {
 
     /**
      * Checks whether this merger can merge extensions with that name
-     * @param extensionName The extension name
+     * @param extension The extension
      * @return {@code true} if merger can handle this
      */
-    boolean canMerge(String extensionName);
+    boolean canMerge(Extension extension);
 
     /**
      * Merge the source extension into the target extension.
      *
      * The caller of this method already ensured that both
      * extensions share the same name and type and that
-     * {@link #canMerge(String)} returned {@code true}.
+     * {@link #canMerge(Extension)} returned {@code true}.
      *
      * @param target The target feature
      * @param source The source feature
-     * @param extensionName The extension name
+     * @param extension The extension
      * @throws IllegalStateException If the extensions can't be merged
      */
-    void merge(Feature target, Feature source, String extensionName);
+    void merge(Feature target, Feature source, Extension extension);
 
     /**
      * Post process the feature with respect to the extension.
      * Post processing is invoked after all extensions have been merged.
-     * This method is called regardless whether {@link #canMerge(String)} 
returned {@code true} or not.
+     * This method is called regardless whether {@link #canMerge(Extension)} 
returned {@code true} or not.
      * @param feature The feature
-     * @param extensionName The extension name
+     * @param extension The extension
      * @throws IllegalStateException If post processing failed
      */
-    void postProcess(Feature feature, String extensionName);
+    void postProcess(Feature feature, Extension extension);
 }
diff --git 
a/src/main/java/org/apache/sling/feature/builder/FeatureProvider.java 
b/src/main/java/org/apache/sling/feature/builder/FeatureProvider.java
index ace0005..f32b333 100644
--- a/src/main/java/org/apache/sling/feature/builder/FeatureProvider.java
+++ b/src/main/java/org/apache/sling/feature/builder/FeatureProvider.java
@@ -21,8 +21,7 @@ import org.apache.sling.feature.Feature;
 import org.osgi.annotation.versioning.ConsumerType;
 
 /**
- * The feature provider is used to find features while assembling using either
- * {@link ApplicationBuilder} or {@link FeatureBuilder}.
+ * The feature provider is used to find features while assembling using {@link 
FeatureBuilder}.
  */
 @ConsumerType
 public interface FeatureProvider {

Reply via email to