private void updateControllerService(final ControllerServiceNode service, final VersionedControllerService proposed) { service.pauseValidationTrigger(); try { service.setAnnotationData(proposed.getAnnotationData()); service.setComments(proposed.getComments()); service.setName(proposed.getName()); final Map<String, String> properties = populatePropertiesMap(service.getProperties(), proposed.getProperties(), proposed.getPropertyDescriptors(), service.getProcessGroup()); service.setProperties(properties, true); if (!isEqual(service.getBundleCoordinate(), proposed.getBundle())) { final BundleCoordinate newBundleCoordinate = toCoordinate(proposed.getBundle()); final List<PropertyDescriptor> descriptors = new ArrayList<>(service.getProperties().keySet()); final Set<URL> additionalUrls = service.getAdditionalClasspathResources(descriptors); flowController.getReloadComponent().reload(service, proposed.getType(), newBundleCoordinate, additionalUrls); } } finally { service.resumeValidationTrigger(); } }
@Override public ControllerServiceSchema apply(final VersionedControllerService versionedControllerService) { Map<String, Object> map = new HashMap<>(); map.put(NAME_KEY, versionedControllerService.getName()); map.put(ID_KEY, versionedControllerService.getIdentifier()); map.put(TYPE_KEY, versionedControllerService.getType()); map.put(PROPERTIES_KEY, new HashMap<>(nullToEmpty(versionedControllerService.getProperties()))); String annotationData = versionedControllerService.getAnnotationData(); if(annotationData != null && !annotationData.isEmpty()) { map.put(ANNOTATION_DATA_KEY, annotationData); } return new ControllerServiceSchema(map); } }
@Override public ControllerServiceSchema apply(final VersionedControllerService versionedControllerService) { Map<String, Object> map = new HashMap<>(); map.put(NAME_KEY, versionedControllerService.getName()); map.put(ID_KEY, versionedControllerService.getIdentifier()); map.put(TYPE_KEY, versionedControllerService.getType()); map.put(PROPERTIES_KEY, new HashMap<>(nullToEmpty(versionedControllerService.getProperties()))); String annotationData = versionedControllerService.getAnnotationData(); if(annotationData != null && !annotationData.isEmpty()) { map.put(ANNOTATION_DATA_KEY, annotationData); } return new ControllerServiceSchema(map); } }
private void compare(final VersionedControllerService serviceA, final VersionedControllerService serviceB, final Set<FlowDifference> differences) { if (compareComponents(serviceA, serviceB, differences)) { return; } addIfDifferent(differences, DifferenceType.ANNOTATION_DATA_CHANGED, serviceA, serviceB, VersionedControllerService::getAnnotationData); addIfDifferent(differences, DifferenceType.BUNDLE_CHANGED, serviceA, serviceB, VersionedControllerService::getBundle); compareProperties(serviceA, serviceB, serviceA.getProperties(), serviceB.getProperties(), serviceA.getPropertyDescriptors(), serviceB.getPropertyDescriptors(), differences); }