You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2016/10/13 21:21:02 UTC
svn commit: r1764794 - in
/sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def:
DefaultConfigurationResourceResolvingStrategy.java
DefaultContextPathStrategy.java
Author: sseifert
Date: Thu Oct 13 21:21:02 2016
New Revision: 1764794
URL: http://svn.apache.org/viewvc?rev=1764794&view=rev
Log:
SLING-6149 Context-Aware Config: Make lookup resource name for sling:config-ref property configurable
Modified:
sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java
sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultContextPathStrategy.java
Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java?rev=1764794&r1=1764793&r2=1764794&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java Thu Oct 13 21:21:02 2016
@@ -75,6 +75,10 @@ public class DefaultConfigurationResourc
@AttributeDefinition(name="Fallback paths",
description = "Global fallback configurations, ordered from most specific (checked first) to least specific.")
String[] fallbackPaths() default {"/conf/global", "/apps/conf", "/libs/conf"};
+
+ @AttributeDefinition(name="Config ref. resource names",
+ description = "Names of resource to try to look up sling:config-ref property in. '.' is also supported as current resource.")
+ String[] configRefResourceNames() default { "." };
}
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@@ -144,7 +148,18 @@ public class DefaultConfigurationResourc
}
private String getReference(final Resource resource) {
- String ref = resource.getValueMap().get(PROPERTY_CONFIG_REF, String.class);
+
+ // lookup reference string in any of the configured lookup resource names
+ String ref = null;
+ for (String name : config.configRefResourceNames()) {
+ Resource lookupResource = resource.getChild(name);
+ if (lookupResource != null) {
+ ref = lookupResource.getValueMap().get(PROPERTY_CONFIG_REF, String.class);
+ if (ref != null) {
+ break;
+ }
+ }
+ }
if (ref != null) {
// if absolute path found we are (probably) done
Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultContextPathStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultContextPathStrategy.java?rev=1764794&r1=1764793&r2=1764794&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultContextPathStrategy.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultContextPathStrategy.java Thu Oct 13 21:21:02 2016
@@ -46,6 +46,10 @@ public class DefaultContextPathStrategy
description = "Enable this context path strategy.")
boolean enabled() default true;
+ @AttributeDefinition(name="Config ref. resource names",
+ description = "Names of resource to try to look up sling:config-ref property in. '.' is also supported as current resource.")
+ String[] configRefResourceNames() default { "." };
+
}
private final Logger log = LoggerFactory.getLogger(this.getClass());
@@ -119,7 +123,13 @@ public class DefaultContextPathStrategy
}
private boolean hasConfigRef(final Resource resource) {
- return resource.getValueMap().get(PROPERTY_CONFIG_REF, String.class) != null;
+ for (String name : config.configRefResourceNames()) {
+ Resource lookupResource = resource.getChild(name);
+ if (lookupResource != null && lookupResource.getValueMap().get(PROPERTY_CONFIG_REF, String.class) != null) {
+ return true;
+ }
+ }
+ return false;
}
}