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

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


The following commit(s) were added to refs/heads/master by this push:
     new 0076740  SLING-8028 Split FeatureExtensionHandler into MergeHandler 
and PostProcessor
0076740 is described below

commit 0076740d9cf0914995f1e09c1c1e44a83ea01f8f
Author: David Bosschaert <[email protected]>
AuthorDate: Tue Oct 30 15:44:43 2018 +0000

    SLING-8028 Split FeatureExtensionHandler into MergeHandler and PostProcessor
    
    Propagate the change to the launcher.
---
 .../feature/launcher/impl/FeatureProcessor.java    | 23 +++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java 
b/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java
index b981065..1ee15e1 100644
--- a/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java
+++ b/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java
@@ -38,7 +38,8 @@ import org.apache.sling.feature.Feature;
 import org.apache.sling.feature.FeatureConstants;
 import org.apache.sling.feature.builder.BuilderContext;
 import org.apache.sling.feature.builder.FeatureBuilder;
-import org.apache.sling.feature.builder.FeatureExtensionHandler;
+import org.apache.sling.feature.builder.MergeHandler;
+import org.apache.sling.feature.builder.PostProcessHandler;
 import org.apache.sling.feature.io.file.ArtifactHandler;
 import org.apache.sling.feature.io.file.ArtifactManager;
 import org.apache.sling.feature.io.json.FeatureJSONReader;
@@ -70,8 +71,24 @@ public class FeatureProcessor {
                     // ignore
                 }
                 return null;
-            }, config.getVariables(), 
config.getInstallation().getFrameworkProperties()).add(StreamSupport.stream(Spliterators.spliteratorUnknownSize(
-            ServiceLoader.load(FeatureExtensionHandler.class).iterator(), 
Spliterator.ORDERED), false).toArray(FeatureExtensionHandler[]::new));
+            },
+            id -> {
+                try {
+                    final ArtifactHandler handler = 
artifactManager.getArtifactHandler(id.toMvnUrl());
+                    return handler.getFile();
+                } catch (final IOException e) {
+                    // ignore
+                    return null;
+                }
+            },
+            config.getVariables(), 
config.getInstallation().getFrameworkProperties())
+                
.addMergeExtensions(StreamSupport.stream(Spliterators.spliteratorUnknownSize(
+                        ServiceLoader.load(MergeHandler.class).iterator(), 
Spliterator.ORDERED), false)
+                            .toArray(MergeHandler[]::new))
+                
.addPostProcessExtensions(StreamSupport.stream(Spliterators.spliteratorUnknownSize(
+                    ServiceLoader.load(PostProcessHandler.class).iterator(), 
Spliterator.ORDERED), false)
+                        .toArray(PostProcessHandler[]::new));
+
 
         List<Feature> features = new ArrayList<>();
 

Reply via email to