Repository: avro
Updated Branches:
  refs/heads/master 9f3ceefda -> 3af404efb


AVRO-1213 Update to latest release of Jetty

Closes #244

Signed-off-by: sacharya <[email protected]>
Signed-off-by: Nandor Kollar <[email protected]>
Signed-off-by: Anna Szonyi <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/avro/repo
Commit: http://git-wip-us.apache.org/repos/asf/avro/commit/3af404ef
Tree: http://git-wip-us.apache.org/repos/asf/avro/tree/3af404ef
Diff: http://git-wip-us.apache.org/repos/asf/avro/diff/3af404ef

Branch: refs/heads/master
Commit: 3af404efb31a1dc2fd720384ef9a3f7326c2d303
Parents: 9f3ceef
Author: Daniel Kulp <[email protected]>
Authored: Fri Sep 8 13:18:33 2017 -0400
Committer: Nandor Kollar <[email protected]>
Committed: Fri Nov 17 10:12:32 2017 +0100

----------------------------------------------------------------------
 lang/java/ipc/pom.xml                           | 16 ++--
 .../java/org/apache/avro/ipc/HttpServer.java    | 82 +++++++++++++++-----
 .../apache/avro/ipc/stats/StaticServlet.java    | 17 ++--
 .../org/apache/avro/ipc/stats/StatsServer.java  | 14 ++--
 .../java/org/apache/avro/TestProtocolHttps.java | 30 +++----
 .../ipc/stats/TestStatsPluginAndServlet.java    |  2 -
 lang/java/pom.xml                               | 12 ++-
 7 files changed, 98 insertions(+), 75 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/avro/blob/3af404ef/lang/java/ipc/pom.xml
----------------------------------------------------------------------
diff --git a/lang/java/ipc/pom.xml b/lang/java/ipc/pom.xml
index 186967f..fbd44f0 100644
--- a/lang/java/ipc/pom.xml
+++ b/lang/java/ipc/pom.xml
@@ -40,7 +40,7 @@
       org.apache.avro*;version="${project.version}",
       org.jboss.netty*,
       javax.servlet*;resolution:=optional,
-      org.mortbay*;resolution:=optional,
+      org.eclipse*;resolution:=optional,
       org.apache.velocity*;resolution:=optional,
       *
     </osgi.import>
@@ -125,13 +125,12 @@
       <version>${jackson.version}</version>
     </dependency>
     <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jetty</artifactId>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jetty-util</artifactId>
-      <version>${jetty.version}</version>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-servlet</artifactId>
     </dependency>
     <dependency>
       <groupId>io.netty</groupId>
@@ -141,11 +140,6 @@
       <groupId>org.apache.velocity</groupId>
       <artifactId>velocity</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>servlet-api</artifactId>
-      <version>${jetty-servlet-api.version}</version>
-    </dependency>
 
   </dependencies>
 

http://git-wip-us.apache.org/repos/asf/avro/blob/3af404ef/lang/java/ipc/src/main/java/org/apache/avro/ipc/HttpServer.java
----------------------------------------------------------------------
diff --git a/lang/java/ipc/src/main/java/org/apache/avro/ipc/HttpServer.java 
b/lang/java/ipc/src/main/java/org/apache/avro/ipc/HttpServer.java
index be6bbb2..604b3ac 100644
--- a/lang/java/ipc/src/main/java/org/apache/avro/ipc/HttpServer.java
+++ b/lang/java/ipc/src/main/java/org/apache/avro/ipc/HttpServer.java
@@ -19,17 +19,21 @@
 package org.apache.avro.ipc;
 
 import java.io.IOException;
+import java.util.Arrays;
 
 import org.apache.avro.AvroRuntimeException;
