in src/main/java/org/apache/sling/feature/io/json/FeatureJSONWriter.java [438:471]
private void writeInternalData(final JsonGenerator generator,
final Feature feature) throws IOException {
final Map<String, Object> output = new LinkedHashMap<>();
if ( !feature.getFrameworkProperties().isEmpty() ) {
final Map<String, Map<String, Object>> fwkMetadata = new LinkedHashMap<>();
for(final String fwkPropName : feature.getFrameworkProperties().keySet()) {
final Map<String, Object> metadata = feature.getFrameworkPropertyMetadata(fwkPropName);
if ( !metadata.isEmpty() ) {
fwkMetadata.put(fwkPropName, metadata);
}
}
if ( !fwkMetadata.isEmpty() ) {
output.put(JSONConstants.FRAMEWORK_PROPERTIES_METADATA, fwkMetadata);
}
}
if ( !feature.getVariables().isEmpty() ) {
final Map<String, Map<String, Object>> varMetadata = new LinkedHashMap<>();
for(final String varName : feature.getVariables().keySet()) {
final Map<String, Object> metadata = feature.getVariableMetadata(varName);
if ( !metadata.isEmpty() ) {
varMetadata.put(varName, metadata);
}
}
if ( !varMetadata.isEmpty() ) {
output.put(JSONConstants.VARIABLES_METADATA, varMetadata);
}
}
if ( !output.isEmpty() ) {
final Extension ext = new Extension(ExtensionType.JSON, Extension.EXTENSION_NAME_INTERNAL_DATA, ExtensionState.OPTIONAL);
ext.setJSONStructure(org.apache.felix.cm.json.io.Configurations.convertToJsonValue(output).asJsonObject());
this.writeExtension(generator, ext, null);
}
}