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 2023/04/18 07:48:39 UTC
[jackrabbit-filevault] 01/01: JCRVLT-703 always use original node context when reporting violations in finalizeValidationForSiblings/Subtree
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch bugfix/fix-node-context-for-nodetype-validations
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault.git
commit 52bba0b53dd2e52a3ffa9af90919beefeea3ef78
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Tue Apr 18 09:48:31 2023 +0200
JCRVLT-703 always use original node context when reporting violations in
finalizeValidationForSiblings/Subtree
---
.../validation/spi/impl/nodetype/JcrNodeTypeMetaDataImpl.java | 8 ++++----
.../spi/impl/nodetype/JcrNodeTypeMetaDataImplTest.java | 11 ++++++-----
.../validation/spi/impl/nodetype/NodeTypeValidatorTest.java | 2 +-
3 files changed, 11 insertions(+), 10 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 183ce877..96fb9025 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
@@ -334,7 +334,7 @@ public class JcrNodeTypeMetaDataImpl implements JcrNodeTypeMetaData {
// in incremental validations ignore missing mandatory properties and child nodes (as they might not be visible to the validator)
if (!isIncremental) {
messages.add(new ValidationMessage(ValidationMessageSeverity.DEBUG,
- "Validate children and mandatory properties of " + getQualifiedPath(namePathResolver)));
+ "Validate children and mandatory properties of " + getQualifiedPath(namePathResolver), context));
messages.addAll(validateChildNodes(namePathResolver, nodeTypeDefinitionProvider, itemDefinitionProvider, severity, severityForDefaultNodeTypeViolations, filter));
messages.addAll(validateMandatoryProperties(namePathResolver, severity, severityForDefaultNodeTypeViolations));
}
@@ -342,11 +342,11 @@ public class JcrNodeTypeMetaDataImpl implements JcrNodeTypeMetaData {
childNodesByName.clear();
isValidationDone = true;
messages.add(new ValidationMessage(ValidationMessageSeverity.DEBUG,
- "Remove node information of children of " + getQualifiedPath(namePathResolver)));
+ "Remove node information of children of " + getQualifiedPath(namePathResolver), context));
return messages;
} else {
return Collections.singletonList(new ValidationMessage(ValidationMessageSeverity.DEBUG,
- "Already finalized validation of " + getQualifiedPath(namePathResolver)));
+ "Already finalized validation of " + getQualifiedPath(namePathResolver), context));
}
}
@@ -397,7 +397,7 @@ public class JcrNodeTypeMetaDataImpl implements JcrNodeTypeMetaData {
messages.add(new ValidationMessage(isImplicit ? severityForDefaultNodeTypeViolations : severity,
String.format(MESSAGE_MANDATORY_CHILD_NODE_MISSING,
getNodeDefinitionLabel(namePathResolver, mandatoryNodeType),
- getEffectiveNodeTypeLabel(namePathResolver, effectiveNodeType))));
+ getEffectiveNodeTypeLabel(namePathResolver, effectiveNodeType)), context));
} else {
// if mandatory child nodes are missing outside filter rules, this is not an issue
messages.add(new ValidationMessage(ValidationMessageSeverity.DEBUG, String.format(MESSAGE_MANDATORY_UNCONTAINED_CHILD_NODE_MISSING,
diff --git a/vault-validation/src/test/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/JcrNodeTypeMetaDataImplTest.java b/vault-validation/src/test/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/JcrNodeTypeMetaDataImplTest.java
index f2dba150..97a00e58 100644
--- a/vault-validation/src/test/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/JcrNodeTypeMetaDataImplTest.java
+++ b/vault-validation/src/test/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/JcrNodeTypeMetaDataImplTest.java
@@ -142,8 +142,8 @@ public class JcrNodeTypeMetaDataImplTest {
ntManagerProvider.getItemDefinitionProvider(), ValidationMessageSeverity.ERROR, ValidationMessageSeverity.ERROR, filter);
ValidationExecutorTest.assertViolation(messages,
new ValidationMessage(ValidationMessageSeverity.ERROR,
- String.format(JcrNodeTypeMetaDataImpl.MESSAGE_MANDATORY_CHILD_NODE_MISSING, "jcr:content [nt:base]", "types [nt:file]",
- nodeContext)));
+ String.format(JcrNodeTypeMetaDataImpl.MESSAGE_MANDATORY_CHILD_NODE_MISSING, "jcr:content [nt:base]", "types [nt:file]"),
+ nodeContext));
}
@Test
@@ -256,9 +256,10 @@ public class JcrNodeTypeMetaDataImplTest {
ValidationMessageSeverity.ERROR, ValidationMessageSeverity.ERROR, filter);
MatcherAssert.assertThat(messages, AnyValidationViolationMessageMatcher.noValidationViolationMessageInCollection());
+ NodeContext nodeContext = createSimpleNodeContext("name2");
node = root.addChildNode(ntManagerProvider.getNamePathResolver(),
ntManagerProvider.getEffectiveNodeTypeProvider(), ntManagerProvider.getNodeTypeDefinitionProvider(),
- ntManagerProvider.getItemDefinitionProvider(), createSimpleNodeContext("name2"),
+ ntManagerProvider.getItemDefinitionProvider(), nodeContext,
"my:nodeType1");
// mandatory child node missing inside filter
@@ -267,7 +268,7 @@ public class JcrNodeTypeMetaDataImplTest {
ntManagerProvider.getItemDefinitionProvider(),ValidationMessageSeverity.ERROR, ValidationMessageSeverity.ERROR, filter);
ValidationExecutorTest.assertViolation(messages, new ValidationMessage(ValidationMessageSeverity.ERROR,
String.format(JcrNodeTypeMetaDataImpl.MESSAGE_MANDATORY_CHILD_NODE_MISSING, "my:namedChild1 [my:nodeType1]", "types [my:nodeType1]",
- "/name2")));
+ "/name2"), nodeContext));
// calling a second time will not lead to anything
messages = node.finalizeValidation(ntManagerProvider.getNamePathResolver(), ntManagerProvider.getNodeTypeDefinitionProvider(),
@@ -295,7 +296,7 @@ public class JcrNodeTypeMetaDataImplTest {
ntManagerProvider.getItemDefinitionProvider(),ValidationMessageSeverity.ERROR, ValidationMessageSeverity.ERROR, "property", false,
ValueFactoryImpl.getInstance().createValue("foo")), AnyValidationViolationMessageMatcher.noValidationViolationMessageInCollection());
- NodeContext nodeContext = createSimpleNodeContext("nodeForMandatoryProperties");
+ nodeContext = createSimpleNodeContext("nodeForMandatoryProperties");
node = root.addChildNode(ntManagerProvider.getNamePathResolver(),
ntManagerProvider.getEffectiveNodeTypeProvider(), ntManagerProvider.getNodeTypeDefinitionProvider(),
ntManagerProvider.getItemDefinitionProvider(), nodeContext, "my:nodeType2");
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 b89d4e69..20c4d925 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
@@ -182,7 +182,7 @@ public class NodeTypeValidatorTest {
ValidationExecutorTest.assertViolation(validator.done(),
new ValidationMessage(ValidationMessageSeverity.ERROR,
String.format(JcrNodeTypeMetaDataImpl.MESSAGE_MANDATORY_CHILD_NODE_MISSING,
- "jcr:content [nt:base]", "types [nt:file]", "/apps/test/node4")));
+ "jcr:content [nt:base]", "types [nt:file]", "/apps/test/node4"), nodeContext));
MatcherAssert.assertThat(validator.done(), AnyValidationViolationMessageMatcher.noValidationViolationMessageInCollection());
}