getHeaderNames();
/**
- * @see javax.servlet.http.HttpServletRequest#getHeader(String)
+ * @see jakarta.servlet.http.HttpServletRequest#getHeader(String)
* @param name the header name
* @return the header value
*/
String getHeader(String name);
/**
- * @see javax.servlet.http.HttpServletRequest#getScheme()
+ * @see jakarta.servlet.http.HttpServletRequest#getScheme()
* @return the request scheme
*/
String getScheme();
/**
- * @see javax.servlet.http.HttpServletRequest#getContentType()
+ * @see jakarta.servlet.http.HttpServletRequest#getContentType()
* @return the content type
*/
String getContentType();
/**
- * @see javax.servlet.http.HttpServletRequest#getContentLength()
+ * @see jakarta.servlet.http.HttpServletRequest#getContentLength()
* @return the content length
*/
int getContentLength();
/**
- * @see javax.servlet.http.HttpServletRequest#getMethod()
+ * @see jakarta.servlet.http.HttpServletRequest#getMethod()
* @return the request method
*/
String getMethod();
/**
- * @see javax.servlet.http.HttpServletRequest#getQueryString()
+ * @see jakarta.servlet.http.HttpServletRequest#getQueryString()
* @return the query string
*/
String getQueryString();
/**
- * @see javax.servlet.http.HttpServletRequest#getServerName()
+ * @see jakarta.servlet.http.HttpServletRequest#getServerName()
* @return the server name
*/
String getServerName();
/**
- * @see javax.servlet.http.HttpServletRequest#getServerPort()
+ * @see jakarta.servlet.http.HttpServletRequest#getServerPort()
* @return the server port
*/
int getServerPort();
/**
- * @see javax.servlet.ServletRequest#getRemoteHost()
+ * @see jakarta.servlet.ServletRequest#getRemoteHost()
* @return the remote host
*/
String getRemoteHost();
/**
- * @see javax.servlet.ServletRequest#getRemoteAddr()
+ * @see jakarta.servlet.ServletRequest#getRemoteAddr()
* @return the remote address
*/
String getRemoteAddr();
/**
- * @see javax.servlet.http.HttpServletRequest#getRemoteUser()
+ * @see jakarta.servlet.http.HttpServletRequest#getRemoteUser()
* @return the remote user
*/
String getRemoteUser();
diff --git a/src/main/java/org/jruby/rack/RackFilter.java b/src/main/java/org/jruby/rack/RackFilter.java
index 09cc21f96..73ffae88a 100644
--- a/src/main/java/org/jruby/rack/RackFilter.java
+++ b/src/main/java/org/jruby/rack/RackFilter.java
@@ -9,13 +9,13 @@
import java.io.IOException;
import java.net.MalformedURLException;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequestWrapper;
import org.jruby.rack.servlet.RequestCapture;
import org.jruby.rack.servlet.ResponseCapture;
import org.jruby.rack.servlet.ServletRackContext;
diff --git a/src/main/java/org/jruby/rack/RackResponseEnvironment.java b/src/main/java/org/jruby/rack/RackResponseEnvironment.java
index b5f14bc7a..c3a4c4a6c 100644
--- a/src/main/java/org/jruby/rack/RackResponseEnvironment.java
+++ b/src/main/java/org/jruby/rack/RackResponseEnvironment.java
@@ -16,8 +16,8 @@
* handle and return the Rack response) interface.
* It is likely to be (only) implemented as a HTTP servlet response.
*
- * @see javax.servlet.ServletResponse
- * @see javax.servlet.http.HttpServletResponse
+ * @see jakarta.servlet.ServletResponse
+ * @see jakarta.servlet.http.HttpServletResponse
* @see RackResponse
*
* @author nicksieger
@@ -26,30 +26,30 @@ public interface RackResponseEnvironment {
/**
* @return whether the underlying response has been committed.
- * @see javax.servlet.ServletResponse#isCommitted()
+ * @see jakarta.servlet.ServletResponse#isCommitted()
*/
boolean isCommitted();
/**
* Reset the response (buffer) so we can begin a new response.
- * @see javax.servlet.ServletResponse#reset()
+ * @see jakarta.servlet.ServletResponse#reset()
*/
void reset();
/**
- * @see javax.servlet.ServletResponse#setContentType(String)
+ * @see jakarta.servlet.ServletResponse#setContentType(String)
* @param type the content type
*/
void setContentType(String type) ;
/**
- * @see javax.servlet.ServletResponse#setContentLength(int)
+ * @see jakarta.servlet.ServletResponse#setContentLength(int)
* @param length the content length
*/
void setContentLength(int length) ;
/**
- * @see javax.servlet.ServletResponse#setCharacterEncoding(String)
+ * @see jakarta.servlet.ServletResponse#setCharacterEncoding(String)
* @param charset the charset
*/
void setCharacterEncoding(String charset) ;
@@ -106,13 +106,13 @@ public interface RackResponseEnvironment {
void sendError(int code) throws IOException;
/**
- * @see javax.servlet.ServletResponse#getOutputStream()
+ * @see jakarta.servlet.ServletResponse#getOutputStream()
* @return the output stream
*/
OutputStream getOutputStream() throws IOException;
/**
- * @see javax.servlet.ServletResponse#getWriter()
+ * @see jakarta.servlet.ServletResponse#getWriter()
* @return the writer
*/
PrintWriter getWriter() throws IOException;
diff --git a/src/main/java/org/jruby/rack/RackServlet.java b/src/main/java/org/jruby/rack/RackServlet.java
index e5bf49446..a67c78ff0 100644
--- a/src/main/java/org/jruby/rack/RackServlet.java
+++ b/src/main/java/org/jruby/rack/RackServlet.java
@@ -7,7 +7,7 @@
package org.jruby.rack;
-import javax.servlet.ServletConfig;
+import jakarta.servlet.ServletConfig;
@SuppressWarnings("serial")
public class RackServlet extends AbstractServlet {
diff --git a/src/main/java/org/jruby/rack/RackServletContextListener.java b/src/main/java/org/jruby/rack/RackServletContextListener.java
index 2fee50929..df470f5d0 100644
--- a/src/main/java/org/jruby/rack/RackServletContextListener.java
+++ b/src/main/java/org/jruby/rack/RackServletContextListener.java
@@ -7,10 +7,9 @@
package org.jruby.rack;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletContextEvent;
+import jakarta.servlet.ServletContextListener;
import org.jruby.rack.servlet.DefaultServletRackContext;
import org.jruby.rack.servlet.ServletRackConfig;
import org.jruby.rack.servlet.ServletRackContext;
diff --git a/src/main/java/org/jruby/rack/RackTag.java b/src/main/java/org/jruby/rack/RackTag.java
index 73b4d8e12..30ae25a1a 100644
--- a/src/main/java/org/jruby/rack/RackTag.java
+++ b/src/main/java/org/jruby/rack/RackTag.java
@@ -7,12 +7,11 @@
package org.jruby.rack;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.TagSupport;
-
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequestWrapper;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.tagext.TagSupport;
import org.jruby.rack.servlet.ServletRackEnvironment;
@SuppressWarnings("serial")
diff --git a/src/main/java/org/jruby/rack/UnmappedRackFilter.java b/src/main/java/org/jruby/rack/UnmappedRackFilter.java
index 0ad45a67e..fb5a74dcb 100644
--- a/src/main/java/org/jruby/rack/UnmappedRackFilter.java
+++ b/src/main/java/org/jruby/rack/UnmappedRackFilter.java
@@ -13,11 +13,11 @@
import java.util.Collections;
import java.util.Set;
import java.util.stream.Collectors;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletResponse;
import org.jruby.rack.servlet.RequestCapture;
import org.jruby.rack.servlet.ResponseCapture;
diff --git a/src/main/java/org/jruby/rack/embed/Servlet.java b/src/main/java/org/jruby/rack/embed/Servlet.java
index 699745370..1f0ad34c4 100644
--- a/src/main/java/org/jruby/rack/embed/Servlet.java
+++ b/src/main/java/org/jruby/rack/embed/Servlet.java
@@ -7,8 +7,7 @@
*/
package org.jruby.rack.embed;
-import javax.servlet.ServletConfig;
-
+import jakarta.servlet.ServletConfig;
import org.jruby.rack.AbstractServlet;
import org.jruby.rack.RackContext;
import org.jruby.rack.RackDispatcher;
diff --git a/src/main/java/org/jruby/rack/ext/Logger.java b/src/main/java/org/jruby/rack/ext/Logger.java
index 803bb32fe..27103e8ac 100644
--- a/src/main/java/org/jruby/rack/ext/Logger.java
+++ b/src/main/java/org/jruby/rack/ext/Logger.java
@@ -23,7 +23,6 @@
*/
package org.jruby.rack.ext;
-
import org.jruby.Ruby;
import org.jruby.RubyClass;
import org.jruby.RubyException;
diff --git a/src/main/java/org/jruby/rack/logging/ServletContextLogger.java b/src/main/java/org/jruby/rack/logging/ServletContextLogger.java
index 9ea6a3bcd..3c02b6686 100644
--- a/src/main/java/org/jruby/rack/logging/ServletContextLogger.java
+++ b/src/main/java/org/jruby/rack/logging/ServletContextLogger.java
@@ -7,8 +7,7 @@
*/
package org.jruby.rack.logging;
-import javax.servlet.ServletContext;
-
+import jakarta.servlet.ServletContext;
import org.jruby.rack.RackLogger;
public class ServletContextLogger extends RackLogger.Base {
diff --git a/src/main/java/org/jruby/rack/servlet/DefaultServletRackContext.java b/src/main/java/org/jruby/rack/servlet/DefaultServletRackContext.java
index 13fb2af5d..11a0914e7 100644
--- a/src/main/java/org/jruby/rack/servlet/DefaultServletRackContext.java
+++ b/src/main/java/org/jruby/rack/servlet/DefaultServletRackContext.java
@@ -16,17 +16,17 @@
import java.util.EventListener;
import java.util.Map;
import java.util.Set;
-import javax.servlet.Filter;
-import javax.servlet.FilterRegistration;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRegistration;
-import javax.servlet.SessionCookieConfig;
-import javax.servlet.SessionTrackingMode;
-import javax.servlet.descriptor.JspConfigDescriptor;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterRegistration;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRegistration;
+import jakarta.servlet.SessionCookieConfig;
+import jakarta.servlet.SessionTrackingMode;
+import jakarta.servlet.descriptor.JspConfigDescriptor;
import org.jruby.rack.RackApplicationFactory;
import org.jruby.rack.RackConfig;
import org.jruby.rack.RackLogger;
@@ -205,8 +205,6 @@ public void log(Exception e, String msg) {
logger.log(msg, e);
}
- // RackLogger
-
@Override
public boolean isEnabled(Level level) {
return logger.isEnabled(level);
diff --git a/src/main/java/org/jruby/rack/servlet/HttpUtils.java b/src/main/java/org/jruby/rack/servlet/HttpUtils.java
new file mode 100644
index 000000000..edd7ad713
--- /dev/null
+++ b/src/main/java/org/jruby/rack/servlet/HttpUtils.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 1997-2018 Oracle and/or its affiliates and others.
+ * All rights reserved.
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.jruby.rack.servlet;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+/**
+ * @deprecated As of Java(tm) Servlet API 2.3. These methods were only useful with the default encoding and have been
+ * moved to the request interfaces.
+ * @implNote Propagated to jruby-rack from old Javax Servlet API <= 4.0.
+ *
+ */
+@Deprecated
+public class HttpUtils {
+
+ private HttpUtils() {}
+
+ /**
+ * Parses a query string passed from the client to the server and builds a HashMap object with
+ * key-value pairs. The query string should be in the form of a string packaged by the GET or POST method, that is,
+ * it should have key-value pairs in the form key=value, with each pair separated from the next by a &
+ * character.
+ *
+ *
+ * A key can appear more than once in the query string with different values. However, the key appears only once in
+ * the HashMap, with its value being an array of strings containing the multiple values sent by the query string.
+ *
+ *
+ * The keys and values in the HashMap are stored in their decoded form, so any + characters are converted to
+ * spaces, and characters sent in hexadecimal notation (like %xx) are converted to ASCII characters.
+ *
+ * @param s a string containing the query to be parsed
+ *
+ * @return a Map object built from the parsed key-value pairs
+ *
+ * @exception IllegalArgumentException if the query string is invalid
+ */
+ public static Map parseQueryString(String s) {
+
+ String valArray[];
+
+ if (s == null) {
+ throw new IllegalArgumentException();
+ }
+
+ Map ht = new HashMap<>();
+ StringBuilder sb = new StringBuilder();
+ StringTokenizer st = new StringTokenizer(s, "&");
+ while (st.hasMoreTokens()) {
+ String pair = st.nextToken();
+ int pos = pair.indexOf('=');
+ if (pos == -1) {
+ // XXX
+ // should give more detail about the illegal argument
+ throw new IllegalArgumentException();
+ }
+ String key = parseName(pair.substring(0, pos), sb);
+ String val = parseName(pair.substring(pos + 1), sb);
+ if (ht.containsKey(key)) {
+ String oldVals[] = ht.get(key);
+ valArray = new String[oldVals.length + 1];
+ System.arraycopy(oldVals, 0, valArray, 0, oldVals.length);
+ valArray[oldVals.length] = val;
+ } else {
+ valArray = new String[1];
+ valArray[0] = val;
+ }
+ ht.put(key, valArray);
+ }
+
+ return ht;
+ }
+
+ /*
+ * Parse a name in the query string.
+ */
+ private static String parseName(String s, StringBuilder sb) {
+ sb.setLength(0);
+ for (int i = 0; i < s.length(); i++) {
+ char c = s.charAt(i);
+ switch (c) {
+ case '+':
+ sb.append(' ');
+ break;
+ case '%':
+ try {
+ sb.append((char) Integer.parseInt(s.substring(i + 1, i + 3), 16));
+ i += 2;
+ } catch (NumberFormatException e) {
+ // XXX
+ // need to be more specific about illegal arg
+ throw new IllegalArgumentException();
+ } catch (StringIndexOutOfBoundsException e) {
+ String rest = s.substring(i);
+ sb.append(rest);
+ if (rest.length() == 2)
+ i++;
+ }
+
+ break;
+ default:
+ sb.append(c);
+ break;
+ }
+ }
+
+ return sb.toString();
+ }
+
+}
diff --git a/src/main/java/org/jruby/rack/servlet/RequestCapture.java b/src/main/java/org/jruby/rack/servlet/RequestCapture.java
index 81f0e8354..4220af861 100644
--- a/src/main/java/org/jruby/rack/servlet/RequestCapture.java
+++ b/src/main/java/org/jruby/rack/servlet/RequestCapture.java
@@ -16,9 +16,10 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
-import javax.servlet.ServletInputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
+
+import jakarta.servlet.ServletInputStream;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequestWrapper;
/**
* Request wrapper passed to filter chain.
diff --git a/src/main/java/org/jruby/rack/servlet/ResponseCapture.java b/src/main/java/org/jruby/rack/servlet/ResponseCapture.java
index 31bfd7ba0..1b16a2b08 100644
--- a/src/main/java/org/jruby/rack/servlet/ResponseCapture.java
+++ b/src/main/java/org/jruby/rack/servlet/ResponseCapture.java
@@ -12,11 +12,12 @@
import java.io.PrintWriter;
import java.util.Collection;
import java.util.Collections;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.WriteListener;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
+
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.WriteListener;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponseWrapper;
/**
* Response wrapper passed to filter chain.
@@ -81,15 +82,6 @@ public void setStatus(int status) {
}
}
- @Override
- @Deprecated // Deprecated in API parent
- @SuppressWarnings("deprecation") // Deprecated in API parent
- public void setStatus(int status, String message) {
- if ( handleStatus(status, false) ) {
- super.setStatus(status, message);
- }
- }
-
@Override
public void sendError(int status) throws IOException {
if ( handleStatus(status, true) ) {
diff --git a/src/main/java/org/jruby/rack/servlet/RewindableInputStream.java b/src/main/java/org/jruby/rack/servlet/RewindableInputStream.java
index c20aa38d7..7367b7b83 100644
--- a/src/main/java/org/jruby/rack/servlet/RewindableInputStream.java
+++ b/src/main/java/org/jruby/rack/servlet/RewindableInputStream.java
@@ -12,8 +12,9 @@
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
-import javax.servlet.ReadListener;
-import javax.servlet.ServletInputStream;
+
+import jakarta.servlet.ReadListener;
+import jakarta.servlet.ServletInputStream;
/**
* Originally inspired by Kirk's RewindableInputStream ...
diff --git a/src/main/java/org/jruby/rack/servlet/ServletRackConfig.java b/src/main/java/org/jruby/rack/servlet/ServletRackConfig.java
index 3fa00530a..87a3e3776 100644
--- a/src/main/java/org/jruby/rack/servlet/ServletRackConfig.java
+++ b/src/main/java/org/jruby/rack/servlet/ServletRackConfig.java
@@ -7,8 +7,7 @@
package org.jruby.rack.servlet;
-import javax.servlet.ServletContext;
-
+import jakarta.servlet.ServletContext;
import org.jruby.rack.DefaultRackConfig;
import org.jruby.rack.RackLogger;
import org.jruby.rack.logging.ServletContextLogger;
diff --git a/src/main/java/org/jruby/rack/servlet/ServletRackContext.java b/src/main/java/org/jruby/rack/servlet/ServletRackContext.java
index bb67a3358..f9a39d288 100644
--- a/src/main/java/org/jruby/rack/servlet/ServletRackContext.java
+++ b/src/main/java/org/jruby/rack/servlet/ServletRackContext.java
@@ -7,8 +7,7 @@
package org.jruby.rack.servlet;
-import javax.servlet.ServletContext;
-
+import jakarta.servlet.ServletContext;
import org.jruby.rack.RackApplicationFactory;
import org.jruby.rack.RackContext;
diff --git a/src/main/java/org/jruby/rack/servlet/ServletRackEnvironment.java b/src/main/java/org/jruby/rack/servlet/ServletRackEnvironment.java
index c207515dc..288310a67 100644
--- a/src/main/java/org/jruby/rack/servlet/ServletRackEnvironment.java
+++ b/src/main/java/org/jruby/rack/servlet/ServletRackEnvironment.java
@@ -8,11 +8,11 @@
package org.jruby.rack.servlet;
import java.io.IOException;
-import javax.servlet.ServletInputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletInputStream;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequestWrapper;
+import jakarta.servlet.http.HttpServletResponse;
import org.jruby.rack.RackContext;
import org.jruby.rack.RackEnvironment;
diff --git a/src/main/java/org/jruby/rack/servlet/ServletRackIncludedResponse.java b/src/main/java/org/jruby/rack/servlet/ServletRackIncludedResponse.java
index 545de948e..b53cc67c6 100644
--- a/src/main/java/org/jruby/rack/servlet/ServletRackIncludedResponse.java
+++ b/src/main/java/org/jruby/rack/servlet/ServletRackIncludedResponse.java
@@ -13,11 +13,12 @@
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.ServletResponse;
-import javax.servlet.WriteListener;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
+
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.WriteListener;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponseWrapper;
/**
* Response wrapper used to buffer the output of a server-side include.
diff --git a/src/main/java/org/jruby/rack/servlet/ServletRackResponseEnvironment.java b/src/main/java/org/jruby/rack/servlet/ServletRackResponseEnvironment.java
index 93953cac6..a93481e20 100644
--- a/src/main/java/org/jruby/rack/servlet/ServletRackResponseEnvironment.java
+++ b/src/main/java/org/jruby/rack/servlet/ServletRackResponseEnvironment.java
@@ -7,9 +7,8 @@
package org.jruby.rack.servlet;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
-
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponseWrapper;
import org.jruby.rack.RackResponseEnvironment;
/**
diff --git a/src/main/ruby/jruby/rack/servlet_ext.rb b/src/main/ruby/jruby/rack/servlet_ext.rb
index 4df3b62e9..bb1e2e41d 100644
--- a/src/main/ruby/jruby/rack/servlet_ext.rb
+++ b/src/main/ruby/jruby/rack/servlet_ext.rb
@@ -9,7 +9,7 @@
# Ruby-friendly extensions to the Servlet API.
-module Java::JavaxServlet::ServletContext
+module Java::JakartaServlet::ServletContext
# Fetch an attribute from the servlet context.
def [](key)
getAttribute(key.to_s)
@@ -38,7 +38,7 @@ def each
end
end
-module Java::JavaxServlet::ServletRequest
+module Java::JakartaServlet::ServletRequest
# Fetch an attribute from the servlet request.
def [](key)
getAttribute(key.to_s)
@@ -67,7 +67,7 @@ def each
end
end
-module Java::JavaxServletHttp::HttpSession
+module Java::JakartaServletHttp::HttpSession
# Fetch an attribute from the session.
def [](key)
getAttribute(key.to_s)
diff --git a/src/main/ruby/jruby/rack/version.rb b/src/main/ruby/jruby/rack/version.rb
index d77aa9b63..f3f34c54f 100644
--- a/src/main/ruby/jruby/rack/version.rb
+++ b/src/main/ruby/jruby/rack/version.rb
@@ -8,6 +8,6 @@
module JRuby
module Rack
- VERSION = '1.3.0.SNAPSHOT'
+ VERSION = '2.0.0.SNAPSHOT'
end
end
diff --git a/src/main/ruby/rack/handler/servlet/default_env.rb b/src/main/ruby/rack/handler/servlet/default_env.rb
index 5c78ff13c..628a1db01 100644
--- a/src/main/ruby/rack/handler/servlet/default_env.rb
+++ b/src/main/ruby/rack/handler/servlet/default_env.rb
@@ -231,14 +231,14 @@ def load_variable(env, key)
def load_builtin(env, key)
case key
- when 'rack.version' then env[key] = ::Rack::RELEASE
- when 'rack.multithread' then env[key] = true
- when 'rack.multiprocess' then env[key] = false
- when 'rack.run_once' then env[key] = false
- when 'rack.hijack?' then env[key] = false
- when 'rack.input' then
+ when 'rack.version' then env[key] = ::Rack::RELEASE
+ when 'rack.multithread' then env[key] = true
+ when 'rack.multiprocess' then env[key] = false
+ when 'rack.run_once' then env[key] = false
+ when 'rack.hijack?' then env[key] = false
+ when 'rack.input' then
env[key] = @servlet_env ? JRuby::Rack::Input.new(@servlet_env) : nil
- when 'rack.errors' then context = rack_context
+ when 'rack.errors' then context = rack_context
env[key] = context ? JRuby::Rack::ErrorLog.new(context) : nil
when 'rack.url_scheme'
env[key] = scheme = @servlet_env ? @servlet_env.getScheme : nil
@@ -246,9 +246,9 @@ def load_builtin(env, key)
scheme
when 'java.servlet_request' then env[key] = servlet_request
when 'java.servlet_response' then env[key] = servlet_response
- when 'java.servlet_context' then env[key] = servlet_context
- when 'jruby.rack.context' then env[key] = rack_context
- when 'jruby.rack.version' then env[key] = JRuby::Rack::VERSION
+ when 'java.servlet_context' then env[key] = @servlet_env.servlet_context
+ when 'jruby.rack.context' then env[key] = rack_context
+ when 'jruby.rack.version' then env[key] = JRuby::Rack::VERSION
else
nil
end
@@ -274,20 +274,6 @@ def servlet_response
@servlet_env.respond_to?(:response) ? @servlet_env.response : @servlet_env
end
- def servlet_context
- if @servlet_env.respond_to?(:servlet_context) # @since Servlet 3.0
- @servlet_env.servlet_context # ServletRequest#getServletContext()
- else
- if @servlet_env.respond_to?(:context) &&
- @servlet_env.context.is_a?(javax.servlet.ServletContext)
- @servlet_env.context
- else
- JRuby::Rack.context ||
- ( servlet_request ? servlet_request.servlet_context : nil )
- end
- end
- end
-
TRANSIENT_KEYS = [ 'rack.input', 'rack.errors',
'java.servlet_request', 'java.servlet_response',
'java.servlet_context', 'jruby.rack.context'
diff --git a/src/main/ruby/rack/handler/servlet/servlet_env.rb b/src/main/ruby/rack/handler/servlet/servlet_env.rb
index 4fd358054..2e37a2299 100644
--- a/src/main/ruby/rack/handler/servlet/servlet_env.rb
+++ b/src/main/ruby/rack/handler/servlet/servlet_env.rb
@@ -52,7 +52,7 @@ def load_env_key(env, key)
POST_PARAM_METHODS = [ 'POST', 'PUT', 'DELETE' ].freeze
# Load parameters into the (Rack) env from the Servlet API.
- # using javax.servlet.http.HttpServletRequest#getParameterMap
+ # using Java::JakartaServletHttp::HttpServletRequest#getParameterMap
def load_parameters
get_only = ! POST_PARAM_METHODS.include?( @servlet_env.getMethod )
# we only need to really do this for POSTs but we'll handle all
@@ -147,7 +147,7 @@ def store_parameter(key, val, hash)
COOKIE_HASH = "rack.request.cookie_hash".freeze
# Load cookies into the (Rack) env from the Servlet API.
- # using javax.servlet.http.HttpServletRequest#getCookies
+ # using Java::JakartaServletHttp::HttpServletRequest#getCookies
def load_cookies
cookie_hash = {}
(@servlet_env.getCookies || []).each do |cookie|
@@ -178,7 +178,7 @@ def query_values(key)
end
def parse_query_string
- Java::JavaxServletHttp::HttpUtils.parseQueryString(query_string)
+ Java::OrgJrubyRackServlet::HttpUtils.parseQueryString(query_string)
end
def mark_parameter_error(msg)
diff --git a/src/spec/java/org/jruby/rack/fake/FakeJspWriter.java b/src/spec/java/org/jruby/rack/fake/FakeJspWriter.java
index b8f7a96b3..f32fac9eb 100644
--- a/src/spec/java/org/jruby/rack/fake/FakeJspWriter.java
+++ b/src/spec/java/org/jruby/rack/fake/FakeJspWriter.java
@@ -8,7 +8,8 @@
package org.jruby.rack.fake;
import java.io.IOException;
-import javax.servlet.jsp.JspWriter;
+
+import jakarta.servlet.jsp.JspWriter;
/**
* Currently only used as a mock for testing.
diff --git a/src/spec/java/org/jruby/rack/fake/FakePageContext.java b/src/spec/java/org/jruby/rack/fake/FakePageContext.java
index aceb30439..c0d0fb5df 100644
--- a/src/spec/java/org/jruby/rack/fake/FakePageContext.java
+++ b/src/spec/java/org/jruby/rack/fake/FakePageContext.java
@@ -7,22 +7,21 @@
package org.jruby.rack.fake;
-import java.io.IOException;
import java.util.Enumeration;
-import javax.el.ELContext;
-import javax.servlet.Servlet;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.el.ExpressionEvaluator;
-import javax.servlet.jsp.el.VariableResolver;
+
+import jakarta.el.ELContext;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
+import jakarta.servlet.jsp.JspWriter;
+import jakarta.servlet.jsp.PageContext;
+import jakarta.servlet.jsp.el.ExpressionEvaluator;
+import jakarta.servlet.jsp.el.VariableResolver;
/**
* Currently only used as a mock for testing.
diff --git a/src/spec/java/org/jruby/rack/mock/RackLoggingMockServletContext.java b/src/spec/java/org/jruby/rack/mock/RackLoggingMockServletContext.java
index 0567f9341..46a0cff77 100644
--- a/src/spec/java/org/jruby/rack/mock/RackLoggingMockServletContext.java
+++ b/src/spec/java/org/jruby/rack/mock/RackLoggingMockServletContext.java
@@ -53,13 +53,6 @@ public void log(String message) {
logger.log(message);
}
- @Override
- @Deprecated // Deprecated in API parent
- @SuppressWarnings("deprecation") // Deprecated in API parent
- public void log(Exception ex, String message) {
- logger.log(message, ex);
- }
-
@Override
public void log(String message, Throwable ex) {
logger.log(message, ex);
diff --git a/src/spec/java/org/jruby/rack/mock/fail/FailingHttpServletResponse.java b/src/spec/java/org/jruby/rack/mock/fail/FailingHttpServletResponse.java
index 64986d01d..4c4ce08db 100644
--- a/src/spec/java/org/jruby/rack/mock/fail/FailingHttpServletResponse.java
+++ b/src/spec/java/org/jruby/rack/mock/fail/FailingHttpServletResponse.java
@@ -24,8 +24,8 @@
package org.jruby.rack.mock.fail;
import java.io.IOException;
-import javax.servlet.ServletOutputStream;
+import jakarta.servlet.ServletOutputStream;
import org.springframework.mock.web.MockHttpServletResponse;
/**
diff --git a/src/spec/ruby/jruby/rack/booter_spec.rb b/src/spec/ruby/jruby/rack/booter_spec.rb
index 86afe2e74..07d3893d0 100644
--- a/src/spec/ruby/jruby/rack/booter_spec.rb
+++ b/src/spec/ruby/jruby/rack/booter_spec.rb
@@ -267,7 +267,7 @@
before :each do
# NOTE: this is obviously poor testing but it's easier to let the factory
# setup the runtime for us than to hand copy/stub/mock all code involved
- servlet_context = javax.servlet.ServletContext.impl do |name, *args|
+ servlet_context = Java::JakartaServlet::ServletContext.impl do |name, *args|
case name.to_sym
when :getRealPath then
case args.first
@@ -314,7 +314,7 @@
before :each do
# NOTE: this is obviously poor testing but it's easier to let the factory
# setup the runtime for us than to hand copy/stub/mock all code involved
- servlet_context = javax.servlet.ServletContext.impl do |name, *args|
+ servlet_context = Java::JakartaServlet::ServletContext.impl do |name, *args|
case name.to_sym
when :getRealPath then
case args.first
diff --git a/src/spec/ruby/jruby/rack/integration_spec.rb b/src/spec/ruby/jruby/rack/integration_spec.rb
index 22569091f..2227244d7 100644
--- a/src/spec/ruby/jruby/rack/integration_spec.rb
+++ b/src/spec/ruby/jruby/rack/integration_spec.rb
@@ -27,7 +27,7 @@
)
listener = org.jruby.rack.RackServletContextListener.new
- listener.contextInitialized javax.servlet.ServletContextEvent.new(@servlet_context)
+ listener.contextInitialized Java::JakartaServlet::ServletContextEvent.new(@servlet_context)
rack_factory = @servlet_context.getAttribute("rack.factory")
expect(rack_factory).to be_a(RackApplicationFactory)
@@ -45,7 +45,7 @@
"run lambda { |env| [ 200, {'Via' => 'JRuby-Rack', 'Content-Type' => 'text/plain'}, 'OK' ] }"
)
listener = org.jruby.rack.RackServletContextListener.new
- listener.contextInitialized javax.servlet.ServletContextEvent.new(@servlet_context)
+ listener.contextInitialized Java::JakartaServlet::ServletContextEvent.new(@servlet_context)
@rack_context = @servlet_context.getAttribute("rack.context")
@rack_factory = @servlet_context.getAttribute("rack.factory")
end
@@ -106,7 +106,7 @@
servlet_context.addInitParameter('jruby.max.runtimes', '2')
listener = org.jruby.rack.rails.RailsServletContextListener.new
- listener.contextInitialized javax.servlet.ServletContextEvent.new(servlet_context)
+ listener.contextInitialized Java::JakartaServlet::ServletContextEvent.new(servlet_context)
rack_factory = servlet_context.getAttribute("rack.factory")
expect(rack_factory).to be_a(RackApplicationFactory)
@@ -121,7 +121,7 @@
it "initializes shared (thread-safe) by default" do
listener = org.jruby.rack.rails.RailsServletContextListener.new
- listener.contextInitialized javax.servlet.ServletContextEvent.new(servlet_context)
+ listener.contextInitialized Java::JakartaServlet::ServletContextEvent.new(servlet_context)
rack_factory = servlet_context.getAttribute("rack.factory")
expect(rack_factory).to be_a(RackApplicationFactory)
@@ -135,7 +135,7 @@
servlet_context.addInitParameter('jruby.max.runtimes', '1')
listener = org.jruby.rack.rails.RailsServletContextListener.new
- listener.contextInitialized javax.servlet.ServletContextEvent.new(servlet_context)
+ listener.contextInitialized Java::JakartaServlet::ServletContextEvent.new(servlet_context)
rack_factory = servlet_context.getAttribute("rack.factory")
expect(rack_factory).to be_a(RackApplicationFactory)
@@ -239,7 +239,7 @@ def initialize_rails(env = nil, servlet_context = @servlet_context)
yield(servlet_context, listener) if block_given?
- listener.contextInitialized javax.servlet.ServletContextEvent.new(servlet_context)
+ listener.contextInitialized Java::JakartaServlet::ServletContextEvent.new(servlet_context)
@rack_context = servlet_context.getAttribute("rack.context")
@rack_factory = servlet_context.getAttribute("rack.factory")
@servlet_context = servlet_context
diff --git a/src/spec/ruby/jruby/rack/response_spec.rb b/src/spec/ruby/jruby/rack/response_spec.rb
index 95f745d47..dfdf2d3ae 100644
--- a/src/spec/ruby/jruby/rack/response_spec.rb
+++ b/src/spec/ruby/jruby/rack/response_spec.rb
@@ -16,7 +16,7 @@
JRuby::Rack::Response.new [status, headers, body]
end
- let(:servlet_response) { javax.servlet.http.HttpServletResponse.impl {} }
+ let(:servlet_response) { Java::JakartaServletHttp::HttpServletResponse.impl {} }
let(:response_environment) { new_response_environment(servlet_response) }
diff --git a/src/spec/ruby/jruby/rack/servlet_ext_spec.rb b/src/spec/ruby/jruby/rack/servlet_ext_spec.rb
index 1742adde4..29b1017b8 100644
--- a/src/spec/ruby/jruby/rack/servlet_ext_spec.rb
+++ b/src/spec/ruby/jruby/rack/servlet_ext_spec.rb
@@ -80,11 +80,11 @@
end
- describe Java::JavaxServlet::ServletContext do
+ describe Java::JakartaServlet::ServletContext do
let(:subject) do
context = org.springframework.mock.web.MockServletContext.new
- context.removeAttribute("javax.servlet.context.tempdir")
+ context.removeAttribute("jakarta.servlet.context.tempdir")
context
end
@@ -92,10 +92,10 @@
end
- describe Java::JavaxServlet::ServletRequest do
+ describe Java::JakartaServlet::ServletRequest do
before :each do
- @request = Java::JavaxServlet::ServletRequest.impl {}
+ @request = Java::JakartaServlet::ServletRequest.impl {}
end
it "should allow #[] to access request attributes" do
@@ -125,10 +125,10 @@
end
- describe Java::JavaxServletHttp::HttpSession do
+ describe Java::JakartaServletHttp::HttpSession do
before :each do
- @session = Java::JavaxServletHttp::HttpSession.impl {}
+ @session = Java::JakartaServletHttp::HttpSession.impl {}
end
it "should allow #[] to access session attributes" do
diff --git a/src/spec/ruby/rack/embed/filter_spec.rb b/src/spec/ruby/rack/embed/filter_spec.rb
index a2d3ba09d..afded699c 100644
--- a/src/spec/ruby/rack/embed/filter_spec.rb
+++ b/src/spec/ruby/rack/embed/filter_spec.rb
@@ -10,11 +10,11 @@
let(:chain) { double "filter chain" }
let(:request) do
- javax.servlet.http.HttpServletRequest.impl {}.tap do |request|
+ Java::JakartaServletHttp::HttpServletRequest.impl {}.tap do |request|
allow(request).to receive(:getInputStream).and_return(StubServletInputStream.new)
end
end
- let(:response) { javax.servlet.http.HttpServletResponse.impl {} }
+ let(:response) { Java::JakartaServletHttp::HttpServletResponse.impl {} }
it "serves all requests using the given rack application" do
rack_response = double "rack response"
diff --git a/src/spec/ruby/rack/filter_spec.rb b/src/spec/ruby/rack/filter_spec.rb
index a5b4cec5c..a2812404f 100644
--- a/src/spec/ruby/rack/filter_spec.rb
+++ b/src/spec/ruby/rack/filter_spec.rb
@@ -14,7 +14,7 @@
let(:chain) { double "filter chain" }
def stub_request(path_info)
- @request = javax.servlet.http.HttpServletRequest.impl {}
+ @request = Java::JakartaServletHttp::HttpServletRequest.impl {}
allow(@request).to receive(:setAttribute)
if block_given?
yield @request, path_info
@@ -27,7 +27,7 @@ def stub_request(path_info)
before :each do
stub_request("/index")
- @response = javax.servlet.http.HttpServletResponse.impl {}
+ @response = Java::JakartaServletHttp::HttpServletResponse.impl {}
allow(@rack_context).to receive(:getResource).and_return nil
allow(@rack_config).to receive(:getProperty) do |key, default|
(key || raise("missing key")) && default
@@ -339,7 +339,7 @@ def isHandled(arg)
end
it "configures not handled statuses on init" do
- servlet_context = javax.servlet.ServletContext.impl do |name, *args|
+ servlet_context = Java::JakartaServlet::ServletContext.impl do |name, *args|
case name.to_sym
when :getAttribute
if args[0] == "rack.context"
@@ -349,7 +349,7 @@ def isHandled(arg)
nil
end
end
- config = javax.servlet.FilterConfig.impl do |name, *args|
+ config = Java::JakartaServlet::FilterConfig.impl do |name, *args|
case name.to_sym
when :getServletContext then servlet_context
when :getInitParameter
diff --git a/src/spec/ruby/rack/handler/servlet_spec.rb b/src/spec/ruby/rack/handler/servlet_spec.rb
index a5ccd268c..8482e112f 100644
--- a/src/spec/ruby/rack/handler/servlet_spec.rb
+++ b/src/spec/ruby/rack/handler/servlet_spec.rb
@@ -332,7 +332,7 @@ def _env
it "exposes the servlet context xxxx" do
env = servlet.create_env @servlet_env
- expect(env['java.servlet_context']).to be_a javax.servlet.ServletContext
+ expect( env['java.servlet_context'] ).to be_a Java::JakartaServlet::ServletContext
end
it "exposes the rack context" do
@@ -1071,9 +1071,9 @@ def servlet.create_env(servlet_env)
it "sets cookies from servlet requests" do
cookies = []
- cookies << javax.servlet.http.Cookie.new('foo', 'bar')
- cookies << javax.servlet.http.Cookie.new('bar', '142')
- servlet_request.setCookies cookies.to_java :'javax.servlet.http.Cookie'
+ cookies << Java::JakartaServletHttp::Cookie.new('foo', 'bar')
+ cookies << Java::JakartaServletHttp::Cookie.new('bar', '142')
+ servlet_request.setCookies cookies.to_java :'jakarta.servlet.http.Cookie'
env = servlet.create_env(servlet_env)
rack_request = Rack::Request.new(env)
expect(rack_request.cookies).to eq({ 'foo' => 'bar', 'bar' => '142' })
@@ -1085,7 +1085,7 @@ def servlet.create_env(servlet_env)
rack_request = Rack::Request.new(env)
expect(rack_request.cookies).to eq({})
- servlet_request.setCookies [].to_java :'javax.servlet.http.Cookie'
+ servlet_request.setCookies [].to_java :'jakarta.servlet.http.Cookie'
env = servlet.create_env(servlet_env)
rack_request = Rack::Request.new(env)
expect(rack_request.cookies).to eq({})
@@ -1093,9 +1093,9 @@ def servlet.create_env(servlet_env)
it "sets a single cookie from servlet requests" do
cookies = []
- cookies << javax.servlet.http.Cookie.new('foo', 'bar')
- cookies << javax.servlet.http.Cookie.new('foo', '142')
- servlet_request.setCookies cookies.to_java :'javax.servlet.http.Cookie'
+ cookies << Java::JakartaServletHttp::Cookie.new('foo', 'bar')
+ cookies << Java::JakartaServletHttp::Cookie.new('foo', '142')
+ servlet_request.setCookies cookies.to_java :'jakarta.servlet.http.Cookie'
env = servlet.create_env(servlet_env)
rack_request = Rack::Request.new(env)
expect(rack_request.cookies).to eq({ 'foo' => 'bar' })
diff --git a/src/spec/ruby/rack/servlet_context_listener_spec.rb b/src/spec/ruby/rack/servlet_context_listener_spec.rb
index 7442eadb9..73b69f4b2 100644
--- a/src/spec/ruby/rack/servlet_context_listener_spec.rb
+++ b/src/spec/ruby/rack/servlet_context_listener_spec.rb
@@ -16,7 +16,7 @@
end
let(:servlet_context_event) do
- javax.servlet.ServletContextEvent.new @servlet_context
+ Java::JakartaServlet::ServletContextEvent.new @servlet_context
end
describe "contextInitialized" do
diff --git a/src/spec/ruby/rack/servlet_spec.rb b/src/spec/ruby/rack/servlet_spec.rb
index 082325806..1f77a3a9f 100644
--- a/src/spec/ruby/rack/servlet_spec.rb
+++ b/src/spec/ruby/rack/servlet_spec.rb
@@ -10,8 +10,8 @@
describe org.jruby.rack.RackServlet, "service" do
it "should delegate to process" do
- request = javax.servlet.http.HttpServletRequest.impl {}
- response = javax.servlet.http.HttpServletResponse.impl {}
+ request = Java::JakartaServletHttp::HttpServletRequest.impl {}
+ response = Java::JakartaServletHttp::HttpServletResponse.impl {}
dispatcher = double "dispatcher"
expect(dispatcher).to receive(:process)
servlet = org.jruby.rack.RackServlet.new dispatcher, @rack_context
diff --git a/src/spec/ruby/rack/tag_spec.rb b/src/spec/ruby/rack/tag_spec.rb
index 337952e64..f04a93e23 100644
--- a/src/spec/ruby/rack/tag_spec.rb
+++ b/src/spec/ruby/rack/tag_spec.rb
@@ -58,7 +58,7 @@ def call(request)
begin
@tag.doEndTag
- rescue Java::JavaxServletJsp::JspException
+ rescue Java::JakartaServletJsp::JspException
# noop
end
end
diff --git a/src/spec/ruby/spec_helper.rb b/src/spec/ruby/spec_helper.rb
index 6a72e618e..2b811262e 100644
--- a/src/spec/ruby/spec_helper.rb
+++ b/src/spec/ruby/spec_helper.rb
@@ -5,8 +5,8 @@
$CLASSPATH << File.expand_path('test-classes', target)
jars.each { |jar| $CLASSPATH << File.expand_path(jar, lib) }
-java_import 'javax.servlet.http.HttpServletRequest'
-java_import 'javax.servlet.http.HttpServletResponse'
+java_import 'jakarta.servlet.http.HttpServletRequest'
+java_import 'jakarta.servlet.http.HttpServletResponse'
java_import 'org.jruby.rack.RackApplicationFactory'
java_import 'org.jruby.rack.DefaultRackApplicationFactory'
@@ -23,7 +23,7 @@
module SharedHelpers
def mock_servlet_context
- @servlet_context = Java::JavaxServlet::ServletContext.impl {}
+ @servlet_context = Java::JakartaServlet::ServletContext.impl {}
@rack_config ||= Java::OrgJrubyRack::RackConfig.impl {}
@rack_context ||= Java::OrgJrubyRackServlet::ServletRackContext.impl {}
[@rack_context, @servlet_context].each do |context|
@@ -36,7 +36,7 @@ def mock_servlet_context
allow(context).to receive(:init_parameter_names).and_return []
end
allow(@rack_context).to receive(:getConfig).and_return @rack_config
- @servlet_config ||= Java::JavaxServlet::ServletConfig.impl {}
+ @servlet_config ||= Java::JakartaServlet::ServletConfig.impl {}
allow(@servlet_config).to receive(:getServletName).and_return "a Servlet"
allow(@servlet_config).to receive(:getServletContext).and_return @servlet_context
@servlet_context
@@ -145,10 +145,10 @@ def should_eval_as_not_nil(code)
end
-java_import org.springframework.mock.web.MockServletConfig
-java_import org.springframework.mock.web.MockServletContext
-java_import org.springframework.mock.web.MockHttpServletRequest
-java_import org.springframework.mock.web.MockHttpServletResponse
+java_import 'org.springframework.mock.web.MockServletConfig'
+java_import 'org.springframework.mock.web.MockServletContext'
+java_import 'org.springframework.mock.web.MockHttpServletRequest'
+java_import 'org.springframework.mock.web.MockHttpServletResponse'
class StubInputStream < java.io.InputStream
@@ -186,7 +186,7 @@ def flush; end
end
-class StubServletInputStream < javax.servlet.ServletInputStream
+class StubServletInputStream < Java::JakartaServlet::ServletInputStream
def initialize(val = "")
@delegate = StubInputStream.new(val)