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