This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.caconfig.spi-1.2.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-caconfig-spi.git
commit b6cb6639662175dd516d572856592855b83ad289 Author: Stefan Seifert <[email protected]> AuthorDate: Wed Nov 30 21:00:11 2016 +0000 SLING-6347 Context-Aware Config: Access to Inheritance Properties in Management API, SPI git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/contextaware-config/spi@1772117 13f79535-47bb-0310-9956-ffa450edef68 --- .../spi/ConfigurationCollectionPersistData.java | 68 ++++++++++++++++++++++ ...tionItem.java => ConfigurationPersistData.java} | 39 ++++++++----- .../spi/ConfigurationPersistenceStrategy.java | 7 +-- .../ConfigurationCollectionPersistDataTest.java} | 51 +++++++--------- .../spi/ConfigurationPersistDataTest.java} | 47 ++++++--------- 5 files changed, 134 insertions(+), 78 deletions(-) diff --git a/src/main/java/org/apache/sling/caconfig/spi/ConfigurationCollectionPersistData.java b/src/main/java/org/apache/sling/caconfig/spi/ConfigurationCollectionPersistData.java new file mode 100644 index 0000000..dfbfa82 --- /dev/null +++ b/src/main/java/org/apache/sling/caconfig/spi/ConfigurationCollectionPersistData.java @@ -0,0 +1,68 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.sling.caconfig.spi; + +import java.util.Collection; +import java.util.Map; + +import javax.annotation.CheckForNull; +import javax.annotation.Nonnull; + +import org.osgi.annotation.versioning.ProviderType; + +/** + * Data for persisting configuration collections. + */ +@ProviderType +public final class ConfigurationCollectionPersistData { + + private final Collection<ConfigurationPersistData> items; + private Map<String,Object> properties; + + /** + * @param collection Collection of configuration collection items + */ + public ConfigurationCollectionPersistData(@Nonnull Collection<ConfigurationPersistData> items) { + this.items = items; + } + + /** + * @return Collection of configuration collection items + */ + public @Nonnull Collection<ConfigurationPersistData> getItems() { + return items; + } + + /** + * @return Properties for the configuration collection itself. Does not contain configuration data, but control data e.g. for enabling collection inheritance. + */ + public @CheckForNull Map<String, Object> getProperties() { + return properties; + } + + /** + * @param properties Properties for the configuration collection itself. Does not contain configuration data, but control data e.g. for enabling collection inheritance. + * @return this + */ + public ConfigurationCollectionPersistData properties(Map<String, Object> value) { + this.properties = value; + return this; + } + +} diff --git a/src/main/java/org/apache/sling/caconfig/spi/ResourceCollectionItem.java b/src/main/java/org/apache/sling/caconfig/spi/ConfigurationPersistData.java similarity index 53% copy from src/main/java/org/apache/sling/caconfig/spi/ResourceCollectionItem.java copy to src/main/java/org/apache/sling/caconfig/spi/ConfigurationPersistData.java index ca6f37e..a062a05 100644 --- a/src/main/java/org/apache/sling/caconfig/spi/ResourceCollectionItem.java +++ b/src/main/java/org/apache/sling/caconfig/spi/ConfigurationPersistData.java @@ -20,38 +20,49 @@ package org.apache.sling.caconfig.spi; import java.util.Map; +import javax.annotation.CheckForNull; +import javax.annotation.Nonnull; + import org.osgi.annotation.versioning.ProviderType; /** - * Name and values for persisting resource collection items. + * Data for persisting configuration properties. */ @ProviderType -public final class ResourceCollectionItem { - - private final String collectionItemName; - private final Map<String,Object> values; +public final class ConfigurationPersistData { + + private final Map<String,Object> properties; + private String collectionItemName; /** * @param collectionItemName Resource collection item name - * @param values Values + * @param properties Property values + */ + public ConfigurationPersistData(@Nonnull Map<String, Object> properties) { + this.properties = properties; + } + + /** + * @return Property values */ - public ResourceCollectionItem(String collectionItemName, Map<String, Object> values) { - this.collectionItemName = collectionItemName; - this.values = values; + public @Nonnull Map<String, Object> getProperties() { + return properties; } /** - * @return Resource collection item name + * @return Resource collection item name. To be set only for resource collection items. */ - public String getCollectionItemName() { + public @CheckForNull String getCollectionItemName() { return collectionItemName; } /** - * @return Values + * @param collectionItemName Resource collection item name. To be set only for resource collection items. + * @return this */ - public Map<String, Object> getValues() { - return values; + public ConfigurationPersistData collectionItemName(String value) { + this.collectionItemName = value; + return this; } } diff --git a/src/main/java/org/apache/sling/caconfig/spi/ConfigurationPersistenceStrategy.java b/src/main/java/org/apache/sling/caconfig/spi/ConfigurationPersistenceStrategy.java index c0cfc2e..eddba38 100644 --- a/src/main/java/org/apache/sling/caconfig/spi/ConfigurationPersistenceStrategy.java +++ b/src/main/java/org/apache/sling/caconfig/spi/ConfigurationPersistenceStrategy.java @@ -18,9 +18,6 @@ */ package org.apache.sling.caconfig.spi; -import java.util.Collection; -import java.util.Map; - import javax.annotation.CheckForNull; import javax.annotation.Nonnull; @@ -61,7 +58,7 @@ public interface ConfigurationPersistenceStrategy { * (but in case of error throw an exception). */ boolean persist(@Nonnull ResourceResolver resourceResolver, - @Nonnull String configResourcePath, @Nonnull Map<String,Object> properties); + @Nonnull String configResourcePath, @Nonnull ConfigurationPersistData data); /** * Stores configuration data for a configuration resource collection. @@ -75,6 +72,6 @@ public interface ConfigurationPersistenceStrategy { * (but in case of error throw an exception). */ boolean persistCollection(@Nonnull ResourceResolver resourceResolver, - @Nonnull String configResourceCollectionParentPath, @Nonnull Collection<ResourceCollectionItem> resourceCollectionItems); + @Nonnull String configResourceCollectionParentPath, @Nonnull ConfigurationCollectionPersistData data); } diff --git a/src/main/java/org/apache/sling/caconfig/spi/ResourceCollectionItem.java b/src/test/java/org/apache/sling/caconfig/spi/ConfigurationCollectionPersistDataTest.java similarity index 52% copy from src/main/java/org/apache/sling/caconfig/spi/ResourceCollectionItem.java copy to src/test/java/org/apache/sling/caconfig/spi/ConfigurationCollectionPersistDataTest.java index ca6f37e..730bb7c 100644 --- a/src/main/java/org/apache/sling/caconfig/spi/ResourceCollectionItem.java +++ b/src/test/java/org/apache/sling/caconfig/spi/ConfigurationCollectionPersistDataTest.java @@ -18,40 +18,31 @@ */ package org.apache.sling.caconfig.spi; -import java.util.Map; +import static org.junit.Assert.assertSame; -import org.osgi.annotation.versioning.ProviderType; +import java.util.Collection; +import java.util.Map; -/** - * Name and values for persisting resource collection items. - */ -@ProviderType -public final class ResourceCollectionItem { - - private final String collectionItemName; - private final Map<String,Object> values; - - /** - * @param collectionItemName Resource collection item name - * @param values Values - */ - public ResourceCollectionItem(String collectionItemName, Map<String, Object> values) { - this.collectionItemName = collectionItemName; - this.values = values; - } +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; - /** - * @return Resource collection item name - */ - public String getCollectionItemName() { - return collectionItemName; - } +@RunWith(MockitoJUnitRunner.class) +public class ConfigurationCollectionPersistDataTest { - /** - * @return Values - */ - public Map<String, Object> getValues() { - return values; + @Mock + private Collection<ConfigurationPersistData> items; + @Mock + private Map<String,Object> props; + + @Test + public void testProperties() { + ConfigurationCollectionPersistData underTest = new ConfigurationCollectionPersistData(items) + .properties(props); + + assertSame(items, underTest.getItems()); + assertSame(props, underTest.getProperties()); } } diff --git a/src/main/java/org/apache/sling/caconfig/spi/ResourceCollectionItem.java b/src/test/java/org/apache/sling/caconfig/spi/ConfigurationPersistDataTest.java similarity index 51% rename from src/main/java/org/apache/sling/caconfig/spi/ResourceCollectionItem.java rename to src/test/java/org/apache/sling/caconfig/spi/ConfigurationPersistDataTest.java index ca6f37e..01ffa2b 100644 --- a/src/main/java/org/apache/sling/caconfig/spi/ResourceCollectionItem.java +++ b/src/test/java/org/apache/sling/caconfig/spi/ConfigurationPersistDataTest.java @@ -18,40 +18,29 @@ */ package org.apache.sling.caconfig.spi; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertSame; + import java.util.Map; -import org.osgi.annotation.versioning.ProviderType; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; -/** - * Name and values for persisting resource collection items. - */ -@ProviderType -public final class ResourceCollectionItem { - - private final String collectionItemName; - private final Map<String,Object> values; - - /** - * @param collectionItemName Resource collection item name - * @param values Values - */ - public ResourceCollectionItem(String collectionItemName, Map<String, Object> values) { - this.collectionItemName = collectionItemName; - this.values = values; - } +@RunWith(MockitoJUnitRunner.class) +public class ConfigurationPersistDataTest { - /** - * @return Resource collection item name - */ - public String getCollectionItemName() { - return collectionItemName; - } + @Mock + private Map<String,Object> props; - /** - * @return Values - */ - public Map<String, Object> getValues() { - return values; + @Test + public void testGetProperties() { + ConfigurationPersistData underTest = new ConfigurationPersistData(props) + .collectionItemName("item1"); + + assertSame(props, underTest.getProperties()); + assertEquals("item1", underTest.getCollectionItemName()); } } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