-
-import org.mortbay.jetty.Connector;
-import org.mortbay.jetty.nio.SelectChannelConnector;
-import org.mortbay.jetty.servlet.Context;
-import org.mortbay.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.server.ConnectionFactory;
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.HttpConfiguration;
+import org.eclipse.jetty.server.HttpConnectionFactory;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.servlet.ServletHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
 
 /** An HTTP-based RPC {@link Server}. */
 public class HttpServer implements Server {
-  private org.mortbay.jetty.Server server;
+  private org.eclipse.jetty.server.Server server;
 
   /** Constructs a server to run on the named port. */
   public HttpServer(Responder responder, int port) throws IOException {
@@ -48,30 +52,68 @@ public class HttpServer implements Server {
 
   /** Constructs a server to run on the named port on the specified address. */
   public HttpServer(ResponderServlet servlet, String bindAddress, int port) 
throws IOException {
-    this.server = new org.mortbay.jetty.Server();
-    SelectChannelConnector connector = new SelectChannelConnector();
-    connector.setLowResourceMaxIdleTime(10000);
+    this.server = new org.eclipse.jetty.server.Server();
+    ServerConnector connector = new ServerConnector(this.server);
     connector.setAcceptQueueSize(128);
-    connector.setResolveNames(false);
-    connector.setUseDirectBuffers(false);
+    connector.setIdleTimeout(10000);
     if (bindAddress != null) {
       connector.setHost(bindAddress);
     }
     connector.setPort(port);
     server.addConnector(connector);
-    new Context(server, "/").addServlet(new ServletHolder(servlet), "/*");
+
+    ServletHandler handler = new ServletHandler();
+    handler.addServletWithMapping(new ServletHolder(servlet), "/*");
+    ServletContextHandler sch = new ServletContextHandler();
+    sch.setServletHandler(handler);
+    server.setHandler(sch);
   }
 
-  /** Constructs a server to run with the given connector. */
-  public HttpServer(Responder responder, Connector connector) throws 
IOException {
-    this(new ResponderServlet(responder), connector);
+  /** Constructs a server to run with the given ConnectionFactory on the given 
address/port. */
+  public HttpServer(Responder responder, ConnectionFactory connectionFactory, 
String bindAddress, int port) throws IOException {
+    this(new ResponderServlet(responder), connectionFactory, bindAddress, 
port);
   }
 
-  /** Constructs a server to run with the given connector. */
-  public HttpServer(ResponderServlet servlet, Connector connector) throws 
IOException {
-    this.server = new org.mortbay.jetty.Server();
+  /** Constructs a server to run with the given ConnectionFactory on the given 
address/port. */
+  public HttpServer(ResponderServlet servlet, ConnectionFactory 
connectionFactory, String bindAddress, int port) throws IOException {
+    this.server = new org.eclipse.jetty.server.Server();
+    HttpConfiguration httpConfig = new HttpConfiguration();
+    HttpConnectionFactory httpFactory = new HttpConnectionFactory(httpConfig);
+    ServerConnector connector = new ServerConnector(this.server, 
connectionFactory, httpFactory);
+    if (bindAddress != null) {
+      connector.setHost(bindAddress);
+    }
+    connector.setPort(port);
+
     server.addConnector(connector);
-    new Context(server, "/").addServlet(new ServletHolder(servlet), "/*");
+    ServletHandler handler = new ServletHandler();
+    server.setHandler(handler);
+    handler.addServletWithMapping(new ServletHolder(servlet), "/*");
+  }
+
+  /**
+   * Constructs a server to run with the given connector.
+   *
+   *  @deprecated - use the Constructors that take a ConnectionFactory
+   */
+  @Deprecated
+  public HttpServer(ResponderServlet servlet, Connector connector) throws 
IOException {
+    this.server = connector.getServer();
+    if (server.getConnectors().length == 0 || 
Arrays.asList(server.getConnectors()).contains(connector)) {
+      server.addConnector(connector);
+    }
+    ServletHandler handler = new ServletHandler();
+    server.setHandler(handler);
+    handler.addServletWithMapping(new ServletHolder(servlet), "/*");
+  }
+  /**
+   * Constructs a server to run with the given connector.
+   *
+   *  @deprecated - use the Constructors that take a ConnectionFactory
+   */
+  @Deprecated
+  public HttpServer(Responder responder, Connector connector) throws 
IOException {
+    this(new ResponderServlet(responder), connector);
   }
 
   public void addConnector(Connector connector) {
@@ -79,7 +121,7 @@ public class HttpServer implements Server {
   }
 
   @Override
-  public int getPort() { return server.getConnectors()[0].getLocalPort(); }
+  public int getPort() { return 
((ServerConnector)server.getConnectors()[0]).getLocalPort(); }
 
   @Override
   public void close() {

http://git-wip-us.apache.org/repos/asf/avro/blob/3af404ef/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StaticServlet.java
----------------------------------------------------------------------
diff --git 
a/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StaticServlet.java 
b/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StaticServlet.java
index 88a50f8..f7ee2f7 100644
--- a/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StaticServlet.java
+++ b/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StaticServlet.java
@@ -18,11 +18,10 @@
 
 package org.apache.avro.ipc.stats;
 
-import java.io.IOException;
 import java.net.URL;
 
-import org.mortbay.jetty.servlet.DefaultServlet;
-import org.mortbay.resource.Resource;
+import org.eclipse.jetty.servlet.DefaultServlet;
+import org.eclipse.jetty.util.resource.Resource;
 
 /**
  * Very simple servlet class capable of serving static files.
@@ -34,13 +33,9 @@ public class StaticServlet extends DefaultServlet {
     String[] parts = pathInContext.split("/");
     String filename =  parts[parts.length - 1];
 
-    try {
-      URL resource = getClass().getClassLoader().getResource(
-          "org/apache/avro/ipc/stats/static/" + filename);
-      if (resource == null) { return null; }
-      return Resource.newResource(resource);
-    } catch (IOException e) {
-      return null;
-    }
+    URL resource = getClass().getClassLoader().getResource(
+        "org/apache/avro/ipc/stats/static/" + filename);
+    if (resource == null) { return null; }
+    return Resource.newResource(resource);
   }
 }

http://git-wip-us.apache.org/repos/asf/avro/blob/3af404ef/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StatsServer.java
----------------------------------------------------------------------
diff --git 
a/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StatsServer.java 
b/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StatsServer.java
index 1b2e54b..0d85ac6 100644
--- a/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StatsServer.java
+++ b/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StatsServer.java
@@ -16,9 +16,9 @@ package org.apache.avro.ipc.stats;
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.servlet.Context;
-import org.mortbay.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.servlet.ServletHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
 
 /* This is a server that displays live information from a StatsPlugin.
  *
@@ -38,11 +38,11 @@ public class StatsServer {
     this.httpServer = new Server(port);
     this.plugin = plugin;
 
-    Context staticContext = new Context(httpServer, "/static");
-    staticContext.addServlet(new ServletHolder(new StaticServlet()), "/");
+    ServletHandler handler = new ServletHandler();
+    httpServer.setHandler(handler);
+    handler.addServletWithMapping(new ServletHolder(new StaticServlet()), "/");
 
-    Context context = new Context(httpServer, "/");
-    context.addServlet(new ServletHolder(new StatsServlet(plugin)), "/");
+    handler.addServletWithMapping(new ServletHolder(new StatsServlet(plugin)), 
"/");
 
     httpServer.start();
   }

http://git-wip-us.apache.org/repos/asf/avro/blob/3af404ef/lang/java/ipc/src/test/java/org/apache/avro/TestProtocolHttps.java
----------------------------------------------------------------------
diff --git a/lang/java/ipc/src/test/java/org/apache/avro/TestProtocolHttps.java 
b/lang/java/ipc/src/test/java/org/apache/avro/TestProtocolHttps.java
index f770dae..4f001a6 100644
--- a/lang/java/ipc/src/test/java/org/apache/avro/TestProtocolHttps.java
+++ b/lang/java/ipc/src/test/java/org/apache/avro/TestProtocolHttps.java
@@ -17,27 +17,17 @@
  */
 package org.apache.avro;
 
-import org.apache.avro.Schema;
-import org.apache.avro.Schema.Field;
 import org.apache.avro.ipc.Server;
 import org.apache.avro.ipc.Transceiver;
 import org.apache.avro.ipc.Responder;
 import org.apache.avro.ipc.HttpServer;
 import org.apache.avro.ipc.HttpTransceiver;
-import org.apache.avro.ipc.generic.GenericRequestor;
-import org.apache.avro.ipc.specific.SpecificRequestor;
-import org.apache.avro.generic.GenericData;
-import org.apache.avro.test.Simple;
+import org.eclipse.jetty.server.SslConnectionFactory;
+import org.eclipse.jetty.util.ssl.SslContextFactory;
 
-import org.junit.Test;
 
-import org.mortbay.jetty.security.SslSocketConnector;
 
 import java.net.URL;
-import java.net.ServerSocket;
-import java.net.SocketTimeoutException;
-import java.lang.reflect.UndeclaredThrowableException;
-import java.util.ArrayList;
 
 public class TestProtocolHttps extends TestProtocolSpecific {
 
@@ -48,14 +38,14 @@ public class TestProtocolHttps extends TestProtocolSpecific 
{
     System.setProperty("javax.net.ssl.password", "avrotest");
     System.setProperty("javax.net.ssl.trustStore", "src/test/truststore");
     System.setProperty("javax.net.ssl.trustStorePassword", "avrotest");
-    SslSocketConnector connector = new SslSocketConnector();
-    connector.setPort(18443);
-    connector.setKeystore(System.getProperty("javax.net.ssl.keyStore"));
-    connector.setPassword(System.getProperty("javax.net.ssl.password"));
-    
connector.setKeyPassword(System.getProperty("javax.net.ssl.keyStorePassword"));
-    connector.setHost("localhost");
-    connector.setNeedClientAuth(false);
-    return new HttpServer(testResponder, connector);
+    SslConnectionFactory connectionFactory = new 
SslConnectionFactory("HTTP/1.1");
+    SslContextFactory sslContextFactory = 
connectionFactory.getSslContextFactory();
+        
+    
sslContextFactory.setKeyStorePath(System.getProperty("javax.net.ssl.keyStore"));
+    
sslContextFactory.setKeyManagerPassword(System.getProperty("javax.net.ssl.password"));
+    
sslContextFactory.setKeyStorePassword(System.getProperty("javax.net.ssl.keyStorePassword"));
+    sslContextFactory.setNeedClientAuth(false);
+    return new HttpServer(testResponder, connectionFactory, "localhost", 
18443);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/avro/blob/3af404ef/lang/java/ipc/src/test/java/org/apache/avro/ipc/stats/TestStatsPluginAndServlet.java
----------------------------------------------------------------------
diff --git 
a/lang/java/ipc/src/test/java/org/apache/avro/ipc/stats/TestStatsPluginAndServlet.java
 
b/lang/java/ipc/src/test/java/org/apache/avro/ipc/stats/TestStatsPluginAndServlet.java
index c0f9664..6558b5e 100644
--- 
a/lang/java/ipc/src/test/java/org/apache/avro/ipc/stats/TestStatsPluginAndServlet.java
+++ 
b/lang/java/ipc/src/test/java/org/apache/avro/ipc/stats/TestStatsPluginAndServlet.java
@@ -42,7 +42,6 @@ import org.apache.avro.ipc.Transceiver;
 import org.apache.avro.ipc.generic.GenericRequestor;
 import org.apache.avro.ipc.generic.GenericResponder;
 import org.junit.Test;
-import org.mortbay.log.Log;
 
 public class TestStatsPluginAndServlet {
   Protocol protocol = Protocol.parse("" + "{\"protocol\": \"Minimal\", "
@@ -187,7 +186,6 @@ public class TestStatsPluginAndServlet {
         + "   \"request\": [{\"name\": \"millis\", \"type\": \"long\"}," +
           "{\"name\": \"data\", \"type\": \"bytes\"}], "
         + "   \"response\": \"null\"} } }");
-    Log.info("Using protocol: " + protocol.toString());
     Responder r = new SleepyResponder(protocol);
     StatsPlugin p = new StatsPlugin();
     r.addRPCPlugin(p);

http://git-wip-us.apache.org/repos/asf/avro/blob/3af404ef/lang/java/pom.xml
----------------------------------------------------------------------
diff --git a/lang/java/pom.xml b/lang/java/pom.xml
index 178897a..6e8e42a 100644
--- a/lang/java/pom.xml
+++ b/lang/java/pom.xml
@@ -40,8 +40,7 @@
 
     <hadoop2.version>2.7.3</hadoop2.version>
     <jackson.version>1.9.13</jackson.version>
-    <jetty.version>6.1.26</jetty.version>
-    <jetty-servlet-api.version>2.5-20081211</jetty-servlet-api.version>
+    <jetty.version>9.4.6.v20170531</jetty.version>
     <jopt-simple.version>5.0.3</jopt-simple.version>
     <junit.version>4.12</junit.version>
     <netty.version>3.10.6.Final</netty.version>
@@ -439,11 +438,16 @@
         <version>${velocity.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.mortbay.jetty</groupId>
-        <artifactId>jetty</artifactId>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-server</artifactId>
         <version>${jetty.version}</version>
       </dependency>
       <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-servlet</artifactId>
+          <version>${jetty.version}</version>
+      </dependency>
+      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty</artifactId>
         <version>${netty.version}</version>

Reply via email to