SLING-7991 - setting order to Integer.MAX_VALUE for processing last if start-order is not set.
diff --git a/src/main/java/org/apache/sling/feature/extension/content/ContentHandler.java b/src/main/java/org/apache/sling/feature/extension/content/ContentHandler.java
index e19ba12..8a84ddb 100644
--- a/src/main/java/org/apache/sling/feature/extension/content/ContentHandler.java
+++ b/src/main/java/org/apache/sling/feature/extension/content/ContentHandler.java
@@ -95,7 +95,14 @@
&& extension.getName().equals(FeatureConstants.EXTENSION_NAME_CONTENT_PACKAGES)) {
MultiValueMap orderedArtifacts = MultiValueMap.decorate(new LinkedHashMap<Integer, Collection<Artifact>>());
for (final Artifact a : extension.getArtifacts()) {
- orderedArtifacts.put(Integer.valueOf(a.getStartOrder()), a);
+ int order;
+ // content-packages without explicit start-order to be installed last
+ if (a.getMetadata().get(Artifact.KEY_START_ORDER) != null) {
+ order = Integer.valueOf(a.getStartOrder());
+ } else {
+ order = Integer.MAX_VALUE;
+ }
+ orderedArtifacts.put(order, a);
}
List<String> executionPlans = new ArrayList<String>();
for (Object key : orderedArtifacts.keySet()) {