in src/main/java/org/apache/sling/testing/mock/caconfig/ConfigurationPersistHelper.java [82:108]
void writeConfigurationCollection(@NotNull String configName, @NotNull Collection<@NotNull Map<String, Object>> values) {
// split each collection item map in it's parts
Map<String, ConfigurationDataParts> partsCollection = new LinkedHashMap<>();
int index = 0;
for (Map<String, Object> map : values) {
partsCollection.put("item" + (index++), new ConfigurationDataParts(map));
}
// write properties of main configuration collection
List<ConfigurationPersistData> items = partsCollection.entrySet().stream()
.map(entry -> new ConfigurationPersistData(entry.getValue().getValues()).collectionItemName(entry.getKey()))
.collect(Collectors.toList());
configManager.persistConfigurationCollection(contextResource, configName,
new ConfigurationCollectionPersistData(items));
// write nested configuration and nested configuration collections
for (Map.Entry<String, ConfigurationDataParts> entry : partsCollection.entrySet()) {
String itemName = entry.getKey();
ConfigurationDataParts parts = entry.getValue();
for (Map.Entry<String,Map<String,Object>> nestedMap : parts.getMaps().entrySet()) {
writeConfiguration(getNestedCollectionItemConfigName(configName, itemName, nestedMap.getKey()), nestedMap.getValue());
}
for (Map.Entry<String,Collection<Map<String,Object>>> nestedCollection : parts.getCollections().entrySet()) {
writeConfigurationCollection(getNestedCollectionItemConfigName(configName, itemName, nestedCollection.getKey()), nestedCollection.getValue());
}
}
}