protected void removePersistenceService(PersistenceService persistenceService) { stopEventHandling(persistenceService.getId()); persistenceServices.remove(persistenceService.getId()); }
public void addPersistenceService(PersistenceService service) { if (service instanceof QueryablePersistenceService) { persistenceServices.put(service.getId(), (QueryablePersistenceService) service); } }
private void startEventHandling(final String dbId) { synchronized (persistenceServiceConfigs) { final PersistenceServiceConfiguration config = persistenceServiceConfigs.get(dbId); if (config == null) { return; } for (SimpleItemConfiguration itemConfig : config.getConfigs()) { if (hasStrategy(dbId, itemConfig, SimpleStrategy.Globals.RESTORE)) { for (Item item : getAllItems(itemConfig)) { initialize(item); } } } createTimers(dbId, config.getStrategies()); } }
@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)); } } } } } }
/** * 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()); } } } } } } }
/** * Gets a list of persistence services currently configured in the system * * @return list of persistence services as {@link ServiceBean} */ private List<PersistenceServiceDTO> getPersistenceServiceList(Locale locale) { List<PersistenceServiceDTO> dtoList = new ArrayList<PersistenceServiceDTO>(); for (PersistenceService service : persistenceServiceRegistry.getAll()) { PersistenceServiceDTO serviceDTO = new PersistenceServiceDTO(); serviceDTO.id = service.getId(); serviceDTO.label = service.getLabel(locale); if (service instanceof ModifiablePersistenceService) { serviceDTO.type = MODIFYABLE; } else if (service instanceof QueryablePersistenceService) { serviceDTO.type = QUERYABLE; } else { serviceDTO.type = STANDARD; } dtoList.add(serviceDTO); } return dtoList; }
/** * 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; } }
private Response getServiceItemList(String serviceId) { // If serviceId is null, then use the default service PersistenceService service = null; if (serviceId == null) { service = persistenceServiceRegistry.getDefault(); } else { service = persistenceServiceRegistry.get(serviceId); } if (service == null) { logger.debug("Persistence service not found '{}'.", serviceId); return JSONResponse.createErrorResponse(Status.BAD_REQUEST, "Persistence service not found: " + serviceId); } if (!(service instanceof QueryablePersistenceService)) { logger.debug("Persistence service not queryable '{}'.", serviceId); return JSONResponse.createErrorResponse(Status.BAD_REQUEST, "Persistence service not queryable: " + serviceId); } QueryablePersistenceService qService = (QueryablePersistenceService) service; return JSONResponse.createResponse(Status.OK, qService.getItemInfo(), ""); }
private Operator mapOperator(FilterCriteria.Operator operator) { if (operator == null) { return null; } return org.openhab.core.persistence.FilterCriteria.Operator.valueOf(operator.toString()); }
private Ordering mapOrdering(FilterCriteria.Ordering ordering) { if (ordering == null) { return null; } return org.openhab.core.persistence.FilterCriteria.Ordering.valueOf(ordering.toString()); }
@Override public void startEventHandling(final String dbId) { synchronized (persistenceServiceConfigs) { final PersistenceServiceConfiguration config = persistenceServiceConfigs.get(dbId); if (config == null) { return; } if (itemRegistry != null) { for (SimpleItemConfiguration itemConfig : config.getConfigs()) { if (hasStrategy(dbId, itemConfig, SimpleStrategy.Globals.RESTORE)) { for (Item item : getAllItems(itemConfig)) { initialize(item); } } } } createTimers(dbId, config.getStrategies()); } }
@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)); } } } } } }
/** * 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()); } } } } } } }
public void removePersistenceService(PersistenceService service) { services.remove(service.getId()); }
protected void removePersistenceService(PersistenceService persistenceService) { stopEventHandling(persistenceService.getId()); persistenceServices.remove(persistenceService.getId()); }
/** * 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; } }
public void removePersistenceService(PersistenceService service) { persistenceServices.remove(service.getId()); }
public void removePersistenceService(PersistenceService service) { services.remove(service.getId()); }
@Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC) public void addPersistenceService(PersistenceService service) { services.put(service.getId(), service); }
@Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC) public void addPersistenceService(PersistenceService service) { services.put(service.getId(), service); }