diff --git a/hadoop-common-project/hadoop-common/pom.xml b/hadoop-common-project/hadoop-common/pom.xml
index 4391995d209..5f0302fd077 100644
--- a/hadoop-common-project/hadoop-common/pom.xml
+++ b/hadoop-common-project/hadoop-common/pom.xml
@@ -200,11 +200,6 @@
assertj-core
test
-
- org.glassfish.grizzly
- grizzly-http-servlet
- test
-
commons-beanutils
commons-beanutils
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/authentication/server/TestProxyUserAuthenticationFilter.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/authentication/server/TestProxyUserAuthenticationFilter.java
index 16c0e1eb112..978c15d8f2a 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/authentication/server/TestProxyUserAuthenticationFilter.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/authentication/server/TestProxyUserAuthenticationFilter.java
@@ -18,21 +18,27 @@
package org.apache.hadoop.security.authentication.server;
+import java.io.IOException;
+import java.io.PrintWriter;
import java.security.Principal;
+import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.Locale;
import java.util.Map;
import javax.servlet.FilterConfig;
import javax.servlet.FilterChain;
import javax.servlet.ServletContext;
+import javax.servlet.ServletOutputStream;
import javax.servlet.ServletResponse;
import javax.servlet.ServletRequest;
+import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import static org.assertj.core.api.Assertions.assertThat;
-import org.glassfish.grizzly.servlet.HttpServletResponseImpl;
import org.junit.Test;
import org.mockito.Mockito;
@@ -76,8 +82,192 @@ public class TestProxyUserAuthenticationFilter {
}
}
- private class HttpServletResponseForTest extends HttpServletResponseImpl {
+ private class HttpServletResponseForTest implements HttpServletResponse {
+ @Override
+ public void addCookie(Cookie cookie) {
+
+ }
+
+ @Override
+ public boolean containsHeader(String name) {
+ return false;
+ }
+
+ @Override
+ public String encodeURL(String url) {
+ return null;
+ }
+
+ @Override
+ public String encodeRedirectURL(String url) {
+ return null;
+ }
+
+ @Override
+ public String encodeUrl(String url) {
+ return null;
+ }
+
+ @Override
+ public String encodeRedirectUrl(String url) {
+ return null;
+ }
+
+ @Override
+ public void sendError(int sc, String msg) throws IOException {
+
+ }
+
+ @Override
+ public void sendError(int sc) throws IOException {
+
+ }
+
+ @Override
+ public void sendRedirect(String location) throws IOException {
+
+ }
+
+ @Override
+ public void setDateHeader(String name, long date) {
+
+ }
+
+ @Override
+ public void addDateHeader(String name, long date) {
+
+ }
+
+ @Override
+ public void setHeader(String name, String value) {
+
+ }
+
+ @Override
+ public void addHeader(String name, String value) {
+
+ }
+
+ @Override
+ public void setIntHeader(String name, int value) {
+
+ }
+
+ @Override
+ public void addIntHeader(String name, int value) {
+
+ }
+
+ @Override
+ public void setStatus(int sc) {
+
+ }
+
+ @Override
+ public void setStatus(int sc, String sm) {
+
+ }
+
+ @Override
+ public int getStatus() {
+ return 0;
+ }
+
+ @Override
+ public String getHeader(String name) {
+ return null;
+ }
+
+ @Override
+ public Collection getHeaders(String name) {
+ return null;
+ }
+
+ @Override
+ public Collection getHeaderNames() {
+ return null;
+ }
+
+ @Override
+ public String getCharacterEncoding() {
+ return null;
+ }
+
+ @Override
+ public String getContentType() {
+ return null;
+ }
+
+ @Override
+ public ServletOutputStream getOutputStream() throws IOException {
+ return null;
+ }
+
+ @Override
+ public PrintWriter getWriter() throws IOException {
+ return null;
+ }
+
+ @Override
+ public void setCharacterEncoding(String charset) {
+
+ }
+
+ @Override
+ public void setContentLength(int len) {
+
+ }
+
+ @Override
+ public void setContentLengthLong(long len) {
+
+ }
+
+ @Override
+ public void setContentType(String type) {
+
+ }
+
+ @Override
+ public void setBufferSize(int size) {
+
+ }
+
+ @Override
+ public int getBufferSize() {
+ return 0;
+ }
+
+ @Override
+ public void flushBuffer() throws IOException {
+
+ }
+
+ @Override
+ public void resetBuffer() {
+
+ }
+
+ @Override
+ public boolean isCommitted() {
+ return false;
+ }
+
+ @Override
+ public void reset() {
+
+ }
+
+ @Override
+ public void setLocale(Locale loc) {
+
+ }
+
+ @Override
+ public Locale getLocale() {
+ return null;
+ }
}
diff --git a/hadoop-project/pom.xml b/hadoop-project/pom.xml
index aada4e9b6de..73dc8eb2906 100644
--- a/hadoop-project/pom.xml
+++ b/hadoop-project/pom.xml
@@ -137,7 +137,6 @@
1.6.20
2.0.6.1
5.2.0
- 2.2.21
2.9.0
3.2.4
4.1.77.Final
@@ -1535,22 +1534,6 @@
${jersey.version}
-
- org.glassfish.grizzly
- grizzly-http-servlet
- ${grizzly.version}
-
-
- org.glassfish.grizzly
- grizzly-http
- ${grizzly.version}
-
-
- org.glassfish.grizzly
- grizzly-http-server
- ${grizzly.version}
-
-
${leveldbjni.group}
leveldbjni-all
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebFilter.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebFilter.java
index 266c638a898..4ef988422e8 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebFilter.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebFilter.java
@@ -27,14 +27,18 @@ import com.google.inject.Injector;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
+import java.util.Collection;
import java.util.HashMap;
+import java.util.Locale;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
+import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.hadoop.conf.Configuration;
@@ -46,7 +50,6 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService;
import org.apache.hadoop.yarn.server.nodemanager.NodeManager.NMContext;
import org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application;
-import org.glassfish.grizzly.servlet.HttpServletResponseImpl;
import org.junit.Test;
/**
@@ -126,7 +129,7 @@ public class TestNMWebFilter {
assertTrue(redirect.contains("start=10"));
}
- private class HttpServletResponseForTest extends HttpServletResponseImpl {
+ private class HttpServletResponseForTest implements HttpServletResponse {
String redirectLocation = "";
int status;
private String contentType;
@@ -142,34 +145,184 @@ public class TestNMWebFilter {
redirectLocation = location;
}
+ @Override
+ public void setDateHeader(String name, long date) {
+
+ }
+
+ @Override
+ public void addDateHeader(String name, long date) {
+
+ }
+
+ @Override
+ public void addCookie(Cookie cookie) {
+
+ }
+
+ @Override
+ public boolean containsHeader(String name) {
+ return false;
+ }
+
+ @Override
+ public String encodeURL(String url) {
+ return null;
+ }
+
@Override
public String encodeRedirectURL(String url) {
return url;
}
+ @Override
+ public String encodeUrl(String url) {
+ return null;
+ }
+
+ @Override
+ public String encodeRedirectUrl(String url) {
+ return null;
+ }
+
+ @Override
+ public void sendError(int sc, String msg) throws IOException {
+
+ }
+
+ @Override
+ public void sendError(int sc) throws IOException {
+
+ }
+
@Override
public void setStatus(int status) {
this.status = status;
}
+ @Override
+ public void setStatus(int sc, String sm) {
+
+ }
+
+ @Override
+ public int getStatus() {
+ return 0;
+ }
+
@Override
public void setContentType(String type) {
this.contentType = type;
}
+ @Override
+ public void setBufferSize(int size) {
+
+ }
+
+ @Override
+ public int getBufferSize() {
+ return 0;
+ }
+
+ @Override
+ public void flushBuffer() throws IOException {
+
+ }
+
+ @Override
+ public void resetBuffer() {
+
+ }
+
+ @Override
+ public boolean isCommitted() {
+ return false;
+ }
+
+ @Override
+ public void reset() {
+
+ }
+
+ @Override
+ public void setLocale(Locale loc) {
+
+ }
+
+ @Override
+ public Locale getLocale() {
+ return null;
+ }
+
@Override
public void setHeader(String name, String value) {
headers.put(name, value);
}
+ @Override
+ public void addHeader(String name, String value) {
+
+ }
+
+ @Override
+ public void setIntHeader(String name, int value) {
+
+ }
+
+ @Override
+ public void addIntHeader(String name, int value) {
+
+ }
+
public String getHeader(String name) {
return headers.get(name);
}
+ @Override
+ public Collection getHeaders(String name) {
+ return null;
+ }
+
+ @Override
+ public Collection getHeaderNames() {
+ return null;
+ }
+
+ @Override
+ public String getCharacterEncoding() {
+ return null;
+ }
+
+ @Override
+ public String getContentType() {
+ return null;
+ }
+
+ @Override
+ public ServletOutputStream getOutputStream() throws IOException {
+ return null;
+ }
+
@Override
public PrintWriter getWriter() throws IOException {
body = new StringWriter();
return new PrintWriter(body);
}
+
+ @Override
+ public void setCharacterEncoding(String charset) {
+
+ }
+
+ @Override
+ public void setContentLength(int len) {
+
+ }
+
+ @Override
+ public void setContentLengthLong(long len) {
+
+ }
}
}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/pom.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/pom.xml
index 0ba39653a5c..ec4fe86e7c2 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/pom.xml
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/pom.xml
@@ -150,12 +150,6 @@
test-jar
-
- org.glassfish.grizzly
- grizzly-http-servlet
- test
-
-
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/TestRouter.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/TestRouter.java
index d5501d74440..89438d72d0c 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/TestRouter.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/TestRouter.java
@@ -32,16 +32,21 @@ import org.apache.hadoop.yarn.webapp.WebApp;
import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.servlet.ServletHandler;
import org.eclipse.jetty.webapp.WebAppContext;
-import org.glassfish.grizzly.servlet.HttpServletResponseImpl;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.Mockito;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Collection;
import java.util.HashMap;
+import java.util.Locale;
import java.util.Map;
/**
@@ -180,20 +185,196 @@ public class TestRouter {
router.stop();
}
- private class HttpServletResponseForRouterTest extends HttpServletResponseImpl {
+ private class HttpServletResponseForRouterTest implements HttpServletResponse {
private final Map headers = new HashMap<>(1);
+
+ @Override
+ public void addCookie(Cookie cookie) {
+
+ }
+
+ @Override
+ public boolean containsHeader(String name) {
+ return false;
+ }
+
+ @Override
+ public String encodeURL(String url) {
+ return null;
+ }
+
+ @Override
+ public String encodeRedirectURL(String url) {
+ return null;
+ }
+
+ @Override
+ public String encodeUrl(String url) {
+ return null;
+ }
+
+ @Override
+ public String encodeRedirectUrl(String url) {
+ return null;
+ }
+
+ @Override
+ public void sendError(int sc, String msg) throws IOException {
+
+ }
+
+ @Override
+ public void sendError(int sc) throws IOException {
+
+ }
+
+ @Override
+ public void sendRedirect(String location) throws IOException {
+
+ }
+
+ @Override
+ public void setDateHeader(String name, long date) {
+
+ }
+
+ @Override
+ public void addDateHeader(String name, long date) {
+
+ }
+
@Override
public void setHeader(String name, String value) {
headers.put(name, value);
}
+ @Override
+ public void addHeader(String name, String value) {
+
+ }
+
+ @Override
+ public void setIntHeader(String name, int value) {
+
+ }
+
+ @Override
+ public void addIntHeader(String name, int value) {
+
+ }
+
+ @Override
+ public void setStatus(int sc) {
+
+ }
+
+ @Override
+ public void setStatus(int sc, String sm) {
+
+ }
+
+ @Override
+ public int getStatus() {
+ return 0;
+ }
+
public String getHeader(String name) {
return headers.get(name);
}
+ @Override
+ public Collection getHeaders(String name) {
+ return null;
+ }
+
+ @Override
+ public Collection getHeaderNames() {
+ return null;
+ }
+
public Map getHeaders() {
return headers;
}
+
+ @Override
+ public String getCharacterEncoding() {
+ return null;
+ }
+
+ @Override
+ public String getContentType() {
+ return null;
+ }
+
+ @Override
+ public ServletOutputStream getOutputStream() throws IOException {
+ return null;
+ }
+
+ @Override
+ public PrintWriter getWriter() throws IOException {
+ return null;
+ }
+
+ @Override
+ public void setCharacterEncoding(String charset) {
+
+ }
+
+ @Override
+ public void setContentLength(int len) {
+
+ }
+
+ @Override
+ public void setContentLengthLong(long len) {
+
+ }
+
+ @Override
+ public void setContentType(String type) {
+
+ }
+
+ @Override
+ public void setBufferSize(int size) {
+
+ }
+
+ @Override
+ public int getBufferSize() {
+ return 0;
+ }
+
+ @Override
+ public void flushBuffer() throws IOException {
+
+ }
+
+ @Override
+ public void resetBuffer() {
+
+ }
+
+ @Override
+ public boolean isCommitted() {
+ return false;
+ }
+
+ @Override
+ public void reset() {
+
+ }
+
+ @Override
+ public void setLocale(Locale loc) {
+
+ }
+
+ @Override
+ public Locale getLocale() {
+ return null;
+ }
}
}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/pom.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/pom.xml
index 9681dfa4c1d..15df5456810 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/pom.xml
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/pom.xml
@@ -99,11 +99,6 @@
jetty-server
-
- org.glassfish.grizzly
- grizzly-http-servlet
- test
-
org.junit.jupiter
junit-jupiter-api
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/test/java/org/apache/hadoop/yarn/server/webproxy/amfilter/TestAmFilter.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/test/java/org/apache/hadoop/yarn/server/webproxy/amfilter/TestAmFilter.java
index 07302e65276..f4827920335 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/test/java/org/apache/hadoop/yarn/server/webproxy/amfilter/TestAmFilter.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/test/java/org/apache/hadoop/yarn/server/webproxy/amfilter/TestAmFilter.java
@@ -22,10 +22,12 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.HttpURLConnection;
+import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -35,6 +37,7 @@ import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
@@ -46,7 +49,6 @@ import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
-import org.glassfish.grizzly.servlet.HttpServletResponseImpl;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Timeout;
import org.mockito.Mockito;
@@ -307,7 +309,7 @@ public class TestAmFilter {
}
- private class HttpServletResponseForTest extends HttpServletResponseImpl {
+ private class HttpServletResponseForTest implements HttpServletResponse {
String redirectLocation = "";
int status;
private String contentType;
@@ -324,35 +326,185 @@ public class TestAmFilter {
redirectLocation = location;
}
+ @Override
+ public void setDateHeader(String name, long date) {
+
+ }
+
+ @Override
+ public void addDateHeader(String name, long date) {
+
+ }
+
+ @Override
+ public void addCookie(Cookie cookie) {
+
+ }
+
+ @Override
+ public boolean containsHeader(String name) {
+ return false;
+ }
+
+ @Override
+ public String encodeURL(String url) {
+ return null;
+ }
+
@Override
public String encodeRedirectURL(String url) {
return url;
}
+ @Override
+ public String encodeUrl(String url) {
+ return null;
+ }
+
+ @Override
+ public String encodeRedirectUrl(String url) {
+ return null;
+ }
+
+ @Override
+ public void sendError(int sc, String msg) throws IOException {
+
+ }
+
+ @Override
+ public void sendError(int sc) throws IOException {
+
+ }
+
@Override
public void setStatus(int status) {
this.status = status;
}
+ @Override
+ public void setStatus(int sc, String sm) {
+
+ }
+
+ @Override
+ public int getStatus() {
+ return 0;
+ }
+
@Override
public void setContentType(String type) {
this.contentType = type;
}
+ @Override
+ public void setBufferSize(int size) {
+
+ }
+
+ @Override
+ public int getBufferSize() {
+ return 0;
+ }
+
+ @Override
+ public void flushBuffer() throws IOException {
+
+ }
+
+ @Override
+ public void resetBuffer() {
+
+ }
+
+ @Override
+ public boolean isCommitted() {
+ return false;
+ }
+
+ @Override
+ public void reset() {
+
+ }
+
+ @Override
+ public void setLocale(Locale loc) {
+
+ }
+
+ @Override
+ public Locale getLocale() {
+ return null;
+ }
+
@Override
public void setHeader(String name, String value) {
headers.put(name, value);
}
+ @Override
+ public void addHeader(String name, String value) {
+
+ }
+
+ @Override
+ public void setIntHeader(String name, int value) {
+
+ }
+
+ @Override
+ public void addIntHeader(String name, int value) {
+
+ }
+
public String getHeader(String name) {
return headers.get(name);
}
+ @Override
+ public Collection getHeaders(String name) {
+ return null;
+ }
+
+ @Override
+ public Collection getHeaderNames() {
+ return null;
+ }
+
+ @Override
+ public String getCharacterEncoding() {
+ return null;
+ }
+
+ @Override
+ public String getContentType() {
+ return null;
+ }
+
+ @Override
+ public ServletOutputStream getOutputStream() throws IOException {
+ return null;
+ }
+
@Override
public PrintWriter getWriter() throws IOException {
body = new StringWriter();
return new PrintWriter(body);
}
+
+ @Override
+ public void setCharacterEncoding(String charset) {
+
+ }
+
+ @Override
+ public void setContentLength(int len) {
+
+ }
+
+ @Override
+ public void setContentLengthLong(long len) {
+
+ }
}
diff --git a/pom.xml b/pom.xml
index 68d890a8b48..4e2887f1df4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -280,6 +280,14 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/x
org.codehaus.jackson.**
+
+ true
+ Use HttpServlet APIs instead
+
+ org.glassfish.grizzly
+ org.glassfish.grizzly.**
+
+