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 2020/12/09 17:45:23 UTC
[jackrabbit-filevault] branch master updated: JCRVLT-485 do not
validate protected/mandatory for JCR system properties which are handled
specially in filevault
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 0fa305d JCRVLT-485 do not validate protected/mandatory for JCR system properties which are handled specially in filevault
0fa305d is described below
commit 0fa305d5b0f6dec43e181db3fabeb32603d69501
Author: sseifert <ss...@pro-vision.de>
AuthorDate: Mon Dec 7 15:13:42 2020 +0100
JCRVLT-485 do not validate protected/mandatory for JCR system properties
which are handled specially in filevault
---
.../spi/impl/nodetype/JcrNodeTypeMetaDataImpl.java | 13 ++++++++++---
.../validation/spi/impl/nodetype/NodeTypeValidatorTest.java | 1 -
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/JcrNodeTypeMetaDataImpl.java b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/JcrNodeTypeMetaDataImpl.java
index ec1fb2d..9961fc0 100644
--- a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/JcrNodeTypeMetaDataImpl.java
+++ b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/JcrNodeTypeMetaDataImpl.java
@@ -87,8 +87,11 @@ public class JcrNodeTypeMetaDataImpl implements JcrNodeTypeMetaData {
static final String MESSAGE_MANDATORY_PROPERTY_MISSING = "Mandatory property '%s' missing in node with types [%s] at %s";
static final String MESSAGE_MANDATORY_PROPERTY_WITH_WRONG_TYPE = "Mandatory property '%s' has type '%s' while it should have '%s' in node with types [%s] at %s";
- private static final Collection<Name> ALLOWED_PROTECTED_PROPERTIES = Arrays.asList(NameConstants.JCR_PRIMARYTYPE,
- NameConstants.JCR_MIXINTYPES);
+ // do not validate protected/mandatory for JCR system properties that are handled by FileVault specially
+ // (https://github.com/apache/jackrabbit-filevault/blob/f785fcb24d4cbd01c734e9273310a925c29ae15b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewSAXImporter.java#L921)
+ private static final Collection<Name> JCR_SYSTEM_PROPERTIES = Arrays.asList(
+ NameConstants.JCR_PRIMARYTYPE, NameConstants.JCR_MIXINTYPES, NameConstants.JCR_UUID,
+ NameConstants.JCR_BASEVERSION, NameConstants.JCR_PREDECESSORS, NameConstants.JCR_SUCCESSORS, NameConstants.JCR_VERSIONHISTORY);
private static final Name NT_REP_POLICY = NameFactoryImpl.getInstance().create(Name.NS_REP_URI, "Policy");
private static final Name NT_REP_AUTHORIZABLE = NameFactoryImpl.getInstance().create(Name.NS_REP_URI, "Authorizable");
@@ -483,6 +486,10 @@ public class JcrNodeTypeMetaDataImpl implements JcrNodeTypeMetaData {
if (mandatoryPropertyDefinition.isAutoCreated()) {
continue;
}
+ // ignore certain properties which are handled specially in filevault
+ if (JCR_SYSTEM_PROPERTIES.contains(mandatoryPropertyDefinition.getName()) ) {
+ continue;
+ }
try {
if (!propertyTypesByName.containsKey(mandatoryPropertyDefinition.getName())) {
messages.add(new ValidationMessage(severity,
@@ -564,7 +571,7 @@ public class JcrNodeTypeMetaDataImpl implements JcrNodeTypeMetaData {
} catch (ConstraintViolationException t) {
return Optional.of(CONSTRAINT_PROPERTY_NOT_ALLOWED);
}
- if (applicablePropertyDefinition.isProtected() && !allowProtected && !ALLOWED_PROTECTED_PROPERTIES.contains(name)) {
+ if (applicablePropertyDefinition.isProtected() && !allowProtected && !JCR_SYSTEM_PROPERTIES.contains(name)) {
return Optional.of(CONSTRAINT_PROPERTY_PROTECTED);
}
diff --git a/vault-validation/src/test/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/NodeTypeValidatorTest.java b/vault-validation/src/test/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/NodeTypeValidatorTest.java
index 44b0cc2..f5843db 100644
--- a/vault-validation/src/test/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/NodeTypeValidatorTest.java
+++ b/vault-validation/src/test/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/NodeTypeValidatorTest.java
@@ -292,7 +292,6 @@ public class NodeTypeValidatorTest {
Assert.assertThat(validator.done(), AnyValidationMessageMatcher.noValidationInCollection());
}
- @Ignore("JCRVLT-485")
@Test
public void testMandatoryVersioningProperties() throws IOException, RepositoryException, ParseException {
validator = createValidator(filter, NameConstants.NT_UNSTRUCTURED, "tccl:test-nodetypes.cnd");