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 {