You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by pa...@apache.org on 2019/06/12 21:56:29 UTC

[sling-org-apache-sling-feature-launcher] branch master updated: SLING-8485: Feature Launcher should keep order of features

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 <ka...@gmail.com>
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