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