Merged all 'accept' methods

This commit is contained in:
2023-10-26 11:36:05 +02:00
parent 08f8e46650
commit c153e34e22

View File

@@ -30,78 +30,28 @@ public class XmlController implements RestController {
this.xalan = xalan;
}
@ScopedControllerManifest(method = HandlerType.POST, path = "/xpath")
public void acceptRequestXPath(Request request, Response response) {
XMLRequestBody requestBody;
try {
requestBody = this.gson.fromJson(request.body(), XMLRequestBody.class);
} catch (Exception ex) {
requestErrorResponse(response, ex);
return;
}
if (requestBody.getProcessor() == null) {
invalidEngineSelectedResponse(response);
return;
}
switch (requestBody.getProcessor()) {
case "saxon":
process(new XmlJob(response, requestBody, saxon, XmlJobType.XPath));
break;
case "xalan":
process(new XmlJob(response, requestBody, xalan, XmlJobType.XPath));
break;
default:
invalidEngineSelectedResponse(response);
}
acceptRequest(request, response, XmlJobType.XPath);
}
@ScopedControllerManifest(method = HandlerType.POST, path = "/xquery")
public void acceptRequestXQuery(Request request, Response response) {
XMLRequestBody requestBody;
try {
requestBody = this.gson.fromJson(request.body(), XMLRequestBody.class);
} catch (Exception ex) {
requestErrorResponse(response, ex);
return;
}
if (requestBody.getProcessor() == null) {
invalidEngineSelectedResponse(response);
return;
}
if (requestBody.getProcessor().equalsIgnoreCase("saxon"))
process(new XmlJob(response, requestBody, saxon, XmlJobType.XQuery));
else
invalidEngineSelectedResponse(response);
acceptRequest(request, response, XmlJobType.XQuery);
}
@ScopedControllerManifest(method = HandlerType.POST, path = "/xsd")
public void acceptRequestXsd(Request request, Response response) {
XMLRequestBody requestBody;
try {
requestBody = this.gson.fromJson(request.body(), XMLRequestBody.class);
} catch (Exception ex) {
requestErrorResponse(response, ex);
return;
}
if (requestBody.getProcessor() == null) {
invalidEngineSelectedResponse(response);
return;
}
if (requestBody.getProcessor().equalsIgnoreCase("xalan"))
process(new XmlJob(response, requestBody, xalan, XmlJobType.XSD));
else
invalidEngineSelectedResponse(response);
acceptRequest(request, response, XmlJobType.XSD);
}
@ScopedControllerManifest(method = HandlerType.POST, path = "/xslt")
public void acceptRequestXslt(Request request, Response response) {
acceptRequest(request, response, XmlJobType.XSLT);
}
public void acceptRequest(Request request, Response response, XmlJobType xmlJobType) {
XMLRequestBody requestBody;
try {
requestBody = this.gson.fromJson(request.body(), XMLRequestBody.class);
@@ -115,13 +65,13 @@ public class XmlController implements RestController {
return;
}
switch (requestBody.getProcessor()) {
switch (requestBody.getProcessor().toLowerCase()) {
case "saxon":
process(new XmlJob(response, requestBody, saxon, XmlJobType.XSLT));
process(new XmlJob(response, requestBody, saxon, xmlJobType));
return;
case "xalan":
process(new XmlJob(response, requestBody, xalan, XmlJobType.XSLT));
process(new XmlJob(response, requestBody, xalan, xmlJobType));
return;
default:
@@ -147,7 +97,7 @@ public class XmlController implements RestController {
") processed in " + duration + " ms.");
} catch (Exception ex) {
responseBody = processingErrorResponse(xmlJob.getResponse(), ex, xmlJob);
responseBody = processingErrorResponse(ex, xmlJob);
} finally {
xmlJob.getResponse().body(this.gson.toJson(responseBody));
@@ -197,9 +147,10 @@ public class XmlController implements RestController {
return new XMLResponseBody(result, "OK", requestBody.getVersion());
}
private XMLResponseBody processingErrorResponse(Response response, Exception ex, XmlJob xmlJob) {
private XMLResponseBody processingErrorResponse(Exception ex, XmlJob xmlJob) {
XmlEngine engine = xmlJob.getEngine();
XmlJobType xmlJobType = xmlJob.getXmlJobType();
Response response = xmlJob.getResponse();
XMLResponseBody responseBody = prepareErrorResponseBody(ex.getMessage(), engine.getVersion());