in src/main/java/org/apache/sling/feature/io/json/FeatureJSONReader.java [744:773]
private void setInternalData(final Extension internalData) throws IOException {
final JsonValue val = internalData.getJSONStructure();
for (final Map.Entry<String, JsonValue> entry : checkTypeObject("Extension ".concat(internalData.getName()), val).entrySet()) {
final String key = entry.getKey();
if ( JSONConstants.FRAMEWORK_PROPERTIES_METADATA.equals(key) ) {
for (final Map.Entry<String, JsonValue> propEntry : checkTypeObject(key, entry.getValue()).entrySet()) {
final Map<String, Object> metadata = this.feature.getFrameworkPropertyMetadata(propEntry.getKey());
if ( metadata == null ) {
throw new IOException("Framework property " + propEntry.getKey() + " does not exists (metadata)");
}
for(final Map.Entry<String, JsonValue> ve : checkTypeObject(JSONConstants.FRAMEWORK_PROPERTIES_METADATA.concat(".").concat(propEntry.getKey()), propEntry.getValue()).entrySet()) {
metadata.put(ve.getKey(), org.apache.felix.cm.json.io.Configurations.convertToObject(ve.getValue()));
}
}
} else if ( JSONConstants.VARIABLES_METADATA.equals(key) ) {
for (final Map.Entry<String, JsonValue> varEntry : checkTypeObject(key, entry.getValue()).entrySet()) {
final Map<String, Object> metadata = this.feature.getVariableMetadata(varEntry.getKey());
if ( metadata == null ) {
throw new IOException("Variable " + varEntry.getKey() + " does not exists (metadata)");
}
for(final Map.Entry<String, JsonValue> ve : checkTypeObject(JSONConstants.VARIABLES_METADATA.concat(".").concat(varEntry.getKey()), varEntry.getValue()).entrySet()) {
metadata.put(ve.getKey(), org.apache.felix.cm.json.io.Configurations.convertToObject(ve.getValue()));
}
}
} else {
throw new IOException("Unknown data in " + internalData.getName() + " : " + key);
}
}
}