/** * Creates a list of configuration infos from the locations and if they are * optional. A {@code null} locations will return {@code null} * * @param <T> the type of location. Only {@code String} and {@code URL} are * supported. */ public static <T> List<ConfigurationInfo<T>> newList(@Nullable List<T> locations, final boolean isOptional) { if (locations == null) { return null; } return Lists.transform(locations, input -> new ConfigurationInfo<T>(input, isOptional)); }
if (path != null && path.getLocation() != null) { try { addConfiguration(combinedConfiguration, fromFile(path.getLocation())); } catch (ConfigurationLoadException e) { if (!path.isOptional) { if (url != null && url.getLocation() != null) { try { addConfiguration(combinedConfiguration, fromFile(url.getLocation())); } catch (ConfigurationLoadException e) { if (!url.isOptional) { } else { AdsServiceLoggers.ADS_API_LIB_LOG.debug( "Did not load optional configuration" + url.getLocation() + ":", e);
if (path != null && path.getLocation() != null) { try { addConfiguration(combinedConfiguration, fromFile(path.getLocation())); } catch (ConfigurationLoadException e) { if (!path.isOptional) { if (url != null && url.getLocation() != null) { try { addConfiguration(combinedConfiguration, fromFile(url.getLocation())); } catch (ConfigurationLoadException e) { if (!url.isOptional) { } else { AdsServiceLoggers.ADS_API_LIB_LOG.debug( "Did not load optional configuration" + url.getLocation() + ":", e);
@Test @SuppressWarnings("unchecked") public void testCreateCombinedConfiguration_requiredPathsOverrideUrl() throws Exception { System.setProperty("testProperty", "testValue"); Configuration configuration = configurationHelper.createCombinedConfiguration( Lists.<ConfigurationInfo<String>>newArrayList( new ConfigurationInfo<String>( createPropertiesFile(test3Properties).toString(), false), new ConfigurationInfo<String>( createPropertiesFile(test1Properties).toString(), false)), Lists.<ConfigurationInfo<URL>>newArrayList( new ConfigurationInfo<URL>( ConfigurationHelperTest.class.getResource("props/test2.properties"), false))); assertEquals("testValue", configuration.getString("testProperty")); assertEquals("jklm", configuration.getString("a.b.c")); assertEquals("1234", configuration.getString("a.b.d")); assertEquals("90123", configuration.getString("e.f.h")); assertEquals("xyz", configuration.getString("e.f.g")); }
@Test @SuppressWarnings("unchecked") public void testCreateCombinedConfiguration_requiredUrlrequiredPathNoOverride() throws Exception { System.setProperty("testProperty", "testValue"); Configuration configuration = configurationHelper.createCombinedConfiguration( Lists.<ConfigurationInfo<String>>newArrayList( new ConfigurationInfo<String>( createPropertiesFile(test1Properties).toString(), false)), Lists.<ConfigurationInfo<URL>>newArrayList( new ConfigurationInfo<URL>( ConfigurationHelperTest.class.getResource("props/test2.properties"), false))); assertEquals("testValue", configuration.getString("testProperty")); assertEquals("efgh", configuration.getString("a.b.c")); assertEquals("1234", configuration.getString("a.b.d")); assertEquals("xyz", configuration.getString("e.f.g")); assertEquals("5678", configuration.getString("e.f.h")); }
@Test @SuppressWarnings("unchecked") public void testCreateCombinedConfiguration_requiredPathsOverride() throws Exception { System.setProperty("testProperty", "testValue"); Configuration configuration = configurationHelper.createCombinedConfiguration( Lists.<ConfigurationInfo<String>>newArrayList( new ConfigurationInfo<String>( createPropertiesFile(test3Properties).toString(), false), new ConfigurationInfo<String>( createPropertiesFile(test1Properties).toString(), false)), null); assertEquals("testValue", configuration.getString("testProperty")); assertEquals("jklm", configuration.getString("a.b.c")); assertEquals("1234", configuration.getString("a.b.d")); assertEquals("90123", configuration.getString("e.f.h")); }
@Test @SuppressWarnings("unchecked") public void testCreateCombinedConfiguration_requiredUrlrequiredPathOptionalNotExist() throws Exception { System.setProperty("testProperty", "testValue"); Configuration configuration = configurationHelper.createCombinedConfiguration( Lists.<ConfigurationInfo<String>>newArrayList( new ConfigurationInfo<String>("test4.properties", true)), Lists.<ConfigurationInfo<URL>>newArrayList( new ConfigurationInfo<URL>( ConfigurationHelperTest.class.getResource("props/test2.properties"), false))); assertEquals("testValue", configuration.getString("testProperty")); assertEquals("xyz", configuration.getString("e.f.g")); assertEquals("5678", configuration.getString("e.f.h")); }
@Test @SuppressWarnings("unchecked") public void testCreateCombinedConfiguration_requiredUrlOptionalPathOverride() throws Exception { System.setProperty("e.f.h", "5678"); Configuration configuration = configurationHelper.createCombinedConfiguration( Lists.<ConfigurationInfo<String>>newArrayList( new ConfigurationInfo<String>( createPropertiesFile(test3Properties).toString(), false)), Lists.<ConfigurationInfo<URL>>newArrayList( new ConfigurationInfo<URL>( ConfigurationHelperTest.class.getResource("props/test1.properties"), true))); assertEquals("jklm", configuration.getString("a.b.c")); assertEquals("1234", configuration.getString("a.b.d")); assertEquals("5678", configuration.getString("e.f.h")); }
/** * Creates a list of configuration infos from the locations and if they are * optional. A {@code null} locations will return {@code null} * * @param <T> the type of location. Only {@code String} and {@code URL} are * supported. */ public static <T> List<ConfigurationInfo<T>> newList(@Nullable List<T> locations, final boolean isOptional) { if (locations == null) { return null; } return Lists.transform(locations, input -> new ConfigurationInfo<T>(input, isOptional)); }
@Test @SuppressWarnings("unchecked") public void testCreateCombinedConfiguration_requiredUrlOverride() throws Exception { test1Properties.forEach(System::setProperty); System.setProperty("testProperty", "testValue"); Configuration configuration = configurationHelper.createCombinedConfiguration(null, Lists.<ConfigurationInfo<URL>>newArrayList(new ConfigurationInfo<URL>( ConfigurationHelperTest.class.getResource("props/test3.properties"), true))); assertEquals("efgh", configuration.getString("a.b.c")); assertEquals("1234", configuration.getString("a.b.d")); assertEquals("testValue", configuration.getString("testProperty")); }
@Test public void testUnsupportedConfigurationInfo() { thrown.expect(IllegalArgumentException.class); new ConfigurationInfo<Long>(1234L, false); }
@Test @SuppressWarnings("unchecked") public void testCreateCombinedConfiguration_requiredUrlNotFound() throws Exception { test1Properties.forEach(System::setProperty); System.setProperty("testProperty", "testValue"); thrown.expect(ConfigurationLoadException.class); configurationHelper.createCombinedConfiguration(null, Lists.<ConfigurationInfo<URL>>newArrayList(new ConfigurationInfo<URL>( new URL("file:///does/not/exist" + System.currentTimeMillis()), false))); }
@Test @SuppressWarnings("unchecked") public void testCreateCombinedConfiguration_optionalUrlNotFound() throws Exception { test1Properties.forEach(System::setProperty); System.setProperty("testProperty", "testValue"); Configuration configuration = configurationHelper.createCombinedConfiguration(null, Lists.<ConfigurationInfo<URL>>newArrayList(new ConfigurationInfo<URL>( new URL("file:///does/not/exist" + System.currentTimeMillis()), true))); assertEquals("efgh", configuration.getString("a.b.c")); assertEquals("1234", configuration.getString("a.b.d")); assertEquals("testValue", configuration.getString("testProperty")); }
@Test public void testSupportedConfigurationInfo() throws Exception { new ConfigurationInfo<String>("1234", false); new ConfigurationInfo<URL>(new URL("http://google.com"), false); }
@Test @SuppressWarnings("unchecked") public void testCreateCombinedConfiguration_requiredUrlNoOverride() throws Exception { System.setProperty("testProperty", "testValue"); Configuration configuration = configurationHelper.createCombinedConfiguration(null, Lists.<ConfigurationInfo<URL>>newArrayList(new ConfigurationInfo<URL>( ConfigurationHelperTest.class.getResource("props/test3.properties"), true))); assertEquals("jklm", configuration.getString("a.b.c")); assertEquals("testValue", configuration.getString("testProperty")); }
@Test public void testNewConfigurationInfoList_optional() throws Exception { List<ConfigurationInfo<URL>> configurationInfos = ConfigurationHelper.newList( Lists.newArrayList(new URL("http://google.com"), new URL("https://google.com")), true); assertEquals(2, configurationInfos.size()); assertEquals(new URL("http://google.com"), configurationInfos.get(0).getLocation()); assertTrue(configurationInfos.get(0).isOptional()); assertEquals(new URL("https://google.com"), configurationInfos.get(1).getLocation()); assertTrue(configurationInfos.get(1).isOptional()); }
@Test public void testNewConfigurationInfoList_required() { List<ConfigurationInfo<String>> configurationInfos = ConfigurationHelper.newList(Lists.newArrayList("1234", "5678"), false); assertEquals(2, configurationInfos.size()); assertEquals("1234", configurationInfos.get(0).getLocation()); assertFalse(configurationInfos.get(0).isOptional()); assertEquals("5678", configurationInfos.get(1).getLocation()); assertFalse(configurationInfos.get(1).isOptional()); }
@Test @SuppressWarnings("unchecked") public void testCreateCombinedConfiguration_optionalUrlOverride() throws Exception { test1Properties.forEach(System::setProperty); System.setProperty("testProperty", "testValue"); Configuration configuration = configurationHelper.createCombinedConfiguration(null, Lists.<ConfigurationInfo<URL>>newArrayList(new ConfigurationInfo<URL>( ConfigurationHelperTest.class.getResource("props/test3.properties"), true))); assertEquals("efgh", configuration.getString("a.b.c")); assertEquals("1234", configuration.getString("a.b.d")); assertEquals("testValue", configuration.getString("testProperty")); }