MINIFI-115 - Changing YAML to use UUIDs

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/00d6ac03
Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi/tree/00d6ac03
Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi/diff/00d6ac03

Branch: refs/heads/master
Commit: 00d6ac03ce86152658d8d3f86b481e47e28b90fb
Parents: 5288850
Author: Bryan Rosander <[email protected]>
Authored: Tue Nov 15 15:16:18 2016 -0500
Committer: Joseph Percivall <[email protected]>
Committed: Sun Nov 27 12:53:38 2016 -0500

----------------------------------------------------------------------
 .../src/test/resources/config-multiple-RPGs.yml |  4 +--
 .../resources/config-multiple-input-ports.yml   |  4 +--
 minifi-bootstrap/src/test/resources/config.yml  |  6 ++--
 .../commons/schema/ProcessGroupSchema.java      |  8 +++++
 .../commons/schema/common/BaseSchemaWithId.java | 18 ++++++----
 .../commons/schema/v1/ConfigSchemaV1.java       | 36 ++++++++------------
 .../minifi/commons/schema/ConfigSchemaTest.java | 13 ++++---
 .../commons/schema/ConnectionSchemaTest.java    |  4 ++-
 .../commons/schema/v1/ConfigSchemaV1Test.java   | 29 +++++++++-------
 .../schema/v1/ConnectionSchemaV1Test.java       | 10 +++---
 .../src/test/resources/config-minimal-v2.yml    | 10 +++---
 .../minifi-standard-services-api-nar/pom.xml    |  1 +
 minifi-nar-bundles/pom.xml                      |  2 +-
 .../configuration/dto/BaseSchemaTester.java     |  3 +-
 .../configuration/dto/ConnectionSchemaTest.java |  4 ++-
 .../dto/PortSchemaFunctionTest.java             |  5 ++-
 .../configuration/dto/ProcessorSchemaTest.java  |  4 ++-
 .../dto/RemoteInputPortSchemaTest.java          |  4 ++-
 .../src/test/resources/config.yml               |  6 ++--
 19 files changed, 99 insertions(+), 72 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-bootstrap/src/test/resources/config-multiple-RPGs.yml
----------------------------------------------------------------------
diff --git a/minifi-bootstrap/src/test/resources/config-multiple-RPGs.yml 
b/minifi-bootstrap/src/test/resources/config-multiple-RPGs.yml
index a779a42..a799097 100644
--- a/minifi-bootstrap/src/test/resources/config-multiple-RPGs.yml
+++ b/minifi-bootstrap/src/test/resources/config-multiple-RPGs.yml
@@ -77,7 +77,7 @@ Connections:
     - name: TailToS2S
       source name: TailAppLog
       source relationship name: success
-      destination name: dgs809qe-9qw7-q985-jl1u-y789ohi87g78
+      destination name: 37b4b78a-a5c9-3eac-bfb7-56fc4875aace
       max work queue size: 0
       max work queue data size: 1 MB
       flowfile expiration: 60 sec
@@ -109,7 +109,7 @@ Remote Processing Groups:
       timeout: 30 secs
       yield period: 10 sec
       Input Ports:
-          - id: dgs809qe-9qw7-q985-jl1u-y789ohi87g78
+          - id: 37b4b78a-a5c9-3eac-bfb7-56fc4875aace
             name: tailed log
             comments:
             max concurrent tasks: 1

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-bootstrap/src/test/resources/config-multiple-input-ports.yml
----------------------------------------------------------------------
diff --git 
a/minifi-bootstrap/src/test/resources/config-multiple-input-ports.yml 
b/minifi-bootstrap/src/test/resources/config-multiple-input-ports.yml
index 9654edf..1581163 100644
--- a/minifi-bootstrap/src/test/resources/config-multiple-input-ports.yml
+++ b/minifi-bootstrap/src/test/resources/config-multiple-input-ports.yml
@@ -77,7 +77,7 @@ Connections:
     - name: TailToS2S
       source name: TailAppLog
       source relationship name: success
-      destination name: dgs809qe-9qw7-q985-jl1u-y789ohi87g78
+      destination name: 37b4b78a-a5c9-3eac-bfb7-56fc4875aace
       max work queue size: 0
       max work queue data size: 1 MB
       flowfile expiration: 60 sec
@@ -103,7 +103,7 @@ Remote Processing Groups:
             comments:
             max concurrent tasks: 1
             use compression: false
-          - id: dgs809qe-9qw7-q985-jl1u-y789ohi87g78
+          - id: 37b4b78a-a5c9-3eac-bfb7-56fc4875aace
             name: tailed log2
             comments:
             max concurrent tasks: 1

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-bootstrap/src/test/resources/config.yml
----------------------------------------------------------------------
diff --git a/minifi-bootstrap/src/test/resources/config.yml 
b/minifi-bootstrap/src/test/resources/config.yml
index 64a28fe..dab1e8e 100644
--- a/minifi-bootstrap/src/test/resources/config.yml
+++ b/minifi-bootstrap/src/test/resources/config.yml
@@ -56,7 +56,7 @@ Security Properties:
     algorithm: PBEWITHMD5AND256BITAES-CBC-OPENSSL
     provider: BC
 Processors:
-- id: TailFile
+- id: 94b8e610-b4ed-3ec9-b26f-c839931bf3e2
   name: TailFile
   class: org.apache.nifi.processors.standard.TailFile
   max concurrent tasks: 1
@@ -71,9 +71,9 @@ Processors:
     Initial Start Position: Beginning of File
     Rolling Filename Pattern: minifi-app*
 Connections:
-- id: TailToS2S
+- id: f6cef9b0-8982-391c-8d70-76f33917ac12
   name: TailToS2S
-  source id: TailFile
+  source id: 94b8e610-b4ed-3ec9-b26f-c839931bf3e2
   source relationship names:
   - success
   destination id: 8644cbcc-a45c-40e0-964d-5e536e2ada61

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ProcessGroupSchema.java
----------------------------------------------------------------------
diff --git 
a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ProcessGroupSchema.java
 
b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ProcessGroupSchema.java
index 7be69c0..be7f9fc 100644
--- 
a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ProcessGroupSchema.java
+++ 
b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ProcessGroupSchema.java
@@ -164,4 +164,12 @@ public class ProcessGroupSchema extends 
BaseSchemaWithIdAndName implements Writa
     public List<PortSchema> getInputPortSchemas() {
         return inputPortSchemas;
     }
+
+    @Override
+    protected boolean isValidId(String value) {
+        if (ID_DEFAULT.equals(value)) {
+            return true;
+        }
+        return super.isValidId(value);
+    }
 }

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/common/BaseSchemaWithId.java
----------------------------------------------------------------------
diff --git 
a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/common/BaseSchemaWithId.java
 
b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/common/BaseSchemaWithId.java
index 96b47a7..96dc4d7 100644
--- 
a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/common/BaseSchemaWithId.java
+++ 
b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/common/BaseSchemaWithId.java
@@ -21,14 +21,11 @@ package org.apache.nifi.minifi.commons.schema.common;
 
 import java.util.List;
 import java.util.Map;
-import java.util.regex.Pattern;
+import java.util.UUID;
 
 import static 
org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.ID_KEY;
 
 public class BaseSchemaWithId extends BaseSchema implements WritableSchema {
-    public static final Pattern VALID_ID_PATTERN = 
Pattern.compile("[A-Za-z0-9_-]+");
-    public static final String ID_DOES_NOT_MATCH_VALID_ID_PATTERN = "Id does 
not match valid pattern (" + VALID_ID_PATTERN + "): ";
-
     private final String wrapperName;
     private String id;
 
@@ -65,9 +62,18 @@ public class BaseSchemaWithId extends BaseSchema implements 
WritableSchema {
         List<String> validationIssues = super.getValidationIssues();
         if (StringUtil.isNullOrEmpty(id)) {
             validationIssues.add(getIssueText(CommonPropertyKeys.ID_KEY, 
getWrapperName(), IT_WAS_NOT_FOUND_AND_IT_IS_REQUIRED));
-        } else if (!VALID_ID_PATTERN.matcher(id).matches()) {
-            validationIssues.add(getIssueText(CommonPropertyKeys.ID_KEY, 
getWrapperName(), ID_DOES_NOT_MATCH_VALID_ID_PATTERN));
+        } else if (!isValidId(id)) {
+            validationIssues.add(getIssueText(CommonPropertyKeys.ID_KEY, 
getWrapperName(), "Id value of " + id + " is not a valid UUID"));
         }
         return validationIssues;
     }
+
+    protected boolean isValidId(String value) {
+        try {
+            UUID.fromString(value);
+            return true;
+        } catch (Exception e) {
+            return false;
+        }
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/v1/ConfigSchemaV1.java
----------------------------------------------------------------------
diff --git 
a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/v1/ConfigSchemaV1.java
 
b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/v1/ConfigSchemaV1.java
index 2ebf28a..49dc087 100644
--- 
a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/v1/ConfigSchemaV1.java
+++ 
b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/v1/ConfigSchemaV1.java
@@ -36,12 +36,14 @@ import 
org.apache.nifi.minifi.commons.schema.common.BaseSchema;
 import org.apache.nifi.minifi.commons.schema.common.ConvertableSchema;
 import org.apache.nifi.minifi.commons.schema.common.StringUtil;
 
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.UUID;
 import java.util.stream.Collectors;
 
 import static 
org.apache.nifi.minifi.commons.schema.ConfigSchema.TOP_LEVEL_NAME;
@@ -133,12 +135,12 @@ public class ConfigSchemaV1 extends BaseSchema implements 
ConvertableSchema<Conf
     }
 
     protected List<ProcessorSchema> getProcessorSchemas() {
-        Map<String, Integer> idMap = new HashMap<>();
+        Set<UUID> ids = new HashSet<>();
         List<ProcessorSchema> processorSchemas = new 
ArrayList<>(processors.size());
 
         for (ProcessorSchemaV1 processor : processors) {
             ProcessorSchema processorSchema = processor.convert();
-            processorSchema.setId(getUniqueId(idMap, 
processorSchema.getName()));
+            processorSchema.setId(getUniqueId(ids, processorSchema.getName()));
             processorSchemas.add(processorSchema);
         }
 
@@ -146,7 +148,7 @@ public class ConfigSchemaV1 extends BaseSchema implements 
ConvertableSchema<Conf
     }
 
     protected List<ConnectionSchema> 
getConnectionSchemas(List<ProcessorSchema> processors, List<String> 
validationIssues) {
-        Map<String, Integer> idMap = new HashMap<>();
+        Set<UUID> ids = new HashSet<>();
 
         Map<String, String> processorNameToIdMap = new HashMap<>();
 
@@ -175,7 +177,7 @@ public class ConfigSchemaV1 extends BaseSchema implements 
ConvertableSchema<Conf
         List<ConnectionSchema> connectionSchemas = new 
ArrayList<>(connections.size());
         for (ConnectionSchemaV1 connection : connections) {
             ConnectionSchema convert = connection.convert();
-            convert.setId(getUniqueId(idMap, convert.getName()));
+            convert.setId(getUniqueId(ids, convert.getName()));
 
             String sourceName = connection.getSourceName();
             if (remoteInputPortIds.contains(sourceName)) {
@@ -233,27 +235,19 @@ public class ConfigSchemaV1 extends BaseSchema implements 
ConvertableSchema<Conf
     }
 
     /**
-     * Will replace all characters not in [A-Za-z0-9_] with _
-     * <p>
-     * This has potential for collisions so it will also append numbers as 
necessary to prevent that
+     * Will deterministically (per config file in the case of collisions) map 
the name to a uuid.
      *
-     * @param ids  id map of already incremented numbers
+     * @param ids  the set of UUIDs already assigned
      * @param name the name
-     * @return a unique filesystem-friendly id
+     * @return a UUID string
      */
-    public static String getUniqueId(Map<String, Integer> ids, String name) {
-        String baseId = StringUtil.isNullOrEmpty(name) ? EMPTY_NAME : 
ID_REPLACE_PATTERN.matcher(name).replaceAll("_");
-        String id = baseId;
-        Integer idNum = ids.get(baseId);
-        while (ids.containsKey(id)) {
-            id = baseId + "_" + idNum++;
+    public static String getUniqueId(Set<UUID> ids, String name) {
+        UUID id = UUID.nameUUIDFromBytes(name == null ? 
EMPTY_NAME.getBytes(StandardCharsets.UTF_8) : 
name.getBytes(StandardCharsets.UTF_8));
+        while (ids.contains(id)) {
+            id = new UUID(id.getMostSignificantBits(), 
id.getLeastSignificantBits() + 1);
         }
-        // Using != on a string comparison here is intentional.  The two will 
be reference equal iff the body of the while loop was never executed.
-        if (id != baseId) {
-            ids.put(baseId, idNum);
-        }
-        ids.put(id, 2);
-        return id;
+        ids.add(id);
+        return id.toString();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/ConfigSchemaTest.java
----------------------------------------------------------------------
diff --git 
a/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/ConfigSchemaTest.java
 
b/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/ConfigSchemaTest.java
index afca6e0..83b5525 100644
--- 
a/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/ConfigSchemaTest.java
+++ 
b/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/ConfigSchemaTest.java
@@ -23,10 +23,13 @@ import 
org.apache.nifi.minifi.commons.schema.serialization.SchemaLoader;
 import org.junit.Test;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import static 
org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.ID_KEY;
 import static org.junit.Assert.assertEquals;
@@ -93,8 +96,8 @@ public class ConfigSchemaTest {
         List<Map<String, Object>> connections = (List<Map<String, Object>>) 
yamlAsMap.get(CommonPropertyKeys.CONNECTIONS_KEY);
         assertEquals(1, connections.size());
 
-        String fakeSource = "fakeSource";
-        String fakeDestination = "fakeDestination";
+        String fakeSource = 
UUID.nameUUIDFromBytes("fakeSource".getBytes(StandardCharsets.UTF_8)).toString();
+        String fakeDestination = 
UUID.nameUUIDFromBytes("fakeDestination".getBytes(StandardCharsets.UTF_8)).toString();
 
         Map<String, Object> connection = connections.get(0);
         connection.put(ConnectionSchema.SOURCE_ID_KEY, fakeSource);
@@ -102,9 +105,9 @@ public class ConfigSchemaTest {
 
         ConfigSchema configSchema = new ConfigSchema(yamlAsMap);
         List<String> validationIssues = configSchema.getValidationIssues();
-        assertEquals(2, validationIssues.size());
-        assertEquals(ConfigSchema.CONNECTION_WITH_ID + connection.get(ID_KEY) 
+ ConfigSchema.HAS_INVALID_DESTINATION_ID + fakeDestination, 
validationIssues.get(0));
-        assertEquals(ConfigSchema.CONNECTION_WITH_ID + connection.get(ID_KEY) 
+ ConfigSchema.HAS_INVALID_SOURCE_ID + fakeSource, validationIssues.get(1));
+        assertEquals(new ArrayList<>(
+                Arrays.asList(ConfigSchema.CONNECTION_WITH_ID + 
connection.get(ID_KEY) + ConfigSchema.HAS_INVALID_DESTINATION_ID + 
fakeDestination,
+                        ConfigSchema.CONNECTION_WITH_ID + 
connection.get(ID_KEY) + ConfigSchema.HAS_INVALID_SOURCE_ID + fakeSource)), 
validationIssues);
     }
 
     public static List<Map<String, Object>> getListWithNames(String... names) {

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/ConnectionSchemaTest.java
----------------------------------------------------------------------
diff --git 
a/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/ConnectionSchemaTest.java
 
b/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/ConnectionSchemaTest.java
index 61f9e96..860bf41 100644
--- 
a/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/ConnectionSchemaTest.java
+++ 
b/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/ConnectionSchemaTest.java
@@ -23,11 +23,13 @@ import 
org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import static org.junit.Assert.assertEquals;
 
@@ -46,7 +48,7 @@ public class ConnectionSchemaTest {
 
     @Before
     public void setup() {
-        testId = "testId";
+        testId = 
UUID.nameUUIDFromBytes("testId".getBytes(StandardCharsets.UTF_8)).toString();
         testName = "testName";
         testSourceId = "testSourceId";
         testSourceRelationShip1 = "testSourceRelationShip1";

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/v1/ConfigSchemaV1Test.java
----------------------------------------------------------------------
diff --git 
a/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/v1/ConfigSchemaV1Test.java
 
b/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/v1/ConfigSchemaV1Test.java
index 7ce0587..b72133a 100644
--- 
a/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/v1/ConfigSchemaV1Test.java
+++ 
b/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/v1/ConfigSchemaV1Test.java
@@ -29,9 +29,12 @@ import 
org.apache.nifi.minifi.commons.schema.serialization.SchemaLoader;
 import org.junit.Test;
 
 import java.io.IOException;
-import java.util.HashMap;
+import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
 
 import static 
org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.NAME_KEY;
 import static org.junit.Assert.assertEquals;
@@ -43,7 +46,7 @@ public class ConfigSchemaV1Test {
         Map<String, Object> yamlAsMap = 
SchemaLoader.loadYamlAsMap(ConfigSchemaTest.class.getClassLoader().getResourceAsStream("config-minimal.yml"));
         ConfigSchema configSchema = new ConfigSchemaV1(yamlAsMap).convert();
         List<String> validationIssues = configSchema.getValidationIssues();
-        assertEquals(0, validationIssues.size());
+        assertEquals(new ArrayList<>(), validationIssues);
     }
     @Test
     public void testValidationIssuesFromNewer() throws IOException, 
SchemaLoaderException {
@@ -69,9 +72,9 @@ public class ConfigSchemaV1Test {
         ConfigSchema configSchema = new ConfigSchemaV1(yamlAsMap).convert();
         List<String> validationIssues = configSchema.getValidationIssues();
         assertEquals(4, validationIssues.size());
-        
assertEquals(BaseSchema.getIssueText(ConnectionSchema.DESTINATION_ID_KEY, 
"Connection(id: TailToSplit, name: TailToSplit)", 
BaseSchema.IT_WAS_NOT_FOUND_AND_IT_IS_REQUIRED),
-                validationIssues.get(0));
-        assertEquals(BaseSchema.getIssueText(ConnectionSchema.SOURCE_ID_KEY, 
"Connection(id: TailToSplit, name: TailToSplit)", 
BaseSchema.IT_WAS_NOT_FOUND_AND_IT_IS_REQUIRED),
+        
assertEquals(BaseSchema.getIssueText(ConnectionSchema.DESTINATION_ID_KEY, 
"Connection(id: 0401b747-1dca-31c7-ab4b-cdacf7e6c44b, name: TailToSplit)",
+                BaseSchema.IT_WAS_NOT_FOUND_AND_IT_IS_REQUIRED), 
validationIssues.get(0));
+        assertEquals(BaseSchema.getIssueText(ConnectionSchema.SOURCE_ID_KEY, 
"Connection(id: 0401b747-1dca-31c7-ab4b-cdacf7e6c44b, name: TailToSplit)", 
BaseSchema.IT_WAS_NOT_FOUND_AND_IT_IS_REQUIRED),
                 validationIssues.get(1));
         assertEquals(ConfigSchemaV1.CONNECTION_WITH_NAME + 
connection.get(NAME_KEY) + ConfigSchemaV1.HAS_INVALID_DESTINATION_NAME + 
fakeDestination, validationIssues.get(2));
         assertEquals(ConfigSchemaV1.CONNECTION_WITH_NAME + 
connection.get(NAME_KEY) + ConfigSchemaV1.HAS_INVALID_SOURCE_NAME + fakeSource, 
validationIssues.get(3));
@@ -79,18 +82,18 @@ public class ConfigSchemaV1Test {
 
     @Test
     public void testGetUniqueIdConflicts() {
-        Map<String, Integer> ids = new HashMap<>();
-        assertEquals("test_id", ConfigSchemaV1.getUniqueId(ids, "test/id"));
-        assertEquals("test_id_2", ConfigSchemaV1.getUniqueId(ids, "test$id"));
-        assertEquals("test_id_3", ConfigSchemaV1.getUniqueId(ids, "test$id"));
-        assertEquals("test_id_4", ConfigSchemaV1.getUniqueId(ids, "test$id"));
-        assertEquals("test_id_5", ConfigSchemaV1.getUniqueId(ids, "test$id"));
-        assertEquals("test_id_2_2", ConfigSchemaV1.getUniqueId(ids, 
"test_id_2"));
+        Set<UUID> ids = new HashSet<>();
+        assertEquals("56e7ae5d-aae1-351e-bca9-cdc4446c6386", 
ConfigSchemaV1.getUniqueId(ids, "test/id"));
+        assertEquals("348c4f93-cd15-3d91-82f2-bfe5d43834d8", 
ConfigSchemaV1.getUniqueId(ids, "test$id"));
+        assertEquals("348c4f93-cd15-3d91-82f2-bfe5d43834d9", 
ConfigSchemaV1.getUniqueId(ids, "test$id"));
+        assertEquals("348c4f93-cd15-3d91-82f2-bfe5d43834da", 
ConfigSchemaV1.getUniqueId(ids, "test$id"));
+        assertEquals("348c4f93-cd15-3d91-82f2-bfe5d43834db", 
ConfigSchemaV1.getUniqueId(ids, "test$id"));
+        assertEquals("697487ff-979c-342d-9aab-5c710ae43a28", 
ConfigSchemaV1.getUniqueId(ids, "test_id_2"));
     }
 
     @Test
     public void testGetUniqueIdEmptySet() {
         String testId = "testId";
-        assertEquals(testId + "___", ConfigSchemaV1.getUniqueId(new 
HashMap<>(), testId + "/ $"));
+        assertEquals("17841b04-ce22-34a3-9603-d95ec31d02dc", 
ConfigSchemaV1.getUniqueId(new HashSet<>(), testId + "/ $"));
     }
 }

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/v1/ConnectionSchemaV1Test.java
----------------------------------------------------------------------
diff --git 
a/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/v1/ConnectionSchemaV1Test.java
 
b/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/v1/ConnectionSchemaV1Test.java
index 28b000c..50180dd 100644
--- 
a/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/v1/ConnectionSchemaV1Test.java
+++ 
b/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/v1/ConnectionSchemaV1Test.java
@@ -183,10 +183,10 @@ public class ConnectionSchemaV1Test {
         assertEquals(5, connections.size());
 
         // Generated unique ids
-        assertEquals("test", connections.get(0).getId());
-        assertEquals("test_2", connections.get(1).getId());
-        assertEquals("test_2_2", connections.get(2).getId());
-        assertEquals("test_3", connections.get(3).getId());
-        assertEquals("test_2_3", connections.get(4).getId());
+        assertEquals("098f6bcd-4621-3373-8ade-4e832627b4f6", 
connections.get(0).getId());
+        assertEquals("098f6bcd-4621-3373-8ade-4e832627b4f7", 
connections.get(1).getId());
+        assertEquals("b9dacbc6-7962-39a9-9e45-394e2cf0dbf6", 
connections.get(2).getId());
+        assertEquals("098f6bcd-4621-3373-8ade-4e832627b4f8", 
connections.get(3).getId());
+        assertEquals("b9dacbc6-7962-39a9-9e45-394e2cf0dbf7", 
connections.get(4).getId());
     }
 }

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-commons/minifi-commons-schema/src/test/resources/config-minimal-v2.yml
----------------------------------------------------------------------
diff --git 
a/minifi-commons/minifi-commons-schema/src/test/resources/config-minimal-v2.yml 
b/minifi-commons/minifi-commons-schema/src/test/resources/config-minimal-v2.yml
index 2472a32..8047741 100644
--- 
a/minifi-commons/minifi-commons-schema/src/test/resources/config-minimal-v2.yml
+++ 
b/minifi-commons/minifi-commons-schema/src/test/resources/config-minimal-v2.yml
@@ -20,19 +20,19 @@ Flow Controller:
 
 # When running the Flow (not just doing the transform) these processors will 
be invalid due to not having the necesary properties/auto-terminated 
relationships
 Processors:
-    - id: bcd
+    - id: d4b7c284-882c-39e2-88bb-65e8abd5f4c8
       class: org.apache.nifi.processors.standard.TailFile
       scheduling strategy: TIMER_DRIVEN
       scheduling period: 10 sec
-    - id: cde
+    - id: a256e6b3-36af-3c38-8564-789c399b516c
       class: org.apache.nifi.processors.standard.PutFile
       max concurrent tasks: 1
       scheduling strategy: TIMER_DRIVEN
       scheduling period: 0 sec
 
 Connections:
-    - id: abc
-      source id: bcd
+    - id: 90015098-3cd2-3fb0-9696-3f7d28e17f72
+      source id: d4b7c284-882c-39e2-88bb-65e8abd5f4c8
       source relationship names:
       - success
-      destination id: cde
+      destination id: a256e6b3-36af-3c38-8564-789c399b516c

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-nar-bundles/minifi-standard-services-api-nar/pom.xml
----------------------------------------------------------------------
diff --git a/minifi-nar-bundles/minifi-standard-services-api-nar/pom.xml 
b/minifi-nar-bundles/minifi-standard-services-api-nar/pom.xml
index ea7bcd8..cb4793c 100644
--- a/minifi-nar-bundles/minifi-standard-services-api-nar/pom.xml
+++ b/minifi-nar-bundles/minifi-standard-services-api-nar/pom.xml
@@ -23,6 +23,7 @@
     </parent>
     <groupId>org.apache.nifi.minifi</groupId>
     <artifactId>minifi-standard-services-api-nar</artifactId>
+    <version>0.1.0-SNAPSHOT</version>
     <packaging>nar</packaging>
     <properties>
         <maven.javadoc.skip>true</maven.javadoc.skip>

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-nar-bundles/pom.xml
----------------------------------------------------------------------
diff --git a/minifi-nar-bundles/pom.xml b/minifi-nar-bundles/pom.xml
index a02b75b..e60b8d7 100644
--- a/minifi-nar-bundles/pom.xml
+++ b/minifi-nar-bundles/pom.xml
@@ -27,8 +27,8 @@
         <module>minifi-framework-bundle</module>
         <module>minifi-provenance-repository-bundle</module>
         <module>minifi-update-attribute-nar</module>
-        <module>minifi-standard-nar</module>
         <module>minifi-standard-services-api-nar</module>
+        <module>minifi-standard-nar</module>
         <module>minifi-ssl-context-service-nar</module>
     </modules>
 </project>

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/BaseSchemaTester.java
----------------------------------------------------------------------
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/BaseSchemaTester.java
 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/BaseSchemaTester.java
index 6ad7e03..96b0e3e 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/BaseSchemaTester.java
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/BaseSchemaTester.java
@@ -22,6 +22,7 @@ import org.junit.Test;
 
 import java.util.Map;
 import java.util.function.Function;
+import java.util.stream.Collectors;
 
 import static org.junit.Assert.assertEquals;
 
@@ -43,7 +44,7 @@ public abstract class BaseSchemaTester<Schema extends 
WritableSchema, DTO> {
         assertEquals(dtoSchema.getValidationIssues(), 
mapSchema.getValidationIssues());
         assertSchemaEquals(dtoSchema, 
mapSchemaFunction.apply(dtoSchema.toMap()));
         assertSchemaEquals(mapSchema, 
mapSchemaFunction.apply(mapSchema.toMap()));
-        assertEquals(validationErrors, dtoSchema.getValidationIssues().size());
+        
assertEquals(dtoSchema.getValidationIssues().stream().collect(Collectors.joining(",
 ")), validationErrors, dtoSchema.getValidationIssues().size());
     }
 
     public abstract void assertSchemaEquals(Schema one, Schema two);

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ConnectionSchemaTest.java
----------------------------------------------------------------------
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ConnectionSchemaTest.java
 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ConnectionSchemaTest.java
index 6aa77fb..051c4a7 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ConnectionSchemaTest.java
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ConnectionSchemaTest.java
@@ -25,17 +25,19 @@ import org.apache.nifi.web.api.dto.ConnectionDTO;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
+import java.util.UUID;
 import java.util.stream.Collectors;
 
 import static org.junit.Assert.assertEquals;
 
 public class ConnectionSchemaTest extends BaseSchemaTester<ConnectionSchema, 
ConnectionDTO> {
-    private final String testId = "testId";
+    private final String testId = 
UUID.nameUUIDFromBytes("testId".getBytes(StandardCharsets.UTF_8)).toString();
     private final String testName = "testName";
     private final String testSourceId = "testSourceId";
     private final String testSelectedRelationship = "testSelectedRelationship";

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/PortSchemaFunctionTest.java
----------------------------------------------------------------------
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/PortSchemaFunctionTest.java
 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/PortSchemaFunctionTest.java
index 05c83cb..12a7151 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/PortSchemaFunctionTest.java
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/PortSchemaFunctionTest.java
@@ -24,6 +24,9 @@ import org.apache.nifi.web.api.dto.PortDTO;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.nio.charset.StandardCharsets;
+import java.util.UUID;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -37,7 +40,7 @@ public class PortSchemaFunctionTest {
 
     @Before
     public void setup() {
-        testId = "testId";
+        testId = 
UUID.nameUUIDFromBytes("testId".getBytes(StandardCharsets.UTF_8)).toString();
         testName = "testName";
         testWrapperName = "testWrapperName";
         portDTO = new PortDTO();

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaTest.java
----------------------------------------------------------------------
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaTest.java
 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaTest.java
index f98afe3..719c89a 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaTest.java
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaTest.java
@@ -26,15 +26,17 @@ import org.apache.nifi.web.api.dto.RelationshipDTO;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.UUID;
 
 import static org.junit.Assert.assertEquals;
 
 public class ProcessorSchemaTest extends BaseSchemaTester<ProcessorSchema, 
ProcessorDTO> {
     private final String testName = "testName";
-    private final String testId = "testId";
+    private final String testId = 
UUID.nameUUIDFromBytes("testId".getBytes(StandardCharsets.UTF_8)).toString();
     private final String testProcessorClass = "testProcessorClass";
     private final String testSchedulingStrategy = 
SchedulingStrategy.PRIMARY_NODE_ONLY.name();
     private final String testSchedulingPeriod = "10 s";

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteInputPortSchemaTest.java
----------------------------------------------------------------------
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteInputPortSchemaTest.java
 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteInputPortSchemaTest.java
index 00f3348..94b5beb 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteInputPortSchemaTest.java
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteInputPortSchemaTest.java
@@ -23,13 +23,15 @@ import 
org.apache.nifi.web.api.dto.RemoteProcessGroupPortDTO;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
+import java.util.UUID;
 
 import static org.junit.Assert.assertEquals;
 
 public class RemoteInputPortSchemaTest extends 
BaseSchemaTester<RemoteInputPortSchema, RemoteProcessGroupPortDTO> {
 
-    private String testId = "testId";
+    private String testId = 
UUID.nameUUIDFromBytes("testId".getBytes(StandardCharsets.UTF_8)).toString();
     private String testName = "testName";
     private String testComment = "testComment";
     private int testMaxConcurrentTasks = 111;

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/00d6ac03/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/config.yml
----------------------------------------------------------------------
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/config.yml 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/config.yml
index 64a28fe..dab1e8e 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/config.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/config.yml
@@ -56,7 +56,7 @@ Security Properties:
     algorithm: PBEWITHMD5AND256BITAES-CBC-OPENSSL
     provider: BC
 Processors:
-- id: TailFile
+- id: 94b8e610-b4ed-3ec9-b26f-c839931bf3e2
   name: TailFile
   class: org.apache.nifi.processors.standard.TailFile
   max concurrent tasks: 1
@@ -71,9 +71,9 @@ Processors:
     Initial Start Position: Beginning of File
     Rolling Filename Pattern: minifi-app*
 Connections:
-- id: TailToS2S
+- id: f6cef9b0-8982-391c-8d70-76f33917ac12
   name: TailToS2S
-  source id: TailFile
+  source id: 94b8e610-b4ed-3ec9-b26f-c839931bf3e2
   source relationship names:
   - success
   destination id: 8644cbcc-a45c-40e0-964d-5e536e2ada61

Reply via email to