SLING-5026 - refactor validator interface to allow to set multiple failure messages

This closes #117

git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1720802 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/validation/testservices/ValidationPostResponse.java b/src/main/java/org/apache/sling/validation/testservices/ValidationPostResponse.java
index f535c15..4b71762 100644
--- a/src/main/java/org/apache/sling/validation/testservices/ValidationPostResponse.java
+++ b/src/main/java/org/apache/sling/validation/testservices/ValidationPostResponse.java
@@ -25,9 +25,11 @@
 
 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 @@
         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);
             }