This is an automated email from the ASF dual-hosted git repository.

kwin pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git


The following commit(s) were added to refs/heads/master by this push:
     new 163f795  SLING-10450 ContentPackage2FeatureModelConverter now 
implements (#86)
163f795 is described below

commit 163f79552ff35796bb8cb59808ed3026f156b65b
Author: Konrad Windszus <[email protected]>
AuthorDate: Thu Jun 3 11:12:17 2021 +0200

    SLING-10450 ContentPackage2FeatureModelConverter now implements (#86)
    
    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

Reply via email to