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());