Read features into application
diff --git a/src/main/java/org/apache/sling/feature/io/json/ApplicationJSONReader.java b/src/main/java/org/apache/sling/feature/io/json/ApplicationJSONReader.java
index 05382ca..c8e49b2 100644
--- a/src/main/java/org/apache/sling/feature/io/json/ApplicationJSONReader.java
+++ b/src/main/java/org/apache/sling/feature/io/json/ApplicationJSONReader.java
@@ -25,6 +25,7 @@
import java.io.Reader;
import java.io.StringReader;
import java.util.Collections;
+import java.util.List;
import java.util.Map;
import javax.json.Json;
@@ -112,6 +113,7 @@
variables.put(entry.getKey(), entry.getValue());
}
+ this.readFeatures(map, app.getFeatureIds());
this.readBundles(map, app.getBundles(), app.getConfigurations());
this.readFrameworkProperties(map, app.getFrameworkProperties());
this.readConfigurations(map, app.getConfigurations());
@@ -121,6 +123,16 @@
this.app.getExtensions(), this.app.getConfigurations());
}
+ private void readFeatures(Map<String, Object> map, List<ArtifactId> featureIds) {
+ Object fids = map.get(JSONConstants.APP_FEATURES);
+ if (fids instanceof List) {
+ for (Object fid : (List<?>) fids) {
+ ArtifactId aid = ArtifactId.parse(fid.toString());
+ featureIds.add(aid);
+ }
+ }
+ }
+
@Override
protected Object handleResolveVars(Object val) {
return handleVars(val, variables);