This is an automated email from the ASF dual-hosted git repository.

pauls pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlets-resolver.git


The following commit(s) were added to refs/heads/master by this push:
     new 169deb1  SLING-9406 - Add bundled script support to the servlets 
resolver
169deb1 is described below

commit 169deb1ede83e7e563b6165b0f932b0f2103db76
Author: Karl Pauls <[email protected]>
AuthorDate: Thu May 14 22:27:35 2020 +0200

    SLING-9406 - Add bundled script support to the servlets resolver
---
 .../servlets/resolver/internal/ScriptResourceResolver.java   |  9 +++++++++
 .../servlets/resolver/internal/resource/ServletResource.java | 12 +++++++++---
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/servlets/resolver/internal/ScriptResourceResolver.java
 
b/src/main/java/org/apache/sling/servlets/resolver/internal/ScriptResourceResolver.java
index c6ff904..46382c0 100644
--- 
a/src/main/java/org/apache/sling/servlets/resolver/internal/ScriptResourceResolver.java
+++ 
b/src/main/java/org/apache/sling/servlets/resolver/internal/ScriptResourceResolver.java
@@ -32,6 +32,7 @@ import 
org.apache.sling.servlets.resolver.internal.resource.MergingServletResour
 import org.apache.sling.spi.resource.provider.ResolveContext;
 import org.apache.sling.spi.resource.provider.ResourceContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
+import org.jetbrains.annotations.NotNull;
 
 public class ScriptResourceResolver extends ResourceResolverWrapper {
     private final ResourceResolver resolver;
@@ -94,6 +95,14 @@ public class ScriptResourceResolver extends 
ResourceResolverWrapper {
     }
 
     @Override
+    public Resource getResource(Resource base, @NotNull String path) {
+        if (!path.startsWith("/") && base != null) {
+            path = base.getPath() + "/" + path;
+        }
+        return getResource(path);
+    }
+
+    @Override
     public Iterator<Resource> listChildren(Resource parent) {
         MergingServletResourceProvider provider = this.provider.get();
         if (provider == null) {
diff --git 
a/src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResource.java
 
b/src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResource.java
index c1a61bb..01521a5 100644
--- 
a/src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResource.java
+++ 
b/src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResource.java
@@ -65,7 +65,9 @@ public class ServletResource extends AbstractResource {
     }
 
     void setWrappedResource(Resource wrapped) {
-        this.wrapped = wrapped;
+        if (wrapped != null && 
!RESOURCE_TYPE_NON_EXISTING.equals(wrapped.getResourceType())) {
+            this.wrapped = wrapped;
+        }
     }
 
     @Override
@@ -126,9 +128,13 @@ public class ServletResource extends AbstractResource {
         }
 
         if (wrapped != null) {
-            return wrapped.adaptTo(type);
+            AdapterType result = wrapped.adaptTo(type);
+            if (result != null) {
+                return result;
+            }
         }
-        else if ( type == ValueMap.class ) {
+
+        if ( type == ValueMap.class ) {
             final Map<String, Object> props = new HashMap<>();
             props.put("sling:resourceType", this.getResourceType());
             props.put("sling:resourceSuperType", this.getResourceSuperType());

Reply via email to