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/11/25 20:16:25 UTC
svn commit: r1771375 - in
/sling/trunk/contrib/extensions/contextaware-config:
api/src/main/java/org/apache/sling/caconfig/annotation/ impl/
impl/src/main/java/org/apache/sling/caconfig/impl/metadata/
impl/src/test/java/org/apache/sling/caconfig/exampl...
Author: sseifert
Date: Fri Nov 25 20:16:25 2016
New Revision: 1771375
URL: http://svn.apache.org/viewvc?rev=1771375&view=rev
Log:
SLING-6333 Context-Aware Config: Allow to mark Config Annotation Classes as "Collections"
Modified:
sling/trunk/contrib/extensions/contextaware-config/api/src/main/java/org/apache/sling/caconfig/annotation/Configuration.java
sling/trunk/contrib/extensions/contextaware-config/api/src/main/java/org/apache/sling/caconfig/annotation/package-info.java
sling/trunk/contrib/extensions/contextaware-config/impl/pom.xml
sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParser.java
sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/example/ListConfig.java
sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParserTest.java
sling/trunk/contrib/extensions/contextaware-config/spi/pom.xml
sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/metadata/ConfigurationMetadata.java
sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/metadata/package-info.java
sling/trunk/contrib/extensions/contextaware-config/spi/src/test/java/org/apache/sling/caconfig/spi/metadata/ConfigurationMetadataTest.java
Modified: sling/trunk/contrib/extensions/contextaware-config/api/src/main/java/org/apache/sling/caconfig/annotation/Configuration.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/api/src/main/java/org/apache/sling/caconfig/annotation/Configuration.java?rev=1771375&r1=1771374&r2=1771375&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/api/src/main/java/org/apache/sling/caconfig/annotation/Configuration.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/api/src/main/java/org/apache/sling/caconfig/annotation/Configuration.java Fri Nov 25 20:16:25 2016
@@ -50,4 +50,9 @@ public @interface Configuration {
*/
String[] property() default {};
+ /**
+ * @return Indicates that this definition should be used for configuration collections.
+ */
+ boolean collection() default false;
+
}
Modified: sling/trunk/contrib/extensions/contextaware-config/api/src/main/java/org/apache/sling/caconfig/annotation/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/api/src/main/java/org/apache/sling/caconfig/annotation/package-info.java?rev=1771375&r1=1771374&r2=1771375&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/api/src/main/java/org/apache/sling/caconfig/annotation/package-info.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/api/src/main/java/org/apache/sling/caconfig/annotation/package-info.java Fri Nov 25 20:16:25 2016
@@ -19,5 +19,5 @@
/**
* Annotations for context-aware configurations.
*/
-@org.osgi.annotation.versioning.Version("1.0.0")
+@org.osgi.annotation.versioning.Version("1.1.0")
package org.apache.sling.caconfig.annotation;
Modified: sling/trunk/contrib/extensions/contextaware-config/impl/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/pom.xml?rev=1771375&r1=1771374&r2=1771375&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/impl/pom.xml (original)
+++ sling/trunk/contrib/extensions/contextaware-config/impl/pom.xml Fri Nov 25 20:16:25 2016
@@ -79,7 +79,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.caconfig.api</artifactId>
- <version>1.0.0</version>
+ <version>1.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParser.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParser.java?rev=1771375&r1=1771374&r2=1771375&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParser.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParser.java Fri Nov 25 20:16:25 2016
@@ -125,6 +125,7 @@ public final class AnnotationClassParser
configMetadata.setLabel(emptyToNull(configAnnotation.label()));
configMetadata.setDescription(emptyToNull(configAnnotation.description()));
configMetadata.setProperties(propsArrayToMap(configAnnotation.property()));
+ configMetadata.setCollection(configAnnotation.collection());
// property metadata
Map<String,PropertyMetadata<?>> propertyMetadataList = new HashMap<>();
Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/example/ListConfig.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/example/ListConfig.java?rev=1771375&r1=1771374&r2=1771375&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/example/ListConfig.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/example/ListConfig.java Fri Nov 25 20:16:25 2016
@@ -20,7 +20,7 @@ package org.apache.sling.caconfig.exampl
import org.apache.sling.caconfig.annotation.Configuration;
-@Configuration
+@Configuration(collection = true)
public @interface ListConfig {
String stringParam();
Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParserTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParserTest.java?rev=1771375&r1=1771374&r2=1771375&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParserTest.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParserTest.java Fri Nov 25 20:16:25 2016
@@ -31,6 +31,7 @@ import java.util.Collection;
import org.apache.commons.lang3.StringUtils;
import org.apache.sling.caconfig.example.AllTypesConfig;
+import org.apache.sling.caconfig.example.ListConfig;
import org.apache.sling.caconfig.example.MetadataSimpleConfig;
import org.apache.sling.caconfig.example.SimpleConfig;
import org.apache.sling.caconfig.example.WithoutAnnotationConfig;
@@ -79,6 +80,7 @@ public class AnnotationClassParserTest {
assertEquals("Simple configuration", metadata.getLabel());
assertEquals("This is a configuration example with additional metadata.", metadata.getDescription());
assertEquals(ImmutableMap.of("param1", "value1", "param2", "123"), metadata.getProperties());
+ assertFalse(metadata.isCollection());
Collection<PropertyMetadata<?>> propertyMetadataList = metadata.getPropertyMetadata().values();
assertEquals(3, propertyMetadataList.size());
@@ -106,6 +108,14 @@ public class AnnotationClassParserTest {
}
@Test
+ public void testBuildConfigurationMetadata_List() {
+ ConfigurationMetadata metadata = buildConfigurationMetadata(ListConfig.class);
+
+ assertEquals(ListConfig.class.getName(), metadata.getName());
+ assertTrue(metadata.isCollection());
+ }
+
+ @Test
public void testBuildConfigurationMetadata_AllTypes() {
ConfigurationMetadata metadata = buildConfigurationMetadata(AllTypesConfig.class);
Modified: sling/trunk/contrib/extensions/contextaware-config/spi/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/spi/pom.xml?rev=1771375&r1=1771374&r2=1771375&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/spi/pom.xml (original)
+++ sling/trunk/contrib/extensions/contextaware-config/spi/pom.xml Fri Nov 25 20:16:25 2016
@@ -53,7 +53,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.caconfig.api</artifactId>
- <version>1.0.0</version>
+ <version>1.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
Modified: sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/metadata/ConfigurationMetadata.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/metadata/ConfigurationMetadata.java?rev=1771375&r1=1771374&r2=1771375&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/metadata/ConfigurationMetadata.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/metadata/ConfigurationMetadata.java Fri Nov 25 20:16:25 2016
@@ -30,7 +30,7 @@ import org.osgi.annotation.versioning.Pr
@ProviderType
public final class ConfigurationMetadata extends AbstractMetadata {
- private boolean isList;
+ private boolean collection;
private Map<String,PropertyMetadata<?>> propertyMetadata;
/**
@@ -44,21 +44,21 @@ public final class ConfigurationMetadata
* @return true if configuration is singleton
*/
public boolean isSingleton() {
- return !isList;
+ return !collection;
}
/**
- * @return true if configuration is list
+ * @return true if configuration is collection
*/
- public boolean isList() {
- return isList;
+ public boolean isCollection() {
+ return collection;
}
/**
- * @param isList true if configuration is list
+ * @param isList true if configuration is collection
*/
- public void setList(boolean isList) {
- this.isList = isList;
+ public void setCollection(boolean value) {
+ this.collection = value;
}
/**
Modified: sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/metadata/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/metadata/package-info.java?rev=1771375&r1=1771374&r2=1771375&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/metadata/package-info.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/metadata/package-info.java Fri Nov 25 20:16:25 2016
@@ -19,5 +19,5 @@
/**
* Defining configuration and parameter metadata for the SPI.
*/
-@org.osgi.annotation.versioning.Version("1.0.0")
+@org.osgi.annotation.versioning.Version("2.0.0")
package org.apache.sling.caconfig.spi.metadata;
Modified: sling/trunk/contrib/extensions/contextaware-config/spi/src/test/java/org/apache/sling/caconfig/spi/metadata/ConfigurationMetadataTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/spi/src/test/java/org/apache/sling/caconfig/spi/metadata/ConfigurationMetadataTest.java?rev=1771375&r1=1771374&r2=1771375&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/spi/src/test/java/org/apache/sling/caconfig/spi/metadata/ConfigurationMetadataTest.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/spi/src/test/java/org/apache/sling/caconfig/spi/metadata/ConfigurationMetadataTest.java Fri Nov 25 20:16:25 2016
@@ -35,18 +35,18 @@ public class ConfigurationMetadataTest {
ConfigurationMetadata underTest = new ConfigurationMetadata("name1");
assertEquals("name1", underTest.getName());
assertTrue(underTest.isSingleton());
- assertFalse(underTest.isList());
+ assertFalse(underTest.isCollection());
underTest.setLabel("label1");
underTest.setDescription("desc1");
- underTest.setList(true);
+ underTest.setCollection(true);
Map<String,String> props = ImmutableMap.of("p1", "v1");
underTest.setProperties(props);
assertEquals("label1", underTest.getLabel());
assertEquals("desc1", underTest.getDescription());
assertFalse(underTest.isSingleton());
- assertTrue(underTest.isList());
+ assertTrue(underTest.isCollection());
assertEquals(props, underTest.getProperties());
}