diff --git a/Backend/tools-services/src/main/java/com/r11/tools/controller/XPathController.java b/Backend/tools-services/src/main/java/com/r11/tools/controller/XPathController.java index f60a3d8..dbf3840 100644 --- a/Backend/tools-services/src/main/java/com/r11/tools/controller/XPathController.java +++ b/Backend/tools-services/src/main/java/com/r11/tools/controller/XPathController.java @@ -26,24 +26,31 @@ public class XPathController implements RestController { this.xalan = xalan; } - private XMLResponseBody prepareErrorResponse(String message, String processor) { + private XMLResponseBody errorResponse(String message, String processor) { return new XMLResponseBody(message, "ERR", processor, -1); } + private void nonValidEngineSelectedResponse(Response response) { + XMLResponseBody responseBody = + errorResponse("Valid engines are: saxon, xalan", "N/A"); + response.body(this.gson.toJson(responseBody)); + response.status(400); + } + @ScopedControllerManifest(method = HandlerType.POST, path = "/xpath") public void acceptRequest(Request request, Response response) { XMLRequestBody requestBody; try { requestBody = this.gson.fromJson(request.body(), XMLRequestBody.class); } catch (Exception e) { - XMLResponseBody responseBody = prepareErrorResponse(e.getMessage(), "N/A"); + XMLResponseBody responseBody = errorResponse(e.getMessage(), "N/A"); response.status(400); response.body(this.gson.toJson(responseBody)); return; } if (requestBody.getProcessor() == null) { - response.body("saxon, xalan"); + nonValidEngineSelectedResponse(response); return; } @@ -55,7 +62,7 @@ public class XPathController implements RestController { process(response, requestBody, xalan); break; default: - response.body("saxon, xalan"); + nonValidEngineSelectedResponse(response); } } @@ -74,7 +81,7 @@ public class XPathController implements RestController { responseBody.setType(xPathQueryResult.getType()); this.logger.info("Request (XPath, " + engine.getVersion() + ") processed in " + duration + " ms."); } catch (Exception ex) { - responseBody = prepareErrorResponse(ex.getMessage(), engine.getVersion()); + responseBody = errorResponse(ex.getMessage(), engine.getVersion()); response.status(400); this.logger.error("Error on processing XPath using " + engine.getVersion() + ". " + ex); diff --git a/Backend/tools-services/src/main/java/com/r11/tools/controller/XQueryController.java b/Backend/tools-services/src/main/java/com/r11/tools/controller/XQueryController.java index 661ed37..dc38498 100644 --- a/Backend/tools-services/src/main/java/com/r11/tools/controller/XQueryController.java +++ b/Backend/tools-services/src/main/java/com/r11/tools/controller/XQueryController.java @@ -30,6 +30,13 @@ public class XQueryController implements RestController { return new XMLResponseBody(message, "ERR", processor, -1); } + private void nonValidEngineSelectedResponse(Response response) { + XMLResponseBody responseBody = + prepareErrorResponse("Valid engines are: saxon", "N/A"); + response.body(this.gson.toJson(responseBody)); + response.status(400); + } + @ScopedControllerManifest(method = HandlerType.POST, path = "/xquery") public void acceptRequest(Request request, Response response) { XMLRequestBody requestBody; @@ -44,10 +51,10 @@ public class XQueryController implements RestController { } try { - if (requestBody.getProcessor().equals("saxon")) + if (requestBody.getProcessor().equalsIgnoreCase("saxon")) process(response, requestBody, saxon); else - response.body("saxon"); + nonValidEngineSelectedResponse(response); } catch (Exception e) { XMLResponseBody responseBody = prepareErrorResponse(e.getMessage(), "Saxon"); diff --git a/Backend/tools-services/src/main/java/com/r11/tools/controller/XsdController.java b/Backend/tools-services/src/main/java/com/r11/tools/controller/XsdController.java index 6fbfb1a..294c6dc 100644 --- a/Backend/tools-services/src/main/java/com/r11/tools/controller/XsdController.java +++ b/Backend/tools-services/src/main/java/com/r11/tools/controller/XsdController.java @@ -26,9 +26,16 @@ public class XsdController implements RestController { private XMLResponseBody prepareErrorResponse(String message, String processor) { return new XMLResponseBody(message, "ERR", processor, -1); } + + private void nonValidEngineSelectedResponse(Response response) { + XMLResponseBody responseBody = + prepareErrorResponse("Valid engines is: xalan", "N/A"); + response.body(this.gson.toJson(responseBody)); + response.status(400); + } @ScopedControllerManifest(method = HandlerType.POST, path = "/xsd") public void acceptRequest(Request request, Response response) { - XMLRequestBody requestBody = null; + XMLRequestBody requestBody; try { requestBody = this.gson.fromJson(request.body(), XMLRequestBody.class); } catch (Exception e) { @@ -36,13 +43,22 @@ public class XsdController implements RestController { response.status(400); response.body(this.gson.toJson(responseBody)); + return; } - process(response, requestBody, xalan); + + if (requestBody.getProcessor() == null) { + nonValidEngineSelectedResponse(response); + return; + } + if (requestBody.getProcessor().equalsIgnoreCase("xalan")) + process(response, requestBody, xalan); + else + nonValidEngineSelectedResponse(response); } private void process(Response response, XMLRequestBody requestBody, XmlEngine engine) { - XMLResponseBody responseBody; + XMLResponseBody responseBody = null; try { long timeStart = System.currentTimeMillis(); String result = engine.validate(requestBody.getData(), requestBody.getProcess()).trim(); @@ -59,8 +75,11 @@ public class XsdController implements RestController { this.logger.error("Error on validation against XSD using " + engine.getVersion() + ". " + ex); } + finally { + response.body(this.gson.toJson(responseBody)); + } + - response.body(this.gson.toJson(responseBody)); } } diff --git a/Backend/tools-services/src/main/java/com/r11/tools/controller/XsltController.java b/Backend/tools-services/src/main/java/com/r11/tools/controller/XsltController.java index 10d52a3..a2b7e95 100644 --- a/Backend/tools-services/src/main/java/com/r11/tools/controller/XsltController.java +++ b/Backend/tools-services/src/main/java/com/r11/tools/controller/XsltController.java @@ -28,6 +28,14 @@ public class XsltController implements RestController { private XMLResponseBody prepareErrorResponse(String message, String processor) { return new XMLResponseBody(message, "ERR", processor, -1); } + + private void nonValidEngineSelectedResponse(Response response) { + XMLResponseBody responseBody = + prepareErrorResponse("Valid engines are: saxon, xalan", "N/A"); + response.body(this.gson.toJson(responseBody)); + response.status(400); + } + @ScopedControllerManifest(method = HandlerType.POST, path = "/xslt") public void acceptRequest(Request request, Response response) { XMLRequestBody requestBody; @@ -42,7 +50,7 @@ public class XsltController implements RestController { } if (requestBody.getProcessor() == null) { - response.body("saxon, xalan"); + nonValidEngineSelectedResponse(response); return; } @@ -56,7 +64,7 @@ public class XsltController implements RestController { return; default: - response.body("saxon, xalan"); + nonValidEngineSelectedResponse(response); } }