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;
}
}