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/11/27 15:09:56 UTC

[jackrabbit-filevault] branch master updated: JCRVLT-479 do not validate auto-created properties (#104)

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 892b350  JCRVLT-479 do not validate auto-created properties (#104)
892b350 is described below

commit 892b35076ffa1d8fb77ad5a599ba5c8bdffaf1d2
Author: Stefan Seifert <st...@users.noreply.github.com>
AuthorDate: Fri Nov 27 16:09:50 2020 +0100

    JCRVLT-479 do not validate auto-created properties (#104)
---
 .../spi/impl/nodetype/JcrNodeTypeMetaDataImpl.java    |  3 ---
 .../spi/impl/nodetype/NodeTypeValidatorTest.java      | 19 +++++++++++++++++++
 2 files changed, 19 insertions(+), 3 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 ab3835a..b493d5c 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
@@ -559,9 +559,6 @@ public class JcrNodeTypeMetaDataImpl implements JcrNodeTypeMetaData {
         } catch (ConstraintViolationException t) {
             return Optional.of(CONSTRAINT_PROPERTY_NOT_ALLOWED);
         }
-        if (applicablePropertyDefinition.isAutoCreated() && !ALLOWED_PROTECTED_PROPERTIES.contains(name)) {
-            return Optional.of(CONSTRAINT_PROPERTY_AUTO_CREATED);
-        }
         if (applicablePropertyDefinition.isProtected() && !allowProtected && !ALLOWED_PROTECTED_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 3b6197f..e327d90 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
@@ -240,4 +240,23 @@ public class NodeTypeValidatorTest {
                 AnyValidationMessageMatcher.noValidationInCollection());
 
     }
+
+    /**
+     * The mixin mix:lastModified defines an autocreated unprotected property jcr:lastModifiedBy.
+     * Setting it to any value should not lead to a validation error (JCRVLT-479).
+     */
+    @Test
+    public void testAutoCreatedUnprotectedProperty() {
+        NodeContext nodeContext = new NodeContextImpl("/apps/test/node4", Paths.get("node4"), Paths.get(""));
+
+        Map<String, DocViewProperty> props = new HashMap<>();
+        DocViewProperty prop = new DocViewProperty("jcr:lastModifiedBy", new String[] { "some-value" }, false, PropertyType.STRING);
+        props.put("jcr:lastModifiedBy", prop);
+        props.put(NameConstants.JCR_PRIMARYTYPE.toString(), new DocViewProperty(NameConstants.JCR_PRIMARYTYPE.toString(),
+                new String[] { JcrConstants.NT_UNSTRUCTURED }, false, PropertyType.STRING));
+        DocViewNode node = new DocViewNode("jcr:root", "jcr:root", null, props, new String[] { NameConstants.MIX_LASTMODIFIED.toString() }, JcrConstants.NT_UNSTRUCTURED);
+        Assert.assertThat(validator.validate(node, nodeContext, false),
+                AnyValidationMessageMatcher.noValidationInCollection());
+    }
+
 }