Fix the names of Let to Servlet
Change-Id: Ib2f63f37ee9ef063930478028e3e05ca9dd4742c
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1486
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mblow@apache.org>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
index 95eb6fb..395365a 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
@@ -53,11 +53,12 @@
import org.apache.hyracks.api.client.IHyracksClientConnection;
import org.apache.hyracks.api.dataset.IHyracksDataset;
import org.apache.hyracks.client.dataset.HyracksDataset;
-import org.apache.hyracks.http.api.IServlet;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
import org.apache.hyracks.http.server.AbstractServlet;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
+import org.apache.hyracks.http.server.utils.HttpUtil.ContentType;
+import org.apache.hyracks.http.server.utils.HttpUtil.Encoding;
import io.netty.handler.codec.http.HttpMethod;
import io.netty.handler.codec.http.HttpResponseStatus;
@@ -111,7 +112,7 @@
String printJob = request.getParameter("print-job");
String executeQuery = request.getParameter("execute-query");
try {
- ServletUtils.setContentType(response, IServlet.ContentType.TEXT_HTML, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, ContentType.TEXT_HTML, Encoding.UTF8);
} catch (IOException e) {
LOGGER.log(Level.WARNING, "Failure setting content type", e);
response.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
@@ -162,7 +163,7 @@
if ("/".equals(requestURI)) {
try {
- ServletUtils.setContentType(response, IServlet.ContentType.TEXT_HTML, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.TEXT_HTML, HttpUtil.Encoding.UTF8);
} catch (IOException e) {
LOGGER.log(Level.WARNING, "Failure setting content type", e);
response.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
@@ -181,16 +182,16 @@
// Special handler for font files and .png resources
if (resourcePath.endsWith(".png")) {
BufferedImage img = ImageIO.read(is);
- ServletUtils.setContentType(response, IServlet.ContentType.IMG_PNG);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.IMG_PNG);
OutputStream outputStream = response.outputStream();
String formatName = "png";
ImageIO.write(img, formatName, outputStream);
outputStream.close();
return;
}
- String type = IServlet.ContentType.mime(QueryWebInterfaceServlet.extension(resourcePath));
- ServletUtils.setContentType(response, "".equals(type) ? IServlet.ContentType.TEXT_PLAIN : type,
- IServlet.Encoding.UTF8);
+ String type = HttpUtil.mime(QueryWebInterfaceServlet.extension(resourcePath));
+ HttpUtil.setContentType(response, "".equals(type) ? HttpUtil.ContentType.TEXT_PLAIN : type,
+ HttpUtil.Encoding.UTF8);
writeOutput(response, is, resourcePath);
} catch (IOException e) {
LOGGER.log(Level.WARNING, "Failure handling request", e);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ClusterApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ClusterApiServlet.java
index e93108d..71559b1 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ClusterApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ClusterApiServlet.java
@@ -32,11 +32,10 @@
import org.apache.asterix.common.config.ReplicationProperties;
import org.apache.asterix.common.utils.JSONUtil;
import org.apache.asterix.runtime.utils.ClusterStateManager;
-import org.apache.hyracks.http.api.IServlet;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
import org.apache.hyracks.http.server.AbstractServlet;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
@@ -67,7 +66,7 @@
}
protected void getUnsafe(IServletRequest request, IServletResponse response) throws IOException {
- ServletUtils.setContentType(response, IServlet.ContentType.APPLICATION_JSON, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.APPLICATION_JSON, HttpUtil.Encoding.UTF8);
PrintWriter responseWriter = response.writer();
try {
ObjectNode json;
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ClusterControllerDetailsApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ClusterControllerDetailsApiServlet.java
index 3d9167e..69f5db4 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ClusterControllerDetailsApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ClusterControllerDetailsApiServlet.java
@@ -27,10 +27,9 @@
import java.util.logging.Logger;
import org.apache.hyracks.api.client.IHyracksClientConnection;
-import org.apache.hyracks.http.api.IServlet;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -58,7 +57,7 @@
} else {
json = processNode(request, hcc);
}
- ServletUtils.setContentType(response, IServlet.ContentType.APPLICATION_JSON, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.APPLICATION_JSON, HttpUtil.Encoding.UTF8);
responseWriter.write(new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(json));
} catch (IllegalArgumentException e) { // NOSONAR - exception not logged or rethrown
response.setStatus(HttpResponseStatus.NOT_FOUND);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ConnectorApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ConnectorApiServlet.java
index 66064aa..a6c0783 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ConnectorApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ConnectorApiServlet.java
@@ -39,11 +39,10 @@
import org.apache.hyracks.api.client.IHyracksClientConnection;
import org.apache.hyracks.api.client.NodeControllerInfo;
import org.apache.hyracks.api.io.FileSplit;
-import org.apache.hyracks.http.api.IServlet;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
import org.apache.hyracks.http.server.AbstractServlet;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
@@ -73,7 +72,7 @@
}
response.setStatus(HttpResponseStatus.OK);
try {
- ServletUtils.setContentType(response, IServlet.ContentType.TEXT_HTML, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.TEXT_HTML, HttpUtil.Encoding.UTF8);
} catch (IOException e) {
LOGGER.log(Level.WARNING, "Failure setting content type", e);
response.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/DiagnosticsApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/DiagnosticsApiServlet.java
index 709db4b..4d6f641 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/DiagnosticsApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/DiagnosticsApiServlet.java
@@ -37,10 +37,9 @@
import org.apache.asterix.api.http.servlet.ServletConstants;
import org.apache.asterix.runtime.utils.AppContextInfo;
import org.apache.hyracks.api.client.IHyracksClientConnection;
-import org.apache.hyracks.http.api.IServlet;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
@@ -57,7 +56,7 @@
@Override
protected void getUnsafe(IServletRequest request, IServletResponse response) throws IOException {
- ServletUtils.setContentType(response, IServlet.ContentType.APPLICATION_JSON, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.APPLICATION_JSON, HttpUtil.Encoding.UTF8);
PrintWriter responseWriter = response.writer();
ObjectNode json;
ObjectMapper om = new ObjectMapper();
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/FeedServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/FeedServlet.java
index 7fe7370..7831674 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/FeedServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/FeedServlet.java
@@ -31,11 +31,10 @@
import javax.imageio.ImageIO;
-import org.apache.hyracks.http.api.IServlet;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
import org.apache.hyracks.http.server.AbstractServlet;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import io.netty.handler.codec.http.HttpResponseStatus;
@@ -54,7 +53,7 @@
String requestURI = request.getHttpRequest().uri();
if ("/".equals(requestURI)) {
- ServletUtils.setContentType(response, IServlet.ContentType.TEXT_HTML);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.TEXT_HTML);
resourcePath = "/feed/home.html";
} else {
resourcePath = requestURI;
@@ -72,12 +71,12 @@
BufferedImage img = ImageIO.read(is);
OutputStream outputStream = response.outputStream();
String formatName = "png";
- ServletUtils.setContentType(response, IServlet.ContentType.IMG_PNG);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.IMG_PNG);
ImageIO.write(img, formatName, outputStream);
return;
}
- ServletUtils.setContentType(response, IServlet.ContentType.TEXT_HTML, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.TEXT_HTML, HttpUtil.Encoding.UTF8);
InputStreamReader isr = new InputStreamReader(is);
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(isr);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NodeControllerDetailsApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NodeControllerDetailsApiServlet.java
index f6b80fc4..30718cf 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NodeControllerDetailsApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NodeControllerDetailsApiServlet.java
@@ -31,10 +31,9 @@
import org.apache.asterix.runtime.utils.ClusterStateManager;
import org.apache.hyracks.api.client.IHyracksClientConnection;
-import org.apache.hyracks.http.api.IServlet;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -67,7 +66,7 @@
} else {
json = processNode(request, hcc);
}
- ServletUtils.setContentType(response, IServlet.ContentType.APPLICATION_JSON, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.APPLICATION_JSON, HttpUtil.Encoding.UTF8);
responseWriter.write(om.writerWithDefaultPrettyPrinter().writeValueAsString(json));
} catch (IllegalStateException e) { // NOSONAR - exception not logged or rethrown
response.setStatus(HttpResponseStatus.SERVICE_UNAVAILABLE);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryResultApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryResultApiServlet.java
index 06ddf44..522fd29 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryResultApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryResultApiServlet.java
@@ -39,11 +39,10 @@
import org.apache.hyracks.api.dataset.ResultSetId;
import org.apache.hyracks.api.job.JobId;
import org.apache.hyracks.client.dataset.HyracksDataset;
-import org.apache.hyracks.http.api.IServlet;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
import org.apache.hyracks.http.server.AbstractServlet;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
@@ -68,7 +67,7 @@
response.setStatus(HttpResponseStatus.OK);
// TODO this seems wrong ...
try {
- ServletUtils.setContentType(response, IServlet.ContentType.TEXT_HTML, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.TEXT_HTML, HttpUtil.Encoding.UTF8);
} catch (IOException e) {
LOGGER.log(Level.WARNING, "Failure setting content type", e);
response.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
index 7cb492b..3c7a1a1 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
@@ -54,11 +54,10 @@
import org.apache.hyracks.api.client.IHyracksClientConnection;
import org.apache.hyracks.api.dataset.IHyracksDataset;
import org.apache.hyracks.client.dataset.HyracksDataset;
-import org.apache.hyracks.http.api.IServlet;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
import org.apache.hyracks.http.server.AbstractServlet;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
@@ -284,13 +283,13 @@
private static SessionConfig.OutputFormat getFormat(String format) {
if (format != null) {
- if (format.startsWith(IServlet.ContentType.CSV)) {
+ if (format.startsWith(HttpUtil.ContentType.CSV)) {
return SessionConfig.OutputFormat.CSV;
}
- if (format.equals(IServlet.ContentType.APPLICATION_ADM)) {
+ if (format.equals(HttpUtil.ContentType.APPLICATION_ADM)) {
return SessionConfig.OutputFormat.ADM;
}
- if (format.startsWith(IServlet.ContentType.APPLICATION_JSON)) {
+ if (format.startsWith(HttpUtil.ContentType.APPLICATION_JSON)) {
return Boolean.parseBoolean(getParameterValue(format, Attribute.LOSSLESS.str()))
? SessionConfig.OutputFormat.LOSSLESS_JSON : SessionConfig.OutputFormat.CLEAN_JSON;
}
@@ -374,10 +373,10 @@
private static void printType(PrintWriter pw, SessionConfig sessionConfig) {
switch (sessionConfig.fmt()) {
case ADM:
- printField(pw, ResultFields.TYPE.str(), IServlet.ContentType.APPLICATION_ADM);
+ printField(pw, ResultFields.TYPE.str(), HttpUtil.ContentType.APPLICATION_ADM);
break;
case CSV:
- String contentType = IServlet.ContentType.CSV + "; header="
+ String contentType = HttpUtil.ContentType.CSV + "; header="
+ (sessionConfig.is(SessionConfig.FORMAT_CSV_HEADER) ? "present" : "absent");
printField(pw, ResultFields.TYPE.str(), contentType);
break;
@@ -437,7 +436,7 @@
int sep = contentTypeParam.indexOf(';');
final String contentType = sep < 0 ? contentTypeParam.trim() : contentTypeParam.substring(0, sep).trim();
RequestParameters param = new RequestParameters();
- if (IServlet.ContentType.APPLICATION_JSON.equals(contentType)) {
+ if (HttpUtil.ContentType.APPLICATION_JSON.equals(contentType)) {
try {
JsonNode jsonRequest = new ObjectMapper().readTree(getRequestBody(request));
param.statement = jsonRequest.get(Parameter.STATEMENT.str()).asText();
@@ -485,7 +484,7 @@
ResultDelivery delivery = parseResultDelivery(param.mode);
SessionConfig sessionConfig = createSessionConfig(param, resultWriter);
- ServletUtils.setContentType(response, IServlet.ContentType.APPLICATION_JSON, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.APPLICATION_JSON, HttpUtil.Encoding.UTF8);
HttpResponseStatus status = HttpResponseStatus.OK;
Stats stats = new Stats();
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryStatusApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryStatusApiServlet.java
index 3d31616..075615e 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryStatusApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryStatusApiServlet.java
@@ -33,11 +33,10 @@
import org.apache.hyracks.api.dataset.ResultSetId;
import org.apache.hyracks.api.job.JobId;
import org.apache.hyracks.client.dataset.HyracksDataset;
-import org.apache.hyracks.http.api.IServlet;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
import org.apache.hyracks.http.server.AbstractServlet;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -61,7 +60,7 @@
}
response.setStatus(HttpResponseStatus.OK);
try {
- ServletUtils.setContentType(response, IServlet.ContentType.TEXT_HTML, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.TEXT_HTML, HttpUtil.Encoding.UTF8);
} catch (IOException e) {
LOGGER.log(Level.WARNING, "Failure setting content type", e);
response.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryWebInterfaceServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryWebInterfaceServlet.java
index 96df30f..8a41fc1 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryWebInterfaceServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryWebInterfaceServlet.java
@@ -29,11 +29,10 @@
import org.apache.asterix.common.config.ExternalProperties;
import org.apache.asterix.runtime.utils.AppContextInfo;
import org.apache.commons.io.IOUtils;
-import org.apache.hyracks.http.api.IServlet;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
import org.apache.hyracks.http.server.AbstractServlet;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -71,7 +70,7 @@
response.setStatus(HttpResponseStatus.OK);
if ("/".equals(requestURI)) {
- ServletUtils.setContentType(response, IServlet.ContentType.TEXT_HTML);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.TEXT_HTML);
resourcePath = "/queryui/queryui.html";
} else {
resourcePath = requestURI;
@@ -85,10 +84,10 @@
int i = resourcePath.lastIndexOf('.');
if (i >= 0) {
String extension = resourcePath.substring(i);
- String mime = IServlet.ContentType.mime(extension);
+ String mime = HttpUtil.mime(extension);
if (mime != null) {
OutputStream out = response.outputStream();
- ServletUtils.setContentType(response, mime);
+ HttpUtil.setContentType(response, mime);
try {
IOUtils.copy(is, out);
} catch (Exception e) {
@@ -107,7 +106,7 @@
}
private void doPost(IServletResponse response) throws IOException {
- ServletUtils.setContentType(response, IServlet.ContentType.APPLICATION_JSON, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.APPLICATION_JSON, HttpUtil.Encoding.UTF8);
ExternalProperties externalProperties = AppContextInfo.INSTANCE.getExternalProperties();
response.setStatus(HttpResponseStatus.OK);
ObjectMapper om = new ObjectMapper();
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/RestApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/RestApiServlet.java
index b069efe..d1ae95d 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/RestApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/RestApiServlet.java
@@ -49,11 +49,10 @@
import org.apache.hyracks.api.client.IHyracksClientConnection;
import org.apache.hyracks.api.dataset.IHyracksDataset;
import org.apache.hyracks.client.dataset.HyracksDataset;
-import org.apache.hyracks.http.api.IServlet;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
import org.apache.hyracks.http.server.AbstractServlet;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -85,7 +84,7 @@
* based on the Accept: header and other servlet parameters.
*/
static SessionConfig initResponse(IServletRequest request, IServletResponse response) throws IOException {
- ServletUtils.setContentType(response, IServlet.ContentType.TEXT_PLAIN, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.TEXT_PLAIN, HttpUtil.Encoding.UTF8);
// CLEAN_JSON output is the default; most generally useful for a
// programmatic HTTP API
OutputFormat format = OutputFormat.CLEAN_JSON;
@@ -135,20 +134,20 @@
// Now that format is set, output the content-type
switch (format) {
case ADM:
- ServletUtils.setContentType(response, "application/x-adm");
+ HttpUtil.setContentType(response, "application/x-adm");
break;
case CLEAN_JSON:
// No need to reflect "clean-ness" in output type; fall through
case LOSSLESS_JSON:
- ServletUtils.setContentType(response, "application/json");
+ HttpUtil.setContentType(response, "application/json");
break;
case CSV:
// Check for header parameter or in Accept:.
if ("present".equals(request.getParameter("header")) || accept.contains("header=present")) {
- ServletUtils.setContentType(response, "text/csv; header=present");
+ HttpUtil.setContentType(response, "text/csv; header=present");
sessionConfig.set(SessionConfig.FORMAT_CSV_HEADER, true);
} else {
- ServletUtils.setContentType(response, "text/csv; header=absent");
+ HttpUtil.setContentType(response, "text/csv; header=absent");
}
break;
default:
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ShutdownApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ShutdownApiServlet.java
index 5c569ed..d9dc424 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ShutdownApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ShutdownApiServlet.java
@@ -30,11 +30,10 @@
import org.apache.asterix.common.config.GlobalConfig;
import org.apache.asterix.runtime.utils.ClusterStateManager;
import org.apache.hyracks.api.client.IHyracksClientConnection;
-import org.apache.hyracks.http.api.IServlet;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
import org.apache.hyracks.http.server.AbstractServlet;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
@@ -71,7 +70,7 @@
}, "Shutdown Servlet Worker");
try {
- ServletUtils.setContentType(response, IServlet.ContentType.APPLICATION_JSON, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.APPLICATION_JSON, HttpUtil.Encoding.UTF8);
} catch (IOException e) {
LOGGER.log(Level.WARNING, "Failure handling request", e);
response.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/VersionApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/VersionApiServlet.java
index 1b2c2e6..62b85cd 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/VersionApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/VersionApiServlet.java
@@ -28,11 +28,10 @@
import java.util.logging.Logger;
import org.apache.asterix.runtime.utils.AppContextInfo;
-import org.apache.hyracks.http.api.IServlet;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
import org.apache.hyracks.http.server.AbstractServlet;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -62,7 +61,7 @@
responseObject.put(e.getKey(), e.getValue());
}
try {
- ServletUtils.setContentType(response, IServlet.ContentType.TEXT_PLAIN, IServlet.Encoding.UTF8);
+ HttpUtil.setContentType(response, HttpUtil.ContentType.TEXT_PLAIN, HttpUtil.Encoding.UTF8);
} catch (IOException e) {
LOGGER.log(Level.WARNING, "Failure handling request", e);
response.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplicationEntryPoint.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplicationEntryPoint.java
index 8ea4193..62eb250 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplicationEntryPoint.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplicationEntryPoint.java
@@ -53,7 +53,7 @@
import org.apache.asterix.common.config.MetadataProperties;
import org.apache.asterix.common.context.IStorageComponentProvider;
import org.apache.asterix.common.library.ILibraryManager;
-import org.apache.asterix.common.utils.LetUtil.Lets;
+import org.apache.asterix.common.utils.Servlets;
import org.apache.asterix.external.library.ExternalLibraryManager;
import org.apache.asterix.file.StorageComponentProvider;
import org.apache.asterix.messaging.CCMessageBroker;
@@ -163,7 +163,7 @@
externalProperties.getWebInterfacePort());
IHyracksClientConnection hcc = getNewHyracksClientConnection();
webServer.setAttribute(HYRACKS_CONNECTION_ATTR, hcc);
- webServer.addLet(new ApiServlet(webServer.ctx(), new String[] { "/*" },
+ webServer.addServlet(new ApiServlet(webServer.ctx(), new String[] { "/*" },
ccExtensionManager.getAqlCompilationProvider(), ccExtensionManager.getSqlppCompilationProvider(),
getStatementExecutorFactory(), componentProvider));
return webServer;
@@ -179,33 +179,33 @@
((ClusterControllerService) appCtx.getControllerService()).getExecutor());
// AQL rest APIs.
- addLet(jsonAPIServer, Lets.AQL_QUERY);
- addLet(jsonAPIServer, Lets.AQL_UPDATE);
- addLet(jsonAPIServer, Lets.AQL_DDL);
- addLet(jsonAPIServer, Lets.AQL);
+ addServlet(jsonAPIServer, Servlets.AQL_QUERY);
+ addServlet(jsonAPIServer, Servlets.AQL_UPDATE);
+ addServlet(jsonAPIServer, Servlets.AQL_DDL);
+ addServlet(jsonAPIServer, Servlets.AQL);
// SQL+x+ rest APIs.
- addLet(jsonAPIServer, Lets.SQLPP_QUERY);
- addLet(jsonAPIServer, Lets.SQLPP_UPDATE);
- addLet(jsonAPIServer, Lets.SQLPP_DDL);
- addLet(jsonAPIServer, Lets.SQLPP);
+ addServlet(jsonAPIServer, Servlets.SQLPP_QUERY);
+ addServlet(jsonAPIServer, Servlets.SQLPP_UPDATE);
+ addServlet(jsonAPIServer, Servlets.SQLPP_DDL);
+ addServlet(jsonAPIServer, Servlets.SQLPP);
// Other APIs.
- addLet(jsonAPIServer, Lets.QUERY_STATUS);
- addLet(jsonAPIServer, Lets.QUERY_RESULT);
- addLet(jsonAPIServer, Lets.QUERY_SERVICE);
- addLet(jsonAPIServer, Lets.CONNECTOR);
- addLet(jsonAPIServer, Lets.SHUTDOWN);
- addLet(jsonAPIServer, Lets.VERSION);
- addLet(jsonAPIServer, Lets.CLUSTER_STATE);
- addLet(jsonAPIServer, Lets.CLUSTER_STATE_NODE_DETAIL); // this must not precede add of CLUSTER_STATE
- addLet(jsonAPIServer, Lets.CLUSTER_STATE_CC_DETAIL); // this must not precede add of CLUSTER_STATE
- addLet(jsonAPIServer, Lets.DIAGNOSTICS);
+ addServlet(jsonAPIServer, Servlets.QUERY_STATUS);
+ addServlet(jsonAPIServer, Servlets.QUERY_RESULT);
+ addServlet(jsonAPIServer, Servlets.QUERY_SERVICE);
+ addServlet(jsonAPIServer, Servlets.CONNECTOR);
+ addServlet(jsonAPIServer, Servlets.SHUTDOWN);
+ addServlet(jsonAPIServer, Servlets.VERSION);
+ addServlet(jsonAPIServer, Servlets.CLUSTER_STATE);
+ addServlet(jsonAPIServer, Servlets.CLUSTER_STATE_NODE_DETAIL); // must not precede add of CLUSTER_STATE
+ addServlet(jsonAPIServer, Servlets.CLUSTER_STATE_CC_DETAIL); // must not precede add of CLUSTER_STATE
+ addServlet(jsonAPIServer, Servlets.DIAGNOSTICS);
return jsonAPIServer;
}
- protected void addLet(HttpServer server, Lets let) {
- server.addLet(createServlet(server, let, let.getPath()));
+ protected void addServlet(HttpServer server, String path) {
+ server.addServlet(createServlet(server, path, path));
}
protected HttpServer setupQueryWebServer(ExternalProperties externalProperties) throws Exception {
@@ -213,7 +213,7 @@
externalProperties.getQueryWebInterfacePort());
IHyracksClientConnection hcc = getNewHyracksClientConnection();
queryWebServer.setAttribute(HYRACKS_CONNECTION_ATTR, hcc);
- queryWebServer.addLet(new QueryWebInterfaceServlet(queryWebServer.ctx(), new String[] { "/*" }));
+ queryWebServer.addServlet(new QueryWebInterfaceServlet(queryWebServer.ctx(), new String[] { "/*" }));
return queryWebServer;
}
@@ -221,56 +221,56 @@
HttpServer feedServer = new HttpServer(webManager.getBosses(), webManager.getWorkers(),
externalProperties.getFeedServerPort());
feedServer.setAttribute(HYRACKS_CONNECTION_ATTR, getNewHyracksClientConnection());
- feedServer.addLet(new FeedServlet(feedServer.ctx(), new String[] { "/" }));
+ feedServer.addServlet(new FeedServlet(feedServer.ctx(), new String[] { "/" }));
return feedServer;
}
- protected IServlet createServlet(HttpServer server, Lets key, String... paths) {
+ protected IServlet createServlet(HttpServer server, String key, String... paths) {
switch (key) {
- case AQL:
+ case Servlets.AQL:
return new FullApiServlet(server.ctx(), paths, ccExtensionManager.getAqlCompilationProvider(),
getStatementExecutorFactory(), componentProvider);
- case AQL_QUERY:
+ case Servlets.AQL_QUERY:
return new QueryApiServlet(server.ctx(), paths, ccExtensionManager.getAqlCompilationProvider(),
getStatementExecutorFactory(), componentProvider);
- case AQL_UPDATE:
+ case Servlets.AQL_UPDATE:
return new UpdateApiServlet(server.ctx(), paths, ccExtensionManager.getAqlCompilationProvider(),
getStatementExecutorFactory(), componentProvider);
- case AQL_DDL:
+ case Servlets.AQL_DDL:
return new DdlApiServlet(server.ctx(), paths, ccExtensionManager.getAqlCompilationProvider(),
getStatementExecutorFactory(), componentProvider);
- case SQLPP:
+ case Servlets.SQLPP:
return new FullApiServlet(server.ctx(), paths, ccExtensionManager.getSqlppCompilationProvider(),
getStatementExecutorFactory(), componentProvider);
- case SQLPP_QUERY:
+ case Servlets.SQLPP_QUERY:
return new QueryApiServlet(server.ctx(), paths, ccExtensionManager.getSqlppCompilationProvider(),
getStatementExecutorFactory(), componentProvider);
- case SQLPP_UPDATE:
+ case Servlets.SQLPP_UPDATE:
return new UpdateApiServlet(server.ctx(), paths, ccExtensionManager.getSqlppCompilationProvider(),
getStatementExecutorFactory(), componentProvider);
- case SQLPP_DDL:
+ case Servlets.SQLPP_DDL:
return new DdlApiServlet(server.ctx(), paths, ccExtensionManager.getSqlppCompilationProvider(),
getStatementExecutorFactory(), componentProvider);
- case QUERY_STATUS:
+ case Servlets.QUERY_STATUS:
return new QueryStatusApiServlet(server.ctx(), paths);
- case QUERY_RESULT:
+ case Servlets.QUERY_RESULT:
return new QueryResultApiServlet(server.ctx(), paths);
- case QUERY_SERVICE:
+ case Servlets.QUERY_SERVICE:
return new QueryServiceServlet(server.ctx(), paths, ccExtensionManager.getSqlppCompilationProvider(),
getStatementExecutorFactory(), componentProvider);
- case CONNECTOR:
+ case Servlets.CONNECTOR:
return new ConnectorApiServlet(server.ctx(), paths);
- case SHUTDOWN:
+ case Servlets.SHUTDOWN:
return new ShutdownApiServlet(server.ctx(), paths);
- case VERSION:
+ case Servlets.VERSION:
return new VersionApiServlet(server.ctx(), paths);
- case CLUSTER_STATE:
+ case Servlets.CLUSTER_STATE:
return new ClusterApiServlet(server.ctx(), paths);
- case CLUSTER_STATE_NODE_DETAIL:
+ case Servlets.CLUSTER_STATE_NODE_DETAIL:
return new NodeControllerDetailsApiServlet(server.ctx(), paths);
- case CLUSTER_STATE_CC_DETAIL:
+ case Servlets.CLUSTER_STATE_CC_DETAIL:
return new ClusterControllerDetailsApiServlet(server.ctx(), paths);
- case DIAGNOSTICS:
+ case Servlets.DIAGNOSTICS:
return new DiagnosticsApiServlet(server.ctx(), paths);
default:
throw new IllegalStateException(String.valueOf(key));
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/LetUtil.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/LetUtil.java
deleted file mode 100644
index 2fe9380..0000000
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/LetUtil.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.asterix.common.utils;
-
-public class LetUtil {
-
- public enum Lets {
- AQL("/aql"),
- AQL_QUERY("/query"),
- AQL_UPDATE("/update"),
- AQL_DDL("/ddl"),
- SQLPP("/sqlpp"),
- SQLPP_QUERY("/query/sqlpp"),
- SQLPP_UPDATE("/update/sqlpp"),
- SQLPP_DDL("/ddl/sqlpp"),
- QUERY_STATUS("/query/status"),
- QUERY_RESULT("/query/result"),
- QUERY_SERVICE("/query/service"),
- CONNECTOR("/connector"),
- SHUTDOWN("/admin/shutdown"),
- VERSION("/admin/version"),
- CLUSTER_STATE("/admin/cluster/*"),
- CLUSTER_STATE_NODE_DETAIL("/admin/cluster/node/*"),
- CLUSTER_STATE_CC_DETAIL("/admin/cluster/cc/*"),
- DIAGNOSTICS("/admin/diagnostics");
-
- private final String path;
-
- Lets(String path) {
- this.path = path;
- }
-
- public String getPath() {
- return path;
- }
-
- }
-
- private LetUtil() {
- throw new AssertionError("No objects of this class should be created.");
- }
-}
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/Servlets.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/Servlets.java
new file mode 100644
index 0000000..5ffb334
--- /dev/null
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/Servlets.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.asterix.common.utils;
+
+public class Servlets {
+
+ public static final String AQL = "/aql";
+ public static final String AQL_QUERY = "/query";
+ public static final String AQL_UPDATE = "/update";
+ public static final String AQL_DDL = "/ddl";
+ public static final String SQLPP = "/sqlpp";
+ public static final String SQLPP_QUERY = "/query/sqlpp";
+ public static final String SQLPP_UPDATE = "/update/sqlpp";
+ public static final String SQLPP_DDL = "/ddl/sqlpp";
+ public static final String QUERY_STATUS = "/query/status";
+ public static final String QUERY_RESULT = "/query/result";
+ public static final String QUERY_SERVICE = "/query/service";
+ public static final String CONNECTOR = "/connector";
+ public static final String SHUTDOWN = "/admin/shutdown";
+ public static final String VERSION = "/admin/version";
+ public static final String CLUSTER_STATE = "/admin/cluster/*";
+ public static final String CLUSTER_STATE_NODE_DETAIL = "/admin/cluster/node/*";
+ public static final String CLUSTER_STATE_CC_DETAIL = "/admin/cluster/cc/*";
+ public static final String DIAGNOSTICS = "/admin/diagnostics";
+
+ private Servlets() {
+ }
+}
diff --git a/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/aql/TestExecutor.java b/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/aql/TestExecutor.java
index b5fbcf5..288a739 100644
--- a/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/aql/TestExecutor.java
+++ b/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/aql/TestExecutor.java
@@ -51,7 +51,7 @@
import java.util.regex.Pattern;
import org.apache.asterix.common.config.GlobalConfig;
-import org.apache.asterix.common.utils.LetUtil.Lets;
+import org.apache.asterix.common.utils.Servlets;
import org.apache.asterix.test.base.ComparisonException;
import org.apache.asterix.test.server.ITestServer;
import org.apache.asterix.test.server.TestServerProvider;
@@ -93,14 +93,15 @@
// see
// https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers/417184
private static final long MAX_URL_LENGTH = 2000l;
- private static final Pattern JAVA_BLOCK_COMMENT_PATTERN = Pattern.compile("/\\*.*\\*/",
- Pattern.MULTILINE | Pattern.DOTALL);
+ private static final Pattern JAVA_BLOCK_COMMENT_PATTERN =
+ Pattern.compile("/\\*.*\\*/", Pattern.MULTILINE | Pattern.DOTALL);
private static final Pattern JAVA_LINE_COMMENT_PATTERN = Pattern.compile("//.*$", Pattern.MULTILINE);
private static final Pattern SHELL_LINE_COMMENT_PATTERN = Pattern.compile("#.*$", Pattern.MULTILINE);
private static final Pattern REGEX_LINES_PATTERN = Pattern.compile("^(-)?/(.*)/([im]*)$");
- private static final Pattern POLL_TIMEOUT_PATTERN = Pattern.compile("polltimeoutsecs=(\\d+)(\\D|$)",
- Pattern.MULTILINE);
- private static final Pattern POLL_DELAY_PATTERN = Pattern.compile("polldelaysecs=(\\d+)(\\D|$)", Pattern.MULTILINE);
+ private static final Pattern POLL_TIMEOUT_PATTERN =
+ Pattern.compile("polltimeoutsecs=(\\d+)(\\D|$)", Pattern.MULTILINE);
+ private static final Pattern POLL_DELAY_PATTERN =
+ Pattern.compile("polldelaysecs=(\\d+)(\\D|$)", Pattern.MULTILINE);
private static final Pattern HANDLE_VARIABLE_PATTERN = Pattern.compile("handlevariable=(\\w+)");
private static final Pattern VARIABLE_REF_PATTERN = Pattern.compile("\\$(\\w+)");
@@ -150,10 +151,10 @@
public void runScriptAndCompareWithResult(File scriptFile, PrintWriter print, File expectedFile, File actualFile)
throws Exception {
System.err.println("Expected results file: " + expectedFile.toString());
- BufferedReader readerExpected = new BufferedReader(
- new InputStreamReader(new FileInputStream(expectedFile), "UTF-8"));
- BufferedReader readerActual = new BufferedReader(
- new InputStreamReader(new FileInputStream(actualFile), "UTF-8"));
+ BufferedReader readerExpected =
+ new BufferedReader(new InputStreamReader(new FileInputStream(expectedFile), "UTF-8"));
+ BufferedReader readerActual =
+ new BufferedReader(new InputStreamReader(new FileInputStream(actualFile), "UTF-8"));
boolean regex = false;
try {
if (actualFile.toString().endsWith(".regex")) {
@@ -332,10 +333,10 @@
throws Exception {
System.err.println("Expected results file: " + expectedFile.toString());
String lineExpected, lineActual;
- try (BufferedReader readerExpected = new BufferedReader(
- new InputStreamReader(new FileInputStream(expectedFile), "UTF-8"));
- BufferedReader readerActual = new BufferedReader(
- new InputStreamReader(new FileInputStream(actualFile), "UTF-8"))) {
+ try (BufferedReader readerExpected =
+ new BufferedReader(new InputStreamReader(new FileInputStream(expectedFile), "UTF-8"));
+ BufferedReader readerActual =
+ new BufferedReader(new InputStreamReader(new FileInputStream(actualFile), "UTF-8"))) {
StringBuilder actual = new StringBuilder();
while ((lineActual = readerActual.readLine()) != null) {
actual.append(lineActual).append('\n');
@@ -489,8 +490,8 @@
return params;
}
- private HttpUriRequest constructHttpMethod(String statement, URI uri, String stmtParam,
- boolean postStmtAsParam, List<CompilationUnit.Parameter> otherParams) throws URISyntaxException {
+ private HttpUriRequest constructHttpMethod(String statement, URI uri, String stmtParam, boolean postStmtAsParam,
+ List<CompilationUnit.Parameter> otherParams) throws URISyntaxException {
if (statement.length() + uri.toString().length() < MAX_URL_LENGTH) {
// Use GET for small-ish queries
return constructGetMethod(uri, injectStatement(statement, stmtParam, otherParams));
@@ -510,8 +511,7 @@
return builder.build();
}
- private HttpUriRequest constructGetMethod(URI endpoint, OutputFormat fmt,
- List<CompilationUnit.Parameter> params) {
+ private HttpUriRequest constructGetMethod(URI endpoint, OutputFormat fmt, List<CompilationUnit.Parameter> params) {
HttpUriRequest method = constructGetMethod(endpoint, params);
// Set accepted output response type
method.setHeader("Accept", fmt.mimeType());
@@ -527,8 +527,7 @@
return builder.build();
}
- private HttpUriRequest constructPostMethod(URI uri, OutputFormat fmt,
- List<CompilationUnit.Parameter> params) {
+ private HttpUriRequest constructPostMethod(URI uri, OutputFormat fmt, List<CompilationUnit.Parameter> params) {
HttpUriRequest method = constructPostMethod(uri, params);
// Set accepted output response type
method.setHeader("Accept", fmt.mimeType());
@@ -587,8 +586,8 @@
// Insert and Delete statements are executed here
public void executeUpdate(String str, URI uri) throws Exception {
// Create a method instance.
- HttpUriRequest request = RequestBuilder.post(uri).setEntity(new StringEntity(str, StandardCharsets.UTF_8))
- .build();
+ HttpUriRequest request =
+ RequestBuilder.post(uri).setEntity(new StringEntity(str, StandardCharsets.UTF_8)).build();
// Execute the method.
executeAndCheckHttpRequest(request);
@@ -598,10 +597,10 @@
public InputStream executeAnyAQLAsync(String statement, boolean defer, OutputFormat fmt, URI uri,
Map<String, Object> variableCtx) throws Exception {
// Create a method instance.
- HttpUriRequest request = RequestBuilder.post(uri)
- .addParameter("mode", defer ? "asynchronous-deferred" : "asynchronous")
- .setEntity(new StringEntity(statement, StandardCharsets.UTF_8)).setHeader("Accept", fmt.mimeType())
- .build();
+ HttpUriRequest request =
+ RequestBuilder.post(uri).addParameter("mode", defer ? "asynchronous-deferred" : "asynchronous")
+ .setEntity(new StringEntity(statement, StandardCharsets.UTF_8))
+ .setHeader("Accept", fmt.mimeType()).build();
String handleVar = getHandleVariable(statement);
@@ -624,8 +623,8 @@
// create function statement
public void executeDDL(String str, URI uri) throws Exception {
// Create a method instance.
- HttpUriRequest request = RequestBuilder.post(uri).setEntity(new StringEntity(str, StandardCharsets.UTF_8))
- .build();
+ HttpUriRequest request =
+ RequestBuilder.post(uri).setEntity(new StringEntity(str, StandardCharsets.UTF_8)).build();
// Execute the method.
executeAndCheckHttpRequest(request);
@@ -635,8 +634,8 @@
// and returns the contents as a string
// This string is later passed to REST API for execution.
public String readTestFile(File testFile) throws Exception {
- BufferedReader reader = new BufferedReader(
- new InputStreamReader(new FileInputStream(testFile), StandardCharsets.UTF_8));
+ BufferedReader reader =
+ new BufferedReader(new InputStreamReader(new FileInputStream(testFile), StandardCharsets.UTF_8));
String line;
StringBuilder stringBuilder = new StringBuilder();
String ls = System.getProperty("line.separator");
@@ -691,26 +690,26 @@
private static String getProcessOutput(Process p) throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- Future<Integer> future = Executors.newSingleThreadExecutor().submit(() -> IOUtils.copy(p.getInputStream(),
- new OutputStream() {
- @Override
- public void write(int b) throws IOException {
- baos.write(b);
- System.out.write(b);
- }
+ Future<Integer> future =
+ Executors.newSingleThreadExecutor().submit(() -> IOUtils.copy(p.getInputStream(), new OutputStream() {
+ @Override
+ public void write(int b) throws IOException {
+ baos.write(b);
+ System.out.write(b);
+ }
- @Override
- public void flush() throws IOException {
- baos.flush();
- System.out.flush();
- }
+ @Override
+ public void flush() throws IOException {
+ baos.flush();
+ System.out.flush();
+ }
- @Override
- public void close() throws IOException {
- baos.close();
- System.out.close();
- }
- }));
+ @Override
+ public void close() throws IOException {
+ baos.close();
+ System.out.close();
+ }
+ }));
p.waitFor();
future.get();
ByteArrayInputStream bisIn = new ByteArrayInputStream(baos.toByteArray());
@@ -722,10 +721,8 @@
StringBuffer stdOut = writerIn.getBuffer();
if (writerErr.getBuffer().length() > 0) {
StringBuilder sbErr = new StringBuilder();
- sbErr.append("script execution failed - error message:\n" +
- "-------------------------------------------\n" +
- "stdout: ").append(stdOut)
- .append("\nstderr: ").append(writerErr.getBuffer())
+ sbErr.append("script execution failed - error message:\n" + "-------------------------------------------\n"
+ + "stdout: ").append(stdOut).append("\nstderr: ").append(writerErr.getBuffer())
.append("-------------------------------------------");
LOGGER.info(sbErr.toString());
throw new Exception(sbErr.toString());
@@ -748,9 +745,10 @@
switch (ctx.getType()) {
case "ddl":
if (ctx.getFile().getName().endsWith("aql")) {
- executeDDL(statement, getEndpoint(Lets.AQL_DDL));
+ executeDDL(statement, getEndpoint(Servlets.AQL_DDL));
} else {
- InputStream resultStream = executeQueryService(statement, getEndpoint(Lets.QUERY_SERVICE));
+ InputStream resultStream =
+ executeQueryService(statement, getEndpoint(Servlets.QUERY_SERVICE));
ResultExtractor.extract(resultStream);
}
break;
@@ -760,9 +758,10 @@
statement = statement.replaceAll("nc1://", "127.0.0.1://../../../../../../asterix-app/");
}
if (ctx.getFile().getName().endsWith("aql")) {
- executeUpdate(statement, getEndpoint(Lets.AQL_UPDATE));
+ executeUpdate(statement, getEndpoint(Servlets.AQL_UPDATE));
} else {
- InputStream resultStream = executeQueryService(statement, getEndpoint(Lets.QUERY_SERVICE));
+ InputStream resultStream =
+ executeQueryService(statement, getEndpoint(Servlets.QUERY_SERVICE));
ResultExtractor.extract(resultStream);
}
break;
@@ -778,8 +777,8 @@
LOGGER.fine("polling for up to " + timeoutSecs + " seconds w/ " + retryDelaySecs + " second(s) delay");
while (true) {
try {
- executeTestFile(testCaseCtx, ctx, variableCtx, statement, isDmlRecoveryTest, pb, cUnit, queryCount,
- expectedResultFileCtxs, testFile, actualPath);
+ executeTestFile(testCaseCtx, ctx, variableCtx, statement, isDmlRecoveryTest, pb, cUnit,
+ queryCount, expectedResultFileCtxs, testFile, actualPath);
finalException = null;
break;
} catch (Exception e) {
@@ -812,15 +811,16 @@
final List<CompilationUnit.Parameter> params = cUnit.getParameter();
if (ctx.getFile().getName().endsWith("aql")) {
if (reqType.equalsIgnoreCase("query")) {
- resultStream = executeQuery(statement, fmt, getEndpoint(Lets.AQL_QUERY), params);
+ resultStream = executeQuery(statement, fmt, getEndpoint(Servlets.AQL_QUERY), params);
} else {
- final URI endpoint = getEndpoint(Lets.AQL);
+ final URI endpoint = getEndpoint(Servlets.AQL);
if (reqType.equalsIgnoreCase("async")) {
resultStream = executeAnyAQLAsync(statement, false, fmt, endpoint, variableCtx);
} else if (reqType.equalsIgnoreCase("deferred")) {
resultStream = executeAnyAQLAsync(statement, true, fmt, endpoint, variableCtx);
}
- Assert.assertNotNull("no handle for " + reqType + " test " + testFile.toString(), resultStream);
+ Assert.assertNotNull("no handle for " + reqType + " test " + testFile.toString(),
+ resultStream);
}
} else {
String delivery = DELIVERY_IMMEDIATE;
@@ -829,7 +829,7 @@
} else if (reqType.equalsIgnoreCase("deferred")) {
delivery = DELIVERY_DEFERRED;
}
- final URI uri = getEndpoint(Lets.QUERY_SERVICE);
+ final URI uri = getEndpoint(Servlets.QUERY_SERVICE);
if (DELIVERY_IMMEDIATE.equals(delivery)) {
resultStream = executeQueryService(statement, fmt, uri, params, true);
resultStream = ResultExtractor.extract(resultStream);
@@ -848,8 +848,8 @@
}
expectedResultFile = expectedResultFileCtxs.get(queryCount.intValue()).getFile();
- File actualResultFile = testCaseCtx.getActualResultFile(cUnit, expectedResultFile,
- new File(actualPath));
+ File actualResultFile =
+ testCaseCtx.getActualResultFile(cUnit, expectedResultFile, new File(actualPath));
writeOutputToFile(actualResultFile, resultStream);
runScriptAndCompareWithResult(testFile, new PrintWriter(System.err), expectedResultFile,
@@ -864,13 +864,13 @@
break;
case "txnqbc": // qbc represents query before crash
resultStream = executeQuery(statement, OutputFormat.forCompilationUnit(cUnit),
- getEndpoint(Lets.AQL_QUERY), cUnit.getParameter());
+ getEndpoint(Servlets.AQL_QUERY), cUnit.getParameter());
qbcFile = getTestCaseQueryBeforeCrashFile(actualPath, testCaseCtx, cUnit);
writeOutputToFile(qbcFile, resultStream);
break;
case "txnqar": // qar represents query after recovery
resultStream = executeQuery(statement, OutputFormat.forCompilationUnit(cUnit),
- getEndpoint(Lets.AQL_QUERY), cUnit.getParameter());
+ getEndpoint(Servlets.AQL_QUERY), cUnit.getParameter());
File qarFile = new File(actualPath + File.separator
+ testCaseCtx.getTestCase().getFilePath().replace(File.separator, "_") + "_" + cUnit.getName()
+ "_qar.adm");
@@ -880,7 +880,7 @@
break;
case "txneu": // eu represents erroneous update
try {
- executeUpdate(statement, getEndpoint(Lets.AQL_UPDATE));
+ executeUpdate(statement, getEndpoint(Servlets.AQL_UPDATE));
} catch (Exception e) {
// An exception is expected.
failed = true;
@@ -908,7 +908,7 @@
break;
case "errddl": // a ddlquery that expects error
try {
- executeDDL(statement, getEndpoint(Lets.AQL_DDL));
+ executeDDL(statement, getEndpoint(Servlets.AQL_DDL));
} catch (Exception e) {
// expected error happens
failed = true;
@@ -1007,7 +1007,7 @@
}
break;
case "lib": // expected format <dataverse-name> <library-name>
- // <library-directory>
+ // <library-directory>
// TODO: make this case work well with entity names containing spaces by
// looking for \"
lines = statement.split("\n");
@@ -1176,15 +1176,11 @@
private static File getTestCaseQueryBeforeCrashFile(String actualPath, TestCaseContext testCaseCtx,
CompilationUnit cUnit) {
return new File(
- actualPath + File.separator + testCaseCtx.getTestCase().getFilePath().replace(File.separator, "_") + "_"
- + cUnit.getName() + "_qbc.adm");
+ actualPath + File.separator + testCaseCtx.getTestCase().getFilePath().replace(File.separator, "_")
+ + "_" + cUnit.getName() + "_qbc.adm");
}
- protected String getPath(Lets servlet) {
- return servlet.getPath();
- }
-
- protected URI getEndpoint(Lets servlet) throws URISyntaxException {
+ protected URI getEndpoint(String servlet) throws URISyntaxException {
return new URI("http", null, host, port, getPath(servlet).replaceAll("/\\*$", ""), null, null);
}
@@ -1201,10 +1197,11 @@
try {
ArrayList<String> toBeDropped = new ArrayList<>();
InputStream resultStream = executeQueryService("select dv.DataverseName from Metadata.`Dataverse` as dv;",
- getEndpoint(Lets.QUERY_SERVICE));
+ getEndpoint(Servlets.QUERY_SERVICE));
String out = IOUtils.toString(resultStream);
ObjectMapper om = new ObjectMapper();
- om.setConfig(om.getDeserializationConfig().with(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT));
+ om.setConfig(
+ om.getDeserializationConfig().with(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT));
JsonNode result;
try {
result = om.readValue(out, ObjectNode.class).get("results");
@@ -1230,7 +1227,8 @@
dropStatement.append(dv);
dropStatement.append(";\n");
}
- resultStream = executeQueryService(dropStatement.toString(), getEndpoint(Lets.QUERY_SERVICE));
+ resultStream =
+ executeQueryService(dropStatement.toString(), getEndpoint(Servlets.QUERY_SERVICE));
ResultExtractor.extract(resultStream);
}
} catch (Throwable th) {
@@ -1239,4 +1237,9 @@
}
}
+ //This method is here to enable extension
+ protected String getPath(String servlet) {
+ return servlet;
+ }
+
}
diff --git a/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/server/RSSFeedServlet.java b/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/server/RSSFeedServlet.java
index 6d8e2f2..2cf47f9 100644
--- a/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/server/RSSFeedServlet.java
+++ b/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/server/RSSFeedServlet.java
@@ -31,7 +31,7 @@
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
import org.apache.hyracks.http.server.AbstractServlet;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import com.rometools.rome.feed.synd.SyndContent;
import com.rometools.rome.feed.synd.SyndContentImpl;
@@ -67,7 +67,7 @@
String feedType = req.getParameter(FEED_TYPE);
feedType = (feedType != null) ? feedType : defaultFeedType;
feed.setFeedType(feedType);
- ServletUtils.setContentType(res, MIME_TYPE);
+ HttpUtil.setContentType(res, MIME_TYPE);
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed, res.writer());
} catch (FeedException | ParseException ex) {
@@ -99,7 +99,7 @@
feed.setLink("http://rome.dev.java.net");
feed.setDescription("This feed has been created using ROME (Java syndication utilities");
- List<SyndEntry> entries = new ArrayList<SyndEntry>();
+ List<SyndEntry> entries = new ArrayList<>();
SyndEntry entry;
SyndContent description;
diff --git a/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/server/RSSTestServer.java b/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/server/RSSTestServer.java
index f40999b..6db7d6e 100644
--- a/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/server/RSSTestServer.java
+++ b/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/server/RSSTestServer.java
@@ -28,7 +28,7 @@
public RSSTestServer(int port) {
webManager = new WebManager();
HttpServer rssServer = new HttpServer(webManager.getBosses(), webManager.getWorkers(), port);
- rssServer.addLet(new RSSFeedServlet(null, new String[] { "/" }));
+ rssServer.addServlet(new RSSFeedServlet(null, new String[] { "/" }));
webManager.add(rssServer);
}
diff --git a/asterixdb/asterix-server/pom.xml b/asterixdb/asterix-server/pom.xml
index 7d74903..1e1e47b 100644
--- a/asterixdb/asterix-server/pom.xml
+++ b/asterixdb/asterix-server/pom.xml
@@ -535,11 +535,6 @@
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.asterix</groupId>
- <artifactId>asterix-common</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
diff --git a/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/SampleLocalClusterIT.java b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/SampleLocalClusterIT.java
index 175ecc4..7ac4669 100644
--- a/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/SampleLocalClusterIT.java
+++ b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/SampleLocalClusterIT.java
@@ -28,7 +28,7 @@
import java.net.URL;
import java.util.Collections;
-import org.apache.asterix.common.utils.LetUtil.Lets;
+import org.apache.asterix.common.utils.Servlets;
import org.apache.asterix.test.aql.TestExecutor;
import org.apache.asterix.test.base.TestMethodTracer;
import org.apache.asterix.test.common.TestHelper;
@@ -90,7 +90,7 @@
public void test1_sanityQuery() throws Exception {
TestExecutor testExecutor = new TestExecutor();
InputStream resultStream = testExecutor.executeQuery("1+1", OutputFormat.ADM,
- new URI("http", null, "127.0.0.1", 19002, Lets.AQL_QUERY.getPath(), null, null),
+ new URI("http", null, "127.0.0.1", 19002, Servlets.AQL_QUERY, null, null),
Collections.emptyList());
StringWriter sw = new StringWriter();
IOUtils.copy(resultStream, sw);
@@ -99,8 +99,8 @@
@Test
public void test2_stopCluster() throws Exception {
- Process process = new ProcessBuilder(joinPath(LOCAL_SAMPLES_DIR, "bin/stop-sample-cluster.sh"))
- .inheritIO().start();
+ Process process =
+ new ProcessBuilder(joinPath(LOCAL_SAMPLES_DIR, "bin/stop-sample-cluster.sh")).inheritIO().start();
Assert.assertEquals(0, process.waitFor());
try {
new URL("http://127.0.0.1:19002").openConnection().connect();
diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServlet.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServlet.java
index b079d36..157eef5 100644
--- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServlet.java
+++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServlet.java
@@ -21,60 +21,12 @@
import java.util.concurrent.ConcurrentMap;
/**
- * Represents a component that handles IServLet requests
+ * Represents a component that handles IServlet requests
*/
public interface IServlet {
- public class Encoding {
- public static final String UTF8 = "utf-8";
-
- private Encoding() {
- }
- }
-
- public class ContentType {
- public static final String APPLICATION_ADM = "application/x-adm";
- public static final String APPLICATION_JSON = "application/json";
- public static final String CSV = "text/csv";
- public static final String IMG_PNG = "image/png";
- public static final String TEXT_HTML = "text/html";
- public static final String TEXT_PLAIN = "text/plain";
-
- private ContentType() {
- }
-
- /**
- * Get the mime string representation from the extension
- * @param extension
- * @return
- */
- public static String mime(String extension) {
- switch (extension) {
- case ".png":
- return "image/png";
- case ".eot":
- return "application/vnd.ms-fontobject";
- case ".svg":
- return "image/svg+xml\t";
- case ".ttf":
- return "application/x-font-ttf";
- case ".woff":
- case ".woff2":
- return "application/x-font-woff";
- case ".html":
- return "text/html";
- case ".css":
- return "text/css";
- case ".js":
- return "application/javascript";
- default:
- return null;
- }
- }
- }
-
/**
- * @return an array of paths associated with this IServLet
+ * @return an array of paths associated with this IServlet
*/
String[] getPaths();
@@ -84,7 +36,8 @@
ConcurrentMap<String, Object> ctx();
/**
- * handle the IServLetRequest writing the response in the passed IServLetResponse
+ * handle the IServletRequest writing the response in the passed IServletResponse
+ *
* @param request
* @param response
*/
diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/GetRequest.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/GetRequest.java
index 8d308d3..e666c0a 100644
--- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/GetRequest.java
+++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/GetRequest.java
@@ -22,7 +22,7 @@
import java.util.Map;
import org.apache.hyracks.http.api.IServletRequest;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import io.netty.handler.codec.http.FullHttpRequest;
@@ -42,7 +42,7 @@
@Override
public String getParameter(CharSequence name) {
- return ServletUtils.getParameter(parameters, name);
+ return HttpUtil.getParameter(parameters, name);
}
@Override
diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
index 302e5f3..ad8ff41 100644
--- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
+++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
@@ -55,7 +55,7 @@
private final Object lock = new Object();
private final AtomicInteger threadId = new AtomicInteger();
private final ConcurrentMap<String, Object> ctx;
- private final List<IServlet> lets;
+ private final List<IServlet> servlets;
private final EventLoopGroup bossGroup;
private final EventLoopGroup workerGroup;
private final int port;
@@ -70,7 +70,7 @@
this.workerGroup = workerGroup;
this.port = port;
ctx = new ConcurrentHashMap<>();
- lets = new ArrayList<>();
+ servlets = new ArrayList<>();
executor = Executors.newFixedThreadPool(16,
runnable -> new Thread(runnable, "HttpExecutor(port:" + port + ")-" + threadId.getAndIncrement()));
}
@@ -166,22 +166,22 @@
return ctx;
}
- public void addLet(IServlet let) {
- lets.add(let);
+ public void addServlet(IServlet let) {
+ servlets.add(let);
}
protected void doStart() throws InterruptedException {
/*
- * This is a hacky way to ensure that ILets with more specific paths are checked first.
+ * This is a hacky way to ensure that IServlets with more specific paths are checked first.
* For example:
* "/path/to/resource/"
* is checked before
* "/path/to/"
* which in turn is checked before
* "/path/"
- * Note that it doesn't work for the case where multiple paths map to a single ILet
+ * Note that it doesn't work for the case where multiple paths map to a single IServlet
*/
- Collections.sort(lets, (l1, l2) -> l2.getPaths()[0].length() - l1.getPaths()[0].length());
+ Collections.sort(servlets, (l1, l2) -> l2.getPaths()[0].length() - l1.getPaths()[0].length());
ServerBootstrap b = new ServerBootstrap();
b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class)
.childOption(ChannelOption.WRITE_BUFFER_WATER_MARK,
@@ -201,7 +201,7 @@
if (i >= 0) {
uri = uri.substring(0, i);
}
- for (IServlet let : lets) {
+ for (IServlet let : servlets) {
for (String path : let.getPaths()) {
if (match(path, uri)) {
return let;
diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServerHandler.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServerHandler.java
index 2268c2c..e23ede4 100644
--- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServerHandler.java
+++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServerHandler.java
@@ -22,7 +22,7 @@
import java.util.logging.Logger;
import org.apache.hyracks.http.api.IServlet;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import io.netty.channel.ChannelFutureListener;
import io.netty.channel.ChannelHandlerContext;
@@ -71,7 +71,7 @@
new DefaultHttpResponse(request.protocolVersion(), HttpResponseStatus.METHOD_NOT_ALLOWED);
ctx.write(notAllowed).addListener(ChannelFutureListener.CLOSE);
} else {
- handler = new HttpRequestHandler(ctx, servlet, ServletUtils.toServletRequest(request), chunkSize);
+ handler = new HttpRequestHandler(ctx, servlet, HttpUtil.toServletRequest(request), chunkSize);
server.getExecutor().submit(handler);
}
} catch (Exception e) {
diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/PostRequest.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/PostRequest.java
index 338ef40..29cfd89 100644
--- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/PostRequest.java
+++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/PostRequest.java
@@ -22,7 +22,7 @@
import java.util.Map;
import org.apache.hyracks.http.api.IServletRequest;
-import org.apache.hyracks.http.server.util.ServletUtils;
+import org.apache.hyracks.http.server.utils.HttpUtil;
import io.netty.handler.codec.http.FullHttpRequest;
@@ -52,7 +52,7 @@
return values.get(i);
}
}
- return ServletUtils.getParameter(parameters, name);
+ return HttpUtil.getParameter(parameters, name);
}
@Override
diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/util/ServletUtils.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
similarity index 70%
rename from hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/util/ServletUtils.java
rename to hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
index 1ffab6d..aa9ebc5 100644
--- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/util/ServletUtils.java
+++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.hyracks.http.server.util;
+package org.apache.hyracks.http.server.utils;
import java.io.IOException;
import java.util.ArrayList;
@@ -40,10 +40,29 @@
import io.netty.handler.codec.http.multipart.InterfaceHttpData.HttpDataType;
import io.netty.handler.codec.http.multipart.MixedAttribute;
-public class ServletUtils {
- private static final Logger LOGGER = Logger.getLogger(ServletUtils.class.getName());
+public class HttpUtil {
+ private static final Logger LOGGER = Logger.getLogger(HttpUtil.class.getName());
- private ServletUtils() {
+ private HttpUtil() {
+ }
+
+ public static class Encoding {
+ public static final String UTF8 = "utf-8";
+
+ private Encoding() {
+ }
+ }
+
+ public static class ContentType {
+ public static final String APPLICATION_ADM = "application/x-adm";
+ public static final String APPLICATION_JSON = "application/json";
+ public static final String CSV = "text/csv";
+ public static final String IMG_PNG = "image/png";
+ public static final String TEXT_HTML = "text/html";
+ public static final String TEXT_PLAIN = "text/plain";
+
+ private ContentType() {
+ }
}
public static String getParameter(Map<String, List<String>> parameters, CharSequence name) {
@@ -94,7 +113,7 @@
}
public static IServletRequest toServletRequest(FullHttpRequest request) throws IOException {
- return request.method() == HttpMethod.GET ? ServletUtils.get(request) : ServletUtils.post(request);
+ return request.method() == HttpMethod.GET ? HttpUtil.get(request) : HttpUtil.post(request);
}
public static void setContentType(IServletResponse response, String type, String charset) throws IOException {
@@ -104,4 +123,34 @@
public static void setContentType(IServletResponse response, String type) throws IOException {
response.setHeader(HttpHeaderNames.CONTENT_TYPE, type);
}
+
+ /**
+ * Get the mime string representation from the extension
+ *
+ * @param extension
+ * @return
+ */
+ public static String mime(String extension) {
+ switch (extension) {
+ case ".png":
+ return "image/png";
+ case ".eot":
+ return "application/vnd.ms-fontobject";
+ case ".svg":
+ return "image/svg+xml\t";
+ case ".ttf":
+ return "application/x-font-ttf";
+ case ".woff":
+ case ".woff2":
+ return "application/x-font-woff";
+ case ".html":
+ return "text/html";
+ case ".css":
+ return "text/css";
+ case ".js":
+ return "application/javascript";
+ default:
+ return null;
+ }
+ }
}