You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2015/12/18 15:50:40 UTC
svn commit: r1720802 [2/2] - in /sling/trunk/bundles/extensions:
models/validation-impl/src/main/java/org/apache/sling/models/validation/
validation/api/src/main/java/org/apache/sling/validation/
validation/api/src/main/java/org/apache/sling/validation...
Modified: sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/ValidationServiceImplTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/ValidationServiceImplTest.java?rev=1720802&r1=1720801&r2=1720802&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/ValidationServiceImplTest.java (original)
+++ sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/ValidationServiceImplTest.java Fri Dec 18 14:50:39 2015
@@ -40,8 +40,8 @@ import org.apache.sling.api.resource.Val
import org.apache.sling.api.wrappers.ValueMapDecorator;
import org.apache.sling.jcr.resource.JcrResourceConstants;
import org.apache.sling.testing.mock.sling.junit.SlingContext;
+import org.apache.sling.validation.ValidationFailure;
import org.apache.sling.validation.ValidationResult;
-import org.apache.sling.validation.Validator;
import org.apache.sling.validation.exceptions.SlingValidationException;
import org.apache.sling.validation.impl.model.ChildResourceImpl;
import org.apache.sling.validation.impl.model.ResourcePropertyBuilder;
@@ -51,6 +51,10 @@ import org.apache.sling.validation.impl.
import org.apache.sling.validation.model.ChildResource;
import org.apache.sling.validation.model.ResourceProperty;
import org.apache.sling.validation.model.ValidationModel;
+import org.apache.sling.validation.spi.DefaultValidationFailure;
+import org.apache.sling.validation.spi.DefaultValidationResult;
+import org.apache.sling.validation.spi.ValidationContext;
+import org.apache.sling.validation.spi.Validator;
import org.hamcrest.Matchers;
import org.junit.Assert;
import org.junit.Before;
@@ -93,24 +97,21 @@ public class ValidationServiceImplTest {
HashMap<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("field1", "1");
ValidationResult vr = validationService.validate(new ValueMapDecorator(hashMap), vm);
- Map<String, List<String>> expectedFailureMessages = new HashMap<String, List<String>>();
- expectedFailureMessages
- .put("field1",
- Arrays.asList("Property was expected to be of type 'class java.util.Date' but cannot be converted to that type."));
- Assert.assertThat(vr.getFailureMessages().entrySet(), Matchers.equalTo(expectedFailureMessages.entrySet()));
+ Assert.assertThat(vr.getFailures(), Matchers.<ValidationFailure>contains(new DefaultValidationFailure("Property was expected to be of type 'class java.util.Date' but cannot be converted to that type.", "field1")));
}
@Test
public void testValidateNeverCalledWithNullValues() throws Exception {
Validator<String> myValidator = new Validator<String>() {
@Override
- public String validate(@Nonnull String data, @Nonnull ValueMap valueMap, Resource resource, @Nonnull ValueMap arguments)
+ public @Nonnull ValidationResult validate(@Nonnull String data, @Nonnull ValidationContext context, @Nonnull ValueMap arguments)
throws SlingValidationException {
Assert.assertNotNull("data parameter for validate should never be null", data);
- Assert.assertNotNull("valueMap parameter for validate should never be null", valueMap);
- Assert.assertNull("resource cannot be set if validate was called only with a value map", resource);
+ Assert.assertNotNull("location of context parameter for validate should never be null", context.getLocation());
+ Assert.assertNotNull("valueMap of context parameter for validate should never be null", context.getValueMap());
+ Assert.assertNull("resource of context parameter for validate cannot be set if validate was called only with a value map", context.getResource());
Assert.assertNotNull("arguments parameter for validate should never be null", arguments);
- return null;
+ return DefaultValidationResult.VALID;
}
};
propertyBuilder.validator(myValidator);
@@ -120,7 +121,7 @@ public class ValidationServiceImplTest {
HashMap<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("field1", "1");
ValidationResult vr = validationService.validate(new ValueMapDecorator(hashMap), vm);
- Assert.assertThat(vr.getFailureMessages().entrySet(), Matchers.empty());
+ Assert.assertThat(vr.getFailures(), Matchers.hasSize(0));
Assert.assertTrue(vr.isValid());
}
@@ -139,9 +140,7 @@ public class ValidationServiceImplTest {
hashMap.put("field3", "");
ValidationResult vr = validationService.validate(new ValueMapDecorator(hashMap), vm);
- Map<String, List<String>> expectedFailureMessages = new HashMap<String, List<String>>();
- expectedFailureMessages.put("field4", Arrays.asList("Missing required property."));
- Assert.assertThat(vr.getFailureMessages().entrySet(), Matchers.equalTo(expectedFailureMessages.entrySet()));
+ Assert.assertThat(vr.getFailures(), Matchers.<ValidationFailure>contains(new DefaultValidationFailure("Missing required property.", "field4")));
}
@Test()
@@ -152,7 +151,7 @@ public class ValidationServiceImplTest {
HashMap<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("field2", "1");
ValidationResult vr = validationService.validate(new ValueMapDecorator(hashMap), vm);
- Assert.assertThat(vr.getFailureMessages().entrySet(), Matchers.empty());
+ Assert.assertThat(vr.getFailures(), Matchers.hasSize(0));
Assert.assertTrue(vr.isValid());
}
@@ -168,8 +167,7 @@ public class ValidationServiceImplTest {
ValidationResult vr = validationService.validate(new ValueMapDecorator(hashMap), vm);
Assert.assertFalse(vr.isValid()); // check for correct error message Map<String, List<String>>
- Assert.assertThat(vr.getFailureMessages(),
- Matchers.hasEntry("field1", Arrays.asList("Property does not match the pattern abc")));
+ Assert.assertThat(vr.getFailures(), Matchers.<ValidationFailure>contains(new DefaultValidationFailure("Property does not match the pattern 'abc'", "field1")));
}
@Test
@@ -188,9 +186,8 @@ public class ValidationServiceImplTest {
ValidationResult vr = validationService.validate(new ValueMapDecorator(hashMap), vm);
- Assert.assertFalse(vr.isValid()); // check for correct error message Map<String, List<String>>
- Assert.assertThat(vr.getFailureMessages(),
- Matchers.hasEntry("field2", Arrays.asList("Property does not match the pattern " + TEST_REGEX)));
+ Assert.assertFalse(vr.isValid());
+ Assert.assertThat(vr.getFailures(), Matchers.<ValidationFailure> hasItem(new DefaultValidationFailure("Property does not match the pattern '" + TEST_REGEX + "'", "field2")));
}
@Test
@@ -222,9 +219,7 @@ public class ValidationServiceImplTest {
ValidationResult vr = validationService.validate(testResource, vm);
Assert.assertFalse("resource should have been considered invalid", vr.isValid());
- Assert.assertThat(vr.getFailureMessages(),
- Matchers.hasEntry("child/grandchild/field1", Arrays.asList("Missing required property.")));
- Assert.assertThat(vr.getFailureMessages().keySet(), Matchers.hasSize(1));
+ Assert.assertThat(vr.getFailures(), Matchers.<ValidationFailure>contains(new DefaultValidationFailure("Missing required property.", "child/grandchild/field1")));
}
@Test
@@ -243,7 +238,7 @@ public class ValidationServiceImplTest {
JcrConstants.NT_UNSTRUCTURED, JcrConstants.NT_UNSTRUCTURED, true);
ValidationResult vr = validationService.validate(testResource, vm);
- Assert.assertThat(vr.getFailureMessages().entrySet(), Matchers.empty());
+ Assert.assertThat(vr.getFailures(), Matchers.hasSize(0));
Assert.assertTrue(vr.isValid());
}
@@ -269,7 +264,7 @@ public class ValidationServiceImplTest {
rr.create(resourceChild, "grandchild", properties);
ValidationResult vr = validationService.validate(testResource, vm);
- Assert.assertThat(vr.getFailureMessages().entrySet(), Matchers.empty());
+ Assert.assertThat(vr.getFailures(), Matchers.hasSize(0));
Assert.assertTrue(vr.isValid());
}
@@ -277,11 +272,16 @@ public class ValidationServiceImplTest {
public void testResourceWithValidatorLeveragingTheResource() throws Exception {
Validator<String> extendedValidator = new Validator<String>() {
@Override
- @CheckForNull
- public String validate(String data, ValueMap valueMap, Resource resource, ValueMap arguments)
+ @Nonnull
+ public ValidationResult validate(@Nonnull String data, @Nonnull ValidationContext context, @Nonnull ValueMap arguments)
throws SlingValidationException {
- Assert.assertThat(resource.getPath(), Matchers.equalTo("/content/validation/1/resource"));
- return null;
+ Resource resource = context.getResource();
+ if (resource == null) {
+ Assert.fail("Resource must not be null");
+ } else {
+ Assert.assertThat(resource.getPath(), Matchers.equalTo("/content/validation/1/resource"));
+ }
+ return DefaultValidationResult.VALID;
}
};
@@ -296,8 +296,7 @@ public class ValidationServiceImplTest {
Resource testResource = ResourceUtil.getOrCreateResource(rr,
"/content/validation/1/resource", properties, JcrConstants.NT_UNSTRUCTURED, true);
ValidationResult vr = validationService.validate(testResource, vm);
- // until we upgrade to a newer version of hamcrest we must use this workaround (https://github.com/hamcrest/JavaHamcrest/issues/35)
- Assert.assertThat(vr.getFailureMessages().entrySet(), Matchers.empty());
+ Assert.assertTrue(vr.isValid());
}
@Test
@@ -331,15 +330,12 @@ public class ValidationServiceImplTest {
ValidationResult vr = validationService.validate(testResource, vm);
Assert.assertFalse("resource should have been considered invalid", vr.isValid());
- Assert.assertThat(vr.getFailureMessages(),
- Matchers.hasEntry("child2/grandchild.*", Arrays.asList("Missing required child resource.")));
- Assert.assertThat(vr.getFailureMessages(),
- Matchers.hasEntry("child3/grandchild.*", Arrays.asList("Missing required child resource.")));
- Assert.assertThat(vr.getFailureMessages(),
- Matchers.hasEntry("child3/field1", Arrays.asList("Missing required property.")));
- Assert.assertThat(vr.getFailureMessages(),
- Matchers.hasEntry("siblingchild.*", Arrays.asList("Missing required child resource.")));
- Assert.assertThat(vr.getFailureMessages().keySet(), Matchers.hasSize(4));
+
+ Assert.assertThat(vr.getFailures(), Matchers.<ValidationFailure>containsInAnyOrder(
+ new DefaultValidationFailure("Missing required child resource.", "child2/grandchild.*"),
+ new DefaultValidationFailure("Missing required child resource.", "child3/grandchild.*"),
+ new DefaultValidationFailure("Missing required property.", "child3/field1"),
+ new DefaultValidationFailure("Missing required child resource.", "siblingchild.*")));
}
@Test
@@ -365,11 +361,10 @@ public class ValidationServiceImplTest {
ValidationResult vr = validationService.validate(testResource, vm);
Assert.assertFalse("resource should have been considered invalid", vr.isValid());
- Assert.assertThat(vr.getFailureMessages(),
- Matchers.hasEntry("field3", Arrays.asList("Property does not match the pattern \\d")));
- Assert.assertThat(vr.getFailureMessages(),
- Matchers.hasEntry("otherfield.*", Arrays.asList("Missing required property.")));
- Assert.assertThat(vr.getFailureMessages().keySet(), Matchers.hasSize(2));
+
+ Assert.assertThat(vr.getFailures(), Matchers.<ValidationFailure>contains(
+ new DefaultValidationFailure("Property does not match the pattern '\\d'", "field3"),
+ new DefaultValidationFailure("Missing required property.", "otherfield.*")));
}
@Test
@@ -387,9 +382,7 @@ public class ValidationServiceImplTest {
ValidationResult vr = validationService.validate(testResource, vm);
Assert.assertFalse("resource should have been considered invalid", vr.isValid());
- Assert.assertThat(vr.getFailureMessages(),
- Matchers.hasEntry("field[1]", Arrays.asList("Property does not match the pattern \\d")));
- Assert.assertThat(vr.getFailureMessages().keySet(), Matchers.hasSize(1));
+ Assert.assertThat(vr.getFailures(), Matchers.<ValidationFailure>contains(new DefaultValidationFailure("Property does not match the pattern '\\d'", "field[1]")));
}
@Test()
@@ -449,11 +442,9 @@ public class ValidationServiceImplTest {
ValidationResult vr = validationService.validateResourceRecursively(testResource, true, ignoreResourceType3Filter, false);
Assert.assertFalse("resource should have been considered invalid", vr.isValid());
- Assert.assertThat(vr.getFailureMessages(),
- Matchers.hasEntry("field1", Arrays.asList("Missing required property.")));
- Assert.assertThat(vr.getFailureMessages(),
- Matchers.hasEntry("child2/field2", Arrays.asList("Missing required property.")));
- Assert.assertThat(vr.getFailureMessages().keySet(), Matchers.hasSize(2));
+ Assert.assertThat(vr.getFailures(), Matchers.<ValidationFailure>contains(
+ new DefaultValidationFailure("Missing required property.", "field1"),
+ new DefaultValidationFailure("Missing required property.", "child2/field2")));
}
@Test(expected = IllegalArgumentException.class)
@@ -471,7 +462,7 @@ public class ValidationServiceImplTest {
Resource testResource = ResourceUtil.getOrCreateResource(rr, "/content/validation/1/resource", "resourcetype1",
JcrConstants.NT_UNSTRUCTURED, true);
- ValidationResult vr = validationService.validateResourceRecursively(testResource, true, null, false);
+ validationService.validateResourceRecursively(testResource, true, null, false);
}
@Test()
Modified: sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/resourcemodel/ResourceValidationModelProviderImplTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/resourcemodel/ResourceValidationModelProviderImplTest.java?rev=1720802&r1=1720801&r2=1720802&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/resourcemodel/ResourceValidationModelProviderImplTest.java (original)
+++ sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/resourcemodel/ResourceValidationModelProviderImplTest.java Fri Dec 18 14:50:39 2015
@@ -47,8 +47,6 @@ import org.apache.sling.testing.mock.jcr
import org.apache.sling.testing.mock.jcr.MockQueryResultHandler;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.junit.SlingContext;
-import org.apache.sling.validation.Validator;
-import org.apache.sling.validation.impl.Constants;
import org.apache.sling.validation.impl.model.ChildResourceImpl;
import org.apache.sling.validation.impl.model.ResourcePropertyBuilder;
import org.apache.sling.validation.impl.model.ValidationModelBuilder;
@@ -57,6 +55,7 @@ import org.apache.sling.validation.model
import org.apache.sling.validation.model.ParameterizedValidator;
import org.apache.sling.validation.model.ResourceProperty;
import org.apache.sling.validation.model.ValidationModel;
+import org.apache.sling.validation.spi.Validator;
import org.hamcrest.Matchers;
import org.junit.After;
import org.junit.Assert;
@@ -299,10 +298,10 @@ public class ResourceValidationModelProv
private Resource createValidationModelResource(ResourceResolver rr, String root, String name, ValidationModel model)
throws Exception {
Map<String, Object> modelProperties = new HashMap<String, Object>();
- modelProperties.put(Constants.VALIDATED_RESOURCE_TYPE, model.getValidatedResourceType());
- modelProperties.put(Constants.APPLICABLE_PATHS, model.getApplicablePaths());
+ modelProperties.put(ResourceValidationModelProviderImpl.VALIDATED_RESOURCE_TYPE, model.getValidatedResourceType());
+ modelProperties.put(ResourceValidationModelProviderImpl.APPLICABLE_PATHS, model.getApplicablePaths());
modelProperties
- .put(JcrResourceConstants.SLING_RESOURCE_TYPE_PROPERTY, Constants.VALIDATION_MODEL_RESOURCE_TYPE);
+ .put(JcrResourceConstants.SLING_RESOURCE_TYPE_PROPERTY, ResourceValidationModelProviderImpl.VALIDATION_MODEL_RESOURCE_TYPE);
modelProperties.put(JcrConstants.JCR_PRIMARYTYPE, JcrConstants.NT_UNSTRUCTURED);
Resource modelResource = ResourceUtil.getOrCreateResource(rr, root + "/" + name, modelProperties,
JcrResourceConstants.NT_SLING_FOLDER, true);
@@ -333,7 +332,7 @@ public class ResourceValidationModelProv
return;
}
Resource propertiesResource = ResourceUtil.getOrCreateResource(rr,
- model.getPath() + "/" + Constants.PROPERTIES, JcrConstants.NT_UNSTRUCTURED, null, true);
+ model.getPath() + "/" + ResourceValidationModelProviderImpl.PROPERTIES, JcrConstants.NT_UNSTRUCTURED, null, true);
for (ResourceProperty property : properties) {
Map<String, Object> modelPropertyJCRProperties = new HashMap<String, Object>();
modelPropertyJCRProperties.put(JcrConstants.JCR_PRIMARYTYPE, JcrConstants.NT_UNSTRUCTURED);
@@ -343,12 +342,12 @@ public class ResourceValidationModelProv
ModifiableValueMap values = propertyResource.adaptTo(ModifiableValueMap.class);
Pattern pattern = property.getNamePattern();
if (pattern != null) {
- values.put(Constants.NAME_REGEX, pattern.pattern());
+ values.put(ResourceValidationModelProviderImpl.NAME_REGEX, pattern.pattern());
}
- values.put(Constants.PROPERTY_MULTIPLE, property.isMultiple());
- values.put(Constants.OPTIONAL, !property.isRequired());
+ values.put(ResourceValidationModelProviderImpl.PROPERTY_MULTIPLE, property.isMultiple());
+ values.put(ResourceValidationModelProviderImpl.OPTIONAL, !property.isRequired());
Resource validators = ResourceUtil.getOrCreateResource(rr, propertyResource.getPath() + "/"
- + Constants.VALIDATORS, JcrConstants.NT_UNSTRUCTURED, null, true);
+ + ResourceValidationModelProviderImpl.VALIDATORS, JcrConstants.NT_UNSTRUCTURED, null, true);
if (validators != null) {
for (ParameterizedValidator validator : property.getValidators()) {
Map<String, Object> validatorProperties = new HashMap<String, Object>();
@@ -356,7 +355,7 @@ public class ResourceValidationModelProv
Map<String, Object> parameters = validator.getParameters();
if (!parameters.isEmpty()) {
// convert to right format
- validatorProperties.put(Constants.VALIDATOR_ARGUMENTS,
+ validatorProperties.put(ResourceValidationModelProviderImpl.VALIDATOR_ARGUMENTS,
convertMapToJcrValidatorArguments(parameters));
}
ResourceUtil.getOrCreateResource(rr, validators.getPath() + "/"
@@ -383,13 +382,13 @@ public class ResourceValidationModelProv
private Resource createValidationModelChildResource(Resource parentResource, ChildResource child) throws PersistenceException {
ResourceResolver rr = parentResource.getResourceResolver();
- Resource modelChildren = rr.create(parentResource, Constants.CHILDREN, primaryTypeUnstructuredMap);
+ Resource modelChildren = rr.create(parentResource, ResourceValidationModelProviderImpl.CHILDREN, primaryTypeUnstructuredMap);
Resource modelResource = rr.create(modelChildren, child.getName(), primaryTypeUnstructuredMap);
ModifiableValueMap mvm = modelResource.adaptTo(ModifiableValueMap.class);
if (child.getNamePattern() != null) {
- mvm.put(Constants.NAME_REGEX, child.getNamePattern() );
+ mvm.put(ResourceValidationModelProviderImpl.NAME_REGEX, child.getNamePattern() );
}
- mvm.put(Constants.OPTIONAL, !child.isRequired());
+ mvm.put(ResourceValidationModelProviderImpl.OPTIONAL, !child.isRequired());
createValidationModelProperties(modelResource, child.getProperties());
// recursion for all childs
for (ChildResource grandChild : child.getChildren()) {
Modified: sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/ValidatorTypeUtilTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/ValidatorTypeUtilTest.java?rev=1720802&r1=1720801&r2=1720802&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/ValidatorTypeUtilTest.java (original)
+++ sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/ValidatorTypeUtilTest.java Fri Dec 18 14:50:39 2015
@@ -22,9 +22,8 @@ import java.util.Collection;
import javax.annotation.Nonnull;
-import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ValueMap;
-import org.apache.sling.validation.Validator;
+import org.apache.sling.validation.ValidationResult;
import org.apache.sling.validation.exceptions.SlingValidationException;
import org.apache.sling.validation.impl.util.examplevalidators.DerivedStringValidator;
import org.apache.sling.validation.impl.util.examplevalidators.ExtendedStringValidator;
@@ -33,6 +32,9 @@ import org.apache.sling.validation.impl.
import org.apache.sling.validation.impl.util.examplevalidators.StringArrayValidator;
import org.apache.sling.validation.impl.util.examplevalidators.StringValidator;
import org.apache.sling.validation.impl.validators.RegexValidator;
+import org.apache.sling.validation.spi.DefaultValidationResult;
+import org.apache.sling.validation.spi.ValidationContext;
+import org.apache.sling.validation.spi.Validator;
import org.hamcrest.CoreMatchers;
import org.hamcrest.Matchers;
import org.junit.Assert;
@@ -61,11 +63,10 @@ public class ValidatorTypeUtilTest {
}
private class InnerStringValidator implements Validator<String> {
-
@Override
- public String validate(@Nonnull String data, @Nonnull ValueMap valueMap, Resource resource, @Nonnull ValueMap arguments)
+ public @Nonnull ValidationResult validate(@Nonnull String data, @Nonnull ValidationContext context, @Nonnull ValueMap arguments)
throws SlingValidationException {
- return null;
+ return DefaultValidationResult.VALID;
}
}
@@ -80,9 +81,9 @@ public class ValidatorTypeUtilTest {
public void testGetValidatorTypeWithAnonymousClass() {
Assert.assertThat((Class<String>)ValidatorTypeUtil.getValidatorType(new Validator<String>() {
@Override
- public String validate(@Nonnull String data, @Nonnull ValueMap valueMap, Resource resource, @Nonnull ValueMap arguments)
+ public @Nonnull ValidationResult validate(@Nonnull String data, @Nonnull ValidationContext context, @Nonnull ValueMap arguments)
throws SlingValidationException {
- return null;
+ return DefaultValidationResult.VALID;
}
}), Matchers.equalTo(String.class));
@@ -98,18 +99,18 @@ public class ValidatorTypeUtilTest {
public void testGetValidatorTypeWithCollectionType() {
ValidatorTypeUtil.getValidatorType(new Validator<Collection<String>>() {
@Override
- public String validate(@Nonnull Collection<String> data, @Nonnull ValueMap valueMap, Resource resource, @Nonnull ValueMap arguments)
+ public @Nonnull ValidationResult validate(@Nonnull Collection<String> data, @Nonnull ValidationContext context, @Nonnull ValueMap arguments)
throws SlingValidationException {
- return null;
+ return DefaultValidationResult.VALID;
}
});
}
private class InnerStringValidatorWithAdditionalBaseClass extends GenericTypeParameterBaseClass<Integer> implements Validator<String> {
@Override
- public String validate(@Nonnull String data, @Nonnull ValueMap valueMap, Resource resource, @Nonnull ValueMap arguments)
+ public @Nonnull ValidationResult validate(@Nonnull String data, @Nonnull ValidationContext context, @Nonnull ValueMap arguments)
throws SlingValidationException {
- return null;
+ return DefaultValidationResult.VALID;
}
}
Modified: sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/AbstractValidatorWithAdditionalType.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/AbstractValidatorWithAdditionalType.java?rev=1720802&r1=1720801&r2=1720802&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/AbstractValidatorWithAdditionalType.java (original)
+++ sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/AbstractValidatorWithAdditionalType.java Fri Dec 18 14:50:39 2015
@@ -18,7 +18,7 @@
*/
package org.apache.sling.validation.impl.util.examplevalidators;
-import org.apache.sling.validation.Validator;
+import org.apache.sling.validation.spi.Validator;
public abstract class AbstractValidatorWithAdditionalType<A,T,B> implements Validator<T>{
public abstract A getA();
Modified: sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/DateValidator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/DateValidator.java?rev=1720802&r1=1720801&r2=1720802&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/DateValidator.java (original)
+++ sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/DateValidator.java Fri Dec 18 14:50:39 2015
@@ -22,16 +22,18 @@ import java.util.Date;
import javax.annotation.Nonnull;
-import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ValueMap;
-import org.apache.sling.validation.Validator;
+import org.apache.sling.validation.ValidationResult;
import org.apache.sling.validation.exceptions.SlingValidationException;
+import org.apache.sling.validation.spi.DefaultValidationResult;
+import org.apache.sling.validation.spi.ValidationContext;
+import org.apache.sling.validation.spi.Validator;
public class DateValidator implements Validator<Date> {
@Override
- public String validate(@Nonnull Date data, @Nonnull ValueMap valueMap, Resource resource, @Nonnull ValueMap arguments) throws SlingValidationException {
- return null;
+ public @Nonnull ValidationResult validate(@Nonnull Date data, @Nonnull ValidationContext context, @Nonnull ValueMap arguments) throws SlingValidationException {
+ return DefaultValidationResult.VALID;
}
}
Modified: sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/ExtendedStringValidator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/ExtendedStringValidator.java?rev=1720802&r1=1720801&r2=1720802&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/ExtendedStringValidator.java (original)
+++ sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/ExtendedStringValidator.java Fri Dec 18 14:50:39 2015
@@ -18,19 +18,20 @@
*/
package org.apache.sling.validation.impl.util.examplevalidators;
-import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
-import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.validation.ValidationResult;
import org.apache.sling.validation.exceptions.SlingValidationException;
+import org.apache.sling.validation.spi.DefaultValidationResult;
+import org.apache.sling.validation.spi.ValidationContext;
public class ExtendedStringValidator extends AbstractValidatorWithAdditionalType<Boolean, String, Integer> {
@Override
- public @CheckForNull String validate(@Nonnull String data, @Nonnull ValueMap valueMap, Resource resource, @Nonnull ValueMap arguments)
+ public @Nonnull ValidationResult validate(@Nonnull String data, @Nonnull ValidationContext context, @Nonnull ValueMap arguments)
throws SlingValidationException {
- return null;
+ return DefaultValidationResult.VALID;
}
@Override
Modified: sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/IntegerValidator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/IntegerValidator.java?rev=1720802&r1=1720801&r2=1720802&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/IntegerValidator.java (original)
+++ sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/IntegerValidator.java Fri Dec 18 14:50:39 2015
@@ -20,17 +20,19 @@ package org.apache.sling.validation.impl
import javax.annotation.Nonnull;
-import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ValueMap;
-import org.apache.sling.validation.Validator;
+import org.apache.sling.validation.ValidationResult;
import org.apache.sling.validation.exceptions.SlingValidationException;
+import org.apache.sling.validation.spi.DefaultValidationResult;
+import org.apache.sling.validation.spi.ValidationContext;
+import org.apache.sling.validation.spi.Validator;
public class IntegerValidator implements Validator<Integer> {
@Override
- public String validate(@Nonnull Integer data, @Nonnull ValueMap valueMap, Resource resource, @Nonnull ValueMap arguments)
+ public @Nonnull ValidationResult validate(@Nonnull Integer data, @Nonnull ValidationContext context, @Nonnull ValueMap arguments)
throws SlingValidationException {
- return null;
+ return DefaultValidationResult.VALID;
}
}
Modified: sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringArrayValidator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringArrayValidator.java?rev=1720802&r1=1720801&r2=1720802&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringArrayValidator.java (original)
+++ sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringArrayValidator.java Fri Dec 18 14:50:39 2015
@@ -20,17 +20,19 @@ package org.apache.sling.validation.impl
import javax.annotation.Nonnull;
-import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ValueMap;
-import org.apache.sling.validation.Validator;
+import org.apache.sling.validation.ValidationResult;
import org.apache.sling.validation.exceptions.SlingValidationException;
+import org.apache.sling.validation.spi.DefaultValidationResult;
+import org.apache.sling.validation.spi.ValidationContext;
+import org.apache.sling.validation.spi.Validator;
public class StringArrayValidator implements Validator<String[]> {
@Override
- public String validate(@Nonnull String[] data, @Nonnull ValueMap valueMap, Resource resource, @Nonnull ValueMap arguments)
+ public @Nonnull ValidationResult validate(@Nonnull String[] data, @Nonnull ValidationContext context, @Nonnull ValueMap arguments)
throws SlingValidationException {
- return null;
+ return DefaultValidationResult.VALID;
}
}
Modified: sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringValidator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringValidator.java?rev=1720802&r1=1720801&r2=1720802&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringValidator.java (original)
+++ sling/trunk/bundles/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringValidator.java Fri Dec 18 14:50:39 2015
@@ -20,17 +20,19 @@ package org.apache.sling.validation.impl
import javax.annotation.Nonnull;
-import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ValueMap;
-import org.apache.sling.validation.Validator;
+import org.apache.sling.validation.ValidationResult;
import org.apache.sling.validation.exceptions.SlingValidationException;
+import org.apache.sling.validation.spi.DefaultValidationResult;
+import org.apache.sling.validation.spi.ValidationContext;
+import org.apache.sling.validation.spi.Validator;
public class StringValidator implements Validator<String> {
@Override
- public String validate(@Nonnull String data, @Nonnull ValueMap valueMap, Resource resource, @Nonnull ValueMap arguments)
+ public @Nonnull ValidationResult validate(@Nonnull String data, @Nonnull ValidationContext context, @Nonnull ValueMap arguments)
throws SlingValidationException {
- return null;
+ return DefaultValidationResult.VALID;
}
}
Modified: sling/trunk/bundles/extensions/validation/examples/src/main/java/org/apache/sling/validation/examples/models/UserModel.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/examples/src/main/java/org/apache/sling/validation/examples/models/UserModel.java?rev=1720802&r1=1720801&r2=1720802&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/examples/src/main/java/org/apache/sling/validation/examples/models/UserModel.java (original)
+++ sling/trunk/bundles/extensions/validation/examples/src/main/java/org/apache/sling/validation/examples/models/UserModel.java Fri Dec 18 14:50:39 2015
@@ -18,7 +18,7 @@
*/
package org.apache.sling.validation.examples.models;
-import java.util.HashMap;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -27,6 +27,7 @@ import javax.inject.Inject;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.models.annotations.Model;
+import org.apache.sling.validation.ValidationFailure;
import org.apache.sling.validation.ValidationResult;
import org.apache.sling.validation.ValidationService;
import org.apache.sling.validation.model.ValidationModel;
@@ -37,7 +38,7 @@ public class UserModel {
private static final String INVALID = "INVALID";
private Resource resource;
- private Map<String, List<String>> errors = new HashMap<String, List<String>>();
+ private List<ValidationFailure> errors = new LinkedList<ValidationFailure>();
@Inject
private ValidationService validationService;
@@ -74,7 +75,7 @@ public class UserModel {
return isAdmin;
}
- public Map<String, List<String>> getErrors() {
+ public List<ValidationFailure> getErrors() {
return errors;
}
@@ -84,7 +85,7 @@ public class UserModel {
if (model != null) {
ValidationResult result = validationService.validate(resource, model);
if (!result.isValid()) {
- errors = result.getFailureMessages();
+ errors = result.getFailures();
}
}
}
Modified: sling/trunk/bundles/extensions/validation/examples/src/main/java/org/apache/sling/validation/examples/servlets/ModifyUserServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/examples/src/main/java/org/apache/sling/validation/examples/servlets/ModifyUserServlet.java?rev=1720802&r1=1720801&r2=1720802&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/examples/src/main/java/org/apache/sling/validation/examples/servlets/ModifyUserServlet.java (original)
+++ sling/trunk/bundles/extensions/validation/examples/src/main/java/org/apache/sling/validation/examples/servlets/ModifyUserServlet.java Fri Dec 18 14:50:39 2015
@@ -34,6 +34,7 @@ import org.apache.sling.api.servlets.Sli
import org.apache.sling.commons.json.JSONArray;
import org.apache.sling.commons.json.JSONException;
import org.apache.sling.commons.json.JSONObject;
+import org.apache.sling.validation.ValidationFailure;
import org.apache.sling.validation.ValidationResult;
import org.apache.sling.validation.ValidationService;
import org.apache.sling.validation.model.ValidationModel;
@@ -70,16 +71,14 @@ public class ModifyUserServlet extends S
JSONObject json = new JSONObject();
try {
json.put("success", false);
- JSONObject messages = new JSONObject();
- for (Map.Entry<String, List<String>> entry : vr.getFailureMessages().entrySet()) {
- String key = entry.getKey();
- JSONArray errors = new JSONArray();
- for (String message : entry.getValue()) {
- errors.put(message);
- }
- messages.put(key, errors);
+ JSONArray failures = new JSONArray();
+ for (ValidationFailure failure : vr.getFailures()) {
+ JSONObject failureJson = new JSONObject();
+ failureJson.put("message", failure.getMessage());
+ failureJson.put("location", failure.getLocation());
+ failures.put(failureJson);
}
- json.put("messages", messages);
+ json.put("failures", failures);
response.getWriter().print(json.toString());
response.setStatus(400);
} catch (JSONException e) {
Modified: sling/trunk/bundles/extensions/validation/examples/src/main/resources/SLING-INF/apps/validationdemo/components/user/user.jsp
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/examples/src/main/resources/SLING-INF/apps/validationdemo/components/user/user.jsp?rev=1720802&r1=1720801&r2=1720802&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/examples/src/main/resources/SLING-INF/apps/validationdemo/components/user/user.jsp (original)
+++ sling/trunk/bundles/extensions/validation/examples/src/main/resources/SLING-INF/apps/validationdemo/components/user/user.jsp Fri Dec 18 14:50:39 2015
@@ -19,6 +19,7 @@
java.util.Map,
java.util.List,
org.apache.sling.api.resource.Resource,
+ org.apache.sling.validation.ValidationFailure,
org.apache.sling.validation.examples.models.UserModel
"%>
<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling" %>
@@ -46,14 +47,10 @@
</table>
<h3>Validation Errors</h3>
<%
- for (Map.Entry<String, List<String>> entry : user.getErrors().entrySet()) {
+ for (ValidationFailure error : user.getErrors()) {
%>
-<span><strong>Key:</strong> <%= entry.getKey() %></span><br>
+<span><strong>Key:</strong> <%= error.getLocation() %></span><br>
+<span><%= error.getMessage() %></span><br>
<%
- for (String message : entry.getValue()) {
-%>
-<span><%= message %></span><br>
-<%
- }
}
%>
\ No newline at end of file
Modified: sling/trunk/bundles/extensions/validation/test-services/src/main/java/org/apache/sling/validation/testservices/ValidationPostResponse.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/test-services/src/main/java/org/apache/sling/validation/testservices/ValidationPostResponse.java?rev=1720802&r1=1720801&r2=1720802&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/test-services/src/main/java/org/apache/sling/validation/testservices/ValidationPostResponse.java (original)
+++ sling/trunk/bundles/extensions/validation/test-services/src/main/java/org/apache/sling/validation/testservices/ValidationPostResponse.java Fri Dec 18 14:50:39 2015
@@ -25,9 +25,11 @@ import java.util.Map;
import javax.servlet.http.HttpServletResponse;
+import org.apache.sling.commons.json.JSONArray;
import org.apache.sling.commons.json.JSONException;
import org.apache.sling.commons.json.JSONObject;
import org.apache.sling.servlets.post.AbstractPostResponse;
+import org.apache.sling.validation.ValidationFailure;
import org.apache.sling.validation.ValidationResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,9 +52,14 @@ public class ValidationPostResponse exte
if (validationResult != null) {
try {
jsonResponse.put("valid", validationResult.isValid());
- for (Map.Entry<String, List<String>> entry : validationResult.getFailureMessages().entrySet()) {
- jsonResponse.put(entry.getKey(), entry.getValue());
+ JSONArray failures = new JSONArray();
+ for (ValidationFailure failure : validationResult.getFailures()) {
+ JSONObject failureJson = new JSONObject();
+ failureJson.put("message", failure.getMessage());
+ failureJson.put("location", failure.getLocation());
+ failures.put(failureJson);
}
+ jsonResponse.put("failures", failures);
} catch (JSONException e) {
LOG.error("JSON error during response send operation.", e);
}