Co-authored-by: Artur Kołecki <koleckiartur@icloud.com> Reviewed-on: R11/release11-tools-web#106
This commit is contained in:
		@@ -74,16 +74,6 @@
 | 
			
		||||
      <artifactId>gson</artifactId>
 | 
			
		||||
      <version>${gson.version}</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>com.fasterxml.jackson.core</groupId>
 | 
			
		||||
      <artifactId>jackson-core</artifactId>
 | 
			
		||||
      <version>${jackson.version}</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>com.fasterxml.jackson.core</groupId>
 | 
			
		||||
      <artifactId>jackson-databind</artifactId>
 | 
			
		||||
      <version>${jackson.version}</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
 | 
			
		||||
    <!--    XSLT    -->
 | 
			
		||||
    <dependency>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,7 @@
 | 
			
		||||
package com.r11.tools;
 | 
			
		||||
 | 
			
		||||
import com.google.gson.Gson;
 | 
			
		||||
import com.google.gson.GsonBuilder;
 | 
			
		||||
import com.r11.tools.controller.JsonController;
 | 
			
		||||
import com.r11.tools.controller.ProcessorInfoController;
 | 
			
		||||
import com.r11.tools.controller.XPathController;
 | 
			
		||||
@@ -25,11 +27,16 @@ public class SparkApplication {
 | 
			
		||||
 | 
			
		||||
        Logger logger = LogManager.getLogger(SparkApplication.class);
 | 
			
		||||
 | 
			
		||||
        Gson gson = new GsonBuilder()
 | 
			
		||||
            .disableHtmlEscaping()
 | 
			
		||||
            .setPrettyPrinting()
 | 
			
		||||
            .create();
 | 
			
		||||
 | 
			
		||||
        RestControllerRegistry registry = new RestControllerRegistry();
 | 
			
		||||
        registry.registerController(new ProcessorInfoController(logger));
 | 
			
		||||
        registry.registerController(new XsdController(logger));
 | 
			
		||||
        registry.registerController(new XPathController(logger));
 | 
			
		||||
        registry.registerController(new XsltController(logger));
 | 
			
		||||
        registry.registerController(new XsdController(gson, logger));
 | 
			
		||||
        registry.registerController(new XPathController(gson, logger));
 | 
			
		||||
        registry.registerController(new XsltController(gson, logger));
 | 
			
		||||
        registry.registerController(new JsonController());
 | 
			
		||||
 | 
			
		||||
        registry.register();
 | 
			
		||||
 
 | 
			
		||||
@@ -24,35 +24,53 @@ public class JsonController implements RestController {
 | 
			
		||||
 | 
			
		||||
    @ScopedControllerManifest(method = HandlerType.POST, path = "/formatting")
 | 
			
		||||
    public void formatting(Request request, Response response) {
 | 
			
		||||
        long startProcess = System.currentTimeMillis();
 | 
			
		||||
        JsonObject responseJson = new JsonObject();
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            JsonObject jsonObject = this.gson.fromJson(request.body(), JsonObject.class);
 | 
			
		||||
            JsonObject requestJson = this.gson.fromJson(request.body(), JsonObject.class);
 | 
			
		||||
 | 
			
		||||
            response.status(200);
 | 
			
		||||
            response.body(this.prettyGson.toJson(jsonObject));
 | 
			
		||||
 | 
			
		||||
            responseJson.addProperty("data", this.prettyGson.toJson(requestJson));
 | 
			
		||||
            responseJson.addProperty("time", System.currentTimeMillis() - startProcess);
 | 
			
		||||
 | 
			
		||||
            response.body(this.prettyGson.toJson(responseJson));
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            response.status(500);
 | 
			
		||||
            Throwable cause = e.getCause();
 | 
			
		||||
            if (cause == null) {
 | 
			
		||||
                response.body(e.getMessage());
 | 
			
		||||
            } else {
 | 
			
		||||
                response.body(cause.getMessage());
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            response.status(500);
 | 
			
		||||
 | 
			
		||||
            responseJson.addProperty("data", cause == null ? e.getMessage() : cause.getMessage());
 | 
			
		||||
            responseJson.addProperty("time", System.currentTimeMillis() - startProcess);
 | 
			
		||||
 | 
			
		||||
            response.body(this.prettyGson.toJson(responseJson));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @ScopedControllerManifest(method = HandlerType.POST, path = "/minimize")
 | 
			
		||||
    public void minimize(Request request, Response response) {
 | 
			
		||||
        long startProcess = System.currentTimeMillis();
 | 
			
		||||
        JsonObject responseJson = new JsonObject();
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            JsonObject jsonObject = this.prettyGson.fromJson(request.body(), JsonObject.class);
 | 
			
		||||
            JsonObject requestJson = this.prettyGson.fromJson(request.body(), JsonObject.class);
 | 
			
		||||
 | 
			
		||||
            response.status(200);
 | 
			
		||||
            response.body(this.gson.toJson(jsonObject));
 | 
			
		||||
 | 
			
		||||
            responseJson.addProperty("data", this.gson.toJson(requestJson));
 | 
			
		||||
            responseJson.addProperty("time", System.currentTimeMillis() - startProcess);
 | 
			
		||||
 | 
			
		||||
            response.body(this.gson.toJson(responseJson));
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            response.status(500);
 | 
			
		||||
            Throwable cause = e.getCause();
 | 
			
		||||
            if (cause == null) {
 | 
			
		||||
                response.body(e.getMessage());
 | 
			
		||||
            } else {
 | 
			
		||||
                response.body(cause.getMessage());
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            response.status(500);
 | 
			
		||||
 | 
			
		||||
            responseJson.addProperty("data", cause == null ? e.getMessage() : cause.getMessage());
 | 
			
		||||
            responseJson.addProperty("time", System.currentTimeMillis() - startProcess);
 | 
			
		||||
 | 
			
		||||
            response.body(this.prettyGson.toJson(responseJson));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,13 @@
 | 
			
		||||
package com.r11.tools.controller;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.core.JsonProcessingException;
 | 
			
		||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
			
		||||
import com.google.gson.Gson;
 | 
			
		||||
import com.google.gson.JsonObject;
 | 
			
		||||
import com.r11.tools.controller.internal.GlobalControllerManifest;
 | 
			
		||||
import com.r11.tools.controller.internal.HandlerType;
 | 
			
		||||
import com.r11.tools.controller.internal.RestController;
 | 
			
		||||
import com.r11.tools.controller.internal.ScopedControllerManifest;
 | 
			
		||||
import com.r11.tools.xml.Saxon;
 | 
			
		||||
import com.r11.tools.xml.Xalan;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import org.apache.logging.log4j.Logger;
 | 
			
		||||
import spark.Request;
 | 
			
		||||
import spark.Response;
 | 
			
		||||
@@ -17,36 +15,37 @@ import spark.Response;
 | 
			
		||||
@GlobalControllerManifest
 | 
			
		||||
public class XPathController implements RestController {
 | 
			
		||||
 | 
			
		||||
    private final Gson gson;
 | 
			
		||||
    private final Logger logger;
 | 
			
		||||
 | 
			
		||||
    public XPathController(Logger logger) {
 | 
			
		||||
    public XPathController(Gson gson, Logger logger) {
 | 
			
		||||
        this.gson = gson;
 | 
			
		||||
        this.logger = logger;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @ScopedControllerManifest(method = HandlerType.POST, path = "/xpath")
 | 
			
		||||
    public void transform(Request request, Response response) throws JsonProcessingException {
 | 
			
		||||
    public void transform(Request request, Response response) {
 | 
			
		||||
        String body = request.body();
 | 
			
		||||
        ObjectMapper mapper = new ObjectMapper();
 | 
			
		||||
        Map<String, String> requestMap = new HashMap<>();
 | 
			
		||||
        Map<String, String> responseMap = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
        JsonObject requestJson;
 | 
			
		||||
        try {
 | 
			
		||||
            requestMap = mapper.readValue(body, Map.class);
 | 
			
		||||
        } catch (JsonProcessingException ex) {
 | 
			
		||||
            this.logger.error("Request JSON error. " + ex);
 | 
			
		||||
            responseMap.put("result", ex.getMessage());
 | 
			
		||||
            responseMap.put("processor", "N/A");
 | 
			
		||||
            responseMap.put("status", "ERR");
 | 
			
		||||
            responseMap.put("time", "N/A");
 | 
			
		||||
            requestJson = this.gson.fromJson(body, JsonObject.class);
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            JsonObject responseJson = new JsonObject();
 | 
			
		||||
            responseJson.addProperty("result", e.getMessage());
 | 
			
		||||
            responseJson.addProperty("processor", "N/A");
 | 
			
		||||
            responseJson.addProperty("status", "ERR");
 | 
			
		||||
            responseJson.addProperty("time", "N/A");
 | 
			
		||||
 | 
			
		||||
            response.status(400);
 | 
			
		||||
            response.body(mapper.writeValueAsString(responseMap));
 | 
			
		||||
            response.body(this.gson.toJson(responseJson));
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        String data = requestMap.get("data");
 | 
			
		||||
        String query = requestMap.get("process");
 | 
			
		||||
        String processor = requestMap.get("processor");
 | 
			
		||||
        String version = requestMap.get("version");
 | 
			
		||||
 | 
			
		||||
        String data = requestJson.get("data").getAsString();
 | 
			
		||||
        String query = requestJson.get("process").getAsString();
 | 
			
		||||
        String processor = requestJson.get("processor").getAsString();
 | 
			
		||||
        String version = requestJson.get("version").getAsString();
 | 
			
		||||
 | 
			
		||||
        String tmp = "";
 | 
			
		||||
        long timeStart;
 | 
			
		||||
@@ -57,45 +56,64 @@ public class XPathController implements RestController {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        JsonObject responseJson = new JsonObject();
 | 
			
		||||
        switch (processor) {
 | 
			
		||||
            case "saxon":
 | 
			
		||||
                response.header("processor", "Saxon " + Saxon.getVersion() + " " + version + " over s9api");
 | 
			
		||||
                timeStart = System.currentTimeMillis();
 | 
			
		||||
 | 
			
		||||
                try {
 | 
			
		||||
                    tmp = Saxon.processXPath(data, query, version).trim();
 | 
			
		||||
                    responseMap.put("result", tmp);
 | 
			
		||||
                    responseMap.put("status", "OK");
 | 
			
		||||
 | 
			
		||||
                    response.status(200);
 | 
			
		||||
 | 
			
		||||
                    responseJson.addProperty("result", tmp);
 | 
			
		||||
                    responseJson.addProperty("status", "OK");
 | 
			
		||||
                } catch (Exception ex) {
 | 
			
		||||
                    this.logger.error("Error on processing XPath using Saxon. " + ex);
 | 
			
		||||
                    responseMap.put("result", ex.getMessage());
 | 
			
		||||
                    responseMap.put("status", "ERR");
 | 
			
		||||
 | 
			
		||||
                    response.status(400);
 | 
			
		||||
 | 
			
		||||
                    responseJson.addProperty("result", ex.getMessage());
 | 
			
		||||
                    responseJson.addProperty("status", "ERR");
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                duration = System.currentTimeMillis() - timeStart;
 | 
			
		||||
                this.logger.info("Request" + body + " processed in " + duration + " ms.");
 | 
			
		||||
                responseMap.put("processor", "Saxon " + Saxon.getVersion() + " " + version + " over s9api");
 | 
			
		||||
                responseMap.put("time", "" + duration);
 | 
			
		||||
                response.body(mapper.writeValueAsString(responseMap));
 | 
			
		||||
 | 
			
		||||
                responseJson.addProperty("processor", "Saxon " + Saxon.getVersion() + " " + version + " over s9api");
 | 
			
		||||
                responseJson.addProperty("time", duration);
 | 
			
		||||
 | 
			
		||||
                response.body(this.gson.toJson(responseJson));
 | 
			
		||||
                return;
 | 
			
		||||
 | 
			
		||||
            case "xalan":
 | 
			
		||||
                response.header("processor", Xalan.getVersion());
 | 
			
		||||
                timeStart = System.currentTimeMillis();
 | 
			
		||||
 | 
			
		||||
                try {
 | 
			
		||||
                    tmp = Xalan.processXPath(data, query).trim();
 | 
			
		||||
                    responseMap.put("result", tmp);
 | 
			
		||||
                    responseMap.put("status", "OK");
 | 
			
		||||
 | 
			
		||||
                    response.status(200);
 | 
			
		||||
 | 
			
		||||
                    responseJson.addProperty("result", tmp);
 | 
			
		||||
                    responseJson.addProperty("status", "OK");
 | 
			
		||||
                } catch (Exception ex) {
 | 
			
		||||
                    this.logger.error("Error on processing XPath using Xalan. " + ex);
 | 
			
		||||
                    responseMap.put("result", ex.getMessage());
 | 
			
		||||
                    responseMap.put("status", "ERR");
 | 
			
		||||
 | 
			
		||||
                    response.status(400);
 | 
			
		||||
 | 
			
		||||
                    responseJson.addProperty("result", ex.getMessage());
 | 
			
		||||
                    responseJson.addProperty("status", "ERR");
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                duration = System.currentTimeMillis() - timeStart;
 | 
			
		||||
                this.logger.info("Request: " + body + " processed in " + duration + " ms.");
 | 
			
		||||
                responseMap.put("processor", Xalan.getVersion());
 | 
			
		||||
                responseMap.put("time", Long.toString(duration));
 | 
			
		||||
                response.body(mapper.writeValueAsString(responseMap));
 | 
			
		||||
 | 
			
		||||
                responseJson.addProperty("processor", Xalan.getVersion());
 | 
			
		||||
                responseJson.addProperty("time", duration);
 | 
			
		||||
 | 
			
		||||
                response.body(this.gson.toJson(responseJson));
 | 
			
		||||
                return;
 | 
			
		||||
            default:
 | 
			
		||||
                response.body("saxon, xalan");
 | 
			
		||||
 
 | 
			
		||||
@@ -1,14 +1,12 @@
 | 
			
		||||
package com.r11.tools.controller;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.core.JsonProcessingException;
 | 
			
		||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
			
		||||
import com.google.gson.Gson;
 | 
			
		||||
import com.google.gson.JsonObject;
 | 
			
		||||
import com.r11.tools.controller.internal.GlobalControllerManifest;
 | 
			
		||||
import com.r11.tools.controller.internal.HandlerType;
 | 
			
		||||
import com.r11.tools.controller.internal.RestController;
 | 
			
		||||
import com.r11.tools.controller.internal.ScopedControllerManifest;
 | 
			
		||||
import com.r11.tools.xml.Xalan;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import org.apache.logging.log4j.Logger;
 | 
			
		||||
import spark.Request;
 | 
			
		||||
import spark.Response;
 | 
			
		||||
@@ -16,55 +14,65 @@ import spark.Response;
 | 
			
		||||
@GlobalControllerManifest
 | 
			
		||||
public class XsdController implements RestController {
 | 
			
		||||
 | 
			
		||||
    private final Gson gson;
 | 
			
		||||
    private final Logger logger;
 | 
			
		||||
 | 
			
		||||
    public XsdController(Logger logger) {
 | 
			
		||||
    public XsdController(Gson gson, Logger logger) {
 | 
			
		||||
        this.gson = gson;
 | 
			
		||||
        this.logger = logger;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @ScopedControllerManifest(method = HandlerType.POST, path = "/xsd")
 | 
			
		||||
    public Response transform(Request req, Response resp) throws JsonProcessingException {
 | 
			
		||||
        String body = req.body();
 | 
			
		||||
 | 
			
		||||
        ObjectMapper mapper = new ObjectMapper();
 | 
			
		||||
        Map<String, String> requestMap = new HashMap<>();
 | 
			
		||||
        Map<String, String> responseMap = new HashMap<>();
 | 
			
		||||
    public Response transform(Request request, Response response) {
 | 
			
		||||
        String body = request.body();
 | 
			
		||||
 | 
			
		||||
        JsonObject requestJson;
 | 
			
		||||
        try {
 | 
			
		||||
            requestMap = mapper.readValue(body, Map.class);
 | 
			
		||||
        } catch (JsonProcessingException ex) {
 | 
			
		||||
            this.logger.error("Request JSON error. " + ex);
 | 
			
		||||
            responseMap.put("result", ex.getMessage());
 | 
			
		||||
            responseMap.put("processor", "N/A");
 | 
			
		||||
            responseMap.put("status", "ERR");
 | 
			
		||||
            responseMap.put("time", "N/A");
 | 
			
		||||
            resp.status(400);
 | 
			
		||||
            resp.body(mapper.writeValueAsString(responseMap));
 | 
			
		||||
            return resp;
 | 
			
		||||
            requestJson = this.gson.fromJson(body, JsonObject.class);
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            JsonObject responseJson = new JsonObject();
 | 
			
		||||
            responseJson.addProperty("result", e.getMessage());
 | 
			
		||||
            responseJson.addProperty("processor", "N/A");
 | 
			
		||||
            responseJson.addProperty("status", "ERR");
 | 
			
		||||
            responseJson.addProperty("time", "N/A");
 | 
			
		||||
 | 
			
		||||
            response.status(400);
 | 
			
		||||
            response.body(this.gson.toJson(responseJson));
 | 
			
		||||
            return response;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        String data = requestMap.get("data");
 | 
			
		||||
        String xsd = requestMap.get("process");
 | 
			
		||||
        String data = requestJson.get("data").getAsString();
 | 
			
		||||
        String xsd = requestJson.get("process").getAsString();
 | 
			
		||||
 | 
			
		||||
        response.header("processor", Xalan.getVersion());
 | 
			
		||||
 | 
			
		||||
        resp.header("processor", Xalan.getVersion());
 | 
			
		||||
        long timeStart = System.currentTimeMillis();
 | 
			
		||||
        String tmp;
 | 
			
		||||
 | 
			
		||||
        JsonObject responseJson = new JsonObject();
 | 
			
		||||
        try {
 | 
			
		||||
            tmp = Xalan.validate(data, xsd).trim();
 | 
			
		||||
            responseMap.put("result", tmp);
 | 
			
		||||
            responseMap.put("status", "OK");
 | 
			
		||||
 | 
			
		||||
            response.status(200);
 | 
			
		||||
 | 
			
		||||
            responseJson.addProperty("result", tmp);
 | 
			
		||||
            responseJson.addProperty("status", "OK");
 | 
			
		||||
        } catch (Exception ex) {
 | 
			
		||||
            this.logger.error("Error on validation against XSD using Xalan. " + ex);
 | 
			
		||||
            responseMap.put("result", ex.getMessage());
 | 
			
		||||
            responseMap.put("status", "ERR");
 | 
			
		||||
            resp.status(400);
 | 
			
		||||
 | 
			
		||||
            response.status(400);
 | 
			
		||||
 | 
			
		||||
            responseJson.addProperty("result", ex.getMessage());
 | 
			
		||||
            responseJson.addProperty("status", "ERR");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        long duration = System.currentTimeMillis() - timeStart;
 | 
			
		||||
        this.logger.info("Request: " + body + " processed in " + duration + " ms.");
 | 
			
		||||
        responseMap.put("processor", Xalan.getVersion());
 | 
			
		||||
        responseMap.put("time", "" + duration);
 | 
			
		||||
        resp.body(mapper.writeValueAsString(responseMap));
 | 
			
		||||
        return resp;
 | 
			
		||||
 | 
			
		||||
        responseJson.addProperty("processor", Xalan.getVersion());
 | 
			
		||||
        responseJson.addProperty("time", duration);
 | 
			
		||||
 | 
			
		||||
        response.body(this.gson.toJson(responseJson));
 | 
			
		||||
        return response;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,17 +1,13 @@
 | 
			
		||||
package com.r11.tools.controller;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.core.JsonParseException;
 | 
			
		||||
import com.fasterxml.jackson.core.JsonProcessingException;
 | 
			
		||||
import com.fasterxml.jackson.databind.JsonMappingException;
 | 
			
		||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
			
		||||
import com.google.gson.Gson;
 | 
			
		||||
import com.google.gson.JsonObject;
 | 
			
		||||
import com.r11.tools.controller.internal.GlobalControllerManifest;
 | 
			
		||||
import com.r11.tools.controller.internal.HandlerType;
 | 
			
		||||
import com.r11.tools.controller.internal.RestController;
 | 
			
		||||
import com.r11.tools.controller.internal.ScopedControllerManifest;
 | 
			
		||||
import com.r11.tools.xml.Saxon;
 | 
			
		||||
import com.r11.tools.xml.Xalan;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import org.apache.logging.log4j.Logger;
 | 
			
		||||
import spark.Request;
 | 
			
		||||
import spark.Response;
 | 
			
		||||
@@ -19,35 +15,37 @@ import spark.Response;
 | 
			
		||||
@GlobalControllerManifest
 | 
			
		||||
public class XsltController implements RestController {
 | 
			
		||||
 | 
			
		||||
    private final Gson gson;
 | 
			
		||||
    private final Logger logger;
 | 
			
		||||
 | 
			
		||||
    public XsltController(Logger logger) {
 | 
			
		||||
    public XsltController(Gson gson, Logger logger) {
 | 
			
		||||
        this.gson = gson;
 | 
			
		||||
        this.logger = logger;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @ScopedControllerManifest(method = HandlerType.POST, path = "/xslt")
 | 
			
		||||
    public void transform(Request request, Response response) throws JsonProcessingException {
 | 
			
		||||
    public void transform(Request request, Response response) {
 | 
			
		||||
        String body = request.body();
 | 
			
		||||
        ObjectMapper mapper = new ObjectMapper();
 | 
			
		||||
        Map<String, String> requestMap = new HashMap<>();
 | 
			
		||||
        Map<String, String> responseMap = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
        JsonObject requestJson;
 | 
			
		||||
        try {
 | 
			
		||||
            requestMap = mapper.readValue(body, Map.class);
 | 
			
		||||
        } catch (JsonMappingException | JsonParseException ex) {
 | 
			
		||||
            this.logger.error("Request JSON error. " + ex);
 | 
			
		||||
            responseMap.put("result", ex.getMessage());
 | 
			
		||||
            responseMap.put("processor", "N/A");
 | 
			
		||||
            responseMap.put("status", "ERR");
 | 
			
		||||
            responseMap.put("time", "N/A");
 | 
			
		||||
            requestJson = this.gson.fromJson(body, JsonObject.class);
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            JsonObject responseJson = new JsonObject();
 | 
			
		||||
            responseJson.addProperty("result", e.getMessage());
 | 
			
		||||
            responseJson.addProperty("processor", "N/A");
 | 
			
		||||
            responseJson.addProperty("status", "ERR");
 | 
			
		||||
            responseJson.addProperty("time", "N/A");
 | 
			
		||||
 | 
			
		||||
            response.status(400);
 | 
			
		||||
            response.body(mapper.writeValueAsString(responseMap));
 | 
			
		||||
            response.body(this.gson.toJson(responseJson));
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        String data = requestMap.get("data");
 | 
			
		||||
        String query = requestMap.get("process");
 | 
			
		||||
        String processor = requestMap.get("processor");
 | 
			
		||||
        String version = requestMap.get("version");
 | 
			
		||||
        String data = requestJson.get("data").getAsString();
 | 
			
		||||
        String query = requestJson.get("process").getAsString();
 | 
			
		||||
        String processor = requestJson.get("processor").getAsString();
 | 
			
		||||
        String version = requestJson.get("version").getAsString();
 | 
			
		||||
 | 
			
		||||
        if (processor == null) {
 | 
			
		||||
            response.body("saxon, xalan");
 | 
			
		||||
@@ -57,45 +55,61 @@ public class XsltController implements RestController {
 | 
			
		||||
        String tmp;
 | 
			
		||||
        long timeStart;
 | 
			
		||||
        long duration;
 | 
			
		||||
 | 
			
		||||
        JsonObject responseJson = new JsonObject();
 | 
			
		||||
        switch (processor) {
 | 
			
		||||
            case "saxon":
 | 
			
		||||
                timeStart = System.currentTimeMillis();
 | 
			
		||||
                try {
 | 
			
		||||
                    tmp = Saxon.processXSLT(data, query);
 | 
			
		||||
                    responseMap.put("result", tmp);
 | 
			
		||||
                    responseMap.put("status", "OK");
 | 
			
		||||
 | 
			
		||||
                    response.status(200);
 | 
			
		||||
 | 
			
		||||
                    responseJson.addProperty("result", tmp);
 | 
			
		||||
                    responseJson.addProperty("status", "OK");
 | 
			
		||||
                } catch (Exception ex) {
 | 
			
		||||
                    this.logger.error("Error on processing XSLT using Saxon. " + ex);
 | 
			
		||||
                    responseMap.put("result", ex.getMessage());
 | 
			
		||||
                    responseMap.put("status", "ERR");
 | 
			
		||||
 | 
			
		||||
                    response.status(400);
 | 
			
		||||
 | 
			
		||||
                    responseJson.addProperty("result", ex.getMessage());
 | 
			
		||||
                    responseJson.addProperty("status", "ERR");
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                duration = System.currentTimeMillis() - timeStart;
 | 
			
		||||
                this.logger.info("Request: " + body + " processed in " + duration + " ms.");
 | 
			
		||||
                responseMap.put("processor", "Saxon " + Saxon.getVersion() + " " + version);
 | 
			
		||||
                responseMap.put("time", Long.toString(duration));
 | 
			
		||||
                response.body(mapper.writeValueAsString(responseMap));
 | 
			
		||||
 | 
			
		||||
                responseJson.addProperty("processor", "Saxon " + Saxon.getVersion() + " " + version);
 | 
			
		||||
                responseJson.addProperty("time", duration);
 | 
			
		||||
 | 
			
		||||
                response.body(this.gson.toJson(responseJson));
 | 
			
		||||
                return;
 | 
			
		||||
 | 
			
		||||
            case "xalan":
 | 
			
		||||
                timeStart = System.currentTimeMillis();
 | 
			
		||||
                try {
 | 
			
		||||
                    tmp = Xalan.processXSLT(data, query);
 | 
			
		||||
                    responseMap.put("result", tmp);
 | 
			
		||||
                    responseMap.put("status", "OK");
 | 
			
		||||
 | 
			
		||||
                    response.status(200);
 | 
			
		||||
 | 
			
		||||
                    responseJson.addProperty("result", tmp);
 | 
			
		||||
                    responseJson.addProperty("status", "OK");
 | 
			
		||||
                } catch (Exception ex) {
 | 
			
		||||
                    this.logger.error("Error on processing XSLT using Xalan. " + ex);
 | 
			
		||||
                    responseMap.put("result", ex.getMessage());
 | 
			
		||||
                    responseMap.put("status", "ERR");
 | 
			
		||||
 | 
			
		||||
                    response.status(400);
 | 
			
		||||
 | 
			
		||||
                    responseJson.addProperty("result", ex.getMessage());
 | 
			
		||||
                    responseJson.addProperty("status", "ERR");
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                duration = System.currentTimeMillis() - timeStart;
 | 
			
		||||
                this.logger.info("Request: " + body + " processed in " + duration + " ms.");
 | 
			
		||||
                responseMap.put("processor", Xalan.getVersion());
 | 
			
		||||
                responseMap.put("time", Long.toString(duration));
 | 
			
		||||
                response.body(mapper.writeValueAsString(responseMap));
 | 
			
		||||
 | 
			
		||||
                responseJson.addProperty("processor", Xalan.getVersion());
 | 
			
		||||
                responseJson.addProperty("time", duration);
 | 
			
		||||
 | 
			
		||||
                response.body(this.gson.toJson(responseJson));
 | 
			
		||||
                return;
 | 
			
		||||
 | 
			
		||||
            default:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user