You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2025/01/03 10:57:09 UTC
(sling-org-apache-sling-api) branch jakarta-2 updated: Add utility methods to create request/response wrappers
This is an automated email from the ASF dual-hosted git repository.
cziegeler pushed a commit to branch jakarta-2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-api.git
The following commit(s) were added to refs/heads/jakarta-2 by this push:
new ed31df8 Add utility methods to create request/response wrappers
ed31df8 is described below
commit ed31df884d666bb6e8d0f856b038af27e8add86b
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Fri Jan 3 11:57:02 2025 +0100
Add utility methods to create request/response wrappers
---
JAKARTA.md | 4 ++--
.../sling/api/wrappers/JakartaToJavaxRequestWrapper.java | 12 ++++++++++++
.../sling/api/wrappers/JakartaToJavaxResponseWrapper.java | 12 ++++++++++++
.../sling/api/wrappers/JavaxToJakartaRequestWrapper.java | 11 +++++++++++
.../sling/api/wrappers/JavaxToJakartaResponseWrapper.java | 12 ++++++++++++
5 files changed, 49 insertions(+), 2 deletions(-)
diff --git a/JAKARTA.md b/JAKARTA.md
index 87dc1b6..3ab7391 100644
--- a/JAKARTA.md
+++ b/JAKARTA.md
@@ -50,19 +50,19 @@ Comments/javadocs have not been adjusted!
- New methods in ResourceResolver (resourceresolver)
- New methods in ResourceMapper (resourceresolver)
+- New methods in Authenticator (Auth Core)
+- New methods in Servlet Resolver (servlets.resolver) (first version, based on javax.servlet)
### Open
- Support for SlingConstants.ATTR_REQUEST_JAKARTA_SERVLET (next to ATTR_REQUEST_SERVLET)
- Request attributes for include/forward (mapping should be handled by Apache Felix Http Wrappers)
- Request attributes for error handling (mapping should be handled by Apache Felix Http Wrappers)
-- New methods in Authenticator (Auth Core)
- Support for SlingJakartaRequestListener and SlingJakartaRequestEvent (next to existing ones) (Sling Engine)
- Support for SlingJakartaBindings (next to SlingBindings)
- Support for SlingJakartaScript (next to SlingScript)
- Support for SlingJakartaScriptHelper (next to SlingScriptHelper)
- Support for JakartaErrorHandler (next to ErrorHandler) (Sling Engine)
- Support for JakartaOptingServlet (next to OptingServlet)
-- New methods in Servlet Resolver (servlets.resolver)
- Support for using Jakarta Servlet API for Sling Servlets
- Support for using Jakarta Servlet API for Sling Filters
diff --git a/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxRequestWrapper.java b/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxRequestWrapper.java
index 3b1c729..a600a1b 100644
--- a/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxRequestWrapper.java
+++ b/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxRequestWrapper.java
@@ -38,6 +38,8 @@ import org.apache.sling.api.resource.ResourceResolver;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import jakarta.servlet.http.HttpServletRequest;
+
import javax.servlet.RequestDispatcher;
import javax.servlet.http.Cookie;
@@ -50,6 +52,16 @@ public class JakartaToJavaxRequestWrapper
extends HttpServletRequestWrapper
implements SlingHttpServletRequest {
+ public static javax.servlet.http.HttpServletRequest toJavaxRequest(final HttpServletRequest request) {
+ if (request instanceof JavaxToJakartaRequestWrapper) {
+ return (javax.servlet.http.HttpServletRequest)((JavaxToJakartaRequestWrapper)request).getRequest();
+ }
+ if (request instanceof SlingJakartaHttpServletRequest) {
+ return new JakartaToJavaxRequestWrapper((SlingJakartaHttpServletRequest)request);
+ }
+ return new HttpServletRequestWrapper(request);
+ }
+
private final SlingJakartaHttpServletRequest wrappedRequest;
public JakartaToJavaxRequestWrapper(final SlingJakartaHttpServletRequest wrappedRequest) {
diff --git a/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxResponseWrapper.java b/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxResponseWrapper.java
index 234e9a0..200fcdf 100644
--- a/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxResponseWrapper.java
+++ b/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxResponseWrapper.java
@@ -24,6 +24,8 @@ import org.apache.sling.api.SlingJakartaHttpServletResponse;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import jakarta.servlet.http.HttpServletResponse;
+
/**
* Wrapper for {@link SlingJakartaHttpServletResponse} to adapt it to the Jacax Servlet API.
* @since 2.9.0
@@ -33,6 +35,16 @@ public class JakartaToJavaxResponseWrapper
extends HttpServletResponseWrapper
implements SlingHttpServletResponse {
+ public static javax.servlet.http.HttpServletResponse toJavaxResponse(final HttpServletResponse response) {
+ if (response instanceof JakartaToJavaxResponseWrapper) {
+ return (javax.servlet.http.HttpServletResponse)((JakartaToJavaxResponseWrapper)response).getResponse();
+ }
+ if (response instanceof SlingJakartaHttpServletResponse) {
+ return new JakartaToJavaxResponseWrapper((SlingJakartaHttpServletResponse)response);
+ }
+ return new HttpServletResponseWrapper(response);
+ }
+
private final SlingJakartaHttpServletResponse wrappedResponse;
public JakartaToJavaxResponseWrapper(final SlingJakartaHttpServletResponse wrappedResponse) {
diff --git a/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaRequestWrapper.java b/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaRequestWrapper.java
index 96974f2..c36deb4 100644
--- a/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaRequestWrapper.java
+++ b/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaRequestWrapper.java
@@ -40,6 +40,7 @@ import org.jetbrains.annotations.Nullable;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletRequest;
/**
* Wrapper for {@link SlingHttpServletRequest} to adapt it to the Jakarta Servlet API.
@@ -50,6 +51,16 @@ public class JavaxToJakartaRequestWrapper
extends HttpServletRequestWrapper
implements SlingJakartaHttpServletRequest {
+ public static HttpServletRequest toJakartaRequest(final javax.servlet.http.HttpServletRequest request) {
+ if (request instanceof JakartaToJavaxRequestWrapper) {
+ return (HttpServletRequest)((JakartaToJavaxRequestWrapper)request).getRequest();
+ }
+ if (request instanceof SlingHttpServletRequest) {
+ return new JavaxToJakartaRequestWrapper((SlingHttpServletRequest)request);
+ }
+ return new HttpServletRequestWrapper(request);
+ }
+
private final SlingHttpServletRequest wrappedRequest;
public JavaxToJakartaRequestWrapper(final SlingHttpServletRequest wrappedRequest) {
diff --git a/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaResponseWrapper.java b/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaResponseWrapper.java
index 4e7f5d4..112c2e1 100644
--- a/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaResponseWrapper.java
+++ b/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaResponseWrapper.java
@@ -24,6 +24,8 @@ import org.apache.sling.api.SlingJakartaHttpServletResponse;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import jakarta.servlet.http.HttpServletResponse;
+
/**
* Wrapper for {@link SlingHttpServletResponse} to adapt it to the Jacax Servlet API.
* @since 2.9.0
@@ -33,6 +35,16 @@ public class JavaxToJakartaResponseWrapper
extends HttpServletResponseWrapper
implements SlingJakartaHttpServletResponse {
+ public static HttpServletResponse toJakartaResponse(final javax.servlet.http.HttpServletResponse response) {
+ if (response instanceof JakartaToJavaxResponseWrapper) {
+ return (HttpServletResponse)((JakartaToJavaxResponseWrapper)response).getResponse();
+ }
+ if (response instanceof SlingHttpServletResponse) {
+ return new JavaxToJakartaResponseWrapper((SlingHttpServletResponse)response);
+ }
+ return new HttpServletResponseWrapper(response);
+ }
+
private final SlingHttpServletResponse wrappedResponse;
public JavaxToJakartaResponseWrapper(final SlingHttpServletResponse wrappedResponse) {