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/24 21:51:50 UTC

svn commit: r1771235 - in /sling/trunk/contrib/extensions/contextaware-config: impl/src/main/java/org/apache/sling/caconfig/management/ impl/src/main/java/org/apache/sling/caconfig/management/impl/ impl/src/test/java/org/apache/sling/caconfig/managemen...

Author: sseifert
Date: Thu Nov 24 21:51:50 2016
New Revision: 1771235

URL: http://svn.apache.org/viewvc?rev=1771235&view=rev
Log:
SLING-6137 provide configuration metadata in ConfigurationManager

Modified:
    sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/ConfigurationManager.java
    sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImpl.java
    sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java
    sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/ConfigurationMetadataProvider.java

Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/ConfigurationManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/ConfigurationManager.java?rev=1771235&r1=1771234&r2=1771235&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/ConfigurationManager.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/ConfigurationManager.java Thu Nov 24 21:51:50 2016
@@ -20,12 +20,14 @@ package org.apache.sling.caconfig.manage
 
 import java.util.Collection;
 import java.util.Map;
+import java.util.SortedSet;
 
 import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
 
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.caconfig.spi.ResourceCollectionItem;
+import org.apache.sling.caconfig.spi.metadata.ConfigurationMetadata;
 import org.osgi.annotation.versioning.ProviderType;
 
 /**
@@ -78,4 +80,18 @@ public interface ConfigurationManager {
      */
     @CheckForNull ConfigurationData newCollectionItem(@Nonnull Resource resource, @Nonnull String configName);
     
+    /**
+     * Get all configuration names.
+     * The results of all configuration metadata provider implementations are merged.
+     * @return Configuration names
+     */
+    @Nonnull SortedSet<String> getConfigurationNames();
+
+    /**
+     * Get configuration metadata from any configuration metadata provider.
+     * @param configName Configuration name
+     * @return Configuration metadata or null if none exists for the given name.
+     */
+    @CheckForNull ConfigurationMetadata getConfigurationMetadata(String configName);
+    
 }

Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImpl.java?rev=1771235&r1=1771234&r2=1771235&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImpl.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImpl.java Thu Nov 24 21:51:50 2016
@@ -25,6 +25,7 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.SortedSet;
 
 import org.apache.commons.collections.IteratorUtils;
 import org.apache.commons.collections.ResettableIterator;
@@ -187,4 +188,14 @@ public class ConfigurationManagerImpl im
         return null;
     }
 
+    @Override
+    public SortedSet<String> getConfigurationNames() {
+        return configurationMetadataProvider.getConfigurationNames();
+    }
+
+    @Override
+    public ConfigurationMetadata getConfigurationMetadata(String configName) {
+        return configurationMetadataProvider.getConfigurationMetadata(configName);
+    }
+
 }

Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java?rev=1771235&r1=1771234&r2=1771235&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java Thu Nov 24 21:51:50 2016
@@ -54,6 +54,7 @@ import org.mockito.runners.MockitoJUnitR
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.ImmutableSortedSet;
 
 @RunWith(MockitoJUnitRunner.class)
 public class ConfigurationManagerImplTest {
@@ -130,6 +131,7 @@ public class ConfigurationManagerImplTes
                 "prop2", new PropertyMetadata<>("prop2", String.class),
                 "prop3", new PropertyMetadata<>("prop3", 5)));
         when(configurationMetadataProvider.getConfigurationMetadata(CONFIG_COL_NAME)).thenReturn(configMetadata);
+        when(configurationMetadataProvider.getConfigurationNames()).thenReturn(ImmutableSortedSet.of(CONFIG_NAME, CONFIG_COL_NAME));
     }
     
     protected String getConfigPropertiesPath(String path) {
@@ -462,4 +464,14 @@ public class ConfigurationManagerImplTes
         assertNull(newItem);
     }
 
+    @Test
+    public void testGetConfigurationNames() {
+        assertEquals(ImmutableSortedSet.of(CONFIG_NAME, CONFIG_COL_NAME), underTest.getConfigurationNames());
+    }
+
+    @Test
+    public void testGetConfigurationMetadata() throws Exception {
+        assertEquals(CONFIG_NAME, underTest.getConfigurationMetadata(CONFIG_NAME).getName());
+    }
+
 }

Modified: sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/ConfigurationMetadataProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/ConfigurationMetadataProvider.java?rev=1771235&r1=1771234&r2=1771235&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/ConfigurationMetadataProvider.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/spi/src/main/java/org/apache/sling/caconfig/spi/ConfigurationMetadataProvider.java Thu Nov 24 21:51:50 2016
@@ -20,6 +20,7 @@ package org.apache.sling.caconfig.spi;
 
 import java.util.SortedSet;
 
+import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
 
 import org.apache.sling.caconfig.spi.metadata.ConfigurationMetadata;
@@ -42,6 +43,6 @@ public interface ConfigurationMetadataPr
      * @param configName Configuration name
      * @return Configuration metadata or null if none exists for the given name.
      */
-    ConfigurationMetadata getConfigurationMetadata(String configName);
+    @CheckForNull ConfigurationMetadata getConfigurationMetadata(String configName);
 
 }