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