You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by as...@apache.org on 2014/11/17 12:06:47 UTC
svn commit: r1640141 -
/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
Author: asanso
Date: Mon Nov 17 11:06:46 2014
New Revision: 1640141
URL: http://svn.apache.org/r1640141
Log:
SLING-3844 - Resolver.map() spends too much time looking up sling:alias
Modified:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java?rev=1640141&r1=1640140&r2=1640141&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java Mon Nov 17 11:06:46 2014
@@ -437,7 +437,24 @@ public class ResourceResolverImpl extend
while (path != null) {
String alias = null;
if (current != null && !path.endsWith(JCR_CONTENT_LEAF)) {
- alias = ResourceResolverContext.getProperty(current, PROP_ALIAS);
+ if (factory.getMapEntries().isOptimizeAliasResolutionEnabled()) {
+ logger.debug("map: Optimize Alias Resolution is Enabled");
+ String parentPath = ResourceUtil.getParent(path);
+ if (parentPath != null) {
+ final Map<String, String> aliases = factory.getMapEntries().getAliasMap(parentPath);
+ if (aliases!= null && aliases.containsValue(current.getName())) {
+ for (String key:aliases.keySet()) {
+ if (current.getName().equals(aliases.get(key))) {
+ alias = key;
+ break;
+ }
+ }
+ }
+ }
+ } else {
+ logger.debug("map: Optimize Alias Resolution is Disabled");
+ alias = ResourceResolverContext.getProperty(current, PROP_ALIAS);
+ }
}
if (alias == null || alias.length() == 0) {
alias = ResourceUtil.getName(path);