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();