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
