Repository: incubator-nifi
Updated Branches:
  refs/heads/develop e50b20c4c -> b7b42c742


NIFI-670:
- Preventing duplicate controller services from being created when copying and 
pasting processors. A new controller service will be included/created when 
using templates.

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

Branch: refs/heads/develop
Commit: b7b42c7423a348ff7c867a17cfbfa106fbc2fbab
Parents: e50b20c
Author: Matt Gilman <[email protected]>
Authored: Thu Jun 18 10:20:49 2015 -0400
Committer: Matt Gilman <[email protected]>
Committed: Thu Jun 18 10:20:49 2015 -0400

----------------------------------------------------------------------
 .../apache/nifi/web/StandardNiFiServiceFacade.java   |  8 ++++----
 .../apache/nifi/web/dao/impl/StandardSnippetDAO.java |  2 +-
 .../java/org/apache/nifi/web/util/SnippetUtils.java  | 15 +++++++++++----
 3 files changed, 16 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/b7b42c74/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
 
b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
index 9436fb8..903b872 100644
--- 
a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
+++ 
b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
@@ -472,7 +472,7 @@ public class StandardNiFiServiceFacade implements 
NiFiServiceFacade {
 
                 // build the snippet dto
                 final SnippetDTO responseSnippetDto = 
dtoFactory.createSnippetDto(snippet);
-                
responseSnippetDto.setContents(snippetUtils.populateFlowSnippet(snippet, 
false));
+                
responseSnippetDto.setContents(snippetUtils.populateFlowSnippet(snippet, false, 
false));
 
                 // save updated controller if applicable
                 if (snippetDto.getParentGroupId() != null && 
snippet.isLinked()) {
@@ -995,7 +995,7 @@ public class StandardNiFiServiceFacade implements 
NiFiServiceFacade {
                 // add the snippet
                 final Snippet snippet = snippetDAO.createSnippet(snippetDTO);
                 final SnippetDTO responseSnippetDTO = 
dtoFactory.createSnippetDto(snippet);
-                
responseSnippetDTO.setContents(snippetUtils.populateFlowSnippet(snippet, 
false));
+                
responseSnippetDTO.setContents(snippetUtils.populateFlowSnippet(snippet, false, 
false));
 
                 return responseSnippetDTO;
             }
@@ -1092,7 +1092,7 @@ public class StandardNiFiServiceFacade implements 
NiFiServiceFacade {
         templateDTO.setName(name);
         templateDTO.setDescription(description);
         templateDTO.setTimestamp(new Date());
-        templateDTO.setSnippet(snippetUtils.populateFlowSnippet(snippet, 
true));
+        templateDTO.setSnippet(snippetUtils.populateFlowSnippet(snippet, true, 
true));
 
         // set the id based on the specified seed
         final ClusterContext clusterContext = 
ClusterContextThreadLocal.getContext();
@@ -1972,7 +1972,7 @@ public class StandardNiFiServiceFacade implements 
NiFiServiceFacade {
     public SnippetDTO getSnippet(String snippetId) {
         final Snippet snippet = snippetDAO.getSnippet(snippetId);
         final SnippetDTO snippetDTO = dtoFactory.createSnippetDto(snippet);
-        snippetDTO.setContents(snippetUtils.populateFlowSnippet(snippet, 
false));
+        snippetDTO.setContents(snippetUtils.populateFlowSnippet(snippet, 
false, false));
         return snippetDTO;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/b7b42c74/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardSnippetDAO.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardSnippetDAO.java
 
b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardSnippetDAO.java
index 73a1501..24e9256 100644
--- 
a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardSnippetDAO.java
+++ 
b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardSnippetDAO.java
@@ -76,7 +76,7 @@ public class StandardSnippetDAO implements SnippetDAO {
             }
 
             // generate the snippet contents
-            FlowSnippetDTO snippetContents = 
snippetUtils.populateFlowSnippet(existingSnippet, true);
+            FlowSnippetDTO snippetContents = 
snippetUtils.populateFlowSnippet(existingSnippet, true, false);
 
             // resolve sensitive properties
             lookupSensitiveProperties(snippetContents);

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/b7b42c74/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/SnippetUtils.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/SnippetUtils.java
 
b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/SnippetUtils.java
index ea36abd..55982bd 100644
--- 
a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/SnippetUtils.java
+++ 
b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/SnippetUtils.java
@@ -72,9 +72,10 @@ public final class SnippetUtils {
      *
      * @param snippet snippet
      * @param recurse recurse
+     * @param includeControllerServices whether or not to include controller 
services in the flow snippet dto
      * @return snippet
      */
-    public FlowSnippetDTO populateFlowSnippet(Snippet snippet, boolean 
recurse) {
+    public FlowSnippetDTO populateFlowSnippet(Snippet snippet, boolean 
recurse, boolean includeControllerServices) {
         final FlowSnippetDTO snippetDto = new FlowSnippetDTO();
         final String groupId = snippet.getParentGroupId();
         final ProcessGroup processGroup = flowController.getGroup(groupId);
@@ -188,7 +189,9 @@ public final class SnippetUtils {
             snippetDto.setRemoteProcessGroups(remoteProcessGroups);
         }
 
-        addControllerServicesToSnippet(snippetDto);
+        if (includeControllerServices) {
+            addControllerServicesToSnippet(snippetDto);
+        }
 
         return snippetDto;
     }
@@ -570,8 +573,12 @@ public final class SnippetUtils {
                         continue;
                     }
 
-                    final String newServiceId = 
serviceIdMap.get(currentServiceId);
-                    properties.put(descriptor.getName(), newServiceId);
+                    // if this is a copy/paste action, we can continue to 
reference the same service, in this case
+                    // the serviceIdMap will be empty
+                    if (serviceIdMap.containsKey(currentServiceId)) {
+                        final String newServiceId = 
serviceIdMap.get(currentServiceId);
+                        properties.put(descriptor.getName(), newServiceId);
+                    }
                 }
             }
         }

Reply via email to