This is an automated email from the ASF dual-hosted git repository. kwin pushed a commit to branch feature/converter-implements-closeable in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git
commit c67f6d8d839c59d48c97214597f5866744ce6ebd Author: Konrad Windszus <[email protected]> AuthorDate: Wed Jun 2 20:07:36 2021 +0200 SLING-10450 ContentPackage2FeatureModelConverter now implements Closeable makes it possible to use with try..with..resources cleanup usage from CP2FMCLauncher --- .../ContentPackage2FeatureModelConverter.java | 16 ++++++----- ...ntentPackage2FeatureModelConverterLauncher.java | 31 +++++++++------------- .../ContentPackage2FeatureModelConverterTest.java | 4 +-- 3 files changed, 24 insertions(+), 27 deletions(-) diff --git a/src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java b/src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java index 81ec0c3..44c2248 100644 --- a/src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java +++ b/src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java @@ -20,6 +20,7 @@ import static java.util.Objects.requireNonNull; import static org.apache.sling.feature.cpconverter.vltpkg.VaultPackageUtils.detectPackageType; import static org.apache.sling.feature.cpconverter.vltpkg.VaultPackageUtils.getDependencies; +import java.io.Closeable; import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -61,7 +62,7 @@ import org.apache.sling.feature.cpconverter.vltpkg.VaultPackageAssembler; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class ContentPackage2FeatureModelConverter extends BaseVaultPackageScanner { +public class ContentPackage2FeatureModelConverter extends BaseVaultPackageScanner implements Closeable { public static final String ZIP_TYPE = "zip"; @@ -208,15 +209,11 @@ public class ContentPackage2FeatureModelConverter extends BaseVaultPackageScanne return this.tmpDirectory; } - public void cleanup() { + public void cleanup() throws IOException { if ( this.tmpDirectory.exists() ) { logger.info( "Cleaning up tmp directory {}", this.tmpDirectory); - try { - FileUtils.deleteDirectory( this.tmpDirectory ); - } catch (IOException e) { - logger.error( "Error Deleting {}", this.tmpDirectory ); - } + FileUtils.deleteDirectory( this.tmpDirectory ); } } @@ -516,4 +513,9 @@ public class ContentPackage2FeatureModelConverter extends BaseVaultPackageScanne handlersManager.addEntryHandler(NodeTypesEntryHandler.forCndPattern(cndPattern)); } + @Override + public void close() throws IOException { + cleanup(); + } + } diff --git a/src/main/java/org/apache/sling/feature/cpconverter/cli/ContentPackage2FeatureModelConverterLauncher.java b/src/main/java/org/apache/sling/feature/cpconverter/cli/ContentPackage2FeatureModelConverterLauncher.java index c18953e..59b72fa 100644 --- a/src/main/java/org/apache/sling/feature/cpconverter/cli/ContentPackage2FeatureModelConverterLauncher.java +++ b/src/main/java/org/apache/sling/feature/cpconverter/cli/ContentPackage2FeatureModelConverterLauncher.java @@ -205,21 +205,19 @@ public final class ContentPackage2FeatureModelConverterLauncher implements Runna } } - ContentPackage2FeatureModelConverter converter = new ContentPackage2FeatureModelConverter(strictValidation) - .setFeaturesManager(featuresManager) - .setBundlesDeployer(new LocalMavenRepositoryArtifactsDeployer(artifactsOutputDirectory)) - .setEntryHandlersManager(new DefaultEntryHandlersManager(entryHandlerConfigsMap, !disableInstallerPolicy, slingInitialContentPolicy)) - .setAclManager(aclManager) - .setEmitter(DefaultPackagesEventsEmitter.open(featureModelsOutputDirectory)) - .setFailOnMixedPackages(failOnMixedPackages) - .setContentTypePackagePolicy(contentTypePackagePolicy); - - if (unreferencedArtifactsOutputDirectory != null) { - converter.setUnreferencedArtifactsDeployer(new SimpleFolderArtifactsDeployer(unreferencedArtifactsOutputDirectory)); - } else if (contentTypePackagePolicy == ContentPackage2FeatureModelConverter.PackagePolicy.PUT_IN_DEDICATED_FOLDER) { - throw new IllegalStateException("Argument '--content-type-package-policy PUT_IN_DEDICATED_FOLDER' requires argument '--unreferenced-artifacts-output-directory' as well!"); - } - try { + try (ContentPackage2FeatureModelConverter converter = new ContentPackage2FeatureModelConverter(strictValidation)) { + converter.setFeaturesManager(featuresManager) + .setBundlesDeployer(new LocalMavenRepositoryArtifactsDeployer(artifactsOutputDirectory)) + .setEntryHandlersManager(new DefaultEntryHandlersManager(entryHandlerConfigsMap, !disableInstallerPolicy, slingInitialContentPolicy)) + .setAclManager(aclManager) + .setEmitter(DefaultPackagesEventsEmitter.open(featureModelsOutputDirectory)) + .setFailOnMixedPackages(failOnMixedPackages) + .setContentTypePackagePolicy(contentTypePackagePolicy); + if (unreferencedArtifactsOutputDirectory != null) { + converter.setUnreferencedArtifactsDeployer(new SimpleFolderArtifactsDeployer(unreferencedArtifactsOutputDirectory)); + } else if (contentTypePackagePolicy == ContentPackage2FeatureModelConverter.PackagePolicy.PUT_IN_DEDICATED_FOLDER) { + throw new IllegalStateException("Argument '--content-type-package-policy PUT_IN_DEDICATED_FOLDER' requires argument '--unreferenced-artifacts-output-directory' as well!"); + } if (filteringPatterns != null && filteringPatterns.length > 0) { RegexBasedResourceFilter filter = new RegexBasedResourceFilter(); @@ -229,10 +227,7 @@ public final class ContentPackage2FeatureModelConverterLauncher implements Runna converter.setResourceFilter(filter); } - converter.convert(contentPackages); - } finally { - converter.cleanup(); } logger.info( "+-----------------------------------------------------+" ); diff --git a/src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java b/src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java index 0dbab64..36b0d32 100644 --- a/src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java +++ b/src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java @@ -103,8 +103,8 @@ public class ContentPackage2FeatureModelConverterTest { } @After - public void tearDown() { - converter.cleanup(); + public void tearDown() throws IOException { + converter.close(); } @Test
