Update Jetty to Latest Released Version (9.3.11)
Change-Id: I387198865c8c44dc0d1aabe9a8eb06eb056f694b
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1048
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <tillw@apache.org>
diff --git a/asterixdb/asterix-app/pom.xml b/asterixdb/asterix-app/pom.xml
index be1c124..b06a03e 100644
--- a/asterixdb/asterix-app/pom.xml
+++ b/asterixdb/asterix-app/pom.xml
@@ -178,20 +178,20 @@
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
+ <artifactId>javax.servlet-api</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
- <version>8.0.0.RC0</version>
+ <version>9.3.11.v20160721</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
- <version>8.0.0.RC0</version>
+ <version>9.3.11.v20160721</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/asterixdb/asterix-external-data/pom.xml b/asterixdb/asterix-external-data/pom.xml
index a05af3d..d4fa801 100644
--- a/asterixdb/asterix-external-data/pom.xml
+++ b/asterixdb/asterix-external-data/pom.xml
@@ -183,7 +183,7 @@
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
+ <artifactId>javax.servlet-api</artifactId>
<type>jar</type>
</dependency>
<dependency>
diff --git a/asterixdb/pom.xml b/asterixdb/pom.xml
index 4fb3e37..3172cff 100644
--- a/asterixdb/pom.xml
+++ b/asterixdb/pom.xml
@@ -68,7 +68,7 @@
<hadoop.version>2.2.0</hadoop.version>
<junit.version>4.11</junit.version>
<commons.io.version>2.4</commons.io.version>
- <servlet.api.version>2.5</servlet.api.version>
+ <servlet.api.version>3.1.0</servlet.api.version>
<json.version>20090211</json.version>
<jacoco.version>0.7.6.201602180812</jacoco.version>
</properties>
@@ -262,6 +262,11 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>2.10</version>
+ </plugin>
</plugins>
<pluginManagement>
<plugins>
@@ -756,7 +761,7 @@
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
+ <artifactId>javax.servlet-api</artifactId>
<version>${servlet.api.version}</version>
<type>jar</type>
</dependency>
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/pom.xml b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/pom.xml
index 2b59165..26b4cb6 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/pom.xml
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/pom.xml
@@ -41,14 +41,14 @@
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
- <version>8.0.0.RC0</version>
+ <version>9.3.11.v20160721</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
- <version>8.0.0.RC0</version>
+ <version>9.3.11.v20160721</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/ApplicationInstallationHandler.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/ApplicationInstallationHandler.java
index aa15c38..75b7473 100755
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/ApplicationInstallationHandler.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/ApplicationInstallationHandler.java
@@ -31,12 +31,11 @@
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
-import org.eclipse.jetty.http.HttpMethods;
-import org.eclipse.jetty.server.Request;
-import org.eclipse.jetty.server.handler.AbstractHandler;
-
import org.apache.hyracks.control.cc.ClusterControllerService;
import org.apache.hyracks.control.common.work.SynchronizableWork;
+import org.eclipse.jetty.http.HttpMethod;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.handler.AbstractHandler;
public class ApplicationInstallationHandler extends AbstractHandler {
private ClusterControllerService ccs;
@@ -64,57 +63,64 @@
String rootDir = ccs.getServerContext().getBaseDir().toString();
final String deploymentDir = rootDir.endsWith(File.separator) ? rootDir + "applications/" + deployIdString
: rootDir + File.separator + "/applications/" + File.separator + deployIdString;
- if (HttpMethods.PUT.equals(request.getMethod())) {
- class OutputStreamGetter extends SynchronizableWork {
- private OutputStream os;
+ switch (HttpMethod.valueOf(request.getMethod())) {
+ case PUT: {
+ class OutputStreamGetter extends SynchronizableWork {
+ private OutputStream os;
- @Override
- protected void doRun() throws Exception {
- FileUtils.forceMkdir(new File(deploymentDir));
- String fileName = params[1];
- File jarFile = new File(deploymentDir, fileName);
- os = new FileOutputStream(jarFile);
+ @Override
+ protected void doRun() throws Exception {
+ FileUtils.forceMkdir(new File(deploymentDir));
+ String fileName = params[1];
+ File jarFile = new File(deploymentDir, fileName);
+ os = new FileOutputStream(jarFile);
+ }
}
- }
- OutputStreamGetter r = new OutputStreamGetter();
- try {
- ccs.getWorkQueue().scheduleAndSync(r);
- } catch (Exception e) {
- throw new IOException(e);
- }
- try {
- IOUtils.copyLarge(request.getInputStream(), r.os);
- } finally {
- r.os.close();
- }
- } else if (HttpMethods.GET.equals(request.getMethod())) {
- class InputStreamGetter extends SynchronizableWork {
- private InputStream is;
-
- @Override
- protected void doRun() throws Exception {
- String fileName = params[1];
- File jarFile = new File(deploymentDir, fileName);
- is = new FileInputStream(jarFile);
- }
- }
- InputStreamGetter r = new InputStreamGetter();
- try {
- ccs.getWorkQueue().scheduleAndSync(r);
- } catch (Exception e) {
- throw new IOException(e);
- }
- if (r.is == null) {
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
- } else {
- response.setContentType("application/octet-stream");
- response.setStatus(HttpServletResponse.SC_OK);
+ OutputStreamGetter r = new OutputStreamGetter();
try {
- IOUtils.copyLarge(r.is, response.getOutputStream());
- } finally {
- r.is.close();
+ ccs.getWorkQueue().scheduleAndSync(r);
+ } catch (Exception e) {
+ throw new IOException(e);
}
+ try {
+ IOUtils.copyLarge(request.getInputStream(), r.os);
+ } finally {
+ r.os.close();
+ }
+ break;
}
+ case GET: {
+ class InputStreamGetter extends SynchronizableWork {
+ private InputStream is;
+
+ @Override
+ protected void doRun() throws Exception {
+ String fileName = params[1];
+ File jarFile = new File(deploymentDir, fileName);
+ is = new FileInputStream(jarFile);
+ }
+ }
+ InputStreamGetter r = new InputStreamGetter();
+ try {
+ ccs.getWorkQueue().scheduleAndSync(r);
+ } catch (Exception e) {
+ throw new IOException(e);
+ }
+ if (r.is == null) {
+ response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+ } else {
+ response.setContentType("application/octet-stream");
+ response.setStatus(HttpServletResponse.SC_OK);
+ try {
+ IOUtils.copyLarge(r.is, response.getOutputStream());
+ } finally {
+ r.is.close();
+ }
+ }
+ break;
+ }
+ default:
+ throw new IllegalArgumentException(request.getMethod());
}
baseRequest.setHandled(true);
} catch (IOException e) {
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/WebServer.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/WebServer.java
index ac98b646..b55e65d 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/WebServer.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/WebServer.java
@@ -18,6 +18,11 @@
*/
package org.apache.hyracks.control.cc.web;
+import java.util.EnumSet;
+import java.util.logging.Logger;
+
+import javax.servlet.DispatcherType;
+
import org.apache.hyracks.control.cc.ClusterControllerService;
import org.apache.hyracks.control.cc.adminconsole.HyracksAdminConsoleApplication;
import org.apache.hyracks.control.cc.web.util.JSONOutputRequestHandler;
@@ -29,31 +34,27 @@
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.server.handler.HandlerCollection;
-import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.servlet.ServletContextHandler;
-import javax.servlet.DispatcherType;
-import java.util.EnumSet;
-import java.util.logging.Logger;
-
public class WebServer {
private final static Logger LOGGER = Logger.getLogger(WebServer.class.getName());
private final ClusterControllerService ccs;
private final Server server;
- private final SelectChannelConnector connector;
+ private final ServerConnector connector;
private final HandlerCollection handlerCollection;
public WebServer(ClusterControllerService ccs) throws Exception {
this.ccs = ccs;
server = new Server();
- connector = new SelectChannelConnector();
+ connector = new ServerConnector(server);
server.setConnectors(new Connector[] { connector });