Skip to content

Jakarta EE 9+ migration #266

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 26 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
f17c782
Updated pom.xml to use jakarta instead of javax, upgraded few other j…
bhagyashriSawkar Oct 24, 2024
8db4e87
Added java 17 to build platforms
bhagyashriSawkar Oct 24, 2024
9724eca
Updated package namespace from javax.* to jakarta.* whereever used. A…
bhagyashriSawkar Oct 24, 2024
576c7a6
Merge branch 'master' of https://github.com/bhagyashriSawkar/jruby-ra…
bhagyashriSawkar Feb 19, 2025
3182a7f
Merge remote-tracking branch 'upstream/master' into jakarta-update
chadlwilson Jul 22, 2025
9c03176
Merge remote-tracking branch 'upstream/master' into jakarta-update
chadlwilson Aug 9, 2025
1c3aed3
Copy old HttpUtils.parseQueryString from Servlet API
chadlwilson Aug 9, 2025
4773440
[build] Target Java 17 only
chadlwilson Aug 9, 2025
9a77f0d
Merge remote-tracking branch 'upstream/master' into jakarta-update
chadlwilson Aug 9, 2025
95243be
[chore] Minor code inspection & style fixes for modern Java 17
chadlwilson Aug 9, 2025
cfdfc25
Merge remote-tracking branch 'upstream/master' into jakarta-update
chadlwilson Aug 12, 2025
6c76aee
[build] Re-introduce Java 8 compatibility
chadlwilson Aug 12, 2025
bdfafa3
Merge remote-tracking branch 'upstream/master' into jakarta-update
chadlwilson Aug 12, 2025
a897448
[chore] Update history
chadlwilson Aug 12, 2025
e44c80e
Correct references to jakarta types, making them consistent
chadlwilson Aug 12, 2025
e55f7e7
Merge remote-tracking branch 'upstream/master' into jakarta-update
chadlwilson Aug 12, 2025
4228a3e
Merge remote-tracking branch 'upstream/master' into jakarta-update
chadlwilson Aug 12, 2025
4f75182
Fix typo
chadlwilson Aug 12, 2025
b3ca5e6
Remove old <= Servlet API 2.5 support
chadlwilson Aug 13, 2025
10a3ddc
Remove unnecessary serialization code
chadlwilson Aug 13, 2025
52435a4
Bump version
chadlwilson Aug 13, 2025
381f33e
Add comments into Spring classes copied into jruby-rack
chadlwilson Aug 13, 2025
ecb029b
Merge remote-tracking branch 'upstream/master' into jakarta-update
chadlwilson Aug 13, 2025
4a4de19
Merge remote-tracking branch 'upstream/master' into jakarta-update
chadlwilson Aug 13, 2025
be1d4a0
[chore] Align import ordering/format
chadlwilson Aug 13, 2025
c667d36
[chore] Undo unnecessary syntax change
chadlwilson Aug 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions History.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 2.0.0 (UNRELEASED)

- Support Jakarta Servlet API 5.0 (JEE 9)

## 1.3.0 (UNRELEASED)

- Support Javax Servlet API 4.0 (JEE 8)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ Or the equivalent of doing `bundle exec rackup ...` if you're using Bundler :
## Logging

JRuby-Rack sets up a delegate logger for Rails that sends logging output to
`javax.servlet.ServletContext#log` by default. If you wish to use a different
`jakarta.servlet.ServletContext#log` by default. If you wish to use a different
logging system, configure `jruby.rack.logging` as follows:

- `servlet_context` (default): Sends log messages to the servlet context.
Expand Down
14 changes: 4 additions & 10 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

<groupId>org.jruby.rack</groupId>
<artifactId>jruby-rack</artifactId>
<version>1.3.0-SNAPSHOT</version>
<version>2.0.0-SNAPSHOT</version>
<name>JRuby-Rack</name>
<url>https://github.com/jruby/jruby-rack/</url>
<description>
Expand Down Expand Up @@ -91,13 +91,13 @@
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>4.0.4</version>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<version>2.3.6</version>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
Expand Down Expand Up @@ -136,16 +136,10 @@
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>jakarta.el</groupId>
<artifactId>jakarta.el-api</artifactId>
<version>3.0.3</version>
<version>4.0.0</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
14 changes: 7 additions & 7 deletions src/main/java/org/jruby/rack/AbstractFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@
package org.jruby.rack;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.jruby.rack.servlet.RequestCapture;
import org.jruby.rack.servlet.ResponseCapture;
import org.jruby.rack.servlet.ServletRackEnvironment;
Expand Down
12 changes: 6 additions & 6 deletions src/main/java/org/jruby/rack/AbstractServlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
package org.jruby.rack;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.jruby.rack.servlet.ServletRackEnvironment;
import org.jruby.rack.servlet.ServletRackResponseEnvironment;

Expand Down
3 changes: 2 additions & 1 deletion src/main/java/org/jruby/rack/RackDispatcher.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
package org.jruby.rack;

import java.io.IOException;
import javax.servlet.ServletException;

import jakarta.servlet.ServletException;

/**
*
Expand Down
38 changes: 19 additions & 19 deletions src/main/java/org/jruby/rack/RackEnvironment.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

/**
* Represent a Rack environment (that will most likely by wrapping a
* {@link javax.servlet.http.HttpServletRequest}).
* {@link jakarta.servlet.http.HttpServletRequest}).
* Allows Rack applications to be loaded outside of JEE servlet environments.
*
* @see org.jruby.rack.servlet.ServletRackEnvironment
Expand All @@ -37,7 +37,7 @@ public interface RackEnvironment {
// The following methods are specific to the rack environment

/**
* @see javax.servlet.ServletRequest#getInputStream()
* @see jakarta.servlet.ServletRequest#getInputStream()
* @return the input as a stream
* @throws IOException if there's an IO exception
*/
Expand All @@ -53,107 +53,107 @@ public interface RackEnvironment {
// The following methods are usually inherited from the servlet request

/**
* @see javax.servlet.http.HttpServletRequest#getPathInfo()
* @see jakarta.servlet.http.HttpServletRequest#getPathInfo()
* @return the request path info
*/
String getPathInfo();

/**
* Request URI should include the query string if available.
* @see javax.servlet.http.HttpServletRequest#getRequestURI()
* @see jakarta.servlet.http.HttpServletRequest#getRequestURI()
* @return the request URI
*/
String getRequestURI();

/**
* @see javax.servlet.http.HttpServletRequest#getAttributeNames()
* @see jakarta.servlet.http.HttpServletRequest#getAttributeNames()
* @return an enumeration of all attribute names
*/
Enumeration<String> getAttributeNames();

/**
* @see javax.servlet.http.HttpServletRequest#getAttribute(String)
* @see jakarta.servlet.http.HttpServletRequest#getAttribute(String)
* @param key the attribute key
* @return the attribute value
*/
Object getAttribute(String key);

/**
* @see javax.servlet.http.HttpServletRequest#setAttribute(String, Object)
* @see jakarta.servlet.http.HttpServletRequest#setAttribute(String, Object)
* @param key the key
* @param value the value
*/
void setAttribute(String key, Object value);

/**
* @see javax.servlet.http.HttpServletRequest#getHeaderNames()
* @see jakarta.servlet.http.HttpServletRequest#getHeaderNames()
* @return an enumeration of all header names
*/
Enumeration<String> 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();
Expand Down
12 changes: 6 additions & 6 deletions src/main/java/org/jruby/rack/RackFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
18 changes: 9 additions & 9 deletions src/main/java/org/jruby/rack/RackResponseEnvironment.java
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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) ;
Expand Down Expand Up @@ -107,14 +107,14 @@ public interface RackResponseEnvironment {
void sendError(int code) throws IOException ;

/**
* @see javax.servlet.ServletResponse#getOutputStream()
* @see jakarta.servlet.ServletResponse#getOutputStream()
* @return the output stream
* @throws IOException if there's an IO exception
*/
OutputStream getOutputStream() throws IOException ;

/**
* @see javax.servlet.ServletResponse#getWriter()
* @see jakarta.servlet.ServletResponse#getWriter()
* @return the writer
* @throws IOException if there's an IO exception
*/
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/jruby/rack/RackServlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

package org.jruby.rack;

import javax.servlet.ServletConfig;
import jakarta.servlet.ServletConfig;

@SuppressWarnings("serial")
public class RackServlet extends AbstractServlet {
Expand Down
7 changes: 3 additions & 4 deletions src/main/java/org/jruby/rack/RackServletContextListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
11 changes: 5 additions & 6 deletions src/main/java/org/jruby/rack/RackTag.java
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/org/jruby/rack/UnmappedRackFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@
import java.util.HashSet;
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;

Expand Down
Loading