You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by jp...@apache.org on 2016/07/01 03:24:59 UTC

nifi-minifi git commit: MINIFI-42 Adjusting handling of the remote process group ID when locating its parent group.

Repository: nifi-minifi
Updated Branches:
  refs/heads/master 8c47fb4a0 -> 0689ac904


MINIFI-42 Adjusting handling of the remote process group ID when locating its parent group.

This closes #22

Signed-off-by: Joseph Percivall <jo...@yahoo.com>


Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi/commit/0689ac90
Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi/tree/0689ac90
Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi/diff/0689ac90

Branch: refs/heads/master
Commit: 0689ac904d6e8dc8df52583bcb457375000aca1b
Parents: 8c47fb4
Author: Aldrin Piri <al...@apache.org>
Authored: Mon Jun 27 13:16:21 2016 -0600
Committer: Joseph Percivall <jo...@yahoo.com>
Committed: Thu Jun 30 23:22:38 2016 -0400

----------------------------------------------------------------------
 .../bootstrap/util/ConfigTransformer.java       | 41 ++++++++++----------
 1 file changed, 20 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/0689ac90/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformer.java
----------------------------------------------------------------------
diff --git a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformer.java b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformer.java
index 956f4dc..1e44174 100644
--- a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformer.java
+++ b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformer.java
@@ -68,6 +68,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.zip.GZIPOutputStream;
 
 public final class ConfigTransformer {
@@ -367,7 +368,7 @@ public final class ConfigTransformer {
 
             List<RemoteProcessingGroupSchema> remoteProcessingGroups = configSchema.getRemoteProcessingGroups();
             if (remoteProcessingGroups != null) {
-                for (RemoteProcessingGroupSchema remoteProcessingGroupSchema: remoteProcessingGroups) {
+                for (RemoteProcessingGroupSchema remoteProcessingGroupSchema : remoteProcessingGroups) {
                     addRemoteProcessGroup(element, remoteProcessingGroupSchema);
                 }
             }
@@ -491,7 +492,7 @@ public final class ConfigTransformer {
             addTextElement(element, "transmitting", "true");
 
             List<RemoteInputPortSchema> remoteInputPorts = remoteProcessingGroupProperties.getInputPorts();
-            for(RemoteInputPortSchema remoteInputPortSchema: remoteInputPorts) {
+            for (RemoteInputPortSchema remoteInputPortSchema : remoteInputPorts) {
                 addRemoteGroupPort(element, remoteInputPortSchema);
             }
 
@@ -538,10 +539,11 @@ public final class ConfigTransformer {
             addTextElement(element, "sourceGroupId", "Root-Group");
             addTextElement(element, "sourceType", "PROCESSOR");
 
-            addTextElement(element, "destinationId", connectionProperties.getDestinationName());
-
-            if (isInputPortId(connectionProperties.getDestinationName(), configSchema)) {
-                addTextElement(element, "destinationGroupId", "Remote-Process-Group");
+            final String connectionDestinationId = connectionProperties.getDestinationName();
+            addTextElement(element, "destinationId", connectionDestinationId);
+            final Optional<String> parentGroup = findInputPortParentGroup(connectionDestinationId, configSchema);
+            if (parentGroup.isPresent()) {
+                addTextElement(element, "destinationGroupId", parentGroup.get());
                 addTextElement(element, "destinationType", "REMOTE_INPUT_PORT");
             } else {
                 addTextElement(element, "destinationGroupId", "Root-Group");
@@ -562,25 +564,22 @@ public final class ConfigTransformer {
         }
     }
 
-    private static boolean isInputPortId(String id, ConfigSchema configSchema) {
-        boolean isInputPortId = false;
-        try {
-            List<RemoteProcessingGroupSchema> remoteProcessingGroups = configSchema.getRemoteProcessingGroups();
-            if (remoteProcessingGroups != null) {
-                for (RemoteProcessingGroupSchema remoteProcessingGroupSchema: remoteProcessingGroups) {
-                    List<RemoteInputPortSchema> remoteInputPorts = remoteProcessingGroupSchema.getInputPorts();
-                    for (RemoteInputPortSchema remoteInputPortSchema: remoteInputPorts) {
-                        if (remoteInputPortSchema != null && id.equals(remoteInputPortSchema.getId())) {
-                            isInputPortId = true;
-                            break;
-                        }
+    // Locate the associated parent group for a given input port by its id
+    private static Optional<String> findInputPortParentGroup(String inputPortId, ConfigSchema configSchema) {
+        final List<RemoteProcessingGroupSchema> remoteProcessingGroups = configSchema.getRemoteProcessingGroups();
+        if (remoteProcessingGroups != null) {
+            for (final RemoteProcessingGroupSchema remoteProcessingGroupSchema : remoteProcessingGroups) {
+                final List<RemoteInputPortSchema> remoteInputPorts = remoteProcessingGroupSchema.getInputPorts();
+                for (final RemoteInputPortSchema remoteInputPortSchema : remoteInputPorts) {
+                    if (remoteInputPortSchema != null && inputPortId.equals(remoteInputPortSchema.getId())) {
+                        return Optional.of(remoteProcessingGroupSchema.getName());
+
                     }
                 }
             }
-        } catch (Exception e) {
-            // If an exception was thrown then it isn't the InputPort
         }
-        return isInputPortId;
+
+        return Optional.empty();
     }
 
     private static void addPosition(final Element parentElement) {