You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by pa...@apache.org on 2017/11/23 21:32:00 UTC
[sling-org-apache-sling-resourceresolver] branch master updated:
SLING-7252: ResourceResolverImpl.map() does not invoke ResourceDecorator.
Patch provided by Francisco Chicharro. Thanks
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-resourceresolver.git
The following commit(s) were added to refs/heads/master by this push:
new 0ddea42 SLING-7252: ResourceResolverImpl.map() does not invoke ResourceDecorator. Patch provided by Francisco Chicharro. Thanks
0ddea42 is described below
commit 0ddea42449200239f972ac64c07abe8110e688a6
Author: Karl Pauls <ka...@gmail.com>
AuthorDate: Thu Nov 23 22:31:44 2017 +0100
SLING-7252: ResourceResolverImpl.map() does not invoke ResourceDecorator. Patch provided by Francisco Chicharro. Thanks
---
.../resourceresolver/impl/ResourceResolverImpl.java | 7 +++++--
.../impl/MockedResourceResolverImplTest.java | 2 ++
.../resourceresolver/impl/ResourceDecorationTest.java | 16 ++++++++++++++++
.../resourceresolver/impl/ResourceDecoratorTestBase.java | 2 +-
4 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java b/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
index 1144737..f2d2f0a 100644
--- a/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
+++ b/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
@@ -449,9 +449,12 @@ public class ResourceResolverImpl extends SlingAdaptable implements ResourceReso
}
ParsedParameters parsed = new ParsedParameters(mappedPath);
- final Resource res = resolveInternal(parsed.getRawPath(), parsed.getParameters());
+ final Resource nonDecoratedResource = resolveInternal(parsed.getRawPath(), parsed.getParameters());
- if (res != null) {
+ if (nonDecoratedResource != null) {
+
+ //Invoke the decorator for the resolved resource
+ Resource res=this.factory.getResourceDecoratorTracker().decorate(nonDecoratedResource);
// keep, what we might have cut off in internal resolution
final String resolutionPathInfo = res.getResourceMetadata().getResolutionPathInfo();
diff --git a/src/test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java b/src/test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java
index f25cca8..be2dfd5 100644
--- a/src/test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java
+++ b/src/test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java
@@ -540,9 +540,11 @@ public class MockedResourceResolverImplTest {
Mockito.when(request.getServerName()).thenReturn("localhost");
String path = resourceResolver.map(request,"/single/test?q=123123");
Assert.assertEquals("/single/test?q=123123", path);
+ buildResource("/single/test", EMPTY_RESOURCE_LIST, resourceResolver, resourceProvider);
path = resourceResolver.map(request,"/single/test");
Assert.assertEquals("/single/test", path);
+ buildResource("/single/test", EMPTY_RESOURCE_LIST, resourceResolver, resourceProvider);
// test path mapping without a request.
path = resourceResolver.map("/single/test");
Assert.assertEquals("/single/test", path);
diff --git a/src/test/java/org/apache/sling/resourceresolver/impl/ResourceDecorationTest.java b/src/test/java/org/apache/sling/resourceresolver/impl/ResourceDecorationTest.java
index 7d45741..f8124e6 100644
--- a/src/test/java/org/apache/sling/resourceresolver/impl/ResourceDecorationTest.java
+++ b/src/test/java/org/apache/sling/resourceresolver/impl/ResourceDecorationTest.java
@@ -33,6 +33,7 @@ import org.junit.Test;
public class ResourceDecorationTest extends ResourceDecoratorTestBase {
private static final String DECORATED_NAME = "decorated";
+ private static final String DECORATED_PATH = "/decoratedPath";
/** Wrap any resource so that its name is DECORATED_NAME */
protected Resource wrapResourceForTest(Resource resource) {
@@ -41,6 +42,11 @@ public class ResourceDecorationTest extends ResourceDecoratorTestBase {
public String getName() {
return DECORATED_NAME;
}
+
+ @Override
+ public String getPath() {
+ return DECORATED_PATH;
+ }
};
}
@@ -110,4 +116,14 @@ public class ResourceDecorationTest extends ResourceDecoratorTestBase {
public void findDecorates() {
assertDecorated(resolver.findResources("foo", QUERY_LANGUAGE), 4);
}
+
+ @Test
+ public void testMapDecorated(){
+ String mappedPathWithExtension=resolver.map("/var/map_test.html");
+ assertEquals("Expecting " + mappedPathWithExtension + " to be decorated", DECORATED_PATH+".html", mappedPathWithExtension);
+
+ String mappedPathWithoutExtension=resolver.map("/var/map_test");
+ assertEquals("Expecting " + mappedPathWithoutExtension + " to be decorated", DECORATED_PATH, mappedPathWithoutExtension);
+ }
+
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/resourceresolver/impl/ResourceDecoratorTestBase.java b/src/test/java/org/apache/sling/resourceresolver/impl/ResourceDecoratorTestBase.java
index e2b1d80..8213179 100644
--- a/src/test/java/org/apache/sling/resourceresolver/impl/ResourceDecoratorTestBase.java
+++ b/src/test/java/org/apache/sling/resourceresolver/impl/ResourceDecoratorTestBase.java
@@ -103,7 +103,7 @@ public abstract class ResourceDecoratorTestBase {
@Override
public Resource getResource(ResolveContext<Object> ctx, String path, final ResourceContext rCtx, Resource parent) {
- if(path.equals("/") || path.startsWith("/tmp") || path.startsWith("/var")) {
+ if(!path.endsWith(".html") && (path.equals("/") || path.startsWith("/tmp") || path.startsWith("/var"))) {
return mockResource(path);
}
return null;
--
To stop receiving notification emails like this one, please contact
['"commits@sling.apache.org" <co...@sling.apache.org>'].