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/03/30 06:55:48 UTC
[jackrabbit-filevault] branch master updated: JCRVLT-513 ignore
"allowIndexDefinition" property in package type (#131)
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 448660b JCRVLT-513 ignore "allowIndexDefinition" property in package type (#131)
448660b is described below
commit 448660b925c199a865f27e2d145c5db33e0f5830
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Tue Mar 30 08:55:43 2021 +0200
JCRVLT-513 ignore "allowIndexDefinition" property in package type (#131)
---
.../spi/impl/OakIndexDefinitionValidatorFactory.java | 2 +-
.../vault/validation/spi/impl/PackageTypeValidator.java | 5 -----
.../vault/validation/spi/impl/PackageTypeValidatorTest.java | 11 +++++++++--
3 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/OakIndexDefinitionValidatorFactory.java b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/OakIndexDefinitionValidatorFactory.java
index eaf5da6..ae1056d 100644
--- a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/OakIndexDefinitionValidatorFactory.java
+++ b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/OakIndexDefinitionValidatorFactory.java
@@ -54,7 +54,7 @@ public final class OakIndexDefinitionValidatorFactory implements ValidatorFactor
}
static boolean areIndexDefinitionsAllowed(PackageProperties properties) {
- return "true".equals(properties.getProperty(PackageProperties.NAME_ALLOW_INDEX_DEFINITIONS));
+ return "true".equalsIgnoreCase(properties.getProperty(PackageProperties.NAME_ALLOW_INDEX_DEFINITIONS));
}
@Override
diff --git a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/PackageTypeValidator.java b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/PackageTypeValidator.java
index 97893b0..a2f9afe 100644
--- a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/PackageTypeValidator.java
+++ b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/PackageTypeValidator.java
@@ -61,7 +61,6 @@ public final class PackageTypeValidator implements NodePathValidator, FilterVali
protected static final String MESSAGE_NO_OSGI_BUNDLE_OR_CONFIG_OR_SUB_PACKAGE = "Package of type '%s' is not supposed to contain anything but OSGi bundles/configurations and sub packages!";
protected static final String MESSAGE_APP_CONTENT = "Package of type '%s' is not supposed to contain content below root nodes %s!";
protected static final String MESSAGE_NO_APP_CONTENT_FOUND = "Package of type '%s' is not supposed to contain content outside root nodes %s!";
- protected static final String MESSAGE_INDEX_DEFINITIONS = "Package of type '%s' is not supposed to contain Oak index definitions but has 'allowIndexDefinitions' set to true.";
protected static final String MESSAGE_PROHIBITED_MUTABLE_PACKAGE_TYPE = "All mutable package types are prohibited and this package is of mutable type '%s'";
protected static final String MESSAGE_PROHIBITED_IMMUTABLE_PACKAGE_TYPE = "All mutable package types are prohibited and this package is of mutable type '%s'";
protected static final String SLING_OSGI_CONFIG = "sling:OsgiConfig";
@@ -222,10 +221,6 @@ public final class PackageTypeValidator implements NodePathValidator, FilterVali
messages.add(new ValidationMessage(severity,
String.format(MESSAGE_PACKAGE_HOOKS, properties.getPackageType(), properties.getExternalHooks())));
}
- // must not include oak:index
- if (OakIndexDefinitionValidatorFactory.areIndexDefinitionsAllowed(properties)) {
- messages.add(new ValidationMessage(severity, String.format(MESSAGE_INDEX_DEFINITIONS, properties.getPackageType())));
- }
if (prohibitImmutableContent) {
messages.add(new ValidationMessage(severity,
String.format(MESSAGE_PROHIBITED_IMMUTABLE_PACKAGE_TYPE, properties.getPackageType())));
diff --git a/vault-validation/src/test/java/org/apache/jackrabbit/vault/validation/spi/impl/PackageTypeValidatorTest.java b/vault-validation/src/test/java/org/apache/jackrabbit/vault/validation/spi/impl/PackageTypeValidatorTest.java
index 34630e7..6df9320 100644
--- a/vault-validation/src/test/java/org/apache/jackrabbit/vault/validation/spi/impl/PackageTypeValidatorTest.java
+++ b/vault-validation/src/test/java/org/apache/jackrabbit/vault/validation/spi/impl/PackageTypeValidatorTest.java
@@ -20,6 +20,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Paths;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
@@ -206,9 +207,16 @@ public class PackageTypeValidatorTest {
ValidationExecutorTest.assertViolation(validator.validate(new NodeContextImpl("/apps/install/mybundle.jar", Paths.get(""), Paths.get(""))), new ValidationMessage(ValidationMessageSeverity.ERROR, String.format(PackageTypeValidator.MESSAGE_OSGI_BUNDLE_OR_CONFIG, PackageType.APPLICATION, "/apps/install/mybundle.jar")));
ValidationExecutorTest.assertViolation(validator.validate(new NodeContextImpl("/apps/install/config.cfg", Paths.get(""), Paths.get(""))), new ValidationMessage(ValidationMessageSeverity.ERROR, String.format(PackageTypeValidator.MESSAGE_OSGI_BUNDLE_OR_CONFIG, PackageType.APPLICATION, "/apps/install/config.cfg")));
+ // mutable node
+ ValidationExecutorTest.assertViolation(validator.validate(new NodeContextImpl("/oak:index/testindex", Paths.get(""), Paths.get(""))), new ValidationMessage(ValidationMessageSeverity.ERROR, String.format(PackageTypeValidator.MESSAGE_NO_APP_CONTENT_FOUND, PackageType.APPLICATION, "'apps' or 'libs'")));
+
// no hooks
Mockito.when(properties.getPackageType()).thenReturn(PackageType.APPLICATION);
Assert.assertThat(validator.validate(properties), AnyValidationMessageMatcher.noValidationInCollection());
+
+ // validation of regular properties should not lead to issues
+ Assert.assertThat(validator.validate(properties), AnyValidationMessageMatcher.noValidationInCollection());
+
// with hooks
Map<String, String> hooks = Collections.singletonMap("key", "com.example.ExtenalHook");
Mockito.when(properties.getExternalHooks()).thenReturn(hooks);
@@ -232,7 +240,7 @@ public class PackageTypeValidatorTest {
ValidationExecutorTest.assertViolation(
validator.validate(node, new NodeContextImpl("/apps/config/someconfigpid", Paths.get(""), Paths.get("")), true),
new ValidationMessage(ValidationMessageSeverity.ERROR, String.format(PackageTypeValidator.MESSAGE_OSGI_BUNDLE_OR_CONFIG, PackageType.APPLICATION, "/apps/config/someconfigpid")));
-
+
// validate sub packages of type Content
Mockito.when(parentContainerProperties.getPackageType()).thenReturn(PackageType.APPLICATION);
Mockito.when(properties.getPackageType()).thenReturn(PackageType.CONTENT);
@@ -245,7 +253,6 @@ public class PackageTypeValidatorTest {
ValidationExecutorTest.assertViolation(subPackageValidator.validate(properties), new ValidationMessage(ValidationMessageSeverity.ERROR, String.format(PackageTypeValidator.MESSAGE_UNSUPPORTED_SUB_PACKAGE, PackageType.APPLICATION)));
}
-
@Test
public void testApplicationPackageTypeWithOakIndex() throws IOException, ConfigurationException {
Set<String> immutableRootNodeNames = new HashSet<>(Arrays.asList("oak:index"));