[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-20 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/nifi-minifi/pull/33


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-20 Thread JPercivall
Github user JPercivall commented on a diff in the pull request:

https://github.com/apache/nifi-minifi/pull/33#discussion_r79616293
  
--- Diff: 
minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ConfigSchema.java
 ---
@@ -198,4 +305,31 @@ public ComponentStatusRepositorySchema 
getComponentStatusRepositoryProperties()
 public ProvenanceRepositorySchema getProvenanceRepositorySchema() {
 return provenanceRepositorySchema;
 }
+
+public int getVersion() {
+return CONFIG_VERSION;
+}
+
+/**
+ * Will replace all characters not in [A-Za-z0-9_] with _
+ * 
+ * This has potential for collisions so it will also append numbers as 
necessary to prevent that
+ *
+ * @param ids  id map of already incremented numbers
+ * @param name the name
+ * @return a unique filesystem-friendly id
+ */
+protected static String getUniqueId(Map 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++;
+}
+if (id != baseId) {
--- End diff --

Totally down with "!=" for this case.

Lets just comment why it's a valid case so people aren't confused later on.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-20 Thread brosander
Github user brosander commented on a diff in the pull request:

https://github.com/apache/nifi-minifi/pull/33#discussion_r79610484
  
--- Diff: minifi-docs/src/main/markdown/System_Admin_Guide.md ---
@@ -174,10 +174,11 @@ for example "10 sec" or "10 MB", not simply "10".
 
 The first section of config.yml is for naming and commenting on the file.
 
- Property | Description
-  | ---
-name  | The name of the file.
-comment   | A comment describing the usage of this config file.
+ Property | Description
+- | ---
+MiNiFi Config Version | The version of the configuration file.
--- End diff --

@JPercivall good point, I will try to clarify


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-20 Thread brosander
Github user brosander commented on a diff in the pull request:

https://github.com/apache/nifi-minifi/pull/33#discussion_r79610232
  
--- Diff: 
minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ConfigSchema.java
 ---
@@ -96,51 +100,154 @@ public ConfigSchema(Map map) {
 addIssuesIfNotNull(provenanceReportingProperties);
 addIssuesIfNotNull(provenanceRepositorySchema);
 
+Set processorIds = new HashSet<>();
 if (processors != null) {
-
checkForDuplicateNames(FOUND_THE_FOLLOWING_DUPLICATE_PROCESSOR_NAMES, 
processors.stream().map(ProcessorSchema::getName).collect(Collectors.toList()));
+List processorIdList = 
processors.stream().map(ProcessorSchema::getId).collect(Collectors.toList());
+checkForDuplicates(this::addValidationIssue, 
FOUND_THE_FOLLOWING_DUPLICATE_PROCESSOR_IDS, processorIdList);
 for (ProcessorSchema processorSchema : processors) {
 addIssuesIfNotNull(processorSchema);
 }
+processorIds.addAll(processorIdList);
 }
 
 if (connections != null) {
-
checkForDuplicateNames(FOUND_THE_FOLLOWING_DUPLICATE_CONNECTION_NAMES, 
connections.stream().map(ConnectionSchema::getName).collect(Collectors.toList()));
+List idList = 
connections.stream().map(ConnectionSchema::getId).filter(s -> 
!StringUtil.isNullOrEmpty(s)).collect(Collectors.toList());
+checkForDuplicates(this::addValidationIssue, 
FOUND_THE_FOLLOWING_DUPLICATE_CONNECTION_IDS, idList);
 for (ConnectionSchema connectionSchema : connections) {
 addIssuesIfNotNull(connectionSchema);
 }
 }
 
+Set remoteInputPortIds = new HashSet<>();
 if (remoteProcessingGroups != null) {
-
checkForDuplicateNames(FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESSING_GROUP_NAMES,
 
remoteProcessingGroups.stream().map(RemoteProcessingGroupSchema::getName).collect(Collectors.toList()));
+checkForDuplicates(this::addValidationIssue, 
FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESSING_GROUP_NAMES,
+
remoteProcessingGroups.stream().map(RemoteProcessingGroupSchema::getName).collect(Collectors.toList()));
 for (RemoteProcessingGroupSchema remoteProcessingGroupSchema : 
remoteProcessingGroups) {
 addIssuesIfNotNull(remoteProcessingGroupSchema);
 }
+List remoteProcessingGroups = 
getRemoteProcessingGroups();
+if (remoteProcessingGroups != null) {
+List remoteInputPortIdList = 
remoteProcessingGroups.stream().filter(r -> r.getInputPorts() != null)
+.flatMap(r -> 
r.getInputPorts().stream()).map(RemoteInputPortSchema::getId).collect(Collectors.toList());
+checkForDuplicates(this::addValidationIssue, 
FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_INPUT_PORT_IDS, remoteInputPortIdList);
+remoteInputPortIds.addAll(remoteInputPortIdList);
+}
+}
+
+Set duplicateIds = new HashSet<>(processorIds);
+duplicateIds.retainAll(remoteInputPortIds);
+if (duplicateIds.size() > 0) {
+addValidationIssue(FOUND_THE_FOLLOWING_DUPLICATE_IDS + 
duplicateIds.stream().sorted().collect(Collectors.joining(", ")));
+}
+}
+
+protected List getProcessorSchemas(List 
processorMaps) {
+if (processorMaps == null) {
+return null;
 }
+List processors = 
convertListToType(processorMaps, "processor", ProcessorSchema.class, 
PROCESSORS_KEY);
+
+Map idMap = 
processors.stream().map(ProcessorSchema::getId).filter(
+s -> 
!StringUtil.isNullOrEmpty(s)).collect(Collectors.toMap(Function.identity(), s 
-> 2, Integer::compareTo));
+
+// Set unset ids
+processors.stream().filter(connection -> 
StringUtil.isNullOrEmpty(connection.getId())).forEachOrdered(processor -> 
processor.setId(getUniqueId(idMap, processor.getName(;
+
+return processors;
 }
 
-private void checkForDuplicateNames(String errorMessagePrefix, 
List names) {
-if (names != null) {
-Set seenNames = new HashSet<>();
-Set duplicateNames = new TreeSet<>();
-for (String name : names) {
-if (!seenNames.add(name)) {
-duplicateNames.add(name);
+protected List getConnectionSchemas(List 
connectionMaps) {
+if (connectionMaps == null) {
+return null;
+}
+List connections = 
convertListToType(connectionMaps, "connection", 

[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-20 Thread brosander
Github user brosander commented on a diff in the pull request:

https://github.com/apache/nifi-minifi/pull/33#discussion_r79609970
  
--- Diff: 
minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ConfigSchema.java
 ---
@@ -198,4 +305,31 @@ public ComponentStatusRepositorySchema 
getComponentStatusRepositoryProperties()
 public ProvenanceRepositorySchema getProvenanceRepositorySchema() {
 return provenanceRepositorySchema;
 }
+
+public int getVersion() {
+return CONFIG_VERSION;
+}
+
+/**
+ * Will replace all characters not in [A-Za-z0-9_] with _
+ * 
+ * This has potential for collisions so it will also append numbers as 
necessary to prevent that
+ *
+ * @param ids  id map of already incremented numbers
+ * @param name the name
+ * @return a unique filesystem-friendly id
+ */
+protected static String getUniqueId(Map 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++;
+}
+if (id != baseId) {
--- End diff --

@JPercivall I'm aware that most of the time this signals a bug, the 
assignment of id to baseId is only a few lines up, I'm just trying to see if it 
was reassigned in the while loop, meaning the reference equals should (and 
seems to based on testing) do the trick.

I can change to a boolean flag if you think it would make things clearer.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-19 Thread JPercivall
Github user JPercivall commented on a diff in the pull request:

https://github.com/apache/nifi-minifi/pull/33#discussion_r79510580
  
--- Diff: 
minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ConfigSchema.java
 ---
@@ -198,4 +305,31 @@ public ComponentStatusRepositorySchema 
getComponentStatusRepositoryProperties()
 public ProvenanceRepositorySchema getProvenanceRepositorySchema() {
 return provenanceRepositorySchema;
 }
+
+public int getVersion() {
+return CONFIG_VERSION;
+}
+
+/**
+ * Will replace all characters not in [A-Za-z0-9_] with _
+ * 
+ * This has potential for collisions so it will also append numbers as 
necessary to prevent that
+ *
+ * @param ids  id map of already incremented numbers
+ * @param name the name
+ * @return a unique filesystem-friendly id
+ */
+protected static String getUniqueId(Map 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++;
+}
+if (id != baseId) {
--- End diff --

Both "id" and "baseId" are Strings, are you comparing using "!=" instead of 
"!id.equals(..." on purpose?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-19 Thread JPercivall
Github user JPercivall commented on a diff in the pull request:

https://github.com/apache/nifi-minifi/pull/33#discussion_r79514742
  
--- Diff: 
minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ConfigSchema.java
 ---
@@ -96,51 +100,154 @@ public ConfigSchema(Map map) {
 addIssuesIfNotNull(provenanceReportingProperties);
 addIssuesIfNotNull(provenanceRepositorySchema);
 
+Set processorIds = new HashSet<>();
 if (processors != null) {
-
checkForDuplicateNames(FOUND_THE_FOLLOWING_DUPLICATE_PROCESSOR_NAMES, 
processors.stream().map(ProcessorSchema::getName).collect(Collectors.toList()));
+List processorIdList = 
processors.stream().map(ProcessorSchema::getId).collect(Collectors.toList());
+checkForDuplicates(this::addValidationIssue, 
FOUND_THE_FOLLOWING_DUPLICATE_PROCESSOR_IDS, processorIdList);
 for (ProcessorSchema processorSchema : processors) {
 addIssuesIfNotNull(processorSchema);
 }
+processorIds.addAll(processorIdList);
 }
 
 if (connections != null) {
-
checkForDuplicateNames(FOUND_THE_FOLLOWING_DUPLICATE_CONNECTION_NAMES, 
connections.stream().map(ConnectionSchema::getName).collect(Collectors.toList()));
+List idList = 
connections.stream().map(ConnectionSchema::getId).filter(s -> 
!StringUtil.isNullOrEmpty(s)).collect(Collectors.toList());
+checkForDuplicates(this::addValidationIssue, 
FOUND_THE_FOLLOWING_DUPLICATE_CONNECTION_IDS, idList);
 for (ConnectionSchema connectionSchema : connections) {
 addIssuesIfNotNull(connectionSchema);
 }
 }
 
+Set remoteInputPortIds = new HashSet<>();
 if (remoteProcessingGroups != null) {
-
checkForDuplicateNames(FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESSING_GROUP_NAMES,
 
remoteProcessingGroups.stream().map(RemoteProcessingGroupSchema::getName).collect(Collectors.toList()));
+checkForDuplicates(this::addValidationIssue, 
FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESSING_GROUP_NAMES,
+
remoteProcessingGroups.stream().map(RemoteProcessingGroupSchema::getName).collect(Collectors.toList()));
 for (RemoteProcessingGroupSchema remoteProcessingGroupSchema : 
remoteProcessingGroups) {
 addIssuesIfNotNull(remoteProcessingGroupSchema);
 }
+List remoteProcessingGroups = 
getRemoteProcessingGroups();
+if (remoteProcessingGroups != null) {
+List remoteInputPortIdList = 
remoteProcessingGroups.stream().filter(r -> r.getInputPorts() != null)
+.flatMap(r -> 
r.getInputPorts().stream()).map(RemoteInputPortSchema::getId).collect(Collectors.toList());
+checkForDuplicates(this::addValidationIssue, 
FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_INPUT_PORT_IDS, remoteInputPortIdList);
+remoteInputPortIds.addAll(remoteInputPortIdList);
+}
+}
+
+Set duplicateIds = new HashSet<>(processorIds);
+duplicateIds.retainAll(remoteInputPortIds);
+if (duplicateIds.size() > 0) {
+addValidationIssue(FOUND_THE_FOLLOWING_DUPLICATE_IDS + 
duplicateIds.stream().sorted().collect(Collectors.joining(", ")));
+}
+}
+
+protected List getProcessorSchemas(List 
processorMaps) {
+if (processorMaps == null) {
+return null;
 }
+List processors = 
convertListToType(processorMaps, "processor", ProcessorSchema.class, 
PROCESSORS_KEY);
+
+Map idMap = 
processors.stream().map(ProcessorSchema::getId).filter(
+s -> 
!StringUtil.isNullOrEmpty(s)).collect(Collectors.toMap(Function.identity(), s 
-> 2, Integer::compareTo));
+
+// Set unset ids
+processors.stream().filter(connection -> 
StringUtil.isNullOrEmpty(connection.getId())).forEachOrdered(processor -> 
processor.setId(getUniqueId(idMap, processor.getName(;
+
+return processors;
 }
 
-private void checkForDuplicateNames(String errorMessagePrefix, 
List names) {
-if (names != null) {
-Set seenNames = new HashSet<>();
-Set duplicateNames = new TreeSet<>();
-for (String name : names) {
-if (!seenNames.add(name)) {
-duplicateNames.add(name);
+protected List getConnectionSchemas(List 
connectionMaps) {
+if (connectionMaps == null) {
+return null;
+}
+List connections = 
convertListToType(connectionMaps, "connection", 

[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-19 Thread brosander
Github user brosander commented on a diff in the pull request:

https://github.com/apache/nifi-minifi/pull/33#discussion_r79467029
  
--- Diff: 
minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/serialization/SchemaLoaderTest.java
 ---
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.minifi.commons.schema.serialization;
+
+import org.apache.nifi.minifi.commons.schema.ConfigSchema;
+import org.apache.nifi.minifi.commons.schema.ConnectionSchema;
+import org.apache.nifi.minifi.commons.schema.ProcessorSchema;
+import org.apache.nifi.minifi.commons.schema.common.BaseSchema;
+import org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys;
+import 
org.apache.nifi.minifi.commons.schema.exception.SchemaLoaderException;
+import org.apache.nifi.minifi.commons.schema.v1.ConfigSchemaV1;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+public class SchemaLoaderTest {
--- End diff --

Since making the ids optional, we don't have 2 distinct versions anymore.  
Leaving versioning part of SchemaLoader in place though


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-19 Thread brosander
Github user brosander commented on a diff in the pull request:

https://github.com/apache/nifi-minifi/pull/33#discussion_r79464399
  
--- Diff: 
minifi-toolkit/minifi-toolkit-configuration/src/test/resources/CsvToJson.yml ---
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+MiNiFi Config Version: 2
--- End diff --

We could move them all to a test/resources folder and use it as a 
dependency.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-19 Thread brosander
Github user brosander commented on a diff in the pull request:

https://github.com/apache/nifi-minifi/pull/33#discussion_r79457033
  
--- Diff: 
minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFramework.yml
 ---
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+MiNiFi Config Version: 2
--- End diff --

Will do, ended up using version 1 for this one though so that ids are 
optional as long as names are unique.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-19 Thread brosander
Github user brosander commented on a diff in the pull request:

https://github.com/apache/nifi-minifi/pull/33#discussion_r79456962
  
--- Diff: 
minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml
 ---
@@ -255,8 +273,8 @@ Remote Processing Groups:
   timeout: 30 sec
--- End diff --

The input ports already have ids, which is what should matter.  I think we 
can add some validation though.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-15 Thread JPercivall
Github user JPercivall commented on a diff in the pull request:

https://github.com/apache/nifi-minifi/pull/33#discussion_r79056475
  
--- Diff: 
minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFramework.yml
 ---
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+MiNiFi Config Version: 2
--- End diff --

Unless I'm missing it, I don't see any modifications to the 
System_Admin_Guide.md (where the yml properties are described). Could you 
update them with the new id property and the maybe a bit about versioning of 
the config schemas?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-15 Thread JPercivall
Github user JPercivall commented on a diff in the pull request:

https://github.com/apache/nifi-minifi/pull/33#discussion_r79067507
  
--- Diff: 
minifi-toolkit/minifi-toolkit-configuration/src/test/resources/CsvToJson.yml ---
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+MiNiFi Config Version: 2
--- End diff --

The config files in the toolkit were updated but not the ones in 
minifi-bootstrap or the default one that gets bundled (in minifi-resources). 
Could you update those too?

Kinda sucks that we have test yml files in multiple locations that will 
need to be updated each time there is a change to the schema. Any thoughts to 
remedy this/if you think it's worth it?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-15 Thread JPercivall
Github user JPercivall commented on a diff in the pull request:

https://github.com/apache/nifi-minifi/pull/33#discussion_r79064157
  
--- Diff: 
minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ConfigSchema.java
 ---
@@ -42,10 +44,14 @@
  *
  */
 public class ConfigSchema extends BaseSchema {
-public static final String 
FOUND_THE_FOLLOWING_DUPLICATE_PROCESSOR_NAMES = "Found the following duplicate 
processor names: ";
-public static final String 
FOUND_THE_FOLLOWING_DUPLICATE_CONNECTION_NAMES = "Found the following duplicate 
connection names: ";
+public static final String FOUND_THE_FOLLOWING_DUPLICATE_PROCESSOR_IDS 
= "Found the following duplicate processor ids: ";
+public static final String 
FOUND_THE_FOLLOWING_DUPLICATE_CONNECTION_IDS = "Found the following duplicate 
connection ids: ";
 public static final String 
FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESSING_GROUP_NAMES = "Found the 
following duplicate remote processing group names: ";
+public static final String 
FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_INPUT_PORT_IDS = "Found the following 
duplicate remote input port ids: ";
+public static final String FOUND_THE_FOLLOWING_DUPLICATE_IDS = "Found 
the following ids that occur both in Processors and Remote Input Ports: ";
--- End diff --

This brings up a good point that all the ids within a PG (ie. all the ids 
we have) will have to be unique. So will need to add a check including 
connections and RPGs themselves.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-15 Thread JPercivall
Github user JPercivall commented on a diff in the pull request:

https://github.com/apache/nifi-minifi/pull/33#discussion_r79055685
  
--- Diff: 
minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml
 ---
@@ -255,8 +273,8 @@ Remote Processing Groups:
   timeout: 30 sec
--- End diff --

I believe RPGs will have similar problems as Processors with duplicate 
names.

Given that and to keep consistency, do you think we should add ids for them 
as well?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] nifi-minifi pull request #33: Minifi 108

2016-09-15 Thread brosander
GitHub user brosander opened a pull request:

https://github.com/apache/nifi-minifi/pull/33

Minifi 108



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/brosander/nifi-minifi MINIFI-108

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/nifi-minifi/pull/33.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #33


commit 1143b336df143c28051c558e68f20dd50d824d00
Author: Bryan Rosander 
Date:   2016-09-07T21:36:32Z

MINIFI-104 - Making connection ids filesystem friendly, unique

commit 8a36cae4566ecbbd4d90cb0540e831655fc84cf6
Author: Bryan Rosander 
Date:   2016-09-09T17:39:15Z

MINIFI-104 - Introducing configuration versioning, adding id to connection

commit dab92ae488fc50d5cff01dd8fe62fe1d258c771c
Author: Bryan Rosander 
Date:   2016-09-09T18:11:14Z

MINIFI-104 - Renaming version property

commit 012565d1501d08c54dcdf144613592d32d56f6b9
Author: Bryan Rosander 
Date:   2016-09-15T14:31:16Z

MINIFI-108 - Using ids for processors, source, destination




---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---