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-launcher.git


The following commit(s) were added to refs/heads/master by this push:
     new 9c1494a  SLING-8485: Feature Launcher should keep order of features
9c1494a is described below

commit 9c1494a32b8216ec95f91b18fcec50cee94271fb
Author: Karl Pauls <[email protected]>
AuthorDate: Wed Jun 12 23:56:21 2019 +0200

    SLING-8485: Feature Launcher should keep order of features
---
 .../org/apache/sling/feature/launcher/impl/FeatureProcessor.java     | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

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 7307020..340b2d9 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
@@ -20,6 +20,7 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.Reader;
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.ServiceLoader;
@@ -89,19 +90,21 @@ public class FeatureProcessor {
             ServiceLoader.load(PostProcessHandler.class).iterator(), 
Spliterator.ORDERED), false)
                 .toArray(PostProcessHandler[]::new));
 
+        List<Feature> features = new ArrayList<>();
         for (final String initFile : 
IOUtils.getFeatureFiles(config.getHomeDirectory(), config.getFeatureFiles())) {
             logger.debug("Reading feature file {}", initFile);
             final ArtifactHandler featureArtifact = 
artifactManager.getArtifactHandler(initFile);
             try (final Reader r = new 
InputStreamReader(featureArtifact.getLocalURL().openStream(), "UTF-8")) {
                 final Feature f = FeatureJSONReader.read(r, 
featureArtifact.getUrl());
                 loadedFeatures.put(f.getId(), f);
+                features.add(f);
             } catch (Exception ex) {
                 throw new IOException("Error reading feature: " + initFile, 
ex);
             }
         }
 
         // TODO make feature id configurable
-        final Feature app = 
FeatureBuilder.assemble(ArtifactId.fromMvnId("group:assembled:1.0.0"), 
builderContext, loadedFeatures.values().toArray(new Feature[0]));
+        final Feature app = 
FeatureBuilder.assemble(ArtifactId.fromMvnId("group:assembled:1.0.0"), 
builderContext, features.toArray(new Feature[0]));
         loadedFeatures.put(app.getId(), app);
 
         // TODO: this sucks

Reply via email to