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 <[email protected]>


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 <[email protected]>
Authored: Mon Jun 27 13:16:21 2016 -0600
Committer: Joseph Percivall <[email protected]>
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) {

Reply via email to