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-servlets-resolver.git
The following commit(s) were added to refs/heads/jakarta-2 by this push:
new 03ac814 Implement SlingServletResolver, fix test cases
03ac814 is described below
commit 03ac814316e6b343d99f665c729221b86215e8fe
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Fri Jan 3 10:18:20 2025 +0100
Implement SlingServletResolver, fix test cases
---
pom.xml | 12 ++++++++---
.../resolver/internal/SlingServletResolver.java | 23 ++++++++++++++++------
.../resolver/it/ServletResolverTestSupport.java | 6 +++++-
3 files changed, 31 insertions(+), 10 deletions(-)
diff --git a/pom.xml b/pom.xml
index 5c8b50a..b189f29 100644
--- a/pom.xml
+++ b/pom.xml
@@ -207,6 +207,12 @@
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.http.wrappers</artifactId>
+ <version>1.1.8</version>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
@@ -245,7 +251,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.engine</artifactId>
- <version>2.15.0</version>
+ <version>2.16.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -401,13 +407,13 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.resourceresolver</artifactId>
- <version>1.10.0</version>
+ <version>1.12.3-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.scripting.core</artifactId>
- <version>2.2.0</version>
+ <version>2.4.11-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
diff --git
a/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
b/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
index cb89bed..3f81809 100644
---
a/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
+++
b/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
@@ -36,6 +36,7 @@ import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.felix.http.jakartawrappers.ServletWrapper;
import org.apache.sling.api.SlingConstants;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
@@ -54,6 +55,7 @@ import org.apache.sling.api.servlets.ErrorHandler;
import org.apache.sling.api.servlets.OptingServlet;
import org.apache.sling.api.servlets.ServletResolver;
import org.apache.sling.api.servlets.ServletResolverConstants;
+import org.apache.sling.api.wrappers.JakartaToJavaxRequestWrapper;
import org.apache.sling.serviceusermapping.ServiceUserMapped;
import
org.apache.sling.servlets.resolver.internal.defaults.DefaultErrorHandlerServlet;
import org.apache.sling.servlets.resolver.internal.defaults.DefaultServlet;
@@ -851,20 +853,29 @@ public class SlingServletResolver
}
@Override
- public jakarta.servlet.@Nullable Servlet resolve(@NotNull
SlingJakartaHttpServletRequest request) {
- // TODO Auto-generated method stub
+ public jakarta.servlet.@Nullable Servlet resolve(@NotNull final
SlingJakartaHttpServletRequest request) {
+ final Servlet servlet = this.resolveServlet(new
JakartaToJavaxRequestWrapper(request));
+ if (servlet != null) {
+ return new ServletWrapper(servlet);
+ }
return null;
}
@Override
- public jakarta.servlet.@Nullable Servlet resolve(@NotNull Resource
resource, @NotNull String scriptName) {
- // TODO Auto-generated method stub
+ public jakarta.servlet.@Nullable Servlet resolve(@NotNull final Resource
resource, @NotNull final String scriptName) {
+ final Servlet servlet = this.resolveServlet(resource, scriptName);
+ if (servlet != null) {
+ return new ServletWrapper(servlet);
+ }
return null;
}
@Override
- public jakarta.servlet.@Nullable Servlet resolve(@NotNull ResourceResolver
resolver, @NotNull String scriptName) {
- // TODO Auto-generated method stub
+ public jakarta.servlet.@Nullable Servlet resolve(@NotNull final
ResourceResolver resolver, @NotNull final String scriptName) {
+ final Servlet servlet = this.resolveServlet(resolver, scriptName);
+ if (servlet != null) {
+ return new ServletWrapper(servlet);
+ }
return null;
}
}
diff --git
a/src/test/java/org/apache/sling/servlets/resolver/it/ServletResolverTestSupport.java
b/src/test/java/org/apache/sling/servlets/resolver/it/ServletResolverTestSupport.java
index a0ae52e..1b5143f 100644
---
a/src/test/java/org/apache/sling/servlets/resolver/it/ServletResolverTestSupport.java
+++
b/src/test/java/org/apache/sling/servlets/resolver/it/ServletResolverTestSupport.java
@@ -101,7 +101,9 @@ public class ServletResolverTestSupport extends TestSupport
{
versionResolver.setVersionFromProject(SLING_GROUP_ID,
"org.apache.sling.scripting.core");
versionResolver.setVersionFromProject(SLING_GROUP_ID,
"org.apache.sling.commons.johnzon");
versionResolver.setVersionFromProject(SLING_GROUP_ID,
"org.apache.sling.engine");
- versionResolver.setVersion(SLING_GROUP_ID,
"org.apache.sling.auth.core", "1.6.0");
+ versionResolver.setVersion(SLING_GROUP_ID,
"org.apache.sling.auth.core", "1.7.1-SNAPSHOT");
+ // the following is needed until we update to Apache Felix Http Jetty12
+ versionResolver.setVersion("org.apache.felix",
"org.apache.felix.http.servlet-api", "3.0.0");
versionResolver.setVersion("commons-fileupload", "commons-fileupload",
"1.5");
return options(
composite(
@@ -123,6 +125,8 @@ public class ServletResolverTestSupport extends TestSupport
{
mavenBundle().groupId("org.glassfish").artifactId("jakarta.json").versionAsInProject(),
//
mavenBundle().groupId("commons-codec").artifactId("commons-codec").version("1.15"),
+ // the following is needed until we update to Apache Felix
Http Jetty12
+
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.http.wrappers").versionAsInProject(),
//
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.healthcheck.api").versionAsInProject(),
//