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 <[email protected]>
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
['"[email protected]" <[email protected]>'].