MINIFI-115: Providing handling of ID for Remote Process Groups to use the 
generated approach created for other components and introducing a 
RemoteProcessingGroupSchemaV1. Corrected typos, adjusted 
ProvenanceReportingTask to be the bundled NiFi class, and updating specified 
NiFi version for the ConfigTransformer.

This closes #43

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

Branch: refs/heads/master
Commit: aeea72b712149d515d915de2ee617a81c15c4f90
Parents: 00d6ac0
Author: Aldrin Piri <[email protected]>
Authored: Fri Nov 18 14:02:31 2016 -0500
Committer: Joseph Percivall <[email protected]>
Committed: Sun Nov 27 12:53:45 2016 -0500

----------------------------------------------------------------------
 minifi-assembly/pom.xml                         |  17 +++
 .../bootstrap/util/ConfigTransformer.java       |   9 +-
 .../bootstrap/util/ParentGroupIdResolver.java   |   2 +-
 .../bootstrap/util/ConfigTransformerTest.java   |   2 +-
 .../util/ParentGroupIdResolverTest.java         |   7 +-
 minifi-bootstrap/src/test/resources/config.yml  |   3 +-
 .../schema/RemoteProcessingGroupSchema.java     |  20 +---
 .../commons/schema/common/BaseSchemaWithId.java |   2 +-
 .../schema/common/BaseSchemaWithIdAndName.java  |   2 +-
 .../commons/schema/v1/ConfigSchemaV1.java       |  21 +++-
 .../v1/RemoteProcessingGroupSchemaV1.java       | 107 +++++++++++++++++++
 .../minifi-framework-nar/pom.xml                |  20 ++++
 .../minifi-provenance-reporting-nar/pom.xml     |  84 +++++++++++++++
 .../minifi-provenance-reporting-bundle/pom.xml  |  31 ++++++
 .../minifi-ssl-context-service-nar/pom.xml      |  20 ++++
 .../minifi-standard-services-api-nar/pom.xml    |  15 +++
 minifi-nar-bundles/pom.xml                      |   1 +
 .../toolkit/configuration/ConfigMain.java       |   3 -
 .../RemoteProcessingGroupSchemaFunction.java    |   1 +
 .../toolkit/configuration/ConfigMainTest.java   |   2 +-
 .../dto/RemoteProcessingGroupSchemaTest.java    |  13 ++-
 .../InvokeHttpMiNiFiTemplateTest-v1.yml         |   2 +-
 .../resources/InvokeHttpMiNiFiTemplateTest.xml  |   6 +-
 .../resources/InvokeHttpMiNiFiTemplateTest.yml  |   3 +-
 .../ProcessGroupsAndRemoteProcessGroups.yml     |   6 +-
 .../src/test/resources/config.yml               |   3 +-
 pom.xml                                         |  25 +++++
 27 files changed, 384 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-assembly/pom.xml
----------------------------------------------------------------------
diff --git a/minifi-assembly/pom.xml b/minifi-assembly/pom.xml
index 89ed9e4..6827110 100644
--- a/minifi-assembly/pom.xml
+++ b/minifi-assembly/pom.xml
@@ -135,6 +135,12 @@ limitations under the License.
             <artifactId>minifi-update-attribute-nar</artifactId>
             <type>nar</type>
         </dependency>
+        <dependency>
+            <groupId>org.apache.nifi.minifi</groupId>
+            <artifactId>minifi-provenance-reporting-nar</artifactId>
+            <type>nar</type>
+            <version>0.1.0-SNAPSHOT</version>
+        </dependency>
 
         <!-- MiNiFi NiFi Dependencies -->
         <dependency>
@@ -181,6 +187,12 @@ limitations under the License.
             <groupId>org.apache.nifi</groupId>
             <artifactId>nifi-persistent-provenance-repository</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.nifi</groupId>
+            <artifactId>nifi-site-to-site-reporting-task</artifactId>
+            <version>1.0.0</version>
+            <scope>compile</scope>
+        </dependency>
 
         <!-- Provided in NiFi so must include here too -->
         <dependency>
@@ -189,6 +201,11 @@ limitations under the License.
             <scope>compile</scope>
         </dependency>
         <dependency>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcpkix-jdk15on</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
             <groupId>org.eclipse.jetty</groupId>
             <artifactId>jetty-util</artifactId>
             <scope>compile</scope>

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformer.java
----------------------------------------------------------------------
diff --git 
a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformer.java
 
b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformer.java
index da707b9..98fccb5 100644
--- 
a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformer.java
+++ 
b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformer.java
@@ -78,8 +78,9 @@ import java.util.zip.GZIPOutputStream;
 
 public final class ConfigTransformer {
     // Underlying version of NIFI will be using
-    public static final String NIFI_VERSION = "0.6.1";
+    public static final String NIFI_VERSION = "1.0.0";
     public static final String ROOT_GROUP = "Root-Group";
+    public static final String DEFAULT_PROV_REPORTING_TASK_CLASS = 
"org.apache.nifi.reporting.SiteToSiteProvenanceReportingTask";
 
     // Final util classes should have private constructor
     private ConfigTransformer() {
@@ -471,7 +472,7 @@ public final class ConfigTransformer {
             addTextElement(taskElement, "id", "Provenance-Reporting");
             addTextElement(taskElement, "name", 
"Site-To-Site-Provenance-Reporting");
             addTextElement(taskElement, "comment", 
provenanceProperties.getComment());
-            addTextElement(taskElement, "class", 
"org.apache.nifi.minifi.provenance.reporting.ProvenanceReportingTask");
+            addTextElement(taskElement, "class", 
DEFAULT_PROV_REPORTING_TASK_CLASS);
             addTextElement(taskElement, "schedulingPeriod", 
provenanceProperties.getSchedulingPeriod());
             addTextElement(taskElement, "scheduledState", "RUNNING");
             addTextElement(taskElement, "schedulingStrategy", 
provenanceProperties.getSchedulingStrategy());
@@ -479,7 +480,7 @@ public final class ConfigTransformer {
             Map<String, Object> attributes = new HashMap<>();
             attributes.put("Destination URL", 
provenanceProperties.getDestinationUrl());
             attributes.put("Input Port Name", 
provenanceProperties.getPortName());
-            attributes.put("MiNiFi URL", 
provenanceProperties.getOriginatingUrl());
+            attributes.put("Instance URL", 
provenanceProperties.getOriginatingUrl());
             attributes.put("Compress Events", 
provenanceProperties.getUseCompression());
             attributes.put("Batch Size", provenanceProperties.getBatchSize());
             attributes.put("Communications Timeout", 
provenanceProperties.getTimeout());
@@ -524,7 +525,7 @@ public final class ConfigTransformer {
             final Document doc = parentElement.getOwnerDocument();
             final Element element = doc.createElement("remoteProcessGroup");
             parentElement.appendChild(element);
-            addTextElement(element, "id", 
remoteProcessingGroupProperties.getName());
+            addTextElement(element, "id", 
remoteProcessingGroupProperties.getId());
             addTextElement(element, "name", 
remoteProcessingGroupProperties.getName());
             addPosition(element);
             addTextElement(element, "comment", 
remoteProcessingGroupProperties.getComment());

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ParentGroupIdResolver.java
----------------------------------------------------------------------
diff --git 
a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ParentGroupIdResolver.java
 
b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ParentGroupIdResolver.java
index 05aa27d..0d75823 100644
--- 
a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ParentGroupIdResolver.java
+++ 
b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ParentGroupIdResolver.java
@@ -65,7 +65,7 @@ public class ParentGroupIdResolver {
     protected static void getRemoteInputPortParentIdMap(ProcessGroupSchema 
processGroupSchema, Map<String, String> output) {
         for (RemoteProcessingGroupSchema remoteProcessingGroupSchema : 
processGroupSchema.getRemoteProcessingGroups()) {
             for (RemoteInputPortSchema remoteInputPortSchema : 
remoteProcessingGroupSchema.getInputPorts()) {
-                output.put(remoteInputPortSchema.getId(), 
remoteProcessingGroupSchema.getName());
+                output.put(remoteInputPortSchema.getId(), 
remoteProcessingGroupSchema.getId());
             }
         }
         processGroupSchema.getProcessGroupSchemas().forEach(p -> 
getRemoteInputPortParentIdMap(p, output));

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-bootstrap/src/test/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformerTest.java
----------------------------------------------------------------------
diff --git 
a/minifi-bootstrap/src/test/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformerTest.java
 
b/minifi-bootstrap/src/test/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformerTest.java
index 6c2ed78..4aff488 100644
--- 
a/minifi-bootstrap/src/test/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformerTest.java
+++ 
b/minifi-bootstrap/src/test/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformerTest.java
@@ -193,7 +193,7 @@ public class ConfigTransformerTest {
     }
 
     private void testRemoteProcessGroups(Element element, 
RemoteProcessingGroupSchema remoteProcessingGroupSchema) throws 
XPathExpressionException {
-        assertEquals(remoteProcessingGroupSchema.getName(), getText(element, 
"id"));
+        assertEquals(remoteProcessingGroupSchema.getId(), getText(element, 
"id"));
         assertEquals(remoteProcessingGroupSchema.getName(), getText(element, 
"name"));
         assertEquals(remoteProcessingGroupSchema.getComment(), 
getText(element, "comment"));
         assertEquals(remoteProcessingGroupSchema.getUrl(), getText(element, 
"url"));

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-bootstrap/src/test/java/org/apache/nifi/minifi/bootstrap/util/ParentGroupIdResolverTest.java
----------------------------------------------------------------------
diff --git 
a/minifi-bootstrap/src/test/java/org/apache/nifi/minifi/bootstrap/util/ParentGroupIdResolverTest.java
 
b/minifi-bootstrap/src/test/java/org/apache/nifi/minifi/bootstrap/util/ParentGroupIdResolverTest.java
index c67d250..424c0fc 100644
--- 
a/minifi-bootstrap/src/test/java/org/apache/nifi/minifi/bootstrap/util/ParentGroupIdResolverTest.java
+++ 
b/minifi-bootstrap/src/test/java/org/apache/nifi/minifi/bootstrap/util/ParentGroupIdResolverTest.java
@@ -41,16 +41,18 @@ public class ParentGroupIdResolverTest {
         configLines.add("MiNiFi Config Version: 2");
         configLines.add("Remote Processing Groups:");
         configLines.add("- name: rpgOne");
+        configLines.add("  id: rpgOneId");
         configLines.add("  Input Ports:");
         configLines.add("  - id: one");
         configLines.add("Process Groups:");
         configLines.add("- Remote Processing Groups:");
         configLines.add("  - name: rpgTwo");
+        configLines.add("    id: rpgTwoId");
         configLines.add("    Input Ports:");
         configLines.add("    - id: two");
         ParentGroupIdResolver parentGroupIdResolver = 
createParentGroupIdResolver(configLines);
-        assertEquals("rpgOne", 
parentGroupIdResolver.getRemoteInputPortParentId("one"));
-        assertEquals("rpgTwo", 
parentGroupIdResolver.getRemoteInputPortParentId("two"));
+        assertEquals("rpgOneId", 
parentGroupIdResolver.getRemoteInputPortParentId("one"));
+        assertEquals("rpgTwoId", 
parentGroupIdResolver.getRemoteInputPortParentId("two"));
         assertNull(parentGroupIdResolver.getInputPortParentId("one"));
         assertNull(parentGroupIdResolver.getInputPortParentId("two"));
         assertNull(parentGroupIdResolver.getOutputPortParentId("one"));
@@ -132,6 +134,7 @@ public class ParentGroupIdResolverTest {
 
     @Test
     public void testFunnelParentId() throws IOException, SchemaLoaderException 
{
+        StringBuilder sb = new StringBuilder();
         List<String> configLines = new ArrayList<>();
         configLines.add("MiNiFi Config Version: 2");
         configLines.add("Funnels:");

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/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 dab1e8e..46b3674 100644
--- a/minifi-bootstrap/src/test/resources/config.yml
+++ b/minifi-bootstrap/src/test/resources/config.yml
@@ -82,7 +82,8 @@ Connections:
   flowfile expiration: 60 sec
   queue prioritizer class: 
org.apache.nifi.prioritizer.NewestFlowFileFirstPrioritizer
 Remote Processing Groups:
-- name: NiFi Flow
+- id: 8644cbcc-a45c-40e0-964d-4d243afcbbb2
+  name: NiFi Flow
   url: https://localhost:8090/nifi
   comment: ''
   timeout: 30 secs

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/RemoteProcessingGroupSchema.java
----------------------------------------------------------------------
diff --git 
a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/RemoteProcessingGroupSchema.java
 
b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/RemoteProcessingGroupSchema.java
index 6d2bb20..44109de 100644
--- 
a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/RemoteProcessingGroupSchema.java
+++ 
b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/RemoteProcessingGroupSchema.java
@@ -17,20 +17,16 @@
 
 package org.apache.nifi.minifi.commons.schema;
 
-import org.apache.nifi.minifi.commons.schema.common.BaseSchema;
-import org.apache.nifi.minifi.commons.schema.common.StringUtil;
-import org.apache.nifi.minifi.commons.schema.common.WritableSchema;
+import org.apache.nifi.minifi.commons.schema.common.BaseSchemaWithIdAndName;
 
 import java.util.List;
 import java.util.Map;
 
 import static 
org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.COMMENT_KEY;
 import static 
org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.INPUT_PORTS_KEY;
-import static 
org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.NAME_KEY;
-import static 
org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.REMOTE_PROCESSING_GROUPS_KEY;
 import static 
org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.YIELD_PERIOD_KEY;
 
-public class RemoteProcessingGroupSchema extends BaseSchema implements 
WritableSchema {
+public class RemoteProcessingGroupSchema extends BaseSchemaWithIdAndName {
     public static final String URL_KEY = "url";
     public static final String TIMEOUT_KEY = "timeout";
 
@@ -38,7 +34,6 @@ public class RemoteProcessingGroupSchema extends BaseSchema 
implements WritableS
     public static final String DEFAULT_TIMEOUT = "30 secs";
     public static final String DEFAULT_YIELD_PERIOD = "10 sec";
 
-    private String name;
     private String url;
     private List<RemoteInputPortSchema> inputPorts;
 
@@ -47,8 +42,8 @@ public class RemoteProcessingGroupSchema extends BaseSchema 
implements WritableS
     private String yieldPeriod = DEFAULT_YIELD_PERIOD;
 
     public RemoteProcessingGroupSchema(Map map) {
-        name = getRequiredKeyAsType(map, NAME_KEY, String.class, 
REMOTE_PROCESSING_GROUPS_KEY);
-        String wrapperName = new StringBuilder("RemoteProcessingGroup(name: 
").append(StringUtil.isNullOrEmpty(name) ? "unknown" : 
name).append(")").toString();
+        super(map, "RemoteProcessingGroup(id: {id}, name: {name})");
+        String wrapperName = getWrapperName();
         url = getRequiredKeyAsType(map, URL_KEY, String.class, wrapperName);
         inputPorts = convertListToType(getRequiredKeyAsType(map, 
INPUT_PORTS_KEY, List.class, wrapperName), "input port", 
RemoteInputPortSchema.class, INPUT_PORTS_KEY);
         if (inputPorts != null) {
@@ -64,8 +59,7 @@ public class RemoteProcessingGroupSchema extends BaseSchema 
implements WritableS
 
     @Override
     public Map<String, Object> toMap() {
-        Map<String, Object> result = mapSupplier.get();
-        result.put(NAME_KEY, name);
+        Map<String, Object> result = super.toMap();
         result.put(URL_KEY, url);
         result.put(COMMENT_KEY, comment);
         result.put(TIMEOUT_KEY, timeout);
@@ -74,10 +68,6 @@ public class RemoteProcessingGroupSchema extends BaseSchema 
implements WritableS
         return result;
     }
 
-    public String getName() {
-        return name;
-    }
-
     public String getComment() {
         return comment;
     }

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/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 96dc4d7..bc6693e 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
@@ -47,7 +47,7 @@ public class BaseSchemaWithId extends BaseSchema implements 
WritableSchema {
     }
 
     public String getWrapperName() {
-        return wrapperName.replace("{id}", StringUtil.isNullOrEmpty(id) ? 
"unkown" : id);
+        return wrapperName.replace("{id}", StringUtil.isNullOrEmpty(id) ? 
"unknown" : id);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/common/BaseSchemaWithIdAndName.java
----------------------------------------------------------------------
diff --git 
a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/common/BaseSchemaWithIdAndName.java
 
b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/common/BaseSchemaWithIdAndName.java
index 71a4f41..5c9f8c7 100644
--- 
a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/common/BaseSchemaWithIdAndName.java
+++ 
b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/common/BaseSchemaWithIdAndName.java
@@ -40,7 +40,7 @@ public abstract class BaseSchemaWithIdAndName extends 
BaseSchemaWithId implement
     }
 
     public String getWrapperName() {
-        return super.getWrapperName().replace("{name}", 
StringUtil.isNullOrEmpty(name) ? "unkown" : name);
+        return super.getWrapperName().replace("{name}", 
StringUtil.isNullOrEmpty(name) ? "unknown" : name);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/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 49dc087..526c92b 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
@@ -77,7 +77,7 @@ public class ConfigSchemaV1 extends BaseSchema implements 
ConvertableSchema<Conf
     private SecurityPropertiesSchema securityProperties;
     private List<ProcessorSchemaV1> processors;
     private List<ConnectionSchemaV1> connections;
-    private List<RemoteProcessingGroupSchema> remoteProcessingGroups;
+    private List<RemoteProcessingGroupSchemaV1> remoteProcessingGroups;
     private ProvenanceReportingSchema provenanceReportingProperties;
 
     private ProvenanceRepositorySchema provenanceRepositorySchema;
@@ -95,7 +95,7 @@ public class ConfigSchemaV1 extends BaseSchema implements 
ConvertableSchema<Conf
         processors = convertListToType(getOptionalKeyAsType(map, 
PROCESSORS_KEY, List.class, TOP_LEVEL_NAME, new ArrayList<>()), PROCESSORS_KEY, 
ProcessorSchemaV1.class, TOP_LEVEL_NAME);
 
         remoteProcessingGroups = convertListToType(getOptionalKeyAsType(map, 
REMOTE_PROCESSING_GROUPS_KEY, List.class, TOP_LEVEL_NAME, new ArrayList<>()), 
"remote processing group",
-                RemoteProcessingGroupSchema.class, 
REMOTE_PROCESSING_GROUPS_KEY);
+                RemoteProcessingGroupSchemaV1.class, 
REMOTE_PROCESSING_GROUPS_KEY);
 
         connections = convertListToType(getOptionalKeyAsType(map, 
CONNECTIONS_KEY, List.class, TOP_LEVEL_NAME, new ArrayList<>()), 
CONNECTIONS_KEY, ConnectionSchemaV1.class, TOP_LEVEL_NAME);
 
@@ -117,7 +117,7 @@ public class ConfigSchemaV1 extends BaseSchema implements 
ConvertableSchema<Conf
 
         checkForDuplicates(this::addValidationIssue, 
FOUND_THE_FOLLOWING_DUPLICATE_PROCESSOR_NAMES, processorNames);
         checkForDuplicates(this::addValidationIssue, 
FOUND_THE_FOLLOWING_DUPLICATE_CONNECTION_NAMES, 
connections.stream().map(ConnectionSchemaV1::getName).collect(Collectors.toList()));
-        checkForDuplicates(this::addValidationIssue, 
FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESSING_GROUP_NAMES, 
remoteProcessingGroups.stream().map(RemoteProcessingGroupSchema::getName)
+        checkForDuplicates(this::addValidationIssue, 
FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESSING_GROUP_NAMES, 
remoteProcessingGroups.stream().map(RemoteProcessingGroupSchemaV1::getName)
                 .collect(Collectors.toList()));
 
         Set<String> connectableNames = new HashSet<>(processorNames);
@@ -214,6 +214,19 @@ public class ConfigSchemaV1 extends BaseSchema implements 
ConvertableSchema<Conf
         return connectionSchemas;
     }
 
+    protected List<RemoteProcessingGroupSchema> 
getRemoteProcessingGroupSchemas() {
+        Set<UUID> ids = new HashSet<>();
+        List<RemoteProcessingGroupSchema> rpgSchemas= new 
ArrayList<>(remoteProcessingGroups.size());
+
+        for (RemoteProcessingGroupSchemaV1 rpg : remoteProcessingGroups) {
+            RemoteProcessingGroupSchema rpgSchema = rpg.convert();
+            rpgSchema.setId(getUniqueId(ids, rpgSchema.getName()));
+            rpgSchemas.add(rpgSchema);
+        }
+
+        return rpgSchemas;
+
+    }
     @Override
     public ConfigSchema convert() {
         Map<String, Object> map = new HashMap<>();
@@ -229,7 +242,7 @@ public class ConfigSchemaV1 extends BaseSchema implements 
ConvertableSchema<Conf
         putListIfNotNull(map, PROCESSORS_KEY, processorSchemas);
         List<String> validationIssues = getValidationIssues();
         putListIfNotNull(map, CONNECTIONS_KEY, 
getConnectionSchemas(processorSchemas, validationIssues));
-        putListIfNotNull(map, REMOTE_PROCESSING_GROUPS_KEY, 
remoteProcessingGroups);
+        putListIfNotNull(map, REMOTE_PROCESSING_GROUPS_KEY, 
getRemoteProcessingGroupSchemas());
         putIfNotNull(map, PROVENANCE_REPORTING_KEY, 
provenanceReportingProperties);
         return new ConfigSchema(map, validationIssues);
     }

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/v1/RemoteProcessingGroupSchemaV1.java
----------------------------------------------------------------------
diff --git 
a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/v1/RemoteProcessingGroupSchemaV1.java
 
b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/v1/RemoteProcessingGroupSchemaV1.java
new file mode 100644
index 0000000..a6d2d62
--- /dev/null
+++ 
b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/v1/RemoteProcessingGroupSchemaV1.java
@@ -0,0 +1,107 @@
+/*
+ * 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.v1;
+
+import org.apache.nifi.minifi.commons.schema.RemoteInputPortSchema;
+import org.apache.nifi.minifi.commons.schema.RemoteProcessingGroupSchema;
+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.util.List;
+import java.util.Map;
+
+import static 
org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.COMMENT_KEY;
+import static 
org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.INPUT_PORTS_KEY;
+import static 
org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.NAME_KEY;
+import static 
org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.REMOTE_PROCESSING_GROUPS_KEY;
+import static 
org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.YIELD_PERIOD_KEY;
+
+public class RemoteProcessingGroupSchemaV1 extends BaseSchema implements 
ConvertableSchema<RemoteProcessingGroupSchema> {
+    public static final String URL_KEY = "url";
+    public static final String TIMEOUT_KEY = "timeout";
+
+    public static final String DEFAULT_COMMENT = "";
+    public static final String DEFAULT_TIMEOUT = "30 secs";
+    public static final String DEFAULT_YIELD_PERIOD = "10 sec";
+
+    private String name;
+    private String url;
+    private List<RemoteInputPortSchema> inputPorts;
+
+    private String comment = DEFAULT_COMMENT;
+    private String timeout = DEFAULT_TIMEOUT;
+    private String yieldPeriod = DEFAULT_YIELD_PERIOD;
+
+    public RemoteProcessingGroupSchemaV1(Map map) {
+        name = getRequiredKeyAsType(map, NAME_KEY, String.class, 
REMOTE_PROCESSING_GROUPS_KEY);
+        String wrapperName = new StringBuilder("RemoteProcessingGroup(name: 
").append(StringUtil.isNullOrEmpty(name) ? "unknown" : 
name).append(")").toString();
+        url = getRequiredKeyAsType(map, URL_KEY, String.class, wrapperName);
+        inputPorts = convertListToType(getRequiredKeyAsType(map, 
INPUT_PORTS_KEY, List.class, wrapperName), "input port", 
RemoteInputPortSchema.class, INPUT_PORTS_KEY);
+        if (inputPorts != null) {
+            for (RemoteInputPortSchema remoteInputPortSchema : inputPorts) {
+                addIssuesIfNotNull(remoteInputPortSchema);
+            }
+        }
+
+        comment = getOptionalKeyAsType(map, COMMENT_KEY, String.class, 
wrapperName, DEFAULT_COMMENT);
+        timeout = getOptionalKeyAsType(map, TIMEOUT_KEY, String.class, 
wrapperName, DEFAULT_TIMEOUT);
+        yieldPeriod = getOptionalKeyAsType(map, YIELD_PERIOD_KEY, 
String.class, wrapperName, DEFAULT_YIELD_PERIOD);
+    }
+
+    @Override
+    public RemoteProcessingGroupSchema convert() {
+        Map<String, Object> result = mapSupplier.get();
+        result.put(NAME_KEY, name);
+        result.put(URL_KEY, url);
+        result.put(COMMENT_KEY, comment);
+        result.put(TIMEOUT_KEY, timeout);
+        result.put(YIELD_PERIOD_KEY, yieldPeriod);
+        putListIfNotNull(result, INPUT_PORTS_KEY, inputPorts);
+        return new RemoteProcessingGroupSchema(result);
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getComment() {
+        return comment;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public String getTimeout() {
+        return timeout;
+    }
+
+    public String getYieldPeriod() {
+        return yieldPeriod;
+    }
+
+    public List<RemoteInputPortSchema> getInputPorts() {
+        return inputPorts;
+    }
+
+    @Override
+    public int getVersion() {
+        return ConfigSchemaV1.CONFIG_VERSION;
+    }
+}

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-nar-bundles/minifi-framework-bundle/minifi-framework-nar/pom.xml
----------------------------------------------------------------------
diff --git 
a/minifi-nar-bundles/minifi-framework-bundle/minifi-framework-nar/pom.xml 
b/minifi-nar-bundles/minifi-framework-bundle/minifi-framework-nar/pom.xml
index 3815952..fcfde24 100644
--- a/minifi-nar-bundles/minifi-framework-bundle/minifi-framework-nar/pom.xml
+++ b/minifi-nar-bundles/minifi-framework-bundle/minifi-framework-nar/pom.xml
@@ -98,5 +98,25 @@ limitations under the License.
             <scope>compile</scope>
         </dependency>
 
+        <!-- Provided dependencies from NiFi framework -->
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+        </dependency>
+
     </dependencies>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-nar-bundles/minifi-provenance-reporting-bundle/minifi-provenance-reporting-nar/pom.xml
----------------------------------------------------------------------
diff --git 
a/minifi-nar-bundles/minifi-provenance-reporting-bundle/minifi-provenance-reporting-nar/pom.xml
 
b/minifi-nar-bundles/minifi-provenance-reporting-bundle/minifi-provenance-reporting-nar/pom.xml
new file mode 100644
index 0000000..d353b91
--- /dev/null
+++ 
b/minifi-nar-bundles/minifi-provenance-reporting-bundle/minifi-provenance-reporting-nar/pom.xml
@@ -0,0 +1,84 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+    <!--
+  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.
+-->
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.nifi.minifi</groupId>
+        <artifactId>minifi-provenance-reporting-bundle</artifactId>
+        <version>0.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>minifi-provenance-reporting-nar</artifactId>
+    <packaging>nar</packaging>
+    <properties>
+        <maven.javadoc.skip>true</maven.javadoc.skip>
+        <source.skip>true</source.skip>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.nifi</groupId>
+            <artifactId>nifi-site-to-site-reporting-task</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.nifi.minifi</groupId>
+            <artifactId>minifi-standard-services-api-nar</artifactId>
+            <type>nar</type>
+        </dependency>
+
+        <!-- Provided dependencies -->
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-mapper-asl</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpcore</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpcore-nio</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.nifi</groupId>
+            <artifactId>nifi-client-dto</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpasyncclient</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+    </dependencies>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-nar-bundles/minifi-provenance-reporting-bundle/pom.xml
----------------------------------------------------------------------
diff --git a/minifi-nar-bundles/minifi-provenance-reporting-bundle/pom.xml 
b/minifi-nar-bundles/minifi-provenance-reporting-bundle/pom.xml
new file mode 100644
index 0000000..7863a15
--- /dev/null
+++ b/minifi-nar-bundles/minifi-provenance-reporting-bundle/pom.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+    <!--
+  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.
+-->
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.nifi.minifi</groupId>
+        <artifactId>minifi-nar-bundles</artifactId>
+        <version>0.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>minifi-provenance-reporting-bundle</artifactId>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>minifi-provenance-reporting-nar</module>
+    </modules>
+
+</project>

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-nar-bundles/minifi-ssl-context-service-nar/pom.xml
----------------------------------------------------------------------
diff --git a/minifi-nar-bundles/minifi-ssl-context-service-nar/pom.xml 
b/minifi-nar-bundles/minifi-ssl-context-service-nar/pom.xml
index 35f27fa..91ee6af 100644
--- a/minifi-nar-bundles/minifi-ssl-context-service-nar/pom.xml
+++ b/minifi-nar-bundles/minifi-ssl-context-service-nar/pom.xml
@@ -57,5 +57,25 @@
                 </exclusion>
             </exclusions>
         </dependency>
+
+        <!-- Provided dependencies from NiFi framework -->
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+        </dependency>
     </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/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 cb4793c..06b10c7 100644
--- a/minifi-nar-bundles/minifi-standard-services-api-nar/pom.xml
+++ b/minifi-nar-bundles/minifi-standard-services-api-nar/pom.xml
@@ -60,6 +60,7 @@
             <artifactId>nifi-hbase-client-service-api</artifactId>
             <scope>compile</scope>
         </dependency>
+
         <!-- Manage provided dependencies in lib -->
         <dependency>
             <groupId>org.bouncycastle</groupId>
@@ -76,5 +77,19 @@
             <artifactId>bcpkix-jdk15on</artifactId>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+        </dependency>
+
     </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-nar-bundles/pom.xml
----------------------------------------------------------------------
diff --git a/minifi-nar-bundles/pom.xml b/minifi-nar-bundles/pom.xml
index e60b8d7..f2a1006 100644
--- a/minifi-nar-bundles/pom.xml
+++ b/minifi-nar-bundles/pom.xml
@@ -26,6 +26,7 @@
     <modules>
         <module>minifi-framework-bundle</module>
         <module>minifi-provenance-repository-bundle</module>
+        <module>minifi-provenance-reporting-bundle</module>
         <module>minifi-update-attribute-nar</module>
         <module>minifi-standard-services-api-nar</module>
         <module>minifi-standard-nar</module>

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMain.java
----------------------------------------------------------------------
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMain.java
 
b/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMain.java
index 76d1a5f..2077f0b 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMain.java
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMain.java
@@ -145,9 +145,6 @@ public class ConfigMain {
 
         Set<RemoteProcessGroupDTO> remoteProcessGroups = 
getAll(allFlowSnippets, 
FlowSnippetDTO::getRemoteProcessGroups).collect(Collectors.toSet());
 
-        // RPGs with no name get Target URI as name
-        remoteProcessGroups.stream().filter(r -> 
StringUtil.isNullOrEmpty(r.getName())).forEach(r -> 
r.setName(r.getTargetUri()));
-
         Map<String, String> connectableNameMap = getAll(allFlowSnippets, 
FlowSnippetDTO::getProcessors).collect(Collectors.toMap(ComponentDTO::getId, 
ProcessorDTO::getName));
 
         for (RemoteProcessGroupDTO remoteProcessGroupDTO : 
remoteProcessGroups) {

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteProcessingGroupSchemaFunction.java
----------------------------------------------------------------------
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteProcessingGroupSchemaFunction.java
 
b/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteProcessingGroupSchemaFunction.java
index 2ad2e67..95b9ff9 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteProcessingGroupSchemaFunction.java
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteProcessingGroupSchemaFunction.java
@@ -40,6 +40,7 @@ public class RemoteProcessingGroupSchemaFunction implements 
Function<RemoteProce
     @Override
     public RemoteProcessingGroupSchema apply(RemoteProcessGroupDTO 
remoteProcessGroupDTO) {
         Map<String, Object> map = new HashMap<>();
+        map.put(CommonPropertyKeys.ID_KEY, remoteProcessGroupDTO.getId());
         map.put(CommonPropertyKeys.NAME_KEY, remoteProcessGroupDTO.getName());
         map.put(RemoteProcessingGroupSchema.URL_KEY, 
remoteProcessGroupDTO.getTargetUri());
 

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMainTest.java
----------------------------------------------------------------------
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMainTest.java
 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMainTest.java
index 9f7559e..10f263e 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMainTest.java
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMainTest.java
@@ -346,7 +346,7 @@ public class ConfigMainTest {
         Set<String> extraKeys = new HashSet<>(actual.keySet());
         extraKeys.removeAll(expected.keySet());
         for (String extraKey : extraKeys) {
-            differences.add("Extra key: " + path + extraKey);
+            differences.add("Extra key: " + path + " " + extraKey);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteProcessingGroupSchemaTest.java
----------------------------------------------------------------------
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteProcessingGroupSchemaTest.java
 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteProcessingGroupSchemaTest.java
index b12e16c..bcd0a77 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteProcessingGroupSchemaTest.java
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteProcessingGroupSchemaTest.java
@@ -29,6 +29,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
+import java.util.UUID;
 import java.util.stream.Collectors;
 
 import static org.junit.Assert.assertEquals;
@@ -37,6 +38,7 @@ import static org.junit.Assert.assertNull;
 
 public class RemoteProcessingGroupSchemaTest extends 
BaseSchemaTester<RemoteProcessingGroupSchema, RemoteProcessGroupDTO> {
     private final RemoteInputPortSchemaTest remoteInputPortSchemaTest;
+    private String testId = UUID.randomUUID().toString();
     private String testName = "testName";
     private String testUrl = "testUrl";
     private String testComment = "testComment";
@@ -53,6 +55,7 @@ public class RemoteProcessingGroupSchemaTest extends 
BaseSchemaTester<RemoteProc
         remoteInputPortSchemaTest.setup();
 
         dto = new RemoteProcessGroupDTO();
+        dto.setId(testId);
         dto.setName(testName);
         dto.setTargetUri(testUrl);
 
@@ -66,6 +69,7 @@ public class RemoteProcessingGroupSchemaTest extends 
BaseSchemaTester<RemoteProc
 
         map = new HashMap<>();
 
+        map.put(CommonPropertyKeys.ID_KEY, testId);
         map.put(CommonPropertyKeys.NAME_KEY, testName);
         map.put(RemoteProcessingGroupSchema.URL_KEY, testUrl);
         map.put(CommonPropertyKeys.INPUT_PORTS_KEY, new 
ArrayList<>(Arrays.asList(remoteInputPortSchemaTest.map)));
@@ -75,10 +79,17 @@ public class RemoteProcessingGroupSchemaTest extends 
BaseSchemaTester<RemoteProc
     }
 
     @Test
+    public void testNoId() {
+        dto.setId(null);
+        map.remove(CommonPropertyKeys.ID_KEY);
+        assertDtoAndMapConstructorAreSame(1);
+    }
+
+    @Test
     public void testNoName() {
         dto.setName(null);
         map.remove(CommonPropertyKeys.NAME_KEY);
-        assertDtoAndMapConstructorAreSame(1);
+        assertDtoAndMapConstructorAreSame(0);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest-v1.yml
----------------------------------------------------------------------
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest-v1.yml
 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest-v1.yml
index 6a07ae4..3cc4ca7 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest-v1.yml
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest-v1.yml
@@ -249,7 +249,7 @@ Connections:
   flowfile expiration: 0 sec
   queue prioritizer class: 
org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
 Remote Processing Groups:
-- name: http://nifi:8080/nifi
+- name: ''
   url: http://nifi:8080/nifi
   comment: ''
   timeout: 30 sec

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.xml
----------------------------------------------------------------------
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.xml
 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.xml
index 38e5be2..99358ba 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.xml
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.xml
@@ -24,7 +24,7 @@ limitations under the License.
       <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
       <backPressureObjectThreshold>10000</backPressureObjectThreshold>
       <destination>
-        <groupId>5b0a5c18-a02e-4a85-8080-0187ee679763</groupId>
+        <groupId>d41d8cd9-8f00-3204-a980-0998ecf8427e</groupId>
         <id>b23a4621-cf19-42e6-967c-ffd3716e6a24</id>
         <type>REMOTE_INPUT_PORT</type>
       </destination>
@@ -216,7 +216,7 @@ limitations under the License.
         <y>1567.7883365880348</y>
       </bends>
       <destination>
-        <groupId>5b0a5c18-a02e-4a85-8080-0187ee679763</groupId>
+        <groupId>d41d8cd9-8f00-3204-a980-0998ecf8427e</groupId>
         <id>b23a4621-cf19-42e6-967c-ffd3716e6a24</id>
         <type>REMOTE_INPUT_PORT</type>
       </destination>
@@ -620,7 +620,7 @@ limitations under the License.
       <type>org.apache.nifi.processors.standard.InvokeHTTP</type>
     </processors>
     <remoteProcessGroups>
-      <id>5b0a5c18-a02e-4a85-8080-0187ee679763</id>
+      <id>d41d8cd9-8f00-3204-a980-0998ecf8427e</id>
       <parentGroupId>ee27ad42-d125-4d09-a9f5-c42da132ab6b</parentGroupId>
       <position>
         <x>636.0</x>

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml
----------------------------------------------------------------------
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml
 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml
index b518f28..30e33f4 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml
@@ -282,7 +282,8 @@ Connections:
   flowfile expiration: 0 sec
   queue prioritizer class: 
org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
 Remote Processing Groups:
-- name: http://nifi:8080/nifi
+- id: d41d8cd9-8f00-3204-a980-0998ecf8427e
+  name: ''
   url: http://nifi:8080/nifi
   comment: ''
   timeout: 30 sec

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.yml
----------------------------------------------------------------------
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.yml
 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.yml
index 7783c53..064cd44 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.yml
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.yml
@@ -174,7 +174,8 @@ Process Groups:
       flowfile expiration: 0 sec
       queue prioritizer class: ''
     Remote Processing Groups:
-    - name: http://localhost:9091/nifi
+    - id: 21a651bb-0158-1000-0000-000000000000
+      name: ''
       url: http://localhost:9091/nifi
       comment: ''
       timeout: 30 sec
@@ -232,7 +233,8 @@ Process Groups:
     flowfile expiration: 0 sec
     queue prioritizer class: ''
   Remote Processing Groups:
-  - name: http://localhost:9090/nifi
+  - id: 21a4e2f0-0158-1000-0000-000000000000
+    name: ''
     url: http://localhost:9090/nifi
     comment: ''
     timeout: 30 sec

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/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 dab1e8e..b6a4902 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/config.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/config.yml
@@ -82,7 +82,8 @@ Connections:
   flowfile expiration: 60 sec
   queue prioritizer class: 
org.apache.nifi.prioritizer.NewestFlowFileFirstPrioritizer
 Remote Processing Groups:
-- name: NiFi Flow
+- id: 94b8e610-b4ed-3ec9-b26f-c839931bf3e3
+  name: NiFi Flow
   url: https://localhost:8090/nifi
   comment: ''
   timeout: 30 secs

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/aeea72b7/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index d167191..02adbb8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -248,6 +248,11 @@ limitations under the License.
             </dependency>
             <dependency>
                 <groupId>ch.qos.logback</groupId>
+                <artifactId>logback-core</artifactId>
+                <version>${logback.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>ch.qos.logback</groupId>
                 <artifactId>jcl-over-slf4j</artifactId>
                 <version>${logback.version}</version>
                 <scope>provided</scope>
@@ -581,6 +586,26 @@ limitations under the License.
                 <version>1.54</version>
                 <scope>provided</scope>
             </dependency>
+            <dependency>
+                <groupId>org.apache.httpcomponents</groupId>
+                <artifactId>httpcore</artifactId>
+                <version>4.4.1</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.httpcomponents</groupId>
+                <artifactId>httpcore-nio</artifactId>
+                <version>4.4.5</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.nifi</groupId>
+                <artifactId>nifi-client-dto</artifactId>
+                <version>${org.apache.nifi.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.httpcomponents</groupId>
+                <artifactId>httpasyncclient</artifactId>
+                <version>4.1.1</version>
+            </dependency>
 
             <!-- Test Dependencies -->
             <dependency>

Reply via email to