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 2021/06/11 08:00:57 UTC

[jackrabbit-filevault] branch master updated: JCRVLT-525 add test for metadata XML persistance

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 585f264  JCRVLT-525 add test for metadata XML persistance
585f264 is described below

commit 585f264a925ec79011062fa72eb64dd1c80ffe82
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Fri Jun 11 10:00:44 2021 +0200

    JCRVLT-525 add test for metadata XML persistance
---
 .../packaging/registry/impl/FSPackageRegistry.java   | 10 +++++++---
 .../packaging/registry/impl/FSPackageRegistryIT.java | 20 ++++++++++++++++++++
 2 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/registry/impl/FSPackageRegistry.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/registry/impl/FSPackageRegistry.java
index 48a72b1..b78ee6c 100644
--- a/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/registry/impl/FSPackageRegistry.java
+++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/registry/impl/FSPackageRegistry.java
@@ -627,9 +627,13 @@ public class FSPackageRegistry extends AbstractPackageRegistry {
                     // no need to set filter in other cases
                 
             }
-            ((ZipVaultPackage)vltPkg).extract(session, opts, getSecurityConfig(), isStrictByDefault());
-            dispatch(PackageEvent.Type.EXTRACT, pkg.getId(), null);
-            stateCache.updatePackageStatus(vltPkg.getId(), FSPackageStatus.EXTRACTED);
+            if (vltPkg instanceof ZipVaultPackage) {
+                ((ZipVaultPackage)vltPkg).extract(session, opts, getSecurityConfig(), isStrictByDefault());
+                dispatch(PackageEvent.Type.EXTRACT, pkg.getId(), null);
+                stateCache.updatePackageStatus(vltPkg.getId(), FSPackageStatus.EXTRACTED);
+            } else {
+                throw new IllegalArgumentException("Only ZipVaultPackages can be installed but given package is " + vltPkg.getClass());
+            }
 
         } catch (RepositoryException e) {
             throw new IOException(e);
diff --git a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/registry/impl/FSPackageRegistryIT.java b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/registry/impl/FSPackageRegistryIT.java
index 9ec6887..100eb2f 100644
--- a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/registry/impl/FSPackageRegistryIT.java
+++ b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/registry/impl/FSPackageRegistryIT.java
@@ -20,6 +20,7 @@ package org.apache.jackrabbit.vault.packaging.registry.impl;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -683,6 +684,25 @@ public class FSPackageRegistryIT extends IntegrationTestBase {
         assertEquals(Collections.singleton(TEST_PACKAGE_ID), registry.packages());
     }
 
+    @Test
+    public void testMetadataPersistance() throws IOException, PackageException {
+        File file = getTempFile("/test-packages/package_1.0.zip");
+        PackageId pkg = registry.register(file, false);
+        // check metadata
+        assertEquals(FSPackageStatus.REGISTERED, registry.getInstallState(pkg).getStatus());
+        RegisteredPackage registeredPackage = registry.open(pkg);
+        assertNotNull(registeredPackage);
+        registry.installPackage(admin, registeredPackage, getDefaultOptions(), true);
+        // check metadata
+        assertEquals(FSPackageStatus.EXTRACTED, registry.getInstallState(pkg).getStatus());
+        // reload FSRegistry
+        this.registry = new FSPackageRegistry(registryHome);
+        FSInstallState installState = registry.getInstallState(pkg);
+        assertNotNull(installState);
+        // check metadata
+        assertEquals(FSPackageStatus.EXTRACTED, installState.getStatus());
+    }
+
     private void getFreshRegistryWithDefaultConstructor(String packageName, String packageMetadataName) throws IOException {
         if (this.registryHome != null && this.registryHome.exists()) {
             this.registryHome.delete();