public ProcessorDTO copy(final ProcessorDTO original) { final ProcessorDTO copy = new ProcessorDTO(); copy.setConfig(copy(original.getConfig())); copy.setPosition(original.getPosition()); copy.setId(original.getId()); copy.setName(original.getName()); copy.setDescription(original.getDescription()); copy.setParentGroupId(original.getParentGroupId()); copy.setRelationships(copy(original.getRelationships())); copy.setState(original.getState()); copy.setStyle(copy(original.getStyle())); copy.setType(original.getType()); copy.setBundle(copy(original.getBundle())); copy.setSupportsParallelProcessing(original.getSupportsParallelProcessing()); copy.setSupportsEventDriven(original.getSupportsEventDriven()); copy.setSupportsBatching(original.getSupportsBatching()); copy.setPersistsState(original.getPersistsState()); copy.setExecutionNodeRestricted(original.isExecutionNodeRestricted()); copy.setExtensionMissing(original.getExtensionMissing()); copy.setMultipleVersionsAvailable(original.getMultipleVersionsAvailable()); copy.setValidationErrors(copy(original.getValidationErrors())); copy.setValidationStatus(original.getValidationStatus()); copy.setVersionedComponentId(original.getVersionedComponentId()); return copy; }
private ProcessorDTO createDTOWithDesiredRunStatus(final String id, final String runStatus) { final ProcessorDTO dto = new ProcessorDTO(); dto.setId(id); dto.setState(runStatus); return dto; }
private ProcessorDTO buildProcessorDto(String id, final String annotationData, Map<String, String> properties){ ProcessorDTO processorDto = new ProcessorDTO(); processorDto.setId(id); ProcessorConfigDTO configDto = new ProcessorConfigDTO(); processorDto.setConfig(configDto); configDto.setAnnotationData(annotationData); configDto.setProperties(properties); return processorDto; }
final ProcessorDTO dto = new ProcessorDTO(); dto.setId(node.getIdentifier()); dto.setPosition(createPositionDto(node.getPosition())); dto.setStyle(node.getStyle()); dto.setParentGroupId(node.getProcessGroup().getIdentifier()); dto.setInputRequirement(node.getInputRequirement().name()); dto.setPersistsState(node.getProcessor().getClass().isAnnotationPresent(Stateful.class)); dto.setRestricted(node.isRestricted()); dto.setDeprecated(node.isDeprecated()); dto.setExecutionNodeRestricted(node.isExecutionNodeRestricted()); dto.setExtensionMissing(node.isExtensionMissing()); dto.setMultipleVersionsAvailable(compatibleBundles.size() > 1); dto.setVersionedComponentId(node.getVersionedComponentId().orElse(null)); dto.setType(node.getCanonicalClassName()); dto.setBundle(createBundleDto(bundleCoordinate)); dto.setName(node.getName()); dto.setState(node.getScheduledState().toString()); dto.setRelationships(relationships); dto.setDescription(getCapabilityDescription(node.getClass())); dto.setSupportsParallelProcessing(!node.isTriggeredSerially()); dto.setSupportsEventDriven(node.isEventDrivenSupported()); dto.setSupportsBatching(node.isSessionBatchingSupported()); dto.setConfig(createProcessorConfigDto(node)); dto.setValidationStatus(validationStatus.name());
final ProcessorConfigDTO processorConfig = processorDTO.getConfig(); if (processorDTO.getRelationships() != null) { for (final RelationshipDTO relationship : processorDTO.getRelationships()) { relationship.setDescription(null); processorDTO.setExtensionMissing(null); processorDTO.setMultipleVersionsAvailable(null); processorDTO.setValidationErrors(null); processorDTO.setValidationStatus(null); processorDTO.setInputRequirement(null); processorDTO.setDescription(null); processorDTO.setInputRequirement(null); processorDTO.setPersistsState(null); processorDTO.setSupportsBatching(null); processorDTO.setSupportsEventDriven(null); processorDTO.setSupportsParallelProcessing(null);
final BundleCoordinate bundleCoordinate = BundleUtils.getBundle(extensionManager, processorDTO.getType(), processorDTO.getBundle()); final ProcessorNode procNode = flowManager.createProcessor(processorDTO.getType(), processorDTO.getId(), bundleCoordinate); procNode.pauseValidationTrigger(); procNode.setPosition(toPosition(processorDTO.getPosition())); procNode.setProcessGroup(group); if (!topLevel) { procNode.setVersionedComponentId(processorDTO.getVersionedComponentId()); final ProcessorConfigDTO config = processorDTO.getConfig(); procNode.setComments(config.getComments()); if (config.isLossTolerant() != null) { procNode.setLossTolerant(config.isLossTolerant()); procNode.setName(processorDTO.getName()); procNode.setBulletinLevel(LogLevel.valueOf(config.getBulletinLevel())); procNode.setAnnotationData(config.getAnnotationData()); procNode.setStyle(processorDTO.getStyle()); if (processorDTO.getState().equals(ScheduledState.DISABLED.toString())) { procNode.disable(); if (processorDTO.getRelationships() != null) { for (final RelationshipDTO rel : processorDTO.getRelationships()) { if (rel.isAutoTerminate()) { relationships.add(procNode.getRelationship(rel.getName()));
@Override public ProcessorSchema apply(ProcessorDTO processorDTO) { ProcessorConfigDTO processorDTOConfig = processorDTO.getConfig(); map.put(NAME_KEY, processorDTO.getName()); map.put(ID_KEY, processorDTO.getId()); map.put(CLASS_KEY, processorDTO.getType()); map.put(SCHEDULING_STRATEGY_KEY, processorDTOConfig.getSchedulingStrategy()); map.put(SCHEDULING_PERIOD_KEY, processorDTOConfig.getSchedulingPeriod()); map.put(ProcessorSchema.RUN_DURATION_NANOS_KEY, runDurationMillis * 1000); map.put(ProcessorSchema.AUTO_TERMINATED_RELATIONSHIPS_LIST_KEY, nullToEmpty(processorDTO.getRelationships()).stream() .filter(RelationshipDTO::isAutoTerminate) .map(RelationshipDTO::getName)
public static ProcessorDTO getProcessor(final Element element, final StringEncryptor encryptor) { final ProcessorDTO dto = new ProcessorDTO(); dto.setId(getString(element, "id")); dto.setVersionedComponentId(getString(element, "versionedComponentId")); dto.setName(getString(element, "name")); dto.setType(getString(element, "class")); dto.setBundle(getBundle(DomUtils.getChild(element, "bundle"))); dto.setPosition(getPosition(DomUtils.getChild(element, "position"))); dto.setStyle(getStyle(DomUtils.getChild(element, "styles"))); dto.setConfig(configDto); configDto.setComments(getString(element, "comment")); configDto.setConcurrentlySchedulableTaskCount(getInt(element, "maxConcurrentTasks")); configDto.setLossTolerant(getBoolean(element, "lossTolerant")); final ScheduledState scheduledState = getScheduledState(element); dto.setState(scheduledState.toString());
ErrorMerger.mergeErrors(validationErrorMap, nodeId, nodeProcessor.getValidationErrors()); nodeProcessor.getConfig().getDescriptors().values().stream().forEach(propertyDescriptor -> { propertyDescriptorMap.computeIfAbsent(propertyDescriptor.getName(), nodeIdToPropertyDescriptor -> new HashMap<>()).put(nodeId, propertyDescriptor); }); if (clientDto.getMultipleVersionsAvailable() == null || !Boolean.TRUE.equals(nodeProcessor.getMultipleVersionsAvailable())) { clientDto.setMultipleVersionsAvailable(Boolean.FALSE); final PropertyDescriptorDTO clientPropertyDescriptor = clientDto.getConfig().getDescriptors().get(propertyDescriptor.getName()); PropertyDescriptorDtoMerger.merge(clientPropertyDescriptor, propertyDescriptorByNodeId); .map(ProcessorDTO::getValidationStatus) .collect(Collectors.toSet()); clientDto.setValidationStatus(ErrorMerger.mergeValidationStatus(statuses)); clientDto.setValidationErrors(ErrorMerger.normalizedMergedErrors(validationErrorMap, dtoMap.size()));
private ComponentDetails getComponentConfiguration(final ProcessorDTO processor) { final ProcessorConfigDTO processorConfig = processor.getConfig(); return new ComponentDetails.Builder() .id(processor.getId()) .name(processor.getName()) .type(processor.getType()) .state(processor.getState()) .annotationData(processorConfig.getAnnotationData()) .properties(processorConfig.getProperties()) .descriptors(buildComponentDescriptorMap(processorConfig)) .validateErrors(processor.getValidationErrors()).build(); }
if (requestProcessor.getId() != null) { throw new IllegalArgumentException("Processor ID cannot be specified."); if (StringUtils.isBlank(requestProcessor.getType())) { throw new IllegalArgumentException("The type of processor to create must be specified."); final PositionDTO proposedPosition = requestProcessor.getPosition(); if (proposedPosition != null) { if (proposedPosition.getX() == null || proposedPosition.getY() == null) { if (requestProcessor.getParentGroupId() != null && !groupId.equals(requestProcessor.getParentGroupId())) { throw new IllegalArgumentException(String.format("If specified, the parent process group id %s must be the same as specified in the URI %s", requestProcessor.getParentGroupId(), groupId)); requestProcessor.setParentGroupId(groupId); authorizable = lookup.getConfigurableComponent(requestProcessor.getType(), requestProcessor.getBundle()); final ProcessorConfigDTO config = requestProcessor.getConfig(); if (config != null && config.getProperties() != null) { AuthorizeControllerServiceReference.authorizeControllerServiceReferences(config.getProperties(), authorizable, authorizer, lookup); processor.setId(generateUuid()); final Revision revision = getRevision(processorEntity, processor.getId()); final ProcessorEntity entity = serviceFacade.createProcessor(revision, groupId, processor); processorResource.populateRemainingProcessorEntityContent(entity);
private void updateNonFingerprintedProcessorSettings(final ProcessorNode procNode, final ProcessorDTO processorDTO) { procNode.setName(processorDTO.getName()); procNode.setPosition(toPosition(processorDTO.getPosition())); procNode.setStyle(processorDTO.getStyle()); procNode.setComments(processorDTO.getConfig().getComments()); }
for (final ProcessorDTO processorDTO : snippetContents.getProcessors()) { final ProcessorDTO cp = dtoFactory.copy(processorDTO); cp.setId(generateId(processorDTO.getId(), idGenerationSeed, isCopy)); cp.setParentGroupId(groupId); if(processorDTO.getState() != null && processorDTO.getState().equals(ScheduledState.DISABLED.toString())) { cp.setState(ScheduledState.DISABLED.toString()); } else { cp.setState(ScheduledState.STOPPED.toString()); connectableMap.put(processorDTO.getParentGroupId() + "-" + processorDTO.getId(), dtoFactory.createConnectableDto(cp)); ResourceFactory.getComponentResource(ResourceType.Processor, processorDTO.getId(), processorDTO.getName()), ResourceFactory.getComponentResource(ResourceType.Processor, cp.getId(), cp.getName()), idGenerationSeed);
if (dto.getConfig() == null) { dto.setConfig(new ProcessorConfigDTO()); final ProcessorConfigDTO config = dto.getConfig(); if (config.getProperties() == null) { config.setProperties(new LinkedHashMap<>()); final ConfigurableComponent configurableComponent = controllerFacade.getTemporaryComponent(dto.getType(), dto.getBundle()); configurableComponent.getPropertyDescriptors().forEach(descriptor -> { if (config.getProperties().get(descriptor.getName()) == null) { logger.warn(String.format("Unable to create Processor of type %s to populate default values.", dto.getType()));
private void verifyUpdate(ProcessorNode processor, ProcessorDTO processorDTO) { if (isNotNull(processorDTO.getState())) { try { final ScheduledState purposedScheduledState = ScheduledState.valueOf(processorDTO.getState()); throw new IllegalArgumentException(String.format( "The specified processor state (%s) is not valid. Valid options are 'RUNNING', 'STOPPED', and 'DISABLED'.", processorDTO.getState())); if (isAnyNotNull(processorDTO.getName(), processorDTO.getBundle())) { modificationRequest = true; final BundleDTO bundleDTO = processorDTO.getBundle(); if (bundleDTO != null) { final ProcessorConfigDTO configDTO = processorDTO.getConfig(); if (configDTO != null) { if (isAnyNotNull(configDTO.getAnnotationData(),
public AffectedComponentEntity createAffectedComponentEntity(final ProcessorEntity processorEntity) { if (processorEntity == null) { return null; } final AffectedComponentEntity component = new AffectedComponentEntity(); component.setBulletins(processorEntity.getBulletins()); component.setId(processorEntity.getId()); component.setPermissions(processorEntity.getPermissions()); component.setPosition(processorEntity.getPosition()); component.setRevision(processorEntity.getRevision()); component.setUri(processorEntity.getUri()); final ProcessorDTO processorDto = processorEntity.getComponent(); final AffectedComponentDTO componentDto = new AffectedComponentDTO(); componentDto.setId(processorDto.getId()); componentDto.setName(processorDto.getName()); componentDto.setProcessGroupId(processorDto.getParentGroupId()); componentDto.setReferenceType(AffectedComponentDTO.COMPONENT_TYPE_PROCESSOR); componentDto.setState(processorDto.getState()); componentDto.setValidationErrors(processorDto.getValidationErrors()); component.setComponent(componentDto); return component; }
/** * Populate the uri's for the specified processor and its relationships. */ public ProcessorDTO populateRemainingProcessorContent(ProcessorDTO processor) { // get the config details and see if there is a custom ui for this processor type ProcessorConfigDTO config = processor.getConfig(); if (config != null) { // consider legacy custom ui fist String customUiUrl = servletContext.getInitParameter(processor.getType()); if (StringUtils.isNotBlank(customUiUrl)) { config.setCustomUiUrl(customUiUrl); } else { final BundleDTO bundle = processor.getBundle(); // see if this processor has any ui extensions final UiExtensionMapping uiExtensionMapping = (UiExtensionMapping) servletContext.getAttribute("nifi-ui-extensions"); if (uiExtensionMapping.hasUiExtension(processor.getType(), bundle.getGroup(), bundle.getArtifact(), bundle.getVersion())) { final List<UiExtension> uiExtensions = uiExtensionMapping.getUiExtension(processor.getType(), bundle.getGroup(), bundle.getArtifact(), bundle.getVersion()); for (final UiExtension uiExtension : uiExtensions) { if (UiExtensionType.ProcessorConfiguration.equals(uiExtension.getExtensionType())) { config.setCustomUiUrl(uiExtension.getContextPath() + "/configure"); } } } } } return processor; }
if (!id.equals(requestProcessorDTO.getId())) { throw new IllegalArgumentException(String.format("The processor id (%s) in the request body does " + "not equal the processor id of the requested resource (%s).", requestProcessorDTO.getId(), id)); final PositionDTO proposedPosition = requestProcessorDTO.getPosition(); if (proposedPosition != null) { if (proposedPosition.getX() == null || proposedPosition.getY() == null) { authorizable.getAuthorizable().authorize(authorizer, RequestAction.WRITE, user); final ProcessorConfigDTO config = requestProcessorDTO.getConfig(); if (config != null) { AuthorizeControllerServiceReference.authorizeControllerServiceReferences(config.getProperties(), authorizable, authorizer, lookup);
Map<String, String> values = new HashMap<>(); if (processorDTO.getName() != null) { values.put(NAME, processor.getName()); if (processorDTO.getBundle() != null) { final BundleCoordinate bundle = processor.getBundleCoordinate(); values.put(EXTENSION_VERSION, formatExtensionVersion(processor.getComponentType(), bundle)); if (processorDTO.getConfig() != null) { ProcessorConfigDTO newConfig = processorDTO.getConfig(); if (newConfig.getConcurrentlySchedulableTaskCount() != null) { values.put(CONCURRENTLY_SCHEDULABLE_TASKS, String.valueOf(processor.getMaxConcurrentTasks()));
public ConnectableDTO createConnectableDto(final ProcessorDTO processor) { final ConnectableDTO connectable = new ConnectableDTO(); connectable.setGroupId(processor.getParentGroupId()); connectable.setId(processor.getId()); connectable.setName(processor.getName()); connectable.setType(ConnectableType.PROCESSOR.name()); connectable.setVersionedComponentId(processor.getVersionedComponentId()); return connectable; }