Froze Release11.2 (#177)

Co-authored-by: Adam Bem <adam.bem@zoho.eu>
Co-authored-by: Dariusz Augustyniak <augustyd@noreply.example.com>
Co-authored-by: Mikolaj Widla <widlam@noreply.example.com>
Reviewed-on: #177
This commit is contained in:
2023-05-09 15:02:44 +02:00
parent 59ffeb9363
commit 72d69f2967
31 changed files with 18292 additions and 3029 deletions

View File

@@ -194,6 +194,7 @@ public class MockController {
MockedMessageDto mockedMessageDto = klausService.getMockedResponse(clientUUID, mockedResponseId);
HttpHeaders httpHeaders = new HttpHeaders();
if (mockedMessageDto.getHttpHeaders() != null) mockedMessageDto.getHttpHeaders().forEach(httpHeaders::set);
httpHeaders.add("Content-Type", mockedMessageDto.getMediaType());
return new ResponseEntity<>(mockedMessageDto.getMessageBody(), httpHeaders,
Objects.requireNonNull(HttpStatus.valueOf(mockedMessageDto.getHttpStatus())));
}

View File

@@ -15,7 +15,7 @@
<div class="tool extended">
<div class="tool-context">
<div>
<h1>MockedServices <span class="version-span">v1.0.0</span></h1>
<h1>MockedServices</h1>
</div>
<div>
<label for="uuid-input" class="block-display">UUID</label>
@@ -309,9 +309,11 @@
<div>Unsaved data<i class="r-exclamation"></i></div>
<button>&times;</button>
</div>
<div class="body">You haven't saved your message! Any changes will be lost.<br>Do you want to continue?</div>
<div class="body">You haven't saved your message!<br> Do you want to save it?</div>
<div class="function">
<button>Yes</button>
<button type = "button" onclick = "updateData()" value = "Display">Save</button>
<button>No</button>
</div>
</div>

View File

@@ -155,6 +155,7 @@ function callMethodByName(methodObject){
}
}
function updateData(){
var updatedJson = generateJson();
const dataSaved = function () {

View File

@@ -32,12 +32,16 @@ public class SparkApplication {
.setPrettyPrinting()
.create();
Gson jsongson = new GsonBuilder()
.disableHtmlEscaping()
.create();
RestControllerRegistry registry = new RestControllerRegistry();
registry.registerController(new ProcessorInfoController(logger));
registry.registerController(new XsdController(gson, logger));
registry.registerController(new XPathController(gson, logger));
registry.registerController(new XsltController(gson, logger));
registry.registerController(new JsonController());
registry.registerController(new JsonController(gson, jsongson, logger));
registry.register();

View File

@@ -1,7 +1,7 @@
package com.r11.tools.controller;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
//import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import com.r11.tools.controller.internal.GlobalControllerManifest;
import com.r11.tools.controller.internal.HandlerType;
@@ -9,18 +9,22 @@ import com.r11.tools.controller.internal.RestController;
import com.r11.tools.controller.internal.ScopedControllerManifest;
import spark.Request;
import spark.Response;
import org.apache.logging.log4j.Logger;
@GlobalControllerManifest(path = "/json")
public class JsonController implements RestController {
private final Gson prettyGson = new GsonBuilder()
.disableHtmlEscaping()
.setPrettyPrinting()
.create();
private final Logger logger;
private final Gson gson = new GsonBuilder()
.disableHtmlEscaping()
.create();
private final Gson prettyGson;
private final Gson gson;
public JsonController(Gson prettyGson, Gson jsongson,Logger logger) {
this.logger = logger;
this.prettyGson = prettyGson;
this.gson = jsongson;
}
@ScopedControllerManifest(method = HandlerType.POST, path = "/formatting")
public void formatting(Request request, Response response) {
@@ -35,17 +39,20 @@ public class JsonController implements RestController {
responseJson.addProperty("data", this.prettyGson.toJson(requestJson));
responseJson.addProperty("time", System.currentTimeMillis() - startProcess);
response.body(this.prettyGson.toJson(responseJson));
} catch (Exception e) {
this.logger.error("Error on formatting Json " + e);
Throwable cause = e.getCause();
response.status(500);
response.status(400);
responseJson.addProperty("data", cause == null ? e.getMessage() : cause.getMessage());
responseJson.addProperty("time", System.currentTimeMillis() - startProcess);
}
this.logger.info("Json processed in " + responseJson.get("time").toString() + " ms.");
response.body(this.prettyGson.toJson(responseJson));
}
}
@ScopedControllerManifest(method = HandlerType.POST, path = "/minimize")
@@ -63,14 +70,16 @@ public class JsonController implements RestController {
response.body(this.gson.toJson(responseJson));
} catch (Exception e) {
this.logger.error("Error on minimizeing Json " + e);
Throwable cause = e.getCause();
response.status(500);
response.status(400);
responseJson.addProperty("data", cause == null ? e.getMessage() : cause.getMessage());
responseJson.addProperty("time", System.currentTimeMillis() - startProcess);
response.body(this.prettyGson.toJson(responseJson));
}
this.logger.info("Json processed in " + responseJson.get("time").toString() + " ms.");
}
}

View File

@@ -2,10 +2,7 @@ package com.r11.tools.controller;
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.controller.internal.*;
import com.r11.tools.xml.Saxon;
import com.r11.tools.xml.Xalan;
import org.apache.logging.log4j.Logger;
@@ -63,7 +60,7 @@ public class XPathController implements RestController {
timeStart = System.currentTimeMillis();
try {
tmp = Saxon.processXPath(data, query, version).trim();
tmp = Saxon.processXPath(data, query, version).getData().trim();
response.status(200);
@@ -92,12 +89,13 @@ public class XPathController implements RestController {
timeStart = System.currentTimeMillis();
try {
tmp = Xalan.processXPath(data, query).trim();
XPathQueryResult xPathQueryResult = Xalan.processXPath(data, query);
response.status(200);
responseJson.addProperty("result", tmp);
responseJson.addProperty("result", xPathQueryResult.getData().trim());
responseJson.addProperty("status", "OK");
responseJson.addProperty("type", xPathQueryResult.getType());
} catch (Exception ex) {
this.logger.error("Error on processing XPath using Xalan. " + ex);

View File

@@ -0,0 +1,22 @@
package com.r11.tools.controller.internal;
/**
* Class used to store data received from parser and type of that data (node, string, etc.)
*/
public class XPathQueryResult {
private String data;
private String type;
public XPathQueryResult(String data, String type) {
this.data = data;
this.type = type;
}
public String getData() {
return data;
}
public String getType() {
return type;
}
}

View File

@@ -1,5 +1,6 @@
package com.r11.tools.xml;
import com.r11.tools.controller.internal.XPathQueryResult;
import net.sf.saxon.s9api.*;
import javax.xml.transform.stream.StreamSource;
@@ -41,7 +42,7 @@ public class Saxon {
* @return string xml representation of the node
* @throws Exception thrown on node building errors or invalid xpath
*/
public static String processXPath(String data, String query, String version) throws Exception {
public static XPathQueryResult processXPath(String data, String query, String version) throws Exception {
Processor p = new Processor(false);
XPathCompiler compiler = p.newXPathCompiler();
DocumentBuilder builder = p.newDocumentBuilder();
@@ -61,7 +62,7 @@ public class Saxon {
sb.append(xdmItem);
sb.append('\n');
}
return sb.toString();
return new XPathQueryResult(sb.toString(), "N/A");
}

View File

@@ -1,5 +1,6 @@
package com.r11.tools.xml;
import com.r11.tools.controller.internal.XPathQueryResult;
import org.apache.xpath.XPathAPI;
import org.apache.xpath.objects.XObject;
import org.w3c.dom.Document;
@@ -64,7 +65,7 @@ public class Xalan {
* @return xml processed using given xpath
* @throws Exception thrown on node building errors or invalid xpath
*/
public static String processXPath(String data, String transform) throws Exception {
public static XPathQueryResult processXPath(String data, String transform) throws Exception {
// Set up a DOM tree to query.
InputSource in = new InputSource(new StringReader(data));
@@ -81,7 +82,7 @@ public class Xalan {
NodeIterator nl = XPathAPI.selectNodeIterator(doc, transform);
// Serialize the found nodes to result object.
StringBuilder result = new StringBuilder();
StringBuilder resultString = new StringBuilder();
Node n;
while ((n = nl.nextNode())!= null) {
StringBuilder sb;
@@ -90,18 +91,19 @@ public class Xalan {
// single XPath text node. Coalesce all contiguous text nodes
// at this level
for (Node nn = n.getNextSibling(); isTextNode(nn); nn = nn.getNextSibling()) {
result.append(nn.getNodeValue());
resultString.append(nn.getNodeValue());
}
} else {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
serializer.transform(new DOMSource(n), new StreamResult(new OutputStreamWriter(outputStream)));
result.append(outputStream);
resultString.append(outputStream);
}
result.append("\n");
resultString.append("\n");
}
return result.toString();
return new XPathQueryResult(resultString.toString(), "node");
} catch (TransformerException e) {
return XPathAPI.eval(doc, transform).toString();
String returnData = XPathAPI.eval(doc, transform).toString();
return new XPathQueryResult(data, "string");
}
}