public SystemAdmins(Config config) { JavaSystemConfig systemConfig = new JavaSystemConfig(config); this.systemAdminMap = systemConfig.getSystemAdmins(); }
public String getSystemFactory(String name) { if (name == null) { return null; } String systemFactory = String.format(SYSTEM_FACTORY_FORMAT, name); String value = get(systemFactory, null); return (StringUtils.isBlank(value)) ? null : value; }
/** * Get {@link SystemAdmin} instances for all the systems defined in this config. * * @return map of system name to {@link SystemAdmin} */ public Map<String, SystemAdmin> getSystemAdmins() { return getSystemFactories().entrySet() .stream() .collect(Collectors.toMap(systemNameToFactoryEntry -> systemNameToFactoryEntry.getKey(), systemNameToFactoryEntry -> systemNameToFactoryEntry.getValue() .getAdmin(systemNameToFactoryEntry.getKey(), this))); }
/** * get the SystemConsumers for the stores */ private HashMap<String, SystemConsumer> getStoreConsumers() { HashMap<String, SystemConsumer> storeConsumers = new HashMap<>(); Map<String, SystemFactory> systemFactories = new JavaSystemConfig(jobConfig).getSystemFactories(); for (Entry<String, SystemStream> entry : changeLogSystemStreams.entrySet()) { String storeSystem = entry.getValue().getSystem(); if (!systemFactories.containsKey(storeSystem)) { throw new SamzaException("Changelog system " + storeSystem + " for store " + entry.getKey() + " does not exist in the config."); } storeConsumers.put(entry.getKey(), systemFactories.get(storeSystem).getConsumer(storeSystem, jobConfig, new MetricsRegistryMap())); } return storeConsumers; }
/** * Get {@link SystemFactory} instances for all the systems defined in this config. * * @return a map from system name to {@link SystemFactory} */ public Map<String, SystemFactory> getSystemFactories() { Map<String, SystemFactory> systemFactories = getSystemNames().stream().collect(Collectors.toMap( systemName -> systemName, systemName -> { String systemFactoryClassName = getSystemFactory(systemName); if (systemFactoryClassName == null) { throw new SamzaException( String.format("A stream uses system %s, which is missing from the configuration.", systemName)); } return Util.getObj(systemFactoryClassName, SystemFactory.class); })); return systemFactories; }
JavaSystemConfig systemConfig = new JavaSystemConfig(config); storeNameSystemStreamMapping.forEach((storeName, systemStream) -> { SystemAdmin systemAdmin = systemConfig.getSystemAdmin(systemStream.getSystem());
@Test public void testGetEmptyClassNameAsNull() { Map<String, String> map = new HashMap<String, String>(); map.put(MOCK_SYSTEM_FACTORY_NAME1, ""); map.put(MOCK_SYSTEM_FACTORY_NAME2, " "); JavaSystemConfig systemConfig = new JavaSystemConfig(new MapConfig(map)); assertNull(systemConfig.getSystemFactory(MOCK_SYSTEM_NAME1)); assertNull(systemConfig.getSystemFactory(MOCK_SYSTEM_NAME2)); }
@Test public void testGetSystemNames() { Map<String, String> map = new HashMap<String, String>(); map.put(MOCK_SYSTEM_FACTORY_NAME1, MOCK_SYSTEM_FACTORY_CLASSNAME1); map.put(MOCK_SYSTEM_FACTORY_NAME2, MOCK_SYSTEM_FACTORY_CLASSNAME2); JavaSystemConfig systemConfig = new JavaSystemConfig(new MapConfig(map)); assertEquals(2, systemConfig.getSystemNames().size()); assertTrue(systemConfig.getSystemNames().contains(MOCK_SYSTEM_NAME1)); assertTrue(systemConfig.getSystemNames().contains(MOCK_SYSTEM_NAME2)); } }
/** * Gets the system-wide defaults for streams. * * @param systemName the name of the system for which the defaults will be returned. * @return a subset of the config with the system prefix removed. */ public Config getDefaultStreamProperties(String systemName) { return subset(String.format(SYSTEM_DEFAULT_STREAMS_PREFIX_FORMAT, systemName), true); } }
String systemOffsetDefault = new JavaSystemConfig(config).getSystemOffsetDefault(systemName);
/** * Get {@link SystemAdmin} instance for given system name. * * @param systemName System name * @return SystemAdmin of the system if it exists, otherwise null. */ public SystemAdmin getSystemAdmin(String systemName) { return getSystemAdmins().get(systemName); }
/** * get the SystemConsumers for the stores */ private HashMap<String, SystemConsumer> getStoreConsumers() { HashMap<String, SystemConsumer> storeConsumers = new HashMap<>(); Map<String, SystemFactory> systemFactories = new JavaSystemConfig(jobConfig).getSystemFactories(); for (Entry<String, SystemStream> entry : changeLogSystemStreams.entrySet()) { String storeSystem = entry.getValue().getSystem(); if (!systemFactories.containsKey(storeSystem)) { throw new SamzaException("Changelog system " + storeSystem + " for store " + entry.getKey() + " does not exist in the config."); } storeConsumers.put(entry.getKey(), systemFactories.get(storeSystem).getConsumer(storeSystem, jobConfig, new MetricsRegistryMap())); } return storeConsumers; }
/** * Get {@link SystemFactory} instances for all the systems defined in this config. * * @return a map from system name to {@link SystemFactory} */ public Map<String, SystemFactory> getSystemFactories() { Map<String, SystemFactory> systemFactories = getSystemNames().stream().collect(Collectors.toMap( systemName -> systemName, systemName -> { String systemFactoryClassName = getSystemFactory(systemName); if (systemFactoryClassName == null) { throw new SamzaException( String.format("A stream uses system %s, which is missing from the configuration.", systemName)); } return Util.getObj(systemFactoryClassName, SystemFactory.class); })); return systemFactories; }
JavaSystemConfig systemConfig = new JavaSystemConfig(config); storeNameSystemStreamMapping.forEach((storeName, systemStream) -> { SystemAdmin systemAdmin = systemConfig.getSystemAdmin(systemStream.getSystem());
@Test public void testClassName() { Map<String, String> map = new HashMap<String, String>(); map.put(MOCK_SYSTEM_FACTORY_NAME1, MOCK_SYSTEM_FACTORY_CLASSNAME1); JavaSystemConfig systemConfig = new JavaSystemConfig(new MapConfig(map)); assertEquals(MOCK_SYSTEM_FACTORY_CLASSNAME1, systemConfig.getSystemFactory(MOCK_SYSTEM_NAME1)); }
/** * Gets the system-wide defaults for streams. * * @param systemName the name of the system for which the defaults will be returned. * @return a subset of the config with the system prefix removed. */ public Config getDefaultStreamProperties(String systemName) { return subset(String.format(SYSTEM_DEFAULT_STREAMS_PREFIX_FORMAT, systemName), true); } }
/** * Get {@link SystemAdmin} instance for given system name. * * @param systemName System name * @return SystemAdmin of the system if it exists, otherwise null. */ public SystemAdmin getSystemAdmin(String systemName) { return getSystemAdmins().get(systemName); }
public SystemAdmins(Config config) { JavaSystemConfig systemConfig = new JavaSystemConfig(config); this.systemAdminMap = systemConfig.getSystemAdmins(); }
/** * get the SystemConsumers for the stores */ private HashMap<String, SystemConsumer> getStoreConsumers() { HashMap<String, SystemConsumer> storeConsumers = new HashMap<>(); Map<String, SystemFactory> systemFactories = new JavaSystemConfig(jobConfig).getSystemFactories(); for (Entry<String, SystemStream> entry : changeLogSystemStreams.entrySet()) { String storeSystem = entry.getValue().getSystem(); if (!systemFactories.containsKey(storeSystem)) { throw new SamzaException("Changelog system " + storeSystem + " for store " + entry.getKey() + " does not exist in the config."); } storeConsumers.put(entry.getKey(), systemFactories.get(storeSystem).getConsumer(storeSystem, jobConfig, new MetricsRegistryMap())); } return storeConsumers; }
/** * Get {@link SystemFactory} instances for all the systems defined in this config. * * @return a map from system name to {@link SystemFactory} */ public Map<String, SystemFactory> getSystemFactories() { Map<String, SystemFactory> systemFactories = getSystemNames().stream().collect(Collectors.toMap( systemName -> systemName, systemName -> { String systemFactoryClassName = getSystemFactory(systemName); if (systemFactoryClassName == null) { throw new SamzaException( String.format("A stream uses system %s, which is missing from the configuration.", systemName)); } return Util.getObj(systemFactoryClassName, SystemFactory.class); })); return systemFactories; }