in src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java [337:388]
private void secondPass(@NotNull Collection<VaultPackage> orderedContentPackages) throws IOException, ConverterException {
emitters.stream().forEach(PackagesEventsEmitter::start);
for (VaultPackage vaultPackage : orderedContentPackages) {
try {
emitters.stream().forEach(e -> e.startPackage(vaultPackage));
setMainPackageAssembler(VaultPackageAssembler.create(this.getTempDirectory(), vaultPackage, removeInstallHooks, disablePackageTypeRecalculation));
assemblers.add(getMainPackageAssembler());
ArtifactId mvnPackageId = toArtifactId(vaultPackage.getId(), vaultPackage.getFile());
featuresManager.init(mvnPackageId);
logger.info("Converting content-package '{}'...", vaultPackage.getId());
traverse(vaultPackage, null);
// retrieve the resulting zip-content-package and deploy it to the local mvn bundles dir.
try (VaultPackage result = processContentPackageArchive(getMainPackageAssembler(), null)) {
// finally serialize the Feature Model(s) file(s)
aclManager.addRepoinitExtension(assemblers, featuresManager);
bundleSlingInitialContentExtractor.addRepoInitExtension(assemblers, featuresManager);
indexManager.addRepoinitExtension(featuresManager);
logger.info("Conversion complete!");
featuresManager.serialize();
emitters.stream().forEach(e -> e.endPackage(vaultPackage.getId(), result));
}
} finally {
aclManager.reset();
bundleSlingInitialContentExtractor.reset();
indexManager.reset();
assemblers.clear();
try {
vaultPackage.close();
} catch (Exception e) {
// close quietly
}
}
}
deployPackages();
mutableContentsIds.clear();
emitters.stream().forEach(PackagesEventsEmitter::end);
}