SLING-10289 fix array configuration
extended ConfigurationTest to verify multiple values work and changed
the AttributeDefinitions to String Arrays
diff --git a/src/main/java/org/apache/sling/dynamicinclude/Configuration.java b/src/main/java/org/apache/sling/dynamicinclude/Configuration.java
index 30cbce6..717209c 100755
--- a/src/main/java/org/apache/sling/dynamicinclude/Configuration.java
+++ b/src/main/java/org/apache/sling/dynamicinclude/Configuration.java
@@ -36,6 +36,7 @@
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.ConfigurationPolicy;
import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.AttributeType;
import org.osgi.service.metatype.annotations.Designate;
import org.osgi.service.metatype.annotations.ObjectClassDefinition;
import org.slf4j.Logger;
@@ -62,8 +63,10 @@
@AttributeDefinition(name="Base path regular expression", description="This SDI configuration will work only for paths matching this value. If value starts with \\\"^\\\" sign, regex matching will be performed. Otherwise it will check for path prefix.")
String include$_$filter_config_path() default "/content";
- @AttributeDefinition(name="Resource types", description="Filter will replace components with selected resource types", cardinality = Integer.MAX_VALUE)
- String include$_$filter_config_resource$_$types() default "";
+ @AttributeDefinition(name = "Resource types",
+ description = "Filter will replace components with selected resource types",
+ type = AttributeType.STRING)
+ String[] include$_$filter_config_resource$_$types() default {};
@AttributeDefinition(name = "Include type", description = "Type of generated include tags")
String include$_$filter_config_include$_$type() default "SSI";
@@ -83,8 +86,10 @@
@AttributeDefinition(name = "Required header", description = "SDI will work only for requests with given header")
String include$_$filter_config_required__header() default "Server-Agent=Communique-Dispatcher";
- @AttributeDefinition(name = "Ignore URL params", description = "SDI will process the request even if it contains configured GET parameters", cardinality = Integer.MAX_VALUE)
- String include$_$filter_config_ignoreUrlParams() default "";
+ @AttributeDefinition(name = "Ignore URL params",
+ description = "SDI will process the request even if it contains configured GET parameters",
+ type = AttributeType.STRING)
+ String[] include$_$filter_config_ignoreUrlParams() default {};
@AttributeDefinition(name = "Include path rewriting", description = "Check to enable include path rewriting")
boolean include$_$filter_config_rewrite() default false;
diff --git a/src/test/java/org/apache/sling/dynamicinclude/ConfigurationTest.java b/src/test/java/org/apache/sling/dynamicinclude/ConfigurationTest.java
index 85cdf8a..ee9c29d 100644
--- a/src/test/java/org/apache/sling/dynamicinclude/ConfigurationTest.java
+++ b/src/test/java/org/apache/sling/dynamicinclude/ConfigurationTest.java
@@ -74,17 +74,18 @@
properties.put("include-filter.config.add_comment", true);
properties.put("include-filter.config.ttl", 60);
properties.put("include-filter.config.enabled", true);
- properties.put("include-filter.config.resource-types", new String[]{"test/resource/type"});
+ properties.put("include-filter.config.resource-types",
+ new String[] { "test/resource/type", "test/resource/type2" });
properties.put("include-filter.config.required_header", "CustomHeader: value");
properties.put("include-filter.config.selector", "cache");
properties.put("include-filter.config.rewrite", true);
- properties.put("include-filter.config.ignoreUrlParams", new String[] {"query"});
+ properties.put("include-filter.config.ignoreUrlParams", new String[] { "query", "query2" });
context.registerInjectActivateService(tested, properties);
assertThat(tested.getPathMatcher().getClass().isAssignableFrom(PrefixPathMatcher.class), is(true));
assertThat(tested.getAddComment(), is(true));
- assertThat(tested.getIgnoreUrlParams().size(), is(1));
+ assertThat(tested.getIgnoreUrlParams().size(), is(2));
assertThat(tested.getIncludeSelector(), is("cache"));
assertThat(tested.getIncludeTypeName(), is("ESI"));
assertThat(tested.getRequiredHeader(), is("CustomHeader: value"));
@@ -93,5 +94,6 @@
assertThat(tested.hasTtlSet(), is(true));
assertThat(tested.isRewritePath(), is(true));
assertThat(tested.isSupportedResourceType("test/resource/type"), is(true));
+ assertThat(tested.isSupportedResourceType("test/resource/type2"), is(true));
}
}