http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultConfigurationTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultConfigurationTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultConfigurationTest.java deleted file mode 100644 index 4711dc5..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultConfigurationTest.java +++ /dev/null @@ -1,202 +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.spisupport; - -import org.apache.tamaya.TypeLiteral; -import org.apache.tamaya.spi.*; -import org.junit.Test; - -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -public class DefaultConfigurationTest { - - /** - * Tests for get(String) - */ - @Test(expected = NullPointerException.class) - public void getDoesNotAcceptNull() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - - c.get(null); - } - - /** - * Tests for get(String, Class) - */ - @SuppressWarnings({ "rawtypes", "unchecked" }) - @Test(expected = NullPointerException.class) - public void getDoesNotAcceptNullForClassTargetType() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - - c.get("a", (Class) null); - } - - /** - * Tests for get(String, TypeLiteral) - */ - @Test(expected = NullPointerException.class) - public void getDoesNotAcceptNullForTypeLiteralTargetType() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - - c.get("a", (TypeLiteral<?>)null); - } - - /** - * Tests for getOrDefault(String, Class, String) - */ - @Test(expected = NullPointerException.class) - public void getOrDefaultDoesNotAcceptNullAsKeyForThreeParameterVariant() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - - c.getOrDefault(null, String.class, "ok"); - } - - @Test - public void getOrDefaultDoesAcceptNullAsDefaultValueForThreeParameterVariant() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - - assertNull(c.getOrDefault("a", String.class, null)); - } - - @SuppressWarnings({ "unchecked", "rawtypes" }) - @Test(expected = NullPointerException.class) - public void getOrDefaultDoesNotAcceptNullAsTargetTypeForThreeParameterVariant() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - - c.getOrDefault("a", (Class)null, "b"); - } - - /** - * Tests for getOrDefault(String, TypeLiteral, String) - */ - @Test(expected = NullPointerException.class) - public void getOrDefaultDoesNotAcceptNullAsKeyForThreeParameterVariantSecondIsTypeLiteral() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - - c.getOrDefault(null, TypeLiteral.of(String.class), "ok"); - } - - @Test - public void getOrDefaultDoesAcceptNullAsDefaultValueForThreeParameterVariantSecondIsTypeLiteral() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - - assertNull(c.getOrDefault("a", TypeLiteral.of(String.class), null)); - } - - @Test(expected = NullPointerException.class) - public void getOrDefaultDoesNotAcceptNullAsTargetTypeForThreeParameterVariantSecondIsTypeLiteral() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - - c.getOrDefault("a", (TypeLiteral<String>) null, "b"); - } - - /** - * Tests for getOrDefault(String, String) - */ - @Test(expected = NullPointerException.class) - public void getOrDefaultDoesNotAcceptNullAsKeyForTwoParameterVariantDefaultValueIsSecond() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - - c.getOrDefault(null, "ok"); - } - - @Test - public void getOrDefaultDoesAcceptNullAsDefaultValueForTwoParameterVariantDefaultValueIsSecond() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - assertNull(c.getOrDefault("a", null)); - } - - @Test(expected = NullPointerException.class) - public void with_Null() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - - c.with(null); - } - - @Test(expected = NullPointerException.class) - public void query_Null() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - - c.query(null); - } - - @Test - public void with() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - assertEquals(c.with(config -> config), c); - } - - @Test - public void query() { - DefaultConfiguration c = new DefaultConfiguration(new DummyConfigurationContext()); - assertEquals(c.query(config -> "testQ"), "testQ"); - } - - public static class DummyConfigurationContext implements ConfigurationContext { - @Override - public void addPropertySources(PropertySource... propertySources) { - throw new RuntimeException("Method should be never called in this test"); - } - - @Override - public List<PropertySource> getPropertySources() { - return Collections.emptyList(); - } - - @Override - public PropertySource getPropertySource(String name) { - throw new RuntimeException("Method should be never called in this test"); - } - - @Override - public <T> void addPropertyConverter(TypeLiteral<T> type, PropertyConverter<T> propertyConverter) { - throw new RuntimeException("Method should be never called in this test"); - } - - @Override - public Map<TypeLiteral<?>, List<PropertyConverter<?>>> getPropertyConverters() { - return Collections.emptyMap(); - } - - @Override - public <T> List<PropertyConverter<T>> getPropertyConverters(TypeLiteral<T> type) { - return Collections.emptyList(); - } - - @Override - public List<PropertyFilter> getPropertyFilters() { - return Collections.emptyList(); - } - - @Override - public PropertyValueCombinationPolicy getPropertyValueCombinationPolicy() { - throw new RuntimeException("Method should be never called in this test"); - } - - @Override - public ConfigurationContextBuilder toBuilder() { - throw new RuntimeException("Method should be never called in this test"); - } - } -} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultServiceContextTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultServiceContextTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultServiceContextTest.java deleted file mode 100644 index 9a25528..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultServiceContextTest.java +++ /dev/null @@ -1,138 +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.spisupport; - -import org.apache.tamaya.ConfigException; -import org.apache.tamaya.spi.ConfigurationProviderSpi; -import org.junit.Assert; -import org.junit.Test; - -import javax.annotation.Priority; -import java.util.Collection; -import java.util.List; - -public class DefaultServiceContextTest { - - /** - * context to test - */ - private final DefaultServiceContext context = new DefaultServiceContext(); - - - @Test - public void testGetService() { - ConfigurationProviderSpi providerSpi = context.getService(ConfigurationProviderSpi.class); - Assert.assertNotNull(providerSpi); - Assert.assertTrue(providerSpi instanceof TestConfigurationProvider); - } - - @Test(expected = ConfigException.class) - public void testGetService_multipleServicesWithoutPriority_shouldThrowConfigException() { - context.getService(InvalidPriorityInterface.class); - } - - @Test - public void testGetService_multipleService_shouldReturnServiceWithHighestPriority() { - MultiImplsInterface service = context.getService(MultiImplsInterface.class); - - Assert.assertNotNull(service); - Assert.assertTrue(service instanceof MultiImpl2); - } - - @Test - public void testGetService_noImpl_shouldReturnEmptyOpional() { - NoImplInterface service = context.getService(NoImplInterface.class); - Assert.assertNull(service); - } - - - @Test - public void testGetServices_shouldReturnServices() { - { - Collection<InvalidPriorityInterface> services = context.getServices(InvalidPriorityInterface.class); - Assert.assertNotNull(services); - Assert.assertEquals(2, services.size()); - - for (InvalidPriorityInterface service : services) { - Assert.assertTrue(service instanceof InvalidPriorityImpl1 || service instanceof InvalidPriorityImpl2); - } - } - - { - List<MultiImplsInterface> services = context.getServices(MultiImplsInterface.class); - Assert.assertNotNull(services); - Assert.assertEquals(3, services.size()); - - Assert.assertTrue(services.get(0) instanceof MultiImpl2); - Assert.assertTrue(services.get(1) instanceof MultiImpl1); - Assert.assertTrue(services.get(2) instanceof MultiImpl3); - } - } - - @Test - public void testGetServices_redundantAccessToServices() { - for(int i=0;i<10;i++){ - Collection<InvalidPriorityInterface> services = context.getServices(InvalidPriorityInterface.class); - Assert.assertNotNull(services); - Assert.assertEquals(2, services.size()); - for (InvalidPriorityInterface service : services) { - Assert.assertTrue(service instanceof InvalidPriorityImpl1 || service instanceof InvalidPriorityImpl2); - } - } - } - - @Test - public void testGetServices_noImpl_shouldReturnEmptyList() { - Collection<NoImplInterface> services = context.getServices(NoImplInterface.class); - Assert.assertNotNull(services); - Assert.assertTrue(services.isEmpty()); - } - - - // some test interfaces and classes - - public interface InvalidPriorityInterface { - } - - @Priority(value = 50) - public static class InvalidPriorityImpl1 implements InvalidPriorityInterface { - } - - @Priority(value = 50) - public static class InvalidPriorityImpl2 implements InvalidPriorityInterface { - } - - - public interface MultiImplsInterface { - } - - public static class MultiImpl1 implements MultiImplsInterface { - } - - @Priority(value = 500) - public static class MultiImpl2 implements MultiImplsInterface { - } - - @Priority(value = -10) - public static class MultiImpl3 implements MultiImplsInterface { - } - - private interface NoImplInterface { - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EmptyConfigurationContext.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EmptyConfigurationContext.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EmptyConfigurationContext.java deleted file mode 100644 index c5286e0..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EmptyConfigurationContext.java +++ /dev/null @@ -1,78 +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.spisupport; - -import org.apache.tamaya.TypeLiteral; -import org.apache.tamaya.spi.*; - -import java.util.Collections; -import java.util.List; -import java.util.Map; - -public class EmptyConfigurationContext implements ConfigurationContext{ - - private static final ConfigurationContext INSTANCE = new EmptyConfigurationContext(); - - @Override - public void addPropertySources(PropertySource... propertySources) { - } - - @Override - public List<PropertySource> getPropertySources() { - return Collections.emptyList(); - } - - @Override - public PropertySource getPropertySource(String name) { - return null; - } - - @Override - public <T> void addPropertyConverter(TypeLiteral<T> type, PropertyConverter<T> propertyConverter) { - } - - @Override - public Map<TypeLiteral<?>, List<PropertyConverter<?>>> getPropertyConverters() { - return Collections.emptyMap(); - } - - @Override - public <T> List<PropertyConverter<T>> getPropertyConverters(TypeLiteral<T> type) { - return Collections.emptyList(); - } - - @Override - public List<PropertyFilter> getPropertyFilters() { - return Collections.emptyList(); - } - - @Override - public PropertyValueCombinationPolicy getPropertyValueCombinationPolicy() { - return PropertyValueCombinationPolicy.DEFAULT_OVERRIDING_POLICY; - } - - @Override - public ConfigurationContextBuilder toBuilder() { - return EmptyConfigurationContextBuilder.instance(); - } - - public static ConfigurationContext instance() { - return INSTANCE; - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EmptyConfigurationContextBuilder.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EmptyConfigurationContextBuilder.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EmptyConfigurationContextBuilder.java deleted file mode 100644 index 4f17d9a..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EmptyConfigurationContextBuilder.java +++ /dev/null @@ -1,174 +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.spisupport; - -import com.sun.org.apache.bcel.internal.generic.INSTANCEOF; -import org.apache.tamaya.TypeLiteral; -import org.apache.tamaya.spi.*; - -import java.util.*; - -public class EmptyConfigurationContextBuilder implements ConfigurationContextBuilder{ - - private static final ConfigurationContextBuilder INSTANCE = new EmptyConfigurationContextBuilder(); - - @Override - public ConfigurationContextBuilder setContext(ConfigurationContext context) { - return this; - } - - @Override - public ConfigurationContextBuilder addPropertySources(PropertySource... propertySources) { - return this; - } - - @Override - public ConfigurationContextBuilder addPropertySources(Collection<PropertySource> propertySources) { - return this; - } - - @Override - public ConfigurationContextBuilder addDefaultPropertySources() { - return this; - } - - @Override - public ConfigurationContextBuilder removePropertySources(PropertySource... propertySources) { - return this; - } - - @Override - public ConfigurationContextBuilder removePropertySources(Collection<PropertySource> propertySources) { - return this; - } - - @Override - public List<PropertySource> getPropertySources() { - return Collections.emptyList(); - } - - @Override - public List<PropertyFilter> getPropertyFilters() { - return Collections.emptyList(); - } - - @Override - public Map<TypeLiteral<?>, Collection<PropertyConverter<?>>> getPropertyConverter() { - return Collections.emptyMap(); - } - - @Override - public ConfigurationContextBuilder increasePriority(PropertySource propertySource) { - return this; - } - - @Override - public ConfigurationContextBuilder decreasePriority(PropertySource propertySource) { - return this; - } - - @Override - public ConfigurationContextBuilder highestPriority(PropertySource propertySource) { - return this; - } - - @Override - public ConfigurationContextBuilder lowestPriority(PropertySource propertySource) { - return null; - } - - @Override - public ConfigurationContextBuilder addPropertyFilters(PropertyFilter... filters) { - return this; - } - - @Override - public ConfigurationContextBuilder addPropertyFilters(Collection<PropertyFilter> filters) { - return this; - } - - @Override - public ConfigurationContextBuilder addDefaultPropertyFilters() { - return null; - } - - @Override - public ConfigurationContextBuilder removePropertyFilters(PropertyFilter... filters) { - return this; - } - - @Override - public ConfigurationContextBuilder removePropertyFilters(Collection<PropertyFilter> filters) { - return this; - } - - @Override - public <T> ConfigurationContextBuilder addPropertyConverters(TypeLiteral<T> typeToConvert, PropertyConverter<T>... propertyConverters) { - return null; - } - - @Override - public <T> ConfigurationContextBuilder addPropertyConverters(TypeLiteral<T> typeToConvert, Collection<PropertyConverter<T>> propertyConverters) { - return this; - } - - @Override - public ConfigurationContextBuilder addDefaultPropertyConverters() { - return this; - } - - @Override - public <T> ConfigurationContextBuilder removePropertyConverters(TypeLiteral<T> typeToConvert, PropertyConverter<T>... propertyConverters) { - return this; - } - - @Override - public <T> ConfigurationContextBuilder removePropertyConverters(TypeLiteral<T> typeToConvert, Collection<PropertyConverter<T>> propertyConverters) { - return this; - } - - @Override - public ConfigurationContextBuilder removePropertyConverters(TypeLiteral<?> typeToConvert) { - return this; - } - - @Override - public ConfigurationContextBuilder sortPropertySources(Comparator<PropertySource> comparator) { - return this; - } - - @Override - public ConfigurationContextBuilder sortPropertyFilter(Comparator<PropertyFilter> comparator) { - return this; - } - - @Override - public ConfigurationContextBuilder setPropertyValueCombinationPolicy(PropertyValueCombinationPolicy policy) { - return this; - } - - @Override - public ConfigurationContext build() { - return EmptyConfigurationContext.instance(); - } - - public static ConfigurationContextBuilder instance() { - return INSTANCE; - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EnumConverterTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EnumConverterTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EnumConverterTest.java deleted file mode 100644 index 8391c3a..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EnumConverterTest.java +++ /dev/null @@ -1,52 +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.spisupport; - -import org.apache.tamaya.TypeLiteral; -import org.apache.tamaya.spi.ConversionContext; -import org.junit.Test; - -import java.math.RoundingMode; -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -/** - * Test class testing the {@link EnumConverter} class. - */ -public class EnumConverterTest { - - private final EnumConverter<RoundingMode> testConverter = new EnumConverter<>(RoundingMode.class); - - private final ConversionContext DUMMY_CONTEXT = new ConversionContext.Builder("someKey", TypeLiteral.of(Enum.class)) - .build(); - - @Test - public void testConversionWithMixedCasing() { - for (String input : Arrays.asList(RoundingMode.CEILING.toString(), "ceiling", "CeiLinG")) { - assertEquals(RoundingMode.CEILING, testConverter.convert(input, DUMMY_CONTEXT)); - } - } - - @Test - public void testConvert_OtherValue() { - assertNull(testConverter.convert("fooBars", DUMMY_CONTEXT)); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PriorityServiceComparatorTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PriorityServiceComparatorTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PriorityServiceComparatorTest.java deleted file mode 100644 index b8e5555..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PriorityServiceComparatorTest.java +++ /dev/null @@ -1,44 +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.spisupport; - -import org.apache.tamaya.spisupport.propertysource.SystemPropertySource; -import org.junit.Test; - -import javax.annotation.Priority; - -import static org.junit.Assert.*; - -/** - * Created by atsticks on 12.09.16. - */ -public class PriorityServiceComparatorTest { - - @Test - public void compare() throws Exception { - assertTrue(PriorityServiceComparator.getInstance().compare("a", "b")==0); - assertTrue(PriorityServiceComparator.getInstance().compare(getClass(), getClass())==0); - assertTrue(PriorityServiceComparator.getInstance().compare(new A(), new SystemPropertySource())==-1); - assertTrue(PriorityServiceComparator.getInstance().compare(new SystemPropertySource(), new A())==1); - } - - @Priority(100) - private static final class A{} - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyConverterManagerTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyConverterManagerTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyConverterManagerTest.java deleted file mode 100644 index b91e6e4..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyConverterManagerTest.java +++ /dev/null @@ -1,180 +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.spisupport; - - - -import org.apache.tamaya.ConfigurationProvider; -import org.apache.tamaya.spi.ConversionContext; -import org.apache.tamaya.spi.PropertyConverter; -import org.apache.tamaya.TypeLiteral; -import org.junit.Test; - -import java.util.List; - -import static org.hamcrest.CoreMatchers.*; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.collection.IsCollectionWithSize.hasSize; - -public class PropertyConverterManagerTest { - - private final ConversionContext DUMMY_CONTEXT = new ConversionContext.Builder( - "someKey", TypeLiteral.of(Object.class)).build(); - - @Test - public void customTypeWithFactoryMethodOfIsRecognizedAsSupported() { - PropertyConverterManager manager = new PropertyConverterManager(true); - - assertThat(manager.isTargetTypeSupported(TypeLiteral.of(MyType.class)), - is(true)); - } - - @Test - public void factoryMethodOfIsUsedAsConverter() { - PropertyConverterManager manager = new PropertyConverterManager(true); - - List<PropertyConverter<MyType>> converters = manager.getPropertyConverters( - (TypeLiteral)TypeLiteral.of(MyType.class)); - - assertThat(converters, hasSize(1)); - - PropertyConverter<MyType> converter = converters.get(0); - - Object result = converter.convert("IN", DUMMY_CONTEXT); - - assertThat(result, notNullValue()); - assertThat(result, instanceOf(MyType.class)); - assertThat(((MyType)result).getValue(), equalTo("IN")); - } - - @Test - public void testDirectConverterMapping(){ - PropertyConverterManager manager = new PropertyConverterManager(true); - List<PropertyConverter<C>> converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(C.class))); - assertThat(converters, hasSize(1)); - - PropertyConverter<C> converter = converters.get(0); - C result = converter.convert("testDirectConverterMapping", DUMMY_CONTEXT); - - assertThat(result, notNullValue()); - assertThat(result, instanceOf(C.class)); - assertThat((result).getInValue(), equalTo("testDirectConverterMapping")); - } - - @Test - public void testDirectSuperclassConverterMapping(){ - PropertyConverterManager manager = new PropertyConverterManager(true); - List<PropertyConverter<B>> converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(B.class))); - assertThat(converters, hasSize(1)); - converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(B.class))); - assertThat(converters, hasSize(1)); - - PropertyConverter<B> converter = converters.get(0); - B result = converter.convert("testDirectSuperclassConverterMapping", DUMMY_CONTEXT); - - assertThat(result, notNullValue()); - assertThat(result, instanceOf(C.class)); - assertThat(((C)result).getInValue(), equalTo("testDirectSuperclassConverterMapping")); - } - - @Test - public void testMultipleConverterLoad(){ - PropertyConverterManager manager = new PropertyConverterManager(true); - List<PropertyConverter<B>> converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(B.class))); - assertThat(converters, hasSize(1)); - manager = new PropertyConverterManager(true); - converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(B.class))); - assertThat(converters, hasSize(1)); - } - - @Test - public void testTransitiveSuperclassConverterMapping(){ - PropertyConverterManager manager = new PropertyConverterManager(true); - List<PropertyConverter<A>> converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(A.class))); - assertThat(converters, hasSize(1)); - - PropertyConverter<A> converter = converters.get(0); - A result = converter.convert("testTransitiveSuperclassConverterMapping", DUMMY_CONTEXT); - - assertThat(result, notNullValue()); - assertThat(result, instanceOf(C.class)); - assertThat(((C)result).getInValue(), equalTo("testTransitiveSuperclassConverterMapping")); - } - - @Test - public void testDirectInterfaceMapping(){ - PropertyConverterManager manager = new PropertyConverterManager(true); - List<PropertyConverter<Readable>> converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(Readable.class))); - assertThat(converters, hasSize(1)); - - PropertyConverter<Readable> converter = converters.get(0); - Readable result = converter.convert("testDirectInterfaceMapping", DUMMY_CONTEXT); - - assertThat(result, notNullValue()); - assertThat(result, instanceOf(C.class)); - assertThat(((C)result).getInValue(), equalTo("testDirectInterfaceMapping")); - } - - @Test - public void testTransitiveInterfaceMapping1(){ - PropertyConverterManager manager = new PropertyConverterManager(true); - List<PropertyConverter<Runnable>> converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(Runnable.class))); - assertThat(converters, hasSize(1)); - - PropertyConverter<Runnable> converter = converters.get(0); - Runnable result = converter.convert("testTransitiveInterfaceMapping1", DUMMY_CONTEXT); - - assertThat(result, notNullValue()); - assertThat(result, instanceOf(C.class)); - assertThat(((C)result).getInValue(), equalTo("testTransitiveInterfaceMapping1")); - } - - @Test - public void testTransitiveInterfaceMapping2(){ - PropertyConverterManager manager = new PropertyConverterManager(true); - List<PropertyConverter<AutoCloseable>> converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(AutoCloseable.class))); - assertThat(converters, hasSize(1)); - - PropertyConverter<AutoCloseable> converter = converters.get(0); - AutoCloseable result = converter.convert("testTransitiveInterfaceMapping2", DUMMY_CONTEXT); - - assertThat(result, notNullValue()); - assertThat(result, instanceOf(C.class)); - assertThat(((C)result).getInValue(), equalTo("testTransitiveInterfaceMapping2")); - } - - public static class MyType { - private final String typeValue; - - private MyType(String value) { - typeValue = value; - } - - public static MyType of(String source) { - return new MyType(source); - } - - public String getValue() { - return typeValue; - } - - } - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyFilterComparatorTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyFilterComparatorTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyFilterComparatorTest.java deleted file mode 100644 index 9a212f7..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyFilterComparatorTest.java +++ /dev/null @@ -1,76 +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.spisupport; - -import org.apache.tamaya.spi.FilterContext; -import org.apache.tamaya.spi.PropertyFilter; -import org.apache.tamaya.spi.PropertyValue; -import org.apache.tamaya.spisupport.PropertyFilterComparator; -import org.junit.Test; - -import javax.annotation.Priority; - -import java.util.Comparator; - -import static org.assertj.core.api.Assertions.assertThat; - -public class PropertyFilterComparatorTest { - - @Test - public void comparationOfFiltersWithSamePriorityIsCorrect() { - Comparator<PropertyFilter> comparator = PropertyFilterComparator.getInstance(); - - int result = comparator.compare(new PropertyFilterA(), new PropertyFilterA()); - - assertThat(result).isEqualTo(0); - } - - @Test - public void comparationOfFiltersFirstHigherThenSecondWorksCorrectly() { - Comparator<PropertyFilter> comparator = PropertyFilterComparator.getInstance(); - - int result = comparator.compare(new PropertyFilterB(), new PropertyFilterA()); - - assertThat(result).isGreaterThan(0); - } - - @Test - public void comparationOfFiltersSecondHigherThenFirstWorksCorrectly() { - Comparator<PropertyFilter> comparator = PropertyFilterComparator.getInstance(); - - int result = comparator.compare(new PropertyFilterA(), new PropertyFilterB()); - - assertThat(result).isLessThan(0); - } - - - @Priority(1) - private static class PropertyFilterA implements PropertyFilter { - public PropertyValue filterProperty(PropertyValue value, FilterContext context) { - throw new RuntimeException("Not implemented or look at me!"); - } - } - - @Priority(2) - private static class PropertyFilterB implements PropertyFilter { - public PropertyValue filterProperty(PropertyValue value, FilterContext context) { - throw new RuntimeException("Not implemented or look at me!"); - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/RegexPropertyFilterTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/RegexPropertyFilterTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/RegexPropertyFilterTest.java deleted file mode 100644 index 2822cb6..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/RegexPropertyFilterTest.java +++ /dev/null @@ -1,70 +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.spisupport; - -import org.apache.tamaya.spi.ConfigurationContext; -import org.apache.tamaya.spi.FilterContext; -import org.apache.tamaya.spi.PropertyValue; - -import java.util.HashMap; -import java.util.Map; - -import static org.junit.Assert.*; - -/** - * Tests for {@link RegexPropertyFilter}. Created by anatole on 11.02.16. - */ -public class RegexPropertyFilterTest { - - private static PropertyValue prop1 = PropertyValue.of("test1", "test1", "test"); - private static PropertyValue prop2 = PropertyValue.of("test2", "test2", "test"); - private static PropertyValue prop3 = PropertyValue.of("test1.test3", "test.test3", "test"); - private static ConfigurationContext configContext = EmptyConfigurationContext.instance(); - - @org.junit.Test - public void testFilterProperty() throws Exception { - RegexPropertyFilter filter = new RegexPropertyFilter(); - filter.setIncludes("test1.*"); - Map<String,PropertyValue> map = new HashMap<>(); - map.put(prop1.getKey(), prop1); - map.put(prop2.getKey(), prop2); - map.put(prop3.getKey(), prop3); - assertEquals(filter.filterProperty(prop1, new FilterContext(prop1, configContext)), prop1); - assertNull(filter.filterProperty(prop2, new FilterContext(prop2, configContext))); - assertEquals(filter.filterProperty( - prop3, - new FilterContext(prop3, map, configContext)), prop3); - assertEquals(filter.filterProperty( - prop3, - new FilterContext(prop3, map, configContext)), prop3); - filter = new RegexPropertyFilter(); - filter.setIncludes("test1.*"); - assertNotNull(filter.filterProperty(prop1, new FilterContext(prop1, map, configContext))); - assertNull(filter.filterProperty(prop2, new FilterContext(prop2, map, configContext))); - assertNotNull(filter.filterProperty(prop3, new FilterContext(prop3, map, configContext))); - } - - @org.junit.Test - public void testToString() throws Exception { - RegexPropertyFilter filter = new RegexPropertyFilter(); - filter.setIncludes("test\\..*"); - assertTrue(filter.toString().contains("test\\..*")); - assertTrue(filter.toString().contains("RegexPropertyFilter")); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/TestConfigurationProvider.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/TestConfigurationProvider.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/TestConfigurationProvider.java deleted file mode 100644 index 9af9a5c..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/TestConfigurationProvider.java +++ /dev/null @@ -1,92 +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.spisupport; - -import org.apache.tamaya.Configuration; -import org.apache.tamaya.spi.ConfigurationBuilder; -import org.apache.tamaya.spi.ConfigurationContext; -import org.apache.tamaya.spi.ConfigurationContextBuilder; -import org.apache.tamaya.spi.ConfigurationProviderSpi; -import org.osgi.service.component.annotations.Component; - -import java.util.Objects; - -/** - * Implementation of the Configuration API. This class uses the current {@link ConfigurationContext} to evaluate the - * chain of {@link org.apache.tamaya.spi.PropertySource} and {@link org.apache.tamaya.spi.PropertyFilter} - * instance to evaluate the current Configuration. - */ -@Component(service = ConfigurationProviderSpi.class) -public class TestConfigurationProvider implements ConfigurationProviderSpi { - - private Configuration config = new DefaultConfigurationBuilder() - .addDefaultPropertyConverters() - .addDefaultPropertyFilters() - .addDefaultPropertySources() - .build(); - @Override - public Configuration getConfiguration() { - return config; - } - - @Override - public Configuration createConfiguration(ConfigurationContext context) { - return new DefaultConfiguration(context); - } - - @Override - public ConfigurationBuilder getConfigurationBuilder() { - return new DefaultConfigurationBuilder(); - } - - @Override - public ConfigurationContextBuilder getConfigurationContextBuilder() { - return new DefaultConfigurationContextBuilder(); - } - - @Override - public void setConfiguration(Configuration config) { - Objects.requireNonNull(config.getContext()); - this.config = Objects.requireNonNull(config); - } - - @Override - public boolean isConfigurationSettable() { - return true; - } - - /** - * @deprecated use {@link Configuration#getContext()} instead. - */ - @Deprecated - @Override - public ConfigurationContext getConfigurationContext() { - return this.config.getContext(); - } - - /** - * @deprecated the context should be given upon creation of the {@link Configuration} - */ - @Deprecated - @Override - public void setConfigurationContext(ConfigurationContext context){ - this.config = new DefaultConfigurationBuilder(context).build(); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/BasePropertySourceTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/BasePropertySourceTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/BasePropertySourceTest.java deleted file mode 100644 index eb549a4..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/BasePropertySourceTest.java +++ /dev/null @@ -1,136 +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.spisupport.propertysource; - -import org.apache.tamaya.spi.PropertySource; -import org.apache.tamaya.spi.PropertyValue; -import org.apache.tamaya.spisupport.PropertySourceComparator; -import org.junit.Assert; -import org.junit.Test; - -import java.util.*; - -import static org.assertj.core.api.Assertions.assertThat; - -public class BasePropertySourceTest { - - @Test - public void isAlwaysScanable() { - BasePropertySource bs = new BasePropertySource() { - @Override - public Map<String, PropertyValue> getProperties() { - return Collections.emptyMap(); - } - }; - - assertThat(bs.isScannable()).isTrue(); - } - - @Test - public void givenOrdinalOverwritesGivenDefaulOrdinal() { - BasePropertySource bs = new BasePropertySource() { - @Override - public Map<String, PropertyValue> getProperties() { - return Collections.emptyMap(); - } - }; - - bs.setDefaultOrdinal(10); - - assertThat(bs.getDefaultOrdinal()).isEqualTo(10); - assertThat(bs.getOrdinal()).isEqualTo(10); - - bs.setOrdinal(20); - - assertThat(bs.getOrdinal()).isEqualTo(20); - } - - @Test - public void testGetOrdinal() { - - PropertySource defaultPropertySource = new BasePropertySource(56) { - - @Override - public String getName() { - return "testWithDefault"; - } - - @Override - public PropertyValue get(String key) { - return null; - } - - @Override - public Map<String, PropertyValue> getProperties() { - return Collections.emptyMap(); - } - }; - - Assert.assertEquals(56, PropertySourceComparator.getOrdinal(defaultPropertySource)); - Assert.assertEquals(1000, new OverriddenOrdinalPropertySource().getOrdinal()); - - // propertySource with invalid ordinal - Assert.assertEquals(1, new OverriddenInvalidOrdinalPropertySource().getOrdinal()); - } - - @Test - public void testGet() { - Assert.assertEquals(1000, new OverriddenOrdinalPropertySource().getOrdinal()); - } - - private static class OverriddenOrdinalPropertySource extends BasePropertySource { - - private OverriddenOrdinalPropertySource() { - super(250); - } - - @Override - public String getName() { - return "overriddenOrdinal"; - } - - @Override - public Map<String, PropertyValue> getProperties() { - Map<String,PropertyValue> result = new HashMap<>(1); - result.put(PropertySource.TAMAYA_ORDINAL, PropertyValue.of(PropertySource.TAMAYA_ORDINAL, "1000", getName())); - return result; - } - } - - private static class OverriddenInvalidOrdinalPropertySource extends BasePropertySource { - - private OverriddenInvalidOrdinalPropertySource() { - super(1); - } - - @Override - public String getName() { - return "overriddenInvalidOrdinal"; - } - - @Override - public Map<String, PropertyValue> getProperties() { - Map<String,PropertyValue> result = new HashMap<>(1); - result.put(PropertySource.TAMAYA_ORDINAL, PropertyValue.of(PropertySource.TAMAYA_ORDINAL, "invalid", getName())); - return result; - } - } - - -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/CLIPropertySourceTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/CLIPropertySourceTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/CLIPropertySourceTest.java deleted file mode 100644 index 4507772..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/CLIPropertySourceTest.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.spisupport.propertysource; - -import org.apache.tamaya.spisupport.propertysource.CLIPropertySource; -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * Tests for PropertySource for reading main arguments as configuration. - */ -public class CLIPropertySourceTest { - - @Test - public void setCLIProps() throws Exception { - System.clearProperty("main.args"); - CLIPropertySource ps = new CLIPropertySource(); - assertTrue(ps.getProperties().isEmpty()); - CLIPropertySource.initMainArgs("-a", "b"); - assertFalse(ps.getProperties().isEmpty()); - assertEquals(ps.getProperties().get("a").getValue(), "b"); - CLIPropertySource.initMainArgs("--c"); - assertFalse(ps.getProperties().isEmpty()); - assertEquals(ps.getProperties().get("c").getValue(), "c"); - CLIPropertySource.initMainArgs("sss"); - assertFalse(ps.getProperties().isEmpty()); - assertEquals(ps.getProperties().get("sss").getValue(), "sss"); - CLIPropertySource.initMainArgs("-a", "b", "--c", "sss", "--val=vvv"); - assertFalse(ps.getProperties().isEmpty()); - assertEquals(ps.getProperties().get("a").getValue(), "b"); - assertEquals(ps.getProperties().get("c").getValue(), "c"); - assertEquals(ps.getProperties().get("sss").getValue(), "sss"); - // getProperties() throws Exception { - System.setProperty("main.args", "-a b\t--c sss "); - ps = new CLIPropertySource(); - assertFalse(ps.getProperties().isEmpty()); - System.clearProperty("main.args"); - assertEquals(ps.getProperties().get("a").getValue(), "b"); - assertEquals(ps.getProperties().get("c").getValue(), "c"); - assertEquals(ps.getProperties().get("sss").getValue(), "sss"); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/EnumConverterTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/EnumConverterTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/EnumConverterTest.java deleted file mode 100644 index 3453caa..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/EnumConverterTest.java +++ /dev/null @@ -1,60 +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.spisupport.propertysource; - -import org.apache.tamaya.TypeLiteral; -import org.apache.tamaya.spi.ConversionContext; -import org.apache.tamaya.spisupport.EnumConverter; -import org.junit.Test; - -import java.math.RoundingMode; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -/** - * Test class testing the {@link EnumConverter} class. - */ -public class EnumConverterTest { - - private final EnumConverter testConverter = new EnumConverter(RoundingMode.class); - - private final ConversionContext DUMMY_CONTEXT = new ConversionContext.Builder("someKey", TypeLiteral.of(Enum.class)).build(); - - @Test - public void testConvert() { - assertEquals(testConverter.convert(RoundingMode.CEILING.toString(), - DUMMY_CONTEXT), RoundingMode.CEILING); - } - - @Test - public void testConvert_LowerCase() { - assertEquals(testConverter.convert("ceiling", DUMMY_CONTEXT), RoundingMode.CEILING); - } - - @Test - public void testConvert_MixedCase() { - assertEquals(testConverter.convert("CeiLinG", DUMMY_CONTEXT), RoundingMode.CEILING); - } - - @Test - public void testConvert_OtherValue() { - assertNull(testConverter.convert("fooBars", DUMMY_CONTEXT)); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySourceTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySourceTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySourceTest.java deleted file mode 100644 index 1e6c958..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySourceTest.java +++ /dev/null @@ -1,68 +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.spisupport.propertysource; - -import org.apache.tamaya.spisupport.propertysource.EnvironmentPropertySource; -import org.apache.tamaya.spi.PropertyValue; -import org.junit.Test; - -import java.util.Map; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -/** - * Tests for {@link EnvironmentPropertySource}. - */ -public class EnvironmentPropertySourceTest { - - private final EnvironmentPropertySource envPropertySource = new EnvironmentPropertySource(); - - @Test - public void testGetOrdinal() throws Exception { - assertEquals(EnvironmentPropertySource.DEFAULT_ORDINAL, envPropertySource.getOrdinal()); - } - - @Test - public void testGetName() throws Exception { - assertEquals("environment-properties", envPropertySource.getName()); - } - - @Test - public void testGet() throws Exception { - for (Map.Entry<String, String> envEntry : System.getenv().entrySet()) { - assertEquals(envPropertySource.get(envEntry.getKey()).getValue(), envEntry.getValue()); - } - } - - @Test - public void testGetProperties() throws Exception { - Map<String, PropertyValue> props = envPropertySource.getProperties(); - for(Map.Entry<String,PropertyValue> en: props.entrySet()){ - if(!en.getKey().startsWith("_")){ - assertEquals(System.getenv(en.getKey()), en.getValue().getValue()); - } - } - } - - @Test - public void testIsScannable() throws Exception { - assertTrue(envPropertySource.isScannable()); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/JavaConfigurationProviderTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/JavaConfigurationProviderTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/JavaConfigurationProviderTest.java deleted file mode 100644 index 0e363b9..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/JavaConfigurationProviderTest.java +++ /dev/null @@ -1,46 +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.spisupport.propertysource; - -import org.apache.tamaya.spi.PropertySource; -import org.hamcrest.MatcherAssert; -import org.hamcrest.Matchers; -import org.junit.Test; - -import static org.apache.tamaya.ConfigurationProvider.getConfiguration; - -public class JavaConfigurationProviderTest { - - private static final String A_UMLAUT = "\u00E4"; - private static final String O_UMLAUT = "\u00F6"; - - @Test - public void loadsSimpleAndXMLPropertyFilesProper() { - PropertySource propertySource = new JavaConfigurationPropertySource(); - MatcherAssert.assertThat(propertySource.getProperties().keySet(), Matchers.hasSize(7)); // double the size for .source values. - - for (int i = 1; i < 6; i++) { - String key = "confkey" + i; - String value = "javaconf-value" + i; - - MatcherAssert.assertThat(value, Matchers.equalTo(propertySource.get(key).getValue())); - } - - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/MapPropertySourceTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/MapPropertySourceTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/MapPropertySourceTest.java deleted file mode 100644 index 5624ed4..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/MapPropertySourceTest.java +++ /dev/null @@ -1,76 +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.spisupport.propertysource; - -import org.apache.tamaya.spisupport.propertysource.MapPropertySource; -import org.junit.Before; -import org.junit.Test; - -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import static org.assertj.core.api.Assertions.assertThat; - -public class MapPropertySourceTest { - - private Map<String,String> sourceMap; - private Properties sourceProperties; - - @Before - public void createMapAndProperties() throws Exception { - sourceMap = new HashMap<>(); - sourceMap.put("a", "AAA"); - sourceMap.put("b", "BBB"); - - sourceProperties = new Properties(); - sourceProperties.setProperty("a", "AAA"); - sourceProperties.setProperty("b", "BBB"); - } - - @Test - public void sourceWillProperlyInitializedWithMapWithoutPrefix() throws Exception { - MapPropertySource propertySource = new MapPropertySource("UT", sourceMap); - - assertThat(propertySource.getProperties()).describedAs("Should contain exactly 2 properties.") - .hasSize(2); - assertThat(propertySource.get("a")).isNotNull(); - assertThat(propertySource.get("b")).isNotNull(); - } - - @Test - public void sourceWillProperlyInitializedWithMapWithPrefix() throws Exception { - MapPropertySource propertySource = new MapPropertySource("UT", sourceMap, "pre-"); - - assertThat(propertySource.getProperties()).describedAs("Should contain exactly 2 properties.") - .hasSize(2); - assertThat(propertySource.get("pre-a")).isNotNull(); - assertThat(propertySource.get("pre-b")).isNotNull(); - } - - @Test - public void sourceWillProperlyInitializedWithPropertiesWithPrefix() throws Exception { - MapPropertySource propertySource = new MapPropertySource("UT", sourceProperties, "pre-"); - - assertThat(propertySource.getProperties()).describedAs("Should contain exactly 2 properties.") - .hasSize(2); - assertThat(propertySource.get("pre-a")).isNotNull(); - assertThat(propertySource.get("pre-b")).isNotNull(); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/PropertiesFilePropertySourceTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/PropertiesFilePropertySourceTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/PropertiesFilePropertySourceTest.java deleted file mode 100644 index da51740..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/PropertiesFilePropertySourceTest.java +++ /dev/null @@ -1,60 +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.spisupport.propertysource; - -import org.apache.tamaya.spisupport.propertysource.SimplePropertySource; -import org.apache.tamaya.spi.PropertySource; -import org.junit.Assert; -import org.junit.Test; - -public class PropertiesFilePropertySourceTest { - - private final SimplePropertySource testfilePropertySource = new SimplePropertySource(Thread.currentThread() - .getContextClassLoader().getResource("testfile.properties")); - private final SimplePropertySource overrideOrdinalPropertySource = new SimplePropertySource( - Thread.currentThread().getContextClassLoader().getResource("overrideOrdinal.properties")); - - - @Test - public void testGetOrdinal() { - Assert.assertEquals(0, testfilePropertySource.getOrdinal()); - Assert.assertEquals(Integer.parseInt(overrideOrdinalPropertySource.get(PropertySource.TAMAYA_ORDINAL) - .getValue()), - overrideOrdinalPropertySource.getOrdinal()); - } - - - @Test - public void testGet() { - Assert.assertEquals("val3", testfilePropertySource.get("key3").getValue()); - Assert.assertEquals("myval5", overrideOrdinalPropertySource.get("mykey5").getValue()); - Assert.assertNull(testfilePropertySource.get("nonpresentkey")); - } - - - @Test - public void testGetProperties() throws Exception { - Assert.assertEquals(5, testfilePropertySource.getProperties().size()); - Assert.assertTrue(testfilePropertySource.getProperties().containsKey("key1")); - Assert.assertTrue(testfilePropertySource.getProperties().containsKey("key2")); - Assert.assertTrue(testfilePropertySource.getProperties().containsKey("key3")); - Assert.assertTrue(testfilePropertySource.getProperties().containsKey("key4")); - Assert.assertTrue(testfilePropertySource.getProperties().containsKey("key5")); - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/SimplePropertySourceTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/SimplePropertySourceTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/SimplePropertySourceTest.java deleted file mode 100644 index 288b8cd..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/SimplePropertySourceTest.java +++ /dev/null @@ -1,89 +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.spisupport.propertysource; - -import org.apache.tamaya.ConfigException; -import org.apache.tamaya.spi.PropertyValue; -import org.junit.Test; - -import java.net.URL; - -import static org.hamcrest.CoreMatchers.allOf; -import static org.hamcrest.CoreMatchers.endsWith; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.hamcrest.CoreMatchers.startsWith; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.aMapWithSize; -import static org.hamcrest.Matchers.hasEntry; - -public class SimplePropertySourceTest { - @Test - public void successfulCreationWithPropertiesFromXMLPropertiesFile() { - URL resource = getClass().getResource("/valid-properties.xml"); - - SimplePropertySource source = new SimplePropertySource(resource); - - assertThat(source, notNullValue()); - assertThat(source.getProperties(), aMapWithSize(2)); // double the size for .source values. - assertThat(source.getProperties(), hasEntry("a", PropertyValue.of("a", "b", resource.toString()))); - assertThat(source.getProperties(), hasEntry("b", PropertyValue.of("b", "1", resource.toString()))); - - } - - @Test - public void failsToCreateFromNonXMLPropertiesXMLFile() { - URL resource = getClass().getResource("/non-xml-properties.xml"); - ConfigException catchedException = null; - - try { - new SimplePropertySource(resource); - } catch (ConfigException ce) { - catchedException = ce; - } - - assertThat(catchedException.getMessage(), allOf(startsWith("Error loading properties from"), - endsWith("non-xml-properties.xml"))); - } - - @Test - public void failsToCreateFromInvalidPropertiesXMLFile() { - URL resource = getClass().getResource("/invalid-properties.xml"); - ConfigException catchedException = null; - - try { - new SimplePropertySource(resource); - } catch (ConfigException ce) { - catchedException = ce; - } - - assertThat(catchedException.getMessage(), allOf(startsWith("Error loading properties from"), - endsWith("invalid-properties.xml"))); - } - - - @Test - public void successfulCreationWithPropertiesFromSimplePropertiesFile() { - URL resource = getClass().getResource("/testfile.properties"); - - SimplePropertySource source = new SimplePropertySource(resource); - - assertThat(source, notNullValue()); - assertThat(source.getProperties(), aMapWithSize(5)); // double the size for .source values. - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/SystemPropertySourceTest.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/SystemPropertySourceTest.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/SystemPropertySourceTest.java deleted file mode 100644 index e67630c..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/SystemPropertySourceTest.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.spisupport.propertysource; - -import org.apache.tamaya.spi.PropertySource; -import org.apache.tamaya.spi.PropertyValue; -import org.junit.Assert; -import org.junit.Test; - -import java.util.Map; -import java.util.Properties; - -public class SystemPropertySourceTest { - - private final SystemPropertySource testPropertySource = new SystemPropertySource(); - - - @Test - public void testGetOrdinal() throws Exception { - - // test the default ordinal - Assert.assertEquals(SystemPropertySource.DEFAULT_ORDINAL, testPropertySource.getOrdinal()); - - // set the ordinal to 1001 - System.setProperty(PropertySource.TAMAYA_ORDINAL, "1001"); - Assert.assertEquals(1001, new SystemPropertySource().getOrdinal()); - // currently its not possible to change ordinal at runtime - - // reset it to not destroy other tests!! - System.clearProperty(PropertySource.TAMAYA_ORDINAL); - } - - @Test - public void testGetName() throws Exception { - Assert.assertEquals("system-properties", testPropertySource.getName()); - } - - @Test - public void testGet() throws Exception { - String propertyKeyToCheck = System.getProperties().stringPropertyNames().iterator().next(); - - PropertyValue property = testPropertySource.get(propertyKeyToCheck); - Assert.assertNotNull("Property '" + propertyKeyToCheck + "' is not present in " + - SystemPropertySource.class.getSimpleName(), property); - Assert.assertEquals(System.getProperty(propertyKeyToCheck), property.getValue()); - } - - @Test - public void testGetProperties() throws Exception { - checkWithSystemProperties(testPropertySource.getProperties()); - - // modify system properties - System.setProperty("test", "myTestVal"); - - checkWithSystemProperties(testPropertySource.getProperties()); - - // cleanup - System.clearProperty("test"); - } - - private void checkWithSystemProperties(Map<String,PropertyValue> toCheck) { - Properties systemEntries = System.getProperties(); - int num = 0; - for (PropertyValue propertySourceEntry : toCheck.values()) { - if(propertySourceEntry.getKey().startsWith("_")){ - continue; // meta entry - } - num ++; - Assert.assertEquals("Entry values for key '" + propertySourceEntry.getKey() + "' do not match", - systemEntries.getProperty(propertySourceEntry.getKey()), propertySourceEntry.getValue()); - } - Assert.assertEquals("size of System.getProperties().entrySet() must be the same as SystemPropertySrouce.getProperties().entrySet()", - systemEntries.size(), num); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/TestPropertyDefaultSource.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/TestPropertyDefaultSource.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/TestPropertyDefaultSource.java deleted file mode 100644 index b326abc..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/TestPropertyDefaultSource.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.spisupport.propertysource; - -import org.apache.tamaya.spisupport.propertysource.BasePropertySource; -import org.apache.tamaya.spi.PropertyValue; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -/** - * Test provider reading properties from classpath:cfg/defaults/**.properties. - */ -public class TestPropertyDefaultSource extends BasePropertySource{ - - private Map<String,PropertyValue> properties = new HashMap<>(); - - public TestPropertyDefaultSource() { - super(100); - properties.put("name",PropertyValue.of("name", "Anatole", "Test")); - properties.put("name2",PropertyValue.of("name2", "Sabine", "Test")); - properties = Collections.unmodifiableMap(properties); - } - - @Override - public String getName() { - return "default-testdata-properties"; - } - - @Override - public Map<String, PropertyValue> getProperties() { - return properties; - } - - @Override - public boolean isScannable() { - return true; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/spi-support/src/test/java/org/apache/tamaya/spisupport/services/DefaultServiceContext.java ---------------------------------------------------------------------- diff --git a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/services/DefaultServiceContext.java b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/services/DefaultServiceContext.java deleted file mode 100644 index 46d69da..0000000 --- a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/services/DefaultServiceContext.java +++ /dev/null @@ -1,205 +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.spisupport.services; - -import org.apache.tamaya.ConfigException; -import org.apache.tamaya.spi.ServiceContext; -import org.apache.tamaya.spisupport.PriorityServiceComparator; - -import javax.annotation.Priority; -import java.io.IOException; -import java.net.URL; -import java.text.MessageFormat; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * This class implements the (default) {@link ServiceContext} interface and hereby uses the JDK - * {@link ServiceLoader} to load the services required. - */ -public final class DefaultServiceContext implements ServiceContext { - private static final Logger LOG = Logger.getLogger(DefaultServiceContext.class.getName()); - /** - * List current services loaded, per class. - */ - private final ConcurrentHashMap<Class<?>, List<Object>> servicesLoaded = new ConcurrentHashMap<>(); - /** - * Singletons. - */ - private final Map<Class<?>, Object> singletons = new ConcurrentHashMap<>(); - @SuppressWarnings("rawtypes") - private Map<Class, Class> factoryTypes = new ConcurrentHashMap<>(); - - @Override - public <T> T getService(Class<T> serviceType) { - Object cached = singletons.get(serviceType); - if (cached == null) { - cached = create(serviceType); - if(cached!=null) { - singletons.put(serviceType, cached); - } - } - return serviceType.cast(cached); - } - - @Override - public <T> T create(Class<T> serviceType) { - @SuppressWarnings("unchecked") - Class<? extends T> implType = factoryTypes.get(serviceType); - if(implType==null) { - Collection<T> services = getServices(serviceType); - if (services.isEmpty()) { - return null; - } else { - return getServiceWithHighestPriority(services, serviceType); - } - } - try { - return implType.newInstance(); - } catch (Exception e) { - LOG.log(Level.SEVERE, "Failed to create instance of " + implType.getName(), e); - return null; - } - } - - /** - * Loads and registers services. - * - * @param <T> the concrete type. - * @param serviceType The service type. - * @return the items found, never {@code null}. - */ - @Override - public <T> List<T> getServices(final Class<T> serviceType) { - @SuppressWarnings("unchecked") - List<T> found = (List<T>) servicesLoaded.get(serviceType); - if (found != null) { - return found; - } - List<T> services = new ArrayList<>(); - try { - for (T t : ServiceLoader.load(serviceType)) { - services.add(t); - } - if(services.isEmpty()) { - for (T t : ServiceLoader.load(serviceType, serviceType.getClassLoader())) { - services.add(t); - } - } - Collections.sort(services, PriorityServiceComparator.getInstance()); - services = Collections.unmodifiableList(services); - } catch (ServiceConfigurationError e) { - LOG.log(Level.WARNING, - "Error loading services current type " + serviceType, e); - if(services==null){ - services = Collections.emptyList(); - } - } - @SuppressWarnings("unchecked") - final List<T> previousServices = List.class.cast(servicesLoaded.putIfAbsent(serviceType, (List<Object>) services)); - return previousServices != null ? previousServices : services; - } - - /** - * Checks the given instance for a @Priority annotation. If present the annotation's value is evaluated. If no such - * annotation is present, a default priority of {@code 1} is returned. - * @param o the instance, not {@code null}. - * @return a priority, by default 1. - */ - public static int getPriority(Object o){ - int prio = 1; //X TODO discuss default priority - Priority priority = o.getClass().getAnnotation(Priority.class); - if (priority != null) { - prio = priority.value(); - } - return prio; - } - - /** - * @param services to scan - * @param <T> type of the service - * - * @return the service with the highest {@link Priority#value()} - * - * @throws ConfigException if there are multiple service implementations with the maximum priority - */ - private <T> T getServiceWithHighestPriority(Collection<T> services, Class<T> serviceType) { - T highestService = null; - // we do not need the priority stuff if the list contains only one element - if (services.size() == 1) { - highestService = services.iterator().next(); - this.factoryTypes.put(serviceType, highestService.getClass()); - return highestService; - } - - Integer highestPriority = null; - int highestPriorityServiceCount = 0; - - for (T service : services) { - int prio = getPriority(service); - if (highestPriority == null || highestPriority < prio) { - highestService = service; - highestPriorityServiceCount = 1; - highestPriority = prio; - } else if (highestPriority == prio) { - highestPriorityServiceCount++; - } - } - - if (highestPriorityServiceCount > 1) { - throw new ConfigException(MessageFormat.format("Found {0} implementations for Service {1} with Priority {2}: {3}", - highestPriorityServiceCount, - serviceType.getName(), - highestPriority, - services)); - } - this.factoryTypes.put(serviceType, highestService.getClass()); - return highestService; - } - - @Override - public int ordinal() { - return 1; - } - - @Override - public Enumeration<URL> getResources(String resource, ClassLoader cl) throws IOException { - if(cl==null){ - cl = Thread.currentThread().getContextClassLoader(); - } - if(cl==null){ - cl = getClass().getClassLoader(); - } - return cl.getResources(resource); - } - - @Override - public URL getResource(String resource, ClassLoader cl) { - if(cl==null){ - cl = Thread.currentThread().getContextClassLoader(); - } - if(cl==null){ - cl = getClass().getClassLoader(); - } - return cl.getResource(resource); - } - -}