http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/java/org/apache/tamaya/builder/ConfigurationBuilderTest.java ---------------------------------------------------------------------- diff --git a/builder/src/test/java/org/apache/tamaya/builder/ConfigurationBuilderTest.java b/builder/src/test/java/org/apache/tamaya/builder/ConfigurationBuilderTest.java deleted file mode 100644 index 07a72c5..0000000 --- a/builder/src/test/java/org/apache/tamaya/builder/ConfigurationBuilderTest.java +++ /dev/null @@ -1,907 +0,0 @@ -/* - * 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.tamaya.builder; - -import org.apache.tamaya.ConfigException; -import org.apache.tamaya.Configuration; -import org.apache.tamaya.TypeLiteral; -import org.apache.tamaya.builder.util.types.CustomTypeA; -import org.apache.tamaya.builder.util.types.CustomTypeB; -import org.apache.tamaya.builder.util.types.CustomTypeC; -import org.apache.tamaya.spi.*; -import org.hamcrest.CoreMatchers; -import org.hamcrest.Matchers; -import org.junit.Ignore; -import org.junit.Test; -import org.mockito.Mockito; - - -import java.io.IOException; -import java.net.URL; - -import static java.util.Arrays.asList; -import static org.apache.tamaya.builder.util.mockito.NotMockedAnswer.NOT_MOCKED_ANSWER; -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.CoreMatchers.nullValue; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.notNullValue; -import static org.mockito.Matchers.anyString; -import static org.mockito.Mockito.CALLS_REAL_METHODS; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - - -public class ConfigurationBuilderTest { - - @Test - public void buildCanBuildEmptyConfiguration() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.build(); - - assertThat(config, notNullValue()); - } - - @Test(expected = IllegalStateException.class) - public void buildCanBeCalledOnlyOnce() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.build(); - builder.build(); - } - - /********************************************************************* - * Tests for adding P r o p e r t y S o u r c e s - */ - - @Test(expected = NullPointerException.class) - public void addPropertySourcesDoesNotAcceptNullValue() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.addPropertySources((PropertySource[])null); - } - - @Test(expected = IllegalStateException.class) - public void propertySourceCanNotBeAddedAfterBuildingTheConfiguration() { - PropertySource first = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("first").when(first).getName(); - doReturn(100).when(first).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder().addPropertySources(first); - - builder.build(); - - PropertySource second = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("second").when(first).getName(); - - builder.addPropertySources(second); - } - - @Test - public void singleAddedPropertySourceIsUsed() { - PropertySource source = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("one").when(source).getName(); - doReturn(PropertyValue.of("keyOfA","a", "test")).when(source).get("keyOfA"); - doReturn(100).when(source).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder().addPropertySources(source); - - Configuration config = builder.build(); - - String valueOfA = config.get("keyOfA"); - - assertThat(valueOfA, notNullValue()); - assertThat(valueOfA, equalTo("a")); - } - - @Test - public void twoAddedPropertySourcesAreUsed() { - PropertySource sourceOne = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("one").when(sourceOne).getName(); - doReturn(PropertyValue.of("keyOfA","b", "test")).when(sourceOne).get("keyOfA"); - doReturn(10).when(sourceOne).getOrdinal(); - - PropertySource sourceTwo = mock(PropertySource.class, NOT_MOCKED_ANSWER); - doReturn("two").when(sourceTwo).getName(); - doReturn(PropertyValue.of("keyOfA","a", "test")).when(sourceTwo).get("keyOfA"); - doReturn(10).when(sourceTwo).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder().addPropertySources(sourceOne) - .addPropertySources(sourceTwo); - - Configuration config = builder.build(); - - String valueOfA = config.get("keyOfA"); - - assertThat(valueOfA, notNullValue()); - assertThat(valueOfA, equalTo("a")); - } - - @Ignore - @Test(expected = ConfigException.class) - public void twoPropertySourcesSamePrioritySameKey() { - PropertySource sourceOne = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("one").when(sourceOne).getName(); - doReturn("b").when(sourceOne).get("keyOfA"); - doReturn(20).when(sourceOne).getOrdinal(); - - PropertySource sourceTwo = mock(PropertySource.class, NOT_MOCKED_ANSWER); - doReturn("two").when(sourceTwo).getName(); - doReturn("a").when(sourceTwo).get("keyOfA"); - doReturn(20).when(sourceTwo).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder().addPropertySources(sourceOne) - .addPropertySources(sourceTwo); - - Configuration config = builder.build(); - - config.get("keyOfA"); - } - - @Test - public void twoPropertySourcesDiffPrioritySameKeyLowerAddedFirst() { - PropertySource sourceOne = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("one").when(sourceOne).getName(); - doReturn(PropertyValue.of("keyOfA","b", "test")).when(sourceOne).get("keyOfA"); - doReturn(10).when(sourceOne).getOrdinal(); - - PropertySource sourceTwo = mock(PropertySource.class, NOT_MOCKED_ANSWER); - doReturn("two").when(sourceTwo).getName(); - doReturn(PropertyValue.of("keyOfA","a", "test")).when(sourceTwo).get("keyOfA"); - doReturn(20).when(sourceTwo).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder().addPropertySources(sourceOne) - .addPropertySources(sourceTwo); - - Configuration config = builder.build(); - - String valueOfA = config.get("keyOfA"); - - assertThat(valueOfA, notNullValue()); - assertThat(valueOfA, equalTo("a")); - } - - @Test - public void twoPropertySourcesDiffPrioritySameKeyHigherAddedFirst() { - PropertySource sourceOne = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("one").when(sourceOne).getName(); - doReturn(PropertyValue.of("keyOfA","b", "test")).when(sourceOne).get("keyOfA"); - doReturn(30).when(sourceOne).getOrdinal(); - - PropertySource sourceTwo = mock(PropertySource.class, NOT_MOCKED_ANSWER); - doReturn("two").when(sourceTwo).getName(); - doReturn(PropertyValue.of("keyOfA","a", "test")).when(sourceTwo).get("keyOfA"); - doReturn(20).when(sourceTwo).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder().addPropertySources(sourceOne, sourceTwo); - - Configuration config = builder.build(); - - String valueOfA = config.get("keyOfA"); - - assertThat(valueOfA, notNullValue()); - assertThat(valueOfA, equalTo("b")); - } - - @Test - public void consecutiveCallsToAddPropertySourceArePossible() { - PropertySource sourceOne = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("one").when(sourceOne).getName(); - doReturn(null).when(sourceOne).get(anyString()); - doReturn(PropertyValue.of("b","b", "test")).when(sourceOne).get("b"); - doReturn(30).when(sourceOne).getOrdinal(); - - PropertySource sourceTwo = mock(PropertySource.class, NOT_MOCKED_ANSWER); - doReturn("two").when(sourceTwo).getName(); - doReturn(null).when(sourceTwo).get(anyString()); - doReturn(PropertyValue.of("a","a", "test")).when(sourceTwo).get("a"); - doReturn(30).when(sourceTwo).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder().addPropertySources(sourceOne) - .addPropertySources(sourceTwo); - - Configuration config = builder.build(); - - assertThat(config.get("b"), equalTo("b")); - assertThat(config.get("a"), equalTo("a")); - } - - @Test - public void addMultiplePropertySourcesWhereOneIsNull() { - PropertySource sourceOne = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("one").when(sourceOne).getName(); - doReturn(null).when(sourceOne).get(anyString()); - doReturn(PropertyValue.of("b","b", "test")).when(sourceOne).get("b"); - doReturn(30).when(sourceOne).getOrdinal(); - - PropertySource sourceTwo = mock(PropertySource.class, NOT_MOCKED_ANSWER); - doReturn("two").when(sourceTwo).getName(); - doReturn(null).when(sourceTwo).get(anyString()); - doReturn(PropertyValue.of("a","a", "test")).when(sourceTwo).get("a"); - doReturn(30).when(sourceTwo).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder().addPropertySources(sourceOne, null, sourceTwo); - - Configuration config = builder.build(); - - assertThat(config.get("b"), equalTo("b")); - assertThat(config.get("a"), equalTo("a")); - } - - /** - * ****************************************************************** - * Tests for adding P r o p e r t y C o n v e r t e r - */ - - @Test(expected = NullPointerException.class) - public void canNotAddNullPropertyConverter() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.addPropertyConverter(TypeLiteral.of(CustomTypeA.class), null); - } - - @Test(expected = NullPointerException.class) - public void canNotAddNullTypeLiteralButPropertyConverter() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - builder.addPropertyConverter((TypeLiteral)null, - new PropertyConverter() { - @Override - public CustomTypeA convert(final String prop, ConversionContext context) { - return new CustomTypeA(prop, prop); - } - }); - } - - @Test - public void addedPropertyConverterWithTypeLiteralIsUsedByConfiguration() { - PropertySource source = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("source").when(source).getName(); - doReturn(PropertyValue.of("key","A", "test")).when(source).get("key"); - doReturn(100).when(source).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.addPropertyConverter(TypeLiteral.of(CustomTypeA.class), - new PropertyConverter() { - @Override - public CustomTypeA convert(final String prop, ConversionContext context) { - return new CustomTypeA(prop, prop); - } - }); - builder.addPropertySources(source); - - Configuration config = builder.build(); - - Object resultRaw = config.get("key", CustomTypeA.class); - - assertThat(resultRaw, CoreMatchers.notNullValue()); - - CustomTypeA result = (CustomTypeA)resultRaw; - - assertThat(result.getName(), equalTo("AA")); - } - - @Test - public void addedPropertyConverterWithClassIsUsedByConfiguration() { - PropertySource source = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("source").when(source).getName(); - doReturn(PropertyValue.of("key","A", "test")).when(source).get("key"); - doReturn(100).when(source).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.addPropertyConverter(TypeLiteral.of(CustomTypeA.class), - new PropertyConverter() { - @Override - public CustomTypeA convert(final String prop, ConversionContext context) { - return new CustomTypeA(prop, prop); - } - }); - builder.addPropertySources(source); - - Configuration config = builder.build(); - - Object resultRaw = config.get("key", CustomTypeA.class); - - assertThat(resultRaw, CoreMatchers.notNullValue()); - - CustomTypeA result = (CustomTypeA)resultRaw; - - assertThat(result.getName(), equalTo("AA")); - } - - @Test - public void canGetAndConvertPropertyViaOfMethod() { - PropertySource source = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("source").when(source).getName(); - doReturn(PropertyValue.of("key","A", "test")).when(source).get("key"); - doReturn(100).when(source).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.addPropertySources(source); - - Configuration config = builder.build(); - - Object resultRaw = config.get("key", CustomTypeB.class); - - assertThat(resultRaw, CoreMatchers.notNullValue()); - - CustomTypeB result = (CustomTypeB)resultRaw; - - assertThat(result.getName(), equalTo("A")); - } - - /********************************************************************* - * Tests for adding P r o p e r t y F i l t e r - */ - - @Test(expected = NullPointerException.class) - public void canNotAddNullAsPropertyFilter() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - builder.addPropertyFilters((PropertyFilter[])null); - } - - @Test - public void canAddNonSPIPropertyFilter() { - PropertySource source = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn(PropertyValue.of("key","M", "test")).when(source).get("key"); - doReturn("source").when(source).getName(); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.addPropertySources(source) - .addPropertyFilters(new TestANonSPIPropertyFilter()) - .build(); - - String property = config.get("key"); - - assertThat(property, CoreMatchers.notNullValue()); - assertThat(property, CoreMatchers.containsString("ABC")); - } - - @Test - public void canAddNonSPIPropertyFiltersViaConsecutiveCalls() { - PropertySource source = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn(PropertyValue.of("key","M", "test")).when(source).get("key"); - doReturn("source").when(source).getName(); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.addPropertySources(source) - .addPropertyFilters(new TestANonSPIPropertyFilter()) - .addPropertyFilters(new TestBNonSPIPropertyFilter()) - .build(); - - String property = config.get("key"); - - assertThat(property, CoreMatchers.notNullValue()); - assertThat(property, CoreMatchers.containsString("ABC")); - assertThat(property, CoreMatchers.containsString("XYZ")); - } - - @Test - public void canAddMultipleNonSPIPropertyFiltersWhileOneIsNull() { - PropertySource source = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn(PropertyValue.of("key","M", "test")).when(source).get("key"); - doReturn("source").when(source).getName(); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.addPropertySources(source) - .addPropertyFilters(new TestANonSPIPropertyFilter(), - null, - new TestBNonSPIPropertyFilter()) - .build(); - - String property = config.get("key"); - - assertThat(property, CoreMatchers.notNullValue()); - assertThat(property, CoreMatchers.containsString("ABC")); - assertThat(property, CoreMatchers.containsString("XYZ")); - } - - @Test - public void overhandedNullPropertyFilterIsSafelyHandled() { - PropertySource source = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn(PropertyValue.of("key","M", "test")).when(source).get("key"); - doReturn("source").when(source).getName(); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.addPropertySources(source) - .addPropertyFilters((PropertyFilter)null) // The cast is needed! - .addPropertyFilters(new TestBNonSPIPropertyFilter()) - .build(); - - String property = config.get("key"); - - assertThat(property, CoreMatchers.notNullValue()); - assertThat(property, CoreMatchers.containsString("XYZ")); - } - - @Test - public void canAddMultipleNonSPIPropertyFilter() { - PropertySource source = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn(PropertyValue.of("key","M", "test")).when(source).get("key"); - doReturn("source").when(source).getName(); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.addPropertySources(source) - .addPropertyFilters(new TestANonSPIPropertyFilter(), - new TestBNonSPIPropertyFilter()) - .build(); - - String property = config.get("key"); - - assertThat(property, CoreMatchers.notNullValue()); - assertThat(property, CoreMatchers.containsString("ABC")); - assertThat(property, CoreMatchers.containsString("XYZ")); - } - - /********************************************************************* - * Tests for adding - * P r o p e r t y S o u r c e P r o v i d e r s - */ - - @Test - public void handlesSafelyPropertyProviderReturningNullInsteadOfPropertySource() { - PropertySourceProvider nullReturning = mock(PropertySourceProvider.class, NOT_MOCKED_ANSWER); - - doReturn(asList((PropertySource)null)).when(nullReturning).getPropertySources(); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.addPropertySourceProviders(new TestPropertySourceProviderB(), - nullReturning, - new TestPropertySourceProvider()) - .build(); - - assertThat(config.get("tpsp_a"), Matchers.equalTo("A")); - assertThat(config.get("tpsp_b"), Matchers.equalTo("B")); - assertThat(config.get("tpsp_x"), Matchers.equalTo("X")); - assertThat(config.get("tpsp_y"), Matchers.equalTo("Y")); - - verify(nullReturning).getPropertySources(); - } - - @Test(expected = NullPointerException.class) - public void cannotAddNullAsPropertyProvider() { - new ConfigurationBuilder().addPropertySourceProviders((PropertySourceProvider[])null); - } - - @Test - public void canAddMultipleNonSPIPropertySourceProviders() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.addPropertySourceProviders(new TestPropertySourceProviderB(), - new TestPropertySourceProvider()) - .build(); - - assertThat(config.get("tpsp_a"), Matchers.equalTo("A")); - assertThat(config.get("tpsp_b"), Matchers.equalTo("B")); - assertThat(config.get("tpsp_x"), Matchers.equalTo("X")); - assertThat(config.get("tpsp_y"), Matchers.equalTo("Y")); - } - - @Test - public void canAddMultipleNonSPIPropertySourceProvidersWhileOfOfThemIsNull() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.addPropertySourceProviders(new TestPropertySourceProviderB(), null, - new TestPropertySourceProvider()) - .build(); - - assertThat(config.get("tpsp_a"), Matchers.equalTo("A")); - assertThat(config.get("tpsp_b"), Matchers.equalTo("B")); - assertThat(config.get("tpsp_x"), Matchers.equalTo("X")); - assertThat(config.get("tpsp_y"), Matchers.equalTo("Y")); - } - - - /* - * Tests for adding - * P r o p e r t y V a l u e C o m b i n a t i o n P o l i c y - */ - - // @todo TAYAMA-60 Write more tests - - /********************************************************************* - * Tests for enabling and disabling of automatic loading of - * P r o p e r t y S o u r c e s - */ - - @Test - public void enablingOfProvidedPropertySourceServiceProvidersIsOk() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.disableProvidedPropertyConverters() - .enableProvidedPropertyConverters(); - - assertThat(builder.isPropertyConverterLoadingEnabled(), is(true)); - } - - @Test - public void disablingOfProvidedPropertySourceServiceProvidersIsOk() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.enableProvidedPropertyConverters() - .disableProvidedPropertyConverters(); - - assertThat(builder.isPropertyConverterLoadingEnabled(), is(false)); - } - - @Test(expected = ConfigException.class) - public void loadingOrPropertyConvertersCanBeDisabled() { - PropertySource source = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("source").when(source).getName(); - doReturn(PropertyValue.of("key","A", "test")).when(source).get("key"); - doReturn(100).when(source).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder().addPropertySources(source) - .enableProvidedPropertyConverters() - .disableProvidedPropertyConverters(); - - Configuration config = builder.build(); - - config.get("key", CustomTypeC.class); - } - - @Test - public void loadingOfPropertyConvertersCanBeEnabled() { - PropertySource source = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("source").when(source).getName(); - doReturn(PropertyValue.of("key","A", "test")).when(source).get("key"); - doReturn(100).when(source).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder().addPropertySources(source) - .disableProvidedPropertyConverters() - .enableProvidedPropertyConverters(); - - Configuration config = builder.build(); - - CustomTypeC result = config.get("key", CustomTypeC.class); - - assertThat(result, notNullValue()); - assertThat(result.getValue(), equalTo("A")); - } - - /********************************************************************* - * Tests for enabling and disabling of automatic loading of - * P r o p e r t y S o u r c e s - */ - - @Test - public void enablingOfPropertySourceLoadingIsOk() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.disableProvidedPropertySources() - .enableProvidedPropertySources(); - - assertThat(builder.isPropertySourcesLoadingEnabled(), is(true)); - } - - @Test - public void disablingPropertySourceLoadingIsOk() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.enableProvidedPropertySources() - .disableProvidedPropertySources(); - - assertThat(builder.isPropertySourcesLoadingEnabled(), is(false)); - } - - @Test - public void loadingOfPropertySourcesCanBeEnabled() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.disableProvidedPropertySources() - .enableProvidedPropertySources() - .build(); - - - assertThat(builder.isPropertySourcesLoadingEnabled(), is(true)); - assertThat(config.get("tps_a"), Matchers.equalTo("A")); - } - - @Test - public void loadingOfPropertySourcesCanBeDisabled() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.enableProvidedPropertySources() - .disableProvidedPropertySources() - .build(); - - - assertThat(builder.isPropertySourcesLoadingEnabled(), is(false)); - assertThat(config.get("tps_c"), Matchers.nullValue()); - } - - /********************************************************************* - * Tests for enabling and disabling of automatic loading of - * P r o p e r t y F i l t e r s - */ - - @Test - public void enablingOfPropertyFiltersLoadingIsOk() { - PropertySource source = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("source").when(source).getName(); - doReturn(PropertyValue.of("key","A", "test")).when(source).get("key"); - doReturn(100).when(source).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.disableProvidedPropertyFilters() - .enabledProvidedPropertyFilters() - .addPropertySources(source) - .build(); - - String property = config.get("key"); - - assertThat(property, CoreMatchers.notNullValue()); - assertThat(property, Matchers.equalTo("AinBerlin")); - } - - @Test - public void disablingOfPropertyFiltersLoadingIsOk() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.enabledProvidedPropertyFilters() - .disableProvidedPropertyFilters(); - - assertThat(builder.isPropertyFilterLoadingEnabled(), is(false)); - } - - @Test - public void loadingOfPropertyFiltersCanBeDisabled() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.disableProvidedPropertyFilters() - .enabledProvidedPropertyFilters(); - - assertThat(builder.isPropertyFilterLoadingEnabled(), is(true)); - } - - @Test - public void loadingOfPropertyFiltersCanBeEnabled() { - PropertySource source = mock(PropertySource.class, NOT_MOCKED_ANSWER); - - doReturn("source").when(source).getName(); - doReturn(PropertyValue.of("key","A", "test")).when(source).get("key"); - doReturn(100).when(source).getOrdinal(); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.enabledProvidedPropertyFilters() - .disableProvidedPropertyFilters() - .addPropertySources(source) - .build(); - - String property = config.get("key"); - - assertThat(property, CoreMatchers.notNullValue()); - assertThat(property, Matchers.equalTo("A")); - } - - /********************************************************************* - * Tests for enabling and disabling of automatic loading of - * P r o p e r t y S o u r c e P r o v i d e r s - */ - - @Test - public void disablingOfPropertySourceProvidersIsOk() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.enableProvidedPropertySourceProviders() - .disableProvidedPropertySourceProviders() - .build(); - - assertThat(builder.isPropertySourceProvidersLoadingEnabled(), is(false)); - } - - @Test - public void enablingOfPropertySourceProvidersIsOk() { - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.disableProvidedPropertySourceProviders() - .enableProvidedPropertySourceProviders() - .build(); - - assertThat(builder.isPropertySourceProvidersLoadingEnabled(), is(true)); - } - - @Test - public void loadingOfPropertySourceProvidersCanBeEnabled() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.disableProvidedPropertySourceProviders() - .enableProvidedPropertySourceProviders() - .build(); - - assertThat(builder.isPropertySourceProvidersLoadingEnabled(), is(true)); - assertThat(config.get("tpsp_x"), Matchers.equalTo("X")); - assertThat(config.get("tpsp_y"), Matchers.equalTo("Y")); - } - - @Test - public void loadingOfPropertySourceProvidersCanBeDisabled() { - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.enableProvidedPropertySourceProviders() - .disableProvidedPropertySourceProviders() - .build(); - - assertThat(builder.isPropertySourceProvidersLoadingEnabled(), is(false)); - assertThat(config.get("tpsp_x"), nullValue()); - assertThat(config.get("tpsp_x"), nullValue()); - } - - @Test(expected = ConfigException.class) - public void ioExceptionIsTurnedInConfigExceptionWhenLoadingResourceViaURL() throws Exception { - URL resource = this.getClass().getResource("/configfiles/json/simple.json"); - - assertThat(resource, CoreMatchers.notNullValue()); - - ConfigurationBuilder builder = mock(ConfigurationBuilder.class, CALLS_REAL_METHODS); - - doThrow(IOException.class).when(builder).getConfigurationDataFromURL(Mockito.eq(resource)); - - builder.addPropertySource(resource).build(); - } - - /********************************************************************* - * Tests for loading resources via URL (as String) - */ - - @Test(expected = ConfigException.class) - public void tryToLoadOneUnsupportedPropertySourceViaStringURL() { - URL resource = this.getClass().getResource("/configfiles/other/simple.oml"); - - assertThat(resource, CoreMatchers.notNullValue()); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - builder.addPropertySources(resource.toString()).build(); - } - - @Test - public void loadOneJSONPropertySourceViaStringURL() { - URL resource = this.getClass().getResource("/configfiles/json/simple.json"); - - assertThat(resource, CoreMatchers.notNullValue()); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.addPropertySources(resource.toString()) - .build(); - - assertThat(config, CoreMatchers.notNullValue()); - assertThat(config.get("a"), equalTo("A")); - assertThat(config.get("b"), equalTo("B")); - } - - @Test - public void loadMultipleJSONPropertySourceViaStringURL() { - URL first = this.getClass().getResource("/configfiles/json/first.json"); - URL second = this.getClass().getResource("/configfiles/json/second.json"); - URL third = this.getClass().getResource("/configfiles/json/third.json"); - - assertThat(first, CoreMatchers.notNullValue()); - assertThat(second, CoreMatchers.notNullValue()); - assertThat(third, CoreMatchers.notNullValue()); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.addPropertySources(first.toString(), second.toString(), - null, third.toString()) - .build(); - - assertThat(config, CoreMatchers.notNullValue()); - - // from first.json - assertThat(config.get("d"), equalTo("D")); - assertThat(config.get("e"), equalTo("E")); - - // from second.json - assertThat(config.get("m"), equalTo("M")); - assertThat(config.get("n"), equalTo("N")); - - // from thrid.json - assertThat(config.get("p"), equalTo("P")); - assertThat(config.get("q"), equalTo("Q")); - } - - /** - * ****************************************************************** - * Tests for loading resources via URL (as URL object) - */ - - @Test - public void loadOneJSONPropertySourceViaURL() { - URL resource = this.getClass().getResource("/configfiles/json/simple.json"); - - assertThat(resource, CoreMatchers.notNullValue()); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.addPropertySource(resource) - .build(); - - assertThat(config, CoreMatchers.notNullValue()); - assertThat(config.get("a"), equalTo("A")); - assertThat(config.get("b"), equalTo("B")); - } - - @Test - public void loadMultipleJSONPropertySourceViaURL() { - URL first = this.getClass().getResource("/configfiles/json/first.json"); - URL second = this.getClass().getResource("/configfiles/json/second.json"); - URL third = this.getClass().getResource("/configfiles/json/third.json"); - - assertThat(first, CoreMatchers.notNullValue()); - assertThat(second, CoreMatchers.notNullValue()); - assertThat(third, CoreMatchers.notNullValue()); - - ConfigurationBuilder builder = new ConfigurationBuilder(); - - Configuration config = builder.addPropertySources(first, second, - null, third) - .build(); - - assertThat(config, CoreMatchers.notNullValue()); - - // from first.json - assertThat(config.get("d"), equalTo("D")); - assertThat(config.get("e"), equalTo("E")); - - // from second.json - assertThat(config.get("m"), equalTo("M")); - assertThat(config.get("n"), equalTo("N")); - - // from thrid.json - assertThat(config.get("p"), equalTo("P")); - assertThat(config.get("q"), equalTo("Q")); - } - -}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/java/org/apache/tamaya/builder/TestANonSPIPropertyFilter.java ---------------------------------------------------------------------- diff --git a/builder/src/test/java/org/apache/tamaya/builder/TestANonSPIPropertyFilter.java b/builder/src/test/java/org/apache/tamaya/builder/TestANonSPIPropertyFilter.java deleted file mode 100644 index 896e0bc..0000000 --- a/builder/src/test/java/org/apache/tamaya/builder/TestANonSPIPropertyFilter.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.tamaya.builder; - -import org.apache.tamaya.spi.FilterContext; -import org.apache.tamaya.spi.PropertyFilter; - -public class TestANonSPIPropertyFilter implements PropertyFilter { - @Override - public String filterProperty(String value, FilterContext context) { - String result = value; - - if (!result.contains(("ABC"))) { - result = value + "ABC"; - } - - return result; - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/java/org/apache/tamaya/builder/TestBNonSPIPropertyFilter.java ---------------------------------------------------------------------- diff --git a/builder/src/test/java/org/apache/tamaya/builder/TestBNonSPIPropertyFilter.java b/builder/src/test/java/org/apache/tamaya/builder/TestBNonSPIPropertyFilter.java deleted file mode 100644 index a9c0ac2..0000000 --- a/builder/src/test/java/org/apache/tamaya/builder/TestBNonSPIPropertyFilter.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.tamaya.builder; - -import org.apache.tamaya.spi.FilterContext; -import org.apache.tamaya.spi.PropertyFilter; - -public class TestBNonSPIPropertyFilter implements PropertyFilter { - @Override - public String filterProperty(String value, FilterContext context) { - String result = value; - - if (!result.contains(("XYZ"))) { - result = value + "XYZ"; - } - - return result; - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/java/org/apache/tamaya/builder/TestPropertyFilter.java ---------------------------------------------------------------------- diff --git a/builder/src/test/java/org/apache/tamaya/builder/TestPropertyFilter.java b/builder/src/test/java/org/apache/tamaya/builder/TestPropertyFilter.java deleted file mode 100644 index e22fca8..0000000 --- a/builder/src/test/java/org/apache/tamaya/builder/TestPropertyFilter.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.tamaya.builder; - -import org.apache.tamaya.spi.FilterContext; -import org.apache.tamaya.spi.PropertyFilter; - -public class TestPropertyFilter implements PropertyFilter { - @Override - public String filterProperty(String value, FilterContext context) { - String result = value; - - if (!result.contains(("inBerlin"))) { - result = value + "inBerlin"; - } - - return result; - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/java/org/apache/tamaya/builder/TestPropertySource.java ---------------------------------------------------------------------- diff --git a/builder/src/test/java/org/apache/tamaya/builder/TestPropertySource.java b/builder/src/test/java/org/apache/tamaya/builder/TestPropertySource.java deleted file mode 100644 index f1ebfea..0000000 --- a/builder/src/test/java/org/apache/tamaya/builder/TestPropertySource.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * 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.tamaya.builder; - -import org.apache.tamaya.core.propertysource.BasePropertySource; -import org.apache.tamaya.spi.PropertySource; -import org.apache.tamaya.spi.PropertyValue; - -import java.util.Collections; -import java.util.Hashtable; -import java.util.Map; - -public class TestPropertySource extends BasePropertySource -{ - private Map<String, String> properties; - - { - properties = new Hashtable<>(3); - properties.put("tps_a", "A"); - properties.put("tps_b", "B"); - properties.put("tps_c", "C"); - } - - @Override - public int getOrdinal() { - return 456; - } - - @Override - public String getName() { - return "TestPropertySource"; - } - - @Override - public PropertyValue get(String key) { - return PropertyValue.of(key, getProperties().get(key), getName()); - } - - @Override - public Map<String, String> getProperties() { - return Collections.unmodifiableMap(properties); - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/java/org/apache/tamaya/builder/TestPropertySourceProvider.java ---------------------------------------------------------------------- diff --git a/builder/src/test/java/org/apache/tamaya/builder/TestPropertySourceProvider.java b/builder/src/test/java/org/apache/tamaya/builder/TestPropertySourceProvider.java deleted file mode 100644 index 5a2f400..0000000 --- a/builder/src/test/java/org/apache/tamaya/builder/TestPropertySourceProvider.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * 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.tamaya.builder; - -import org.apache.tamaya.core.propertysource.BasePropertySource; -import org.apache.tamaya.spi.PropertySource; -import org.apache.tamaya.spi.PropertySourceProvider; -import org.apache.tamaya.spi.PropertyValue; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Map; - -public class TestPropertySourceProvider - implements PropertySourceProvider -{ - @Override - public Collection<PropertySource> getPropertySources() { - ArrayList<PropertySource> sources = new ArrayList<>(2); - - sources.add(new XProvidingPropertySource()); - sources.add(new YProvidingPropertySource()); - - return sources; - } - - private class YProvidingPropertySource extends BasePropertySource { - private Map<String, String> props = Collections.singletonMap("tpsp_x", "X"); - - @Override - public int getOrdinal() { - return 100; - } - - @Override - public String getName() { - return "YProvidingPropertySource"; - } - - @Override - public PropertyValue get(String key) { - return PropertyValue.of(key, getProperties().get(key), getName()); - } - - @Override - public Map<String, String> getProperties() { - return props; - } - } - - private class XProvidingPropertySource extends BasePropertySource { - private Map<String, String> props = Collections.singletonMap("tpsp_y", "Y"); - - @Override - public Map<String, String> getProperties() { - return props; - } - - @Override - public PropertyValue get(String key) { - return PropertyValue.of(key, getProperties().get(key), getName()); - } - - @Override - public int getOrdinal() { - return 100; - } - - @Override - public String getName() { - return "XProvidingPropertySource"; - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/java/org/apache/tamaya/builder/TestPropertySourceProviderB.java ---------------------------------------------------------------------- diff --git a/builder/src/test/java/org/apache/tamaya/builder/TestPropertySourceProviderB.java b/builder/src/test/java/org/apache/tamaya/builder/TestPropertySourceProviderB.java deleted file mode 100644 index 9cfe725..0000000 --- a/builder/src/test/java/org/apache/tamaya/builder/TestPropertySourceProviderB.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * 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.tamaya.builder; - -import org.apache.tamaya.core.propertysource.BasePropertySource; -import org.apache.tamaya.spi.PropertySource; -import org.apache.tamaya.spi.PropertySourceProvider; -import org.apache.tamaya.spi.PropertyValue; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Map; - -public class TestPropertySourceProviderB - implements PropertySourceProvider -{ - @Override - public Collection<PropertySource> getPropertySources() { - ArrayList<PropertySource> sources = new ArrayList<>(2); - - sources.add(new AProvidingPropertySource()); - sources.add(new BProvidingPropertySource()); - - return sources; - } - - private class BProvidingPropertySource extends BasePropertySource { - private Map<String, String> props = Collections.singletonMap("tpsp_b", "B"); - - @Override - public int getOrdinal() { - return 100; - } - - @Override - public String getName() { - return "BProvidingPropertySource"; - } - - @Override - public PropertyValue get(String key) { - return PropertyValue.of(key,getProperties().get(key), getName()); - } - - @Override - public Map<String, String> getProperties() { - return props; - } - } - - private class AProvidingPropertySource extends BasePropertySource { - private Map<String, String> props = Collections.singletonMap("tpsp_a", "A"); - - @Override - public Map<String, String> getProperties() { - return props; - } - - @Override - public PropertyValue get(String key) { - return PropertyValue.of(key, getProperties().get(key), getName()); - } - - @Override - public int getOrdinal() { - return 100; - } - - @Override - public String getName() { - return "AProvidingPropertySource"; - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/java/org/apache/tamaya/builder/util/mockito/NotMockedAnswer.java ---------------------------------------------------------------------- diff --git a/builder/src/test/java/org/apache/tamaya/builder/util/mockito/NotMockedAnswer.java b/builder/src/test/java/org/apache/tamaya/builder/util/mockito/NotMockedAnswer.java deleted file mode 100644 index 3188d85..0000000 --- a/builder/src/test/java/org/apache/tamaya/builder/util/mockito/NotMockedAnswer.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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.tamaya.builder.util.mockito; - -import org.mockito.exceptions.base.MockitoException; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; - -import java.io.Serializable; - -// @todo This is a duplicated class -public class NotMockedAnswer implements Answer<Object>, Serializable { - public final static NotMockedAnswer NOT_MOCKED_ANSWER = new NotMockedAnswer(); - - private NotMockedAnswer() { - } - - @Override - public Object answer(InvocationOnMock invocation) throws Throwable { - if("toString".equals(invocation.getMethod().getName())){ - return "Some "+invocation.getMethod().getDeclaringClass().getName(); - } - StringBuilder msgBuilder = new StringBuilder(); - - msgBuilder.append("Invocation of method not mocked: ") - .append(invocation.getMethod().toGenericString()); - - if (invocation.getArguments().length > 0) { - msgBuilder.append(" Supplied arguments: "); - - for (int i = 0; i < invocation.getArguments().length; i++) { - msgBuilder.append(invocation.getArguments()[i]); - - if (i - 1 < invocation.getArguments().length) { - msgBuilder.append(", "); - } - } - } - throw new MockitoException(msgBuilder.toString()); - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeA.java ---------------------------------------------------------------------- diff --git a/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeA.java b/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeA.java deleted file mode 100644 index 89b2f5b..0000000 --- a/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeA.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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.tamaya.builder.util.types; - -/** - * Custom type with two argument constructor. - */ -public class CustomTypeA { - private String name; - - public CustomTypeA(String name, String other) { - this.name = name + other; - } - - public String getName() { - return name; - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeB.java ---------------------------------------------------------------------- diff --git a/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeB.java b/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeB.java deleted file mode 100644 index f7f4d99..0000000 --- a/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeB.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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.tamaya.builder.util.types; - -/** - * Custom type with factory method - * {@link org.apache.tamaya.builder.util.types.CustomTypeB#of(String)} - */ -public class CustomTypeB { - private String name; - - private CustomTypeB(String value) { - this.name = value; - } - - public String getName() { - return name; - } - - public static CustomTypeB of(String source) { - return new CustomTypeB(source); - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeC.java ---------------------------------------------------------------------- diff --git a/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeC.java b/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeC.java deleted file mode 100644 index da9ce56..0000000 --- a/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeC.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.tamaya.builder.util.types; - -public class CustomTypeC { - private String value; - - - public CustomTypeC(String in, @SuppressWarnings("unused") int iHideThisConstructorForTamaya) { - value = in; - } - - public String getValue() { - return value; - } - - public static CustomTypeC produceFrom(String in) { - return new CustomTypeC(in, -1); - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeCPropertyConverter.java ---------------------------------------------------------------------- diff --git a/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeCPropertyConverter.java b/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeCPropertyConverter.java deleted file mode 100644 index 9e56613..0000000 --- a/builder/src/test/java/org/apache/tamaya/builder/util/types/CustomTypeCPropertyConverter.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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.tamaya.builder.util.types; - -import org.apache.tamaya.spi.ConversionContext; -import org.apache.tamaya.spi.PropertyConverter; - -public class CustomTypeCPropertyConverter implements PropertyConverter<org.apache.tamaya.builder.util.types.CustomTypeC> { - @Override - public org.apache.tamaya.builder.util.types.CustomTypeC convert(String value, ConversionContext context) { - return org.apache.tamaya.builder.util.types.CustomTypeC.produceFrom(value); - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter ---------------------------------------------------------------------- diff --git a/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter b/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter deleted file mode 100644 index b9e0d44..0000000 --- a/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter +++ /dev/null @@ -1,19 +0,0 @@ -# -# 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 current 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. -# -org.apache.tamaya.builder.util.types.CustomTypeCPropertyConverter \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertyFilter ---------------------------------------------------------------------- diff --git a/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertyFilter b/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertyFilter deleted file mode 100644 index f35e9c5..0000000 --- a/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertyFilter +++ /dev/null @@ -1,19 +0,0 @@ -# -# 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 current 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. -# -org.apache.tamaya.builder.TestPropertyFilter http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySource ---------------------------------------------------------------------- diff --git a/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySource b/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySource deleted file mode 100644 index 8b07205..0000000 --- a/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySource +++ /dev/null @@ -1,19 +0,0 @@ -# -# 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 current 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. -# -org.apache.tamaya.builder.TestPropertySource \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySourceProvider ---------------------------------------------------------------------- diff --git a/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySourceProvider b/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySourceProvider deleted file mode 100644 index 9a19ea0..0000000 --- a/builder/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySourceProvider +++ /dev/null @@ -1,19 +0,0 @@ -# -# 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 current 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. -# -org.apache.tamaya.builder.TestPropertySourceProvider http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/resources/configfiles/json/first.json ---------------------------------------------------------------------- diff --git a/builder/src/test/resources/configfiles/json/first.json b/builder/src/test/resources/configfiles/json/first.json deleted file mode 100644 index 822cf6e..0000000 --- a/builder/src/test/resources/configfiles/json/first.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "d": "D", - "e": "E" -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/resources/configfiles/json/second.json ---------------------------------------------------------------------- diff --git a/builder/src/test/resources/configfiles/json/second.json b/builder/src/test/resources/configfiles/json/second.json deleted file mode 100644 index e2c7778..0000000 --- a/builder/src/test/resources/configfiles/json/second.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "m": "M", - "n": "N" -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/resources/configfiles/json/simple.json ---------------------------------------------------------------------- diff --git a/builder/src/test/resources/configfiles/json/simple.json b/builder/src/test/resources/configfiles/json/simple.json deleted file mode 100644 index 0cab2ae..0000000 --- a/builder/src/test/resources/configfiles/json/simple.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "a": "A", - "b": "B" -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/resources/configfiles/json/third.json ---------------------------------------------------------------------- diff --git a/builder/src/test/resources/configfiles/json/third.json b/builder/src/test/resources/configfiles/json/third.json deleted file mode 100644 index 6b62b96..0000000 --- a/builder/src/test/resources/configfiles/json/third.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "p": "P", - "q": "Q" -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/test/resources/configfiles/other/simple.oml ---------------------------------------------------------------------- diff --git a/builder/src/test/resources/configfiles/other/simple.oml b/builder/src/test/resources/configfiles/other/simple.oml deleted file mode 100644 index 494dba3..0000000 --- a/builder/src/test/resources/configfiles/other/simple.oml +++ /dev/null @@ -1,19 +0,0 @@ -# -# 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 current 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. -# -Key:=Value http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/configured-sysprops/pom.xml ---------------------------------------------------------------------- diff --git a/configured-sysprops/pom.xml b/configured-sysprops/pom.xml new file mode 100644 index 0000000..3ba0a45 --- /dev/null +++ b/configured-sysprops/pom.xml @@ -0,0 +1,78 @@ +<!-- +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 current 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. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.tamaya.ext</groupId> + <artifactId>tamaya-sandbox</artifactId> + <version>0.3-incubating-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + <artifactId>tamaya-sysprops</artifactId> + <name>Apache Tamaya Modules - Configured System Properties</name> + <packaging>bundle</packaging> + + <build> + <plugins> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Import-Package> + org.apache.tamaya, + org.apache.tamaya.spi, + org.apache.tamaya.resources, + org.apache.tamaya.spisupport, + org.apache.tamaya.functions, + javax.annotation, + * + </Import-Package> + <Export-Package> + org.apache.tamaya.integration.se + </Export-Package> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.tamaya</groupId> + <artifactId>tamaya-api</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.tamaya</groupId> + <artifactId>tamaya-core</artifactId> + <version>${project.version}</version> + <scope>test</scope> + </dependency> + </dependencies> + +</project> http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/configured-sysprops/src/main/java/org/apache/tamaya/integration/se/ConfiguredSystemProperties.java ---------------------------------------------------------------------- diff --git a/configured-sysprops/src/main/java/org/apache/tamaya/integration/se/ConfiguredSystemProperties.java b/configured-sysprops/src/main/java/org/apache/tamaya/integration/se/ConfiguredSystemProperties.java new file mode 100644 index 0000000..bb4abbe --- /dev/null +++ b/configured-sysprops/src/main/java/org/apache/tamaya/integration/se/ConfiguredSystemProperties.java @@ -0,0 +1,340 @@ +/* + * 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.tamaya.integration.se; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintStream; +import java.io.PrintWriter; +import java.io.Reader; +import java.io.Writer; +import java.util.Collection; +import java.util.Enumeration; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import java.util.logging.Logger; + +import org.apache.tamaya.Configuration; +import org.apache.tamaya.ConfigurationProvider; + +/** + * Properties implementation class that can be applied as current System properties by calling + * {@link ConfiguredSystemProperties#install()}. The system properties will + * then behave contextually depending on the current runtime configuration active. + */ +public class ConfiguredSystemProperties extends Properties { + + private static final long serialVersionUID = 2152870929299226804L; + + private static final Logger LOG = Logger.getLogger(ConfiguredSystemProperties.class.getName()); + private Properties initialProperties; + private static volatile Properties contextualProperties; + + private final Object LOCK = new Object(); + + + private ConfiguredSystemProperties(Properties initialProperties) { + super(initialProperties); + this.initialProperties = initialProperties; + } + + public static void install() { + Properties props = System.getProperties(); + if (props instanceof ConfiguredSystemProperties) { + return; + } + ConfiguredSystemProperties systemProps = new ConfiguredSystemProperties(props); + LOG.finest("Installing enhanced system properties..."); + System.setProperties(systemProps); + LOG.info("Installed enhanced system properties successfully."); + } + + public static void uninstall() { + Properties props = System.getProperties(); + if (props instanceof ConfiguredSystemProperties) { + Properties initialProperties = ((ConfiguredSystemProperties) props).initialProperties; + LOG.finest("Uninstalling enhanced system properties..."); + System.setProperties(initialProperties); + LOG.info("Uninstalled enhanced system properties successfully."); + } + } + + @Override + public String getProperty(String key) { + return getContextualProperties().getProperty(key); + } + + @Override + public String getProperty(String key, String defaultValue) { + return getContextualProperties().getProperty(key, defaultValue); + } + + @Override + public Enumeration<?> propertyNames() { + return getContextualProperties().propertyNames(); + } + + @Override + public Set<String> stringPropertyNames() { + return getContextualProperties().stringPropertyNames(); + } + + @Override + public synchronized int size() { + return getContextualProperties().size(); + } + + @Override + public synchronized Enumeration<Object> keys() { + return getContextualProperties().keys(); + } + + @Override + public synchronized Enumeration<Object> elements() { + return getContextualProperties().elements(); + } + + @Override + public synchronized boolean contains(Object value) { + return getContextualProperties().contains(value); + } + + @Override + public boolean containsValue(Object value) { + return getContextualProperties().containsValue(value); + } + + @Override + public synchronized boolean containsKey(Object key) { + return getContextualProperties().containsKey(key); + } + + @Override + public synchronized Object get(Object key) { + return getContextualProperties().get(key); + } + + @Override + public synchronized Object clone() { + return getContextualProperties().clone(); + } + + @Override + public Set<Object> keySet() { + return getContextualProperties().keySet(); + } + + @Override + public Set<Map.Entry<Object, Object>> entrySet() { + return getContextualProperties().entrySet(); + } + + @Override + public Collection<Object> values() { + return getContextualProperties().values(); + } + + + @Override + public String toString() { + return getContextualProperties().toString(); + } + + @Override + public synchronized Object setProperty(String key, String value) { + return getContextualProperties().setProperty(key, value); + } + + @Override + public synchronized void load(Reader reader) throws IOException { + getContextualProperties().load(reader); + } + + @Override + public synchronized void load(InputStream inStream) throws IOException { + getContextualProperties().load(inStream); + } + + @SuppressWarnings("deprecation") + @Override + public void save(OutputStream out, String comments) { + super.save(out, comments); + } + + @Override + public void store(Writer writer, String comments) throws IOException { + getContextualProperties().store(writer, comments); + } + + @Override + public void store(OutputStream out, String comments) throws IOException { + getContextualProperties().store(out, comments); + } + + @Override + public void loadFromXML(InputStream in) throws IOException { + getContextualProperties().loadFromXML(in); + } + + @Override + public void storeToXML(OutputStream os, String comment) throws IOException { + getContextualProperties().storeToXML(os, comment); + } + + @Override + public void storeToXML(OutputStream os, String comment, String encoding) throws IOException { + getContextualProperties().storeToXML(os, comment, encoding); + } + + @Override + public void list(PrintStream out) { + getContextualProperties().list(out); + } + + @Override + public void list(PrintWriter out) { + getContextualProperties().list(out); + } + + @Override + public boolean isEmpty() { + return getContextualProperties().isEmpty(); + } + + @Override + public Object put(Object key, Object value) { + return getContextualProperties().put(key, value); + } + + @Override + public Object remove(Object key) { + return getContextualProperties().remove(key); + } + + @Override + public void putAll(Map<?, ?> t) { + getContextualProperties().putAll(t); + } + + @Override + public void clear() { + getContextualProperties().clear(); + } + + @Override + public boolean equals(Object o) { + return getContextualProperties().equals(o); + } + + @Override + public int hashCode() { + return getContextualProperties().hashCode(); + } + +// JDK 8 and later... +// @Override +// public Object getOrDefault(Object key, Object defaultValue) { +// return getContextualProperties().getOrDefault(key, defaultValue); +// } +// +// @Override +// public void forEach(BiConsumer<? super Object, ? super Object> action) { +// getContextualProperties().forEach(action); +// } +// +// +// @Override +// public Object computeIfAbsent(Object key, Function<? super Object, ?> mappingFunction) { +// return getContextualProperties().computeIfAbsent(key, mappingFunction); +// } +// +// @Override +// public synchronized Object computeIfPresent(Object key, BiFunction<? super Object, ? super Object, ?> remappingFunction) { +// return getContextualProperties().computeIfPresent(key, remappingFunction); +// } +// +// @Override +// public synchronized Object compute(Object key, BiFunction<? super Object, ? super Object, ?> remappingFunction) { +// return getContextualProperties().compute(key, remappingFunction); +// } +// @Override +// public void replaceAll(BiFunction<? super Object, ? super Object, ?> function) { +// getContextualProperties().replaceAll(function); +// } +// +// @Override +// public Object putIfAbsent(Object key, Object value) { +// return getContextualProperties().putIfAbsent(key, value); +// } +// +// @Override +// public boolean remove(Object key, Object value) { +// return getContextualProperties().remove(key, value); +// } +// +// @Override +// public boolean replace(Object key, Object oldValue, Object newValue) { +// return getContextualProperties().replace(key, oldValue, newValue); +// } +// +// @Override +// public Object replace(Object key, Object value) { +// return getContextualProperties().replace(key, value); +// } +// +// @Override +// public Object merge(Object key, Object value, BiFunction<? super Object, ? super Object, ?> remappingFunction) { +// return getContextualProperties().merge(key, value, remappingFunction); +// } + + public Properties getInitialProperties() { + return initialProperties; + } + + /** + * Uninstalls the contextual system properties for the current context, as determined by the current + * context provider active. + */ + public static void resetProperties() { + contextualProperties.clear(); + } + + protected Properties getContextualProperties() { + if (contextualProperties == null) { + synchronized (LOCK) { + if (contextualProperties == null) { + contextualProperties = createNewProperties(); + } + } + } + return contextualProperties; + } + + protected Properties createNewProperties() { + Properties props = new Properties(initialProperties); + Configuration config = ConfigurationProvider.getConfiguration(); + Map<String, String> configMap = config.getProperties(); + for (Map.Entry<String, String> en : configMap.entrySet()) { + props.put(en.getKey(), en.getValue()); + } + return props; + } +} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/configured-sysprops/tamaya-configured-sysprops.iml ---------------------------------------------------------------------- diff --git a/configured-sysprops/tamaya-configured-sysprops.iml b/configured-sysprops/tamaya-configured-sysprops.iml new file mode 100644 index 0000000..c7f0f2e --- /dev/null +++ b/configured-sysprops/tamaya-configured-sysprops.iml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> + <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false"> + <output url="file://$MODULE_DIR$/../sysprops/target/classes" /> + <output-test url="file://$MODULE_DIR$/../sysprops/target/test-classes" /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> + <excludeFolder url="file://$MODULE_DIR$/target" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" /> + <orderEntry type="library" name="Maven: org.apache.tamaya.ext:tamaya-api:0.3-incubating-SNAPSHOT" level="project" /> + <orderEntry type="library" name="Maven: org.apache.tamaya.ext:tamaya-core:0.3-incubating-SNAPSHOT" level="project" /> + <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-annotation_1.2_spec:1.0-alpha-1" level="project" /> + </component> +</module> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/consul/src/test/java/org/apache/tamaya/consul/ConsulPropertySourceTest.java ---------------------------------------------------------------------- diff --git a/consul/src/test/java/org/apache/tamaya/consul/ConsulPropertySourceTest.java b/consul/src/test/java/org/apache/tamaya/consul/ConsulPropertySourceTest.java new file mode 100644 index 0000000..0c649a8 --- /dev/null +++ b/consul/src/test/java/org/apache/tamaya/consul/ConsulPropertySourceTest.java @@ -0,0 +1,75 @@ +/* + * 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.tamaya.consul; + +import org.apache.tamaya.consul.ConsulPropertySource; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Map; + +import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; + +/** + * Created by atsticks on 07.01.16. + */ +public class ConsulPropertySourceTest { + + private final ConsulPropertySource propertySource = new ConsulPropertySource(); + + @BeforeClass + public static void setup(){ + System.setProperty("consul.urls", "http://127.0.0.1:8300"); + } + + @Test + public void testGetOrdinal() throws Exception { + assertEquals(propertySource.getOrdinal(), 1000); + } + + @Test + public void testGetDefaultOrdinal() throws Exception { + assertEquals(propertySource.getDefaultOrdinal(), 1000); + } + + @Test + public void testGetName() throws Exception { + assertEquals("consul", propertySource.getName()); + } + + @Test + public void testGet() throws Exception { + Map<String,String> props = propertySource.getProperties(); + for(Map.Entry<String,String> en:props.entrySet()){ + assertNotNull("Key not found: " + en.getKey(), propertySource.get(en.getKey())); + } + } + + @Test + public void testGetProperties() throws Exception { + Map<String,String> props = propertySource.getProperties(); + assertNotNull(props); + } + + @Test + public void testIsScannable() throws Exception { + assertFalse(propertySource.isScannable()); + } +} \ No newline at end of file