in src/main/java/org/apache/sling/tooling/lc/LaunchpadComparer.java [107:119]
private Map<ArtifactKey, Artifact> readArtifactsFromModel(File toFile) throws IOException {
Model fromModel;
try (BufferedReader reader = Files.newBufferedReader(toFile.toPath())) {
fromModel = ModelUtility.getEffectiveModel(ModelReader.read(reader, null));
}
Map<ArtifactKey, Artifact> to = fromModel.getFeatures().stream()
.flatMap( f -> f.getRunModes().stream())
.flatMap( r -> r.getArtifactGroups().stream())
.flatMap( g -> StreamSupport.stream(g.spliterator(), false))
.collect(Collectors.toMap( a -> new ArtifactKey(a), Function.identity()));
return to;
}