private boolean hasStrategy(List<SimpleStrategy> defaults, SimpleItemConfiguration config, String strategyName) { // check if the strategy is directly defined on the config for (SimpleStrategy strategy : config.getStrategies()) { if (strategyName.equals(strategy.getName())) { return true; } } // if no strategies are given, check the default strategies to use if (config.getStrategies().isEmpty() && isDefault(defaults, strategyName)) { return true; } return false; }
/** * Calls all persistence services which use change or update policy for the given item * * @param item the item to persist * @param onlyChanges true, if it has the change strategy, false otherwise */ private void handleStateEvent(Item item, boolean onlyChanges) { synchronized (persistenceServiceConfigs) { for (Entry<String, PersistenceServiceConfiguration> entry : persistenceServiceConfigs.entrySet()) { final String serviceName = entry.getKey(); final PersistenceServiceConfiguration config = entry.getValue(); if (persistenceServices.containsKey(serviceName)) { for (SimpleItemConfiguration itemConfig : config.getConfigs()) { if (hasStrategy(serviceName, itemConfig, onlyChanges ? SimpleStrategy.Globals.CHANGE : SimpleStrategy.Globals.UPDATE)) { if (appliesToItem(itemConfig, item)) { persistenceServices.get(serviceName).store(item, itemConfig.getAlias()); } } } } } } }
@Override public void run() { synchronized (manager.persistenceServiceConfigs) { final PersistenceService persistenceService = manager.persistenceServices.get(dbId); final PersistenceServiceConfiguration config = manager.persistenceServiceConfigs.get(dbId); if (persistenceService != null) { for (SimpleItemConfiguration itemConfig : config.getConfigs()) { if (hasStrategy(config.getDefaults(), itemConfig, strategyName)) { for (Item item : manager.getAllItems(itemConfig)) { long startTime = System.nanoTime(); persistenceService.store(item, itemConfig.getAlias()); logger.trace("Storing item '{}' with persistence service '{}' took {}ms", item.getName(), dbId, TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startTime)); } } } } } }
private boolean hasStrategy(List<SimpleStrategy> defaults, SimpleItemConfiguration config, String strategyName) { // check if the strategy is directly defined on the config for (SimpleStrategy strategy : config.getStrategies()) { if (strategyName.equals(strategy.getName())) { return true; } } // if no strategies are given, check the default strategies to use if (config.getStrategies().isEmpty() && isDefault(defaults, strategyName)) { return true; } return false; }
/** * Calls all persistence services which use change or update policy for the given item * * @param item the item to persist * @param onlyChanges true, if it has the change strategy, false otherwise */ private void handleStateEvent(Item item, boolean onlyChanges) { synchronized (persistenceServiceConfigs) { for (Entry<String, PersistenceServiceConfiguration> entry : persistenceServiceConfigs.entrySet()) { final String serviceName = entry.getKey(); final PersistenceServiceConfiguration config = entry.getValue(); if (persistenceServices.containsKey(serviceName)) { for (SimpleItemConfiguration itemConfig : config.getConfigs()) { if (hasStrategy(serviceName, itemConfig, onlyChanges ? SimpleStrategy.Globals.CHANGE : SimpleStrategy.Globals.UPDATE)) { if (appliesToItem(itemConfig, item)) { persistenceServices.get(serviceName).store(item, itemConfig.getAlias()); } } } } } } }
for (SimpleConfig itemCfg : config.getItems()) { if (itemCfg instanceof SimpleAllConfig) { return true;
/** * Checks if a given persistence configuration entry has a certain strategy for the given service * * @param serviceName the service to check the configuration for * @param itemConfig the persistence configuration entry * @param strategy the strategy to check for * @return true, if it has the given strategy */ private boolean hasStrategy(String serviceName, SimpleItemConfiguration itemConfig, SimpleStrategy strategy) { final PersistenceServiceConfiguration config = persistenceServiceConfigs.get(serviceName); if (config.getDefaults().contains(strategy) && itemConfig.getStrategies().isEmpty()) { return true; } else { for (SimpleStrategy s : itemConfig.getStrategies()) { if (s.equals(strategy)) { return true; } } return false; } }
@Override public void run() { synchronized (manager.persistenceServiceConfigs) { final PersistenceService persistenceService = manager.persistenceServices.get(dbId); final PersistenceServiceConfiguration config = manager.persistenceServiceConfigs.get(dbId); if (persistenceService != null) { for (SimpleItemConfiguration itemConfig : config.getConfigs()) { if (hasStrategy(config.getDefaults(), itemConfig, strategyName)) { for (Item item : manager.getAllItems(itemConfig)) { long startTime = System.nanoTime(); persistenceService.store(item, itemConfig.getAlias()); logger.trace("Storing item '{}' with persistence service '{}' took {}ms", item.getName(), dbId, TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startTime)); } } } } } }
for (SimpleConfig itemCfg : config.getItems()) { if (itemCfg instanceof SimpleAllConfig) { return true;
/** * Checks if a given persistence configuration entry has a certain strategy for the given service * * @param serviceName the service to check the configuration for * @param itemConfig the persistence configuration entry * @param strategy the strategy to check for * @return true, if it has the given strategy */ private boolean hasStrategy(String serviceName, SimpleItemConfiguration itemConfig, SimpleStrategy strategy) { final PersistenceServiceConfiguration config = persistenceServiceConfigs.get(serviceName); if (config.getDefaults().contains(strategy) && itemConfig.getStrategies().isEmpty()) { return true; } else { for (SimpleStrategy s : itemConfig.getStrategies()) { if (s.equals(strategy)) { return true; } } return false; } }