This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-validation-test-services.git
commit 64ebfa7baa055373ba22e3b278eb3e30e175be3b Author: Oliver Lietz <o...@apache.org> AuthorDate: Thu Feb 2 15:34:58 2017 +0000 SLING-5590 Move Sling HTTP Servlet Request Adaptor Factory out of Validation Core git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1781406 13f79535-47bb-0310-9956-ffa450edef68 --- .../testservices/ValidationPostOperation.java | 45 +++++++++++++--------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/apache/sling/validation/testservices/ValidationPostOperation.java b/src/main/java/org/apache/sling/validation/testservices/ValidationPostOperation.java index 84faec2..a05008e 100644 --- a/src/main/java/org/apache/sling/validation/testservices/ValidationPostOperation.java +++ b/src/main/java/org/apache/sling/validation/testservices/ValidationPostOperation.java @@ -18,7 +18,10 @@ */ package org.apache.sling.validation.testservices; +import java.util.Enumeration; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Properties; @@ -26,7 +29,7 @@ import org.apache.felix.scr.annotations.Property; import org.apache.felix.scr.annotations.Reference; import org.apache.felix.scr.annotations.Service; import org.apache.sling.api.SlingHttpServletRequest; -import org.apache.sling.api.resource.ValueMap; +import org.apache.sling.api.wrappers.ValueMapDecorator; import org.apache.sling.servlets.post.AbstractPostOperation; import org.apache.sling.servlets.post.Modification; import org.apache.sling.servlets.post.PostOperation; @@ -40,14 +43,14 @@ import org.slf4j.LoggerFactory; @Component() @Service(PostOperation.class) @Properties({ - @Property( - name = PostOperation.PROP_OPERATION_NAME, - value = "validation" - ) + @Property( + name = PostOperation.PROP_OPERATION_NAME, + value = "validation" + ) }) public class ValidationPostOperation extends AbstractPostOperation { - private static final Logger LOG = LoggerFactory.getLogger(ValidationPostOperation.class); + private final Logger logger = LoggerFactory.getLogger(ValidationPostOperation.class); @Reference private ValidationService validationService; @@ -55,23 +58,29 @@ public class ValidationPostOperation extends AbstractPostOperation { @Override protected void doRun(SlingHttpServletRequest request, PostResponse response, List<Modification> changes) { if (response instanceof ValidationPostResponse) { - ValidationPostResponse vpr = (ValidationPostResponse) response; - ValueMap requestParameters = request.adaptTo(ValueMap.class); - String[] resourceTypeValues = requestParameters.get("sling:resourceType", String[].class); - String resourceType = null; - if (resourceTypeValues != null && resourceTypeValues.length > 0) { - resourceType = resourceTypeValues[0]; + final Map<String, Object> base = new LinkedHashMap<>(); + final ValueMapDecorator valueMap = new ValueMapDecorator(base); + final Enumeration<String> names = request.getParameterNames(); + while (names.hasMoreElements()) { + final String name = names.nextElement(); + valueMap.put(name, request.getRequestParameter(name).getString()); } + + final String resourceType = request.getRequestParameter("sling:resourceType").getString(); if (resourceType != null && !"".equals(resourceType)) { - String resourcePath = request.getRequestPathInfo().getResourcePath(); - ValidationModel vm = validationService.getValidationModel(resourceType, resourcePath, false); - if (vm != null) { - ValidationResult vr = validationService.validate(requestParameters, vm); - vpr.setValidationResult(vr); + final String resourcePath = request.getRequestPathInfo().getResourcePath(); + final ValidationModel validationModel = validationService.getValidationModel(resourceType, resourcePath, false); + if (validationModel != null) { + final ValidationResult validationResult = validationService.validate(valueMap, validationModel); + final ValidationPostResponse validationPostResponse = (ValidationPostResponse) response; + validationPostResponse.setValidationResult(validationResult); } else { - LOG.error("No validation model for resourceType {} and resourcePath {} ", resourceType, resourcePath); + logger.error("No validation model for resourceType {} and resourcePath {} ", resourceType, resourcePath); } + } else { + logger.error("resource type is empty"); } } } + } -- To stop receiving notification emails like this one, please contact "commits@sling.apache.org" <commits@sling.apache.org>.