[
https://issues.apache.org/jira/browse/MINIFI-107?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15644336#comment-15644336
]
ASF GitHub Bot commented on MINIFI-107:
---------------------------------------
Github user brosander commented on a diff in the pull request:
https://github.com/apache/nifi-minifi/pull/50#discussion_r86786059
--- Diff:
minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ConfigSchema.java
---
@@ -101,47 +89,60 @@ public ConfigSchema(Map map, List<String>
validationIssues) {
addIssuesIfNotNull(contentRepositoryProperties);
addIssuesIfNotNull(componentStatusRepositoryProperties);
addIssuesIfNotNull(securityProperties);
+ addIssuesIfNotNull(processGroupSchema);
addIssuesIfNotNull(provenanceReportingProperties);
addIssuesIfNotNull(provenanceRepositorySchema);
- addIssuesIfNotNull(processors);
- addIssuesIfNotNull(connections);
- addIssuesIfNotNull(remoteProcessingGroups);
- Set<String> processorIds = new HashSet<>();
- List<String> processorIdList =
processors.stream().map(ProcessorSchema::getId).collect(Collectors.toList());
- processorIds.addAll(processorIdList);
+ List<ProcessGroupSchema> allProcessGroups =
getAllProcessGroups(processGroupSchema);
+ List<ConnectionSchema> allConnectionSchemas =
allProcessGroups.stream().flatMap(p ->
p.getConnections().stream()).collect(Collectors.toList());
+ List<RemoteProcessingGroupSchema> allRemoteProcessingGroups =
allProcessGroups.stream().flatMap(p ->
p.getRemoteProcessingGroups().stream()).collect(Collectors.toList());
- checkForDuplicates(this::addValidationIssue,
FOUND_THE_FOLLOWING_DUPLICATE_PROCESSOR_IDS, processorIdList);
- checkForDuplicates(this::addValidationIssue,
FOUND_THE_FOLLOWING_DUPLICATE_CONNECTION_IDS,
connections.stream().map(ConnectionSchema::getId).collect(Collectors.toList()));
- checkForDuplicates(this::addValidationIssue,
FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESSING_GROUP_NAMES,
-
remoteProcessingGroups.stream().map(RemoteProcessingGroupSchema::getName).collect(Collectors.toList()));
-
- Set<String> remoteInputPortIds = new HashSet<>();
- List<String> remoteInputPortIdList =
remoteProcessingGroups.stream().filter(r -> r.getInputPorts() != null)
+ List<String> allProcessorIds = allProcessGroups.stream().flatMap(p
->
p.getProcessors().stream()).map(ProcessorSchema::getId).collect(Collectors.toList());
+ List<String> allConnectionIds =
allConnectionSchemas.stream().map(ConnectionSchema::getId).collect(Collectors.toList());
+ List<String> allRemoteProcessingGroupNames =
allRemoteProcessingGroups.stream().map(RemoteProcessingGroupSchema::getName).collect(Collectors.toList());
+ List<String> allRemoteInputPortIds =
allRemoteProcessingGroups.stream().filter(r -> r.getInputPorts() != null)
.flatMap(r ->
r.getInputPorts().stream()).map(RemoteInputPortSchema::getId).collect(Collectors.toList());
- checkForDuplicates(this::addValidationIssue,
FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_INPUT_PORT_IDS, remoteInputPortIdList);
- remoteInputPortIds.addAll(remoteInputPortIdList);
+ List<String> allInputPortIds = allProcessGroups.stream().flatMap(p
->
p.getInputPortSchemas().stream()).map(PortSchema::getId).collect(Collectors.toList());
+ List<String> allOutputPortIds =
allProcessGroups.stream().flatMap(p ->
p.getOutputPortSchemas().stream()).map(PortSchema::getId).collect(Collectors.toList());
+
+ checkForDuplicates(this::addValidationIssue,
FOUND_THE_FOLLOWING_DUPLICATE_PROCESSOR_IDS, allProcessorIds);
+ checkForDuplicates(this::addValidationIssue,
FOUND_THE_FOLLOWING_DUPLICATE_CONNECTION_IDS, allConnectionIds);
+ checkForDuplicates(this::addValidationIssue,
FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESSING_GROUP_NAMES,
allRemoteProcessingGroupNames);
+ checkForDuplicates(this::addValidationIssue,
FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_INPUT_PORT_IDS, allRemoteInputPortIds);
--- End diff --
Adding checks for input as well as output (that check is only for remote
input).
> Support for Process Groups
> --------------------------
>
> Key: MINIFI-107
> URL: https://issues.apache.org/jira/browse/MINIFI-107
> Project: Apache NiFi MiNiFi
> Issue Type: Improvement
> Reporter: Bryan Rosander
> Assignee: Bryan Rosander
>
> Process groups are a good way to simplify the design part of development in
> NiFi. MiNiFi Java currently doesn't support them but should in order to make
> designing templates compatible with MiNiFi a better experience.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)