You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2022/01/07 18:34:14 UTC

[jackrabbit-filevault] branch master updated: JCRVLT-580 parameterize Maven version

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/jackrabbit-filevault.git


The following commit(s) were added to refs/heads/master by this push:
     new bac0646  JCRVLT-580 parameterize Maven version
bac0646 is described below

commit bac0646f74fd4c26deab1e618080c0dcdc716a88
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Fri Jan 7 19:34:06 2022 +0100

    JCRVLT-580 parameterize Maven version
    
    retry deleting directories on Windows during ITs
---
 Jenkinsfile                                        |  6 +++++-
 .../packaging/integration/IntegrationTestBase.java | 25 ++++++++++++++++++++--
 2 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index f320d2f..3bce96b 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -20,4 +20,8 @@
 // use the shared library from https://github.com/apache/jackrabbit-filevault-jenkins-lib
 library "filevault@master"
 
-fileVaultMavenStdBuild([11, 8, 17], 11, [ "ubuntu", "Windows"], "ubuntu", "apache_jackrabbit-filevault")
\ No newline at end of file
+vaultPipeline('ubuntu', 11, '3', {
+   vaultStageBuild(['ubuntu', 'Windows'], [8, 11, 17], ['3', '3.6.3'], 'apache_jackrabbit-filevault')
+   vaultStageDeploy()
+  }
+)
\ No newline at end of file
diff --git a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/IntegrationTestBase.java b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/IntegrationTestBase.java
index 8e522bc..8feb266 100644
--- a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/IntegrationTestBase.java
+++ b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/IntegrationTestBase.java
@@ -109,6 +109,7 @@ import org.apache.jackrabbit.vault.packaging.impl.ActivityLog;
 import org.apache.jackrabbit.vault.packaging.impl.JcrPackageManagerImpl;
 import org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage;
 import org.apache.jackrabbit.vault.packaging.registry.impl.JcrPackageRegistry;
+import org.codehaus.plexus.util.Os;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -268,18 +269,38 @@ public class IntegrationTestBase  {
         return new DataStoreBlobStore(fds);
     }
 
+    private static void deleteDirectory(File directory) throws IOException {
+        try {
+            FileUtils.deleteDirectory(directory);
+        } catch (IOException ioe) {
+            // retry after wait on Windows, as it may release file locks in a deferred manner
+            if (Os.isFamily(Os.FAMILY_WINDOWS)) {
+                try {
+                    Thread.sleep(100);
+                } catch (InterruptedException ie) {
+                    Thread.currentThread().interrupt();
+                    IOException wrappedIOException = new IOException("Initially failed with IOException and waiting was interrupted", ioe);
+                    wrappedIOException.addSuppressed(ie);
+                }
+                FileUtils.deleteDirectory(directory);
+            } else {
+                throw ioe;
+            }
+        }
+    }
+
     @AfterClass
     public static void shutdownRepository() throws IOException {
         if (repository instanceof RepositoryImpl) {
             ((RepositoryImpl) repository).shutdown();
-            FileUtils.deleteDirectory(DIR_JR2_REPO_HOME);
+            deleteDirectory(DIR_JR2_REPO_HOME);
         } else if (repository instanceof org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl) {
             ((org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl) repository).shutdown();
             if (fileStore != null) {
                 fileStore.close();
                 fileStore = null;
             }
-            FileUtils.deleteDirectory(DIR_OAK_REPO_HOME);
+            deleteDirectory(DIR_OAK_REPO_HOME);
         }
         repository = null;
     }