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) {