public static CombinedConfig loadCombinedConfig(Map<String, ?> config) { return loadCombinedConfig(HashMap.ofAll(config)); }
public static CombinedConfig loadCombinedConfig(File file, String... profiles) { return loadCombinedConfig(loadConfigFromFile(file, profiles)); }
public static CombinedConfig loadCombinedConfig(String string) { return loadCombinedConfig(loadConfigFromString(string)); } }
static io.vavr.collection.Map<String, ?> loadConfigFromFile(File file, String... profiles) { ConfigParseOptions options = ConfigParseOptions.defaults().prependIncluder(new ConfigIncluder() { private ConfigIncluder parent = null; public ConfigObject include(ConfigIncludeContext context, String what) { File file = new File(what); // Attempt to locate the file if (!file.exists()) { file = new File("profiles", what); } return ConfigFactory.parseFileAnySyntax(file).root(); } public ConfigIncluder withFallback(ConfigIncluder fallback) { parent = fallback; return this; } }); Config config = ConfigFactory.parseFile(file, options); // Load profiles for (String profile : profiles) { Config profileConfig = ConfigFactory.parseFile(new File("profiles", profile + ".conf"), options); config = config.withFallback(profileConfig); } config = config.resolve(); config = processProfileConditionals(config, profiles); return HashSet.ofAll(config.entrySet()).toMap(entry -> Tuple.of(entry.getKey(), entry.getValue().unwrapped())); }
CombinedConfigLoader.loadCombinedConfig(new File(_tableConfigFile), configurationProfiles); String tableName; if (combinedConfig.getOfflineTableConfig() != null) {
@Test public void testConfigRoundtrip() throws Exception { // Load the config and check it CombinedConfig combinedConfig = CombinedConfigLoader .loadCombinedConfig(new File(getClass().getClassLoader().getResource("test-table-config.conf").getFile())); TableConfig config = combinedConfig.getOfflineTableConfig(); validateLoadedConfig(config); // Shallow serialization (to a map of objects): serialize to a map of objects, deserialize and check config final Map<String, ?> serialize = Serializer.serialize(config); TableConfig newConfig = Deserializer.deserialize(TableConfig.class, serialize, ""); Assert.assertEquals(config, newConfig); validateLoadedConfig(newConfig); // Serialization to a string (which could be written to a file): serialize to a string, deserialize and check config String configAsString = Serializer.serializeToString(config); TableConfig newConfigFromString = Deserializer.deserializeFromString(TableConfig.class, configAsString); if (!config.equals(newConfigFromString)) { System.out.println("Serialized config is = " + configAsString); System.out.println("Expected a config that contains: " + config); } Assert.assertEquals(config, newConfigFromString); validateLoadedConfig(newConfigFromString); }
CombinedConfig tableConfigurationObject = CombinedConfigLoader.loadCombinedConfig(tableConfiguration); assertEquals(tableConfigurationObject.getOfflineTableConfig().getTableName(), "mytable_OFFLINE"); assertEquals(tableConfigurationObject.getOfflineTableConfig().getValidationConfig().getReplicationNumber(), 3); tableConfigurationObject = CombinedConfigLoader.loadCombinedConfig(tableConfiguration); assertEquals(tableConfigurationObject.getOfflineTableConfig().getTableName(), "mytable_OFFLINE"); assertEquals(tableConfigurationObject.getOfflineTableConfig().getValidationConfig().getReplicationNumber(), 4); tableConfigurationObject = CombinedConfigLoader.loadCombinedConfig(tableConfiguration); assertEquals(tableConfigurationObject.getOfflineTableConfig().getTableName(), "mytable_OFFLINE"); assertEquals(tableConfigurationObject.getOfflineTableConfig().getValidationConfig().getReplicationNumber(), 3);