MINIFI-137 Adding option to RPGs to transmit via HTTP. Also corrected a typo that had RPGs as 'Remote Processing Groups' instead of 'Remote Process Groups' (extra 'ing').
This closes #57
Signed-off-by: Bryan Rosander <brosander@apache.org>
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 98fccb5..3000fc8 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
@@ -35,7 +35,7 @@
import org.apache.nifi.minifi.commons.schema.ProvenanceReportingSchema;
import org.apache.nifi.minifi.commons.schema.ProvenanceRepositorySchema;
import org.apache.nifi.minifi.commons.schema.RemoteInputPortSchema;
-import org.apache.nifi.minifi.commons.schema.RemoteProcessingGroupSchema;
+import org.apache.nifi.minifi.commons.schema.RemoteProcessGroupSchema;
import org.apache.nifi.minifi.commons.schema.common.ConvertableSchema;
import org.apache.nifi.minifi.commons.schema.common.Schema;
import org.apache.nifi.minifi.commons.schema.common.StringUtil;
@@ -385,8 +385,8 @@
addProcessGroup(doc, processGroups, child, parentGroupIdResolver);
}
- for (RemoteProcessingGroupSchema remoteProcessingGroupSchema : processGroupSchema.getRemoteProcessingGroups()) {
- addRemoteProcessGroup(element, remoteProcessingGroupSchema);
+ for (RemoteProcessGroupSchema remoteProcessGroupSchema : processGroupSchema.getRemoteProcessGroups()) {
+ addRemoteProcessGroup(element, remoteProcessGroupSchema);
}
for (ConnectionSchema connectionConfig : processGroupSchema.getConnections()) {
@@ -520,21 +520,22 @@
parentElement.appendChild(element);
}
- protected static void addRemoteProcessGroup(final Element parentElement, RemoteProcessingGroupSchema remoteProcessingGroupProperties) throws ConfigurationChangeException {
+ protected static void addRemoteProcessGroup(final Element parentElement, RemoteProcessGroupSchema remoteProcessGroupProperties) throws ConfigurationChangeException {
try {
final Document doc = parentElement.getOwnerDocument();
final Element element = doc.createElement("remoteProcessGroup");
parentElement.appendChild(element);
- addTextElement(element, "id", remoteProcessingGroupProperties.getId());
- addTextElement(element, "name", remoteProcessingGroupProperties.getName());
+ addTextElement(element, "id", remoteProcessGroupProperties.getId());
+ addTextElement(element, "name", remoteProcessGroupProperties.getName());
addPosition(element);
- addTextElement(element, "comment", remoteProcessingGroupProperties.getComment());
- addTextElement(element, "url", remoteProcessingGroupProperties.getUrl());
- addTextElement(element, "timeout", remoteProcessingGroupProperties.getTimeout());
- addTextElement(element, "yieldPeriod", remoteProcessingGroupProperties.getYieldPeriod());
+ addTextElement(element, "comment", remoteProcessGroupProperties.getComment());
+ addTextElement(element, "url", remoteProcessGroupProperties.getUrl());
+ addTextElement(element, "timeout", remoteProcessGroupProperties.getTimeout());
+ addTextElement(element, "yieldPeriod", remoteProcessGroupProperties.getYieldPeriod());
addTextElement(element, "transmitting", "true");
+ addTextElement(element, "transportProtocol", remoteProcessGroupProperties.getTransportProtocol());
- List<RemoteInputPortSchema> remoteInputPorts = remoteProcessingGroupProperties.getInputPorts();
+ List<RemoteInputPortSchema> remoteInputPorts = remoteProcessGroupProperties.getInputPorts();
for (RemoteInputPortSchema remoteInputPortSchema : remoteInputPorts) {
addRemoteGroupPort(element, remoteInputPortSchema);
}
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 0d75823..3d266ad 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
@@ -21,7 +21,7 @@
import org.apache.nifi.minifi.commons.schema.ProcessGroupSchema;
import org.apache.nifi.minifi.commons.schema.RemoteInputPortSchema;
-import org.apache.nifi.minifi.commons.schema.RemoteProcessingGroupSchema;
+import org.apache.nifi.minifi.commons.schema.RemoteProcessGroupSchema;
import org.apache.nifi.minifi.commons.schema.common.BaseSchemaWithId;
import java.util.Collection;
@@ -63,9 +63,9 @@
}
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.getId());
+ for (RemoteProcessGroupSchema remoteProcessGroupSchema : processGroupSchema.getRemoteProcessGroups()) {
+ for (RemoteInputPortSchema remoteInputPortSchema : remoteProcessGroupSchema.getInputPorts()) {
+ output.put(remoteInputPortSchema.getId(), remoteProcessGroupSchema.getId());
}
}
processGroupSchema.getProcessGroupSchemas().forEach(p -> getRemoteInputPortParentIdMap(p, output));
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 4aff488..726b686 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
@@ -25,7 +25,7 @@
import org.apache.nifi.minifi.commons.schema.ProcessGroupSchema;
import org.apache.nifi.minifi.commons.schema.ProcessorSchema;
import org.apache.nifi.minifi.commons.schema.RemoteInputPortSchema;
-import org.apache.nifi.minifi.commons.schema.RemoteProcessingGroupSchema;
+import org.apache.nifi.minifi.commons.schema.RemoteProcessGroupSchema;
import org.apache.nifi.minifi.commons.schema.common.StringUtil;
import org.apache.nifi.minifi.commons.schema.serialization.SchemaLoader;
import org.junit.Before;
@@ -142,9 +142,9 @@
}
NodeList remoteProcessGroupElements = (NodeList) xPathFactory.newXPath().evaluate("remoteProcessGroup", element, XPathConstants.NODESET);
- assertEquals(processGroupSchema.getRemoteProcessingGroups().size(), remoteProcessGroupElements.getLength());
+ assertEquals(processGroupSchema.getRemoteProcessGroups().size(), remoteProcessGroupElements.getLength());
for (int i = 0; i < remoteProcessGroupElements.getLength(); i++) {
- testRemoteProcessGroups((Element) remoteProcessGroupElements.item(i), processGroupSchema.getRemoteProcessingGroups().get(i));
+ testRemoteProcessGroups((Element) remoteProcessGroupElements.item(i), processGroupSchema.getRemoteProcessGroups().get(i));
}
NodeList funnelElements = (NodeList) xPathFactory.newXPath().evaluate("funnel", element, XPathConstants.NODESET);
@@ -192,7 +192,7 @@
testProperties(element, processorSchema.getProperties());
}
- private void testRemoteProcessGroups(Element element, RemoteProcessingGroupSchema remoteProcessingGroupSchema) throws XPathExpressionException {
+ private void testRemoteProcessGroups(Element element, RemoteProcessGroupSchema remoteProcessingGroupSchema) throws XPathExpressionException {
assertEquals(remoteProcessingGroupSchema.getId(), getText(element, "id"));
assertEquals(remoteProcessingGroupSchema.getName(), getText(element, "name"));
assertEquals(remoteProcessingGroupSchema.getComment(), getText(element, "comment"));
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 424c0fc..2855c29 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
@@ -39,13 +39,13 @@
public void testRemoteInputPortParentId() throws IOException, SchemaLoaderException {
List<String> configLines = new ArrayList<>();
configLines.add("MiNiFi Config Version: 2");
- configLines.add("Remote Processing Groups:");
+ configLines.add("Remote Process 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("- Remote Process Groups:");
configLines.add(" - name: rpgTwo");
configLines.add(" id: rpgTwoId");
configLines.add(" Input Ports:");
diff --git a/minifi-bootstrap/src/test/java/org/apache/nifi/minifi/bootstrap/util/TestConfigTransformer.java b/minifi-bootstrap/src/test/java/org/apache/nifi/minifi/bootstrap/util/TestConfigTransformer.java
index a0077fe..d644ed3 100644
--- a/minifi-bootstrap/src/test/java/org/apache/nifi/minifi/bootstrap/util/TestConfigTransformer.java
+++ b/minifi-bootstrap/src/test/java/org/apache/nifi/minifi/bootstrap/util/TestConfigTransformer.java
@@ -117,7 +117,7 @@
}
@Test
- public void doesTransformOnMultipleRemoteProcessingGroups() throws Exception {
+ public void doesTransformOnMultipleRemoteProcessGroups() throws Exception {
ConfigTransformer.transformConfigFile("./src/test/resources/config-multiple-RPGs.yml", "./target/");
File nifiPropertiesFile = new File("./target/nifi.properties");
diff --git a/minifi-bootstrap/src/test/resources/config-funnel-and-rpg.yml b/minifi-bootstrap/src/test/resources/config-funnel-and-rpg.yml
index bcc91d6..fd58662 100644
--- a/minifi-bootstrap/src/test/resources/config-funnel-and-rpg.yml
+++ b/minifi-bootstrap/src/test/resources/config-funnel-and-rpg.yml
@@ -151,7 +151,7 @@
max work queue data size: 0 MB
flowfile expiration: 0 sec
queue prioritizer class: ''
-Remote Processing Groups:
+Remote Process Groups:
- name: NiFi Flow
url: http://localhost:8080/nifi
comment: ''
diff --git a/minifi-bootstrap/src/test/resources/config-process-groups.yml b/minifi-bootstrap/src/test/resources/config-process-groups.yml
index e0e5ef3..aa788db 100644
--- a/minifi-bootstrap/src/test/resources/config-process-groups.yml
+++ b/minifi-bootstrap/src/test/resources/config-process-groups.yml
@@ -172,7 +172,7 @@
max work queue data size: 1 GB
flowfile expiration: 0 sec
queue prioritizer class: ''
- Remote Processing Groups:
+ Remote Process Groups:
- name: http://localhost:9091/nifi
url: http://localhost:9091/nifi
comment: ''
@@ -229,7 +229,7 @@
max work queue data size: 1 GB
flowfile expiration: 0 sec
queue prioritizer class: ''
- Remote Processing Groups:
+ Remote Process Groups:
- name: http://localhost:9090/nifi
url: http://localhost:9090/nifi
comment: ''
@@ -273,4 +273,4 @@
max work queue data size: 1 GB
flowfile expiration: 0 sec
queue prioritizer class: ''
-Remote Processing Groups: []
+Remote Process Groups: []
diff --git a/minifi-bootstrap/src/test/resources/config.yml b/minifi-bootstrap/src/test/resources/config.yml
index 46b3674..3b20902 100644
--- a/minifi-bootstrap/src/test/resources/config.yml
+++ b/minifi-bootstrap/src/test/resources/config.yml
@@ -81,7 +81,7 @@
max work queue data size: 1 MB
flowfile expiration: 60 sec
queue prioritizer class: org.apache.nifi.prioritizer.NewestFlowFileFirstPrioritizer
-Remote Processing Groups:
+Remote Process Groups:
- id: 8644cbcc-a45c-40e0-964d-4d243afcbbb2
name: NiFi Flow
url: https://localhost:8090/nifi
diff --git a/minifi-bootstrap/src/test/resources/stress-test-framework-funnel.yml b/minifi-bootstrap/src/test/resources/stress-test-framework-funnel.yml
index bbbda3a..95e8f52 100644
--- a/minifi-bootstrap/src/test/resources/stress-test-framework-funnel.yml
+++ b/minifi-bootstrap/src/test/resources/stress-test-framework-funnel.yml
@@ -208,4 +208,4 @@
max work queue data size: 0 MB
flowfile expiration: 0 sec
queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
-Remote Processing Groups: []
\ No newline at end of file
+Remote Process Groups: []
\ No newline at end of file
diff --git a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ConfigSchema.java b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ConfigSchema.java
index 333adf8..0f5d7e9 100644
--- a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ConfigSchema.java
+++ b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ConfigSchema.java
@@ -54,7 +54,7 @@
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_FUNNEL_IDS = "Found the following duplicate funnel 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_PROCESS_GROUP_NAMES = "Found the following duplicate remote process group names: ";
public static String TOP_LEVEL_NAME = "top level";
private FlowControllerSchema flowControllerProperties;
private CorePropertiesSchema coreProperties;
@@ -98,13 +98,13 @@
List<ProcessGroupSchema> allProcessGroups = getAllProcessGroups(processGroupSchema);
List<ConnectionSchema> allConnectionSchemas = allProcessGroups.stream().flatMap(p -> p.getConnections().stream()).collect(Collectors.toList());
- List<RemoteProcessingGroupSchema> allRemoteProcessingGroups = allProcessGroups.stream().flatMap(p -> p.getRemoteProcessingGroups().stream()).collect(Collectors.toList());
+ List<RemoteProcessGroupSchema> allRemoteProcessGroups = allProcessGroups.stream().flatMap(p -> p.getRemoteProcessGroups().stream()).collect(Collectors.toList());
List<String> allProcessorIds = allProcessGroups.stream().flatMap(p -> p.getProcessors().stream()).map(ProcessorSchema::getId).collect(Collectors.toList());
List<String> allFunnelIds = allProcessGroups.stream().flatMap(p -> p.getFunnels().stream()).map(FunnelSchema::getId).collect(Collectors.toList());
List<String> allConnectionIds = allConnectionSchemas.stream().map(ConnectionSchema::getId).collect(Collectors.toList());
- List<String> allRemoteProcessingGroupNames = allRemoteProcessingGroups.stream().map(RemoteProcessingGroupSchema::getName).collect(Collectors.toList());
- List<String> allRemoteInputPortIds = allRemoteProcessingGroups.stream().filter(r -> r.getInputPorts() != null)
+ List<String> allRemoteProcessGroupNames = allRemoteProcessGroups.stream().map(RemoteProcessGroupSchema::getName).collect(Collectors.toList());
+ List<String> allRemoteInputPortIds = allRemoteProcessGroups.stream().filter(r -> r.getInputPorts() != null)
.flatMap(r -> r.getInputPorts().stream()).map(RemoteInputPortSchema::getId).collect(Collectors.toList());
List<String> allInputPortIds = allProcessGroups.stream().flatMap(p -> p.getInputPortSchemas().stream()).map(PortSchema::getId).collect(Collectors.toList());
List<String> allOutputPortIds = allProcessGroups.stream().flatMap(p -> p.getOutputPortSchemas().stream()).map(PortSchema::getId).collect(Collectors.toList());
@@ -112,7 +112,7 @@
checkForDuplicates(this::addValidationIssue, FOUND_THE_FOLLOWING_DUPLICATE_PROCESSOR_IDS, allProcessorIds);
checkForDuplicates(this::addValidationIssue, FOUND_THE_FOLLOWING_DUPLICATE_FUNNEL_IDS, allFunnelIds);
checkForDuplicates(this::addValidationIssue, FOUND_THE_FOLLOWING_DUPLICATE_CONNECTION_IDS, allConnectionIds);
- checkForDuplicates(this::addValidationIssue, FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESSING_GROUP_NAMES, allRemoteProcessingGroupNames);
+ checkForDuplicates(this::addValidationIssue, FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESS_GROUP_NAMES, allRemoteProcessGroupNames);
checkForDuplicates(this::addValidationIssue, FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_INPUT_PORT_IDS, allRemoteInputPortIds);
checkForDuplicates(this::addValidationIssue, FOUND_THE_FOLLOWING_DUPLICATE_INPUT_PORT_IDS, allInputPortIds);
checkForDuplicates(this::addValidationIssue, FOUND_THE_FOLLOWING_DUPLICATE_OUTPUT_PORT_IDS, allOutputPortIds);
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 be7f9fc..028f666 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
@@ -37,7 +37,7 @@
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.NAME_KEY;
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.OUTPUT_PORTS_KEY;
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.PROCESSORS_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.REMOTE_PROCESS_GROUPS_KEY;
public class ProcessGroupSchema extends BaseSchemaWithIdAndName implements WritableSchema, ConvertableSchema<ProcessGroupSchema> {
@@ -48,7 +48,7 @@
private List<ProcessorSchema> processors;
private List<FunnelSchema> funnels;
private List<ConnectionSchema> connections;
- private List<RemoteProcessingGroupSchema> remoteProcessingGroups;
+ private List<RemoteProcessGroupSchema> remoteProcessGroups;
private List<ProcessGroupSchema> processGroupSchemas;
private List<PortSchema> inputPortSchemas;
private List<PortSchema> outputPortSchemas;
@@ -58,7 +58,7 @@
processors = getOptionalKeyAsList(map, PROCESSORS_KEY, ProcessorSchema::new, wrapperName);
funnels = getOptionalKeyAsList(map, FUNNELS_KEY, FunnelSchema::new, wrapperName);
- remoteProcessingGroups = getOptionalKeyAsList(map, REMOTE_PROCESSING_GROUPS_KEY, RemoteProcessingGroupSchema::new, wrapperName);
+ remoteProcessGroups = getOptionalKeyAsList(map, REMOTE_PROCESS_GROUPS_KEY, RemoteProcessGroupSchema::new, wrapperName);
connections = getOptionalKeyAsList(map, CONNECTIONS_KEY, ConnectionSchema::new, wrapperName);
inputPortSchemas = getOptionalKeyAsList(map, INPUT_PORTS_KEY, m -> new PortSchema(m, "InputPort(id: {id}, name: {name})"), wrapperName);
outputPortSchemas = getOptionalKeyAsList(map, OUTPUT_PORTS_KEY, m -> new PortSchema(m, "OutputPort(id: {id}, name: {name})"), wrapperName);
@@ -83,7 +83,7 @@
connections.stream().filter(c -> funnelIds.contains(c.getSourceId())).forEachOrdered(c -> c.setNeedsSourceRelationships(false));
addIssuesIfNotNull(processors);
- addIssuesIfNotNull(remoteProcessingGroups);
+ addIssuesIfNotNull(remoteProcessGroups);
addIssuesIfNotNull(processGroupSchemas);
addIssuesIfNotNull(funnels);
addIssuesIfNotNull(connections);
@@ -102,7 +102,7 @@
putListIfNotNull(result, OUTPUT_PORTS_KEY, outputPortSchemas);
putListIfNotNull(result, FUNNELS_KEY, funnels);
putListIfNotNull(result, CONNECTIONS_KEY, connections);
- putListIfNotNull(result, REMOTE_PROCESSING_GROUPS_KEY, remoteProcessingGroups);
+ putListIfNotNull(result, REMOTE_PROCESS_GROUPS_KEY, remoteProcessGroups);
return result;
}
@@ -118,8 +118,8 @@
return connections;
}
- public List<RemoteProcessingGroupSchema> getRemoteProcessingGroups() {
- return remoteProcessingGroups;
+ public List<RemoteProcessGroupSchema> getRemoteProcessGroups() {
+ return remoteProcessGroups;
}
public List<ProcessGroupSchema> getProcessGroupSchemas() {
diff --git a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ProvenanceReportingSchema.java b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ProvenanceReportingSchema.java
index 6490511..d197ccb 100644
--- a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ProvenanceReportingSchema.java
+++ b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ProvenanceReportingSchema.java
@@ -28,7 +28,7 @@
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.SCHEDULING_PERIOD_KEY;
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.SCHEDULING_STRATEGY_KEY;
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.USE_COMPRESSION_KEY;
-import static org.apache.nifi.minifi.commons.schema.RemoteProcessingGroupSchema.TIMEOUT_KEY;
+import static org.apache.nifi.minifi.commons.schema.RemoteProcessGroupSchema.TIMEOUT_KEY;
/**
*
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/RemoteProcessGroupSchema.java
similarity index 71%
rename from minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/RemoteProcessingGroupSchema.java
rename to minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/RemoteProcessGroupSchema.java
index 44109de..ccec389 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/RemoteProcessGroupSchema.java
@@ -26,13 +26,33 @@
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.INPUT_PORTS_KEY;
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.YIELD_PERIOD_KEY;
-public class RemoteProcessingGroupSchema extends BaseSchemaWithIdAndName {
+public class RemoteProcessGroupSchema extends BaseSchemaWithIdAndName {
public static final String URL_KEY = "url";
public static final String TIMEOUT_KEY = "timeout";
+ public static final String TRANSPORT_PROTOCOL_KEY = "transport protocol";
+
+ private enum transportProtocolOptions {
+ RAW("RAW"), HTTP("HTTP");
+
+ private final String stringValue;
+
+ private transportProtocolOptions(final String s) {
+ stringValue = s;
+ }
+
+ public String toString() {
+ return stringValue;
+ }
+
+ public static boolean valid(String input) {
+ return RAW.stringValue.equals(input) || HTTP.stringValue.equals(input);
+ }
+ }
public static final String DEFAULT_COMMENT = "";
public static final String DEFAULT_TIMEOUT = "30 secs";
public static final String DEFAULT_YIELD_PERIOD = "10 sec";
+ public static final String DEFAULT_TRANSPORT_PROTOCOL= "RAW";
private String url;
private List<RemoteInputPortSchema> inputPorts;
@@ -40,9 +60,10 @@
private String comment = DEFAULT_COMMENT;
private String timeout = DEFAULT_TIMEOUT;
private String yieldPeriod = DEFAULT_YIELD_PERIOD;
+ private String transportProtocol = DEFAULT_TRANSPORT_PROTOCOL;
- public RemoteProcessingGroupSchema(Map map) {
- super(map, "RemoteProcessingGroup(id: {id}, name: {name})");
+ public RemoteProcessGroupSchema(Map map) {
+ super(map, "RemoteProcessGroup(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);
@@ -55,6 +76,11 @@
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);
+ transportProtocol = getOptionalKeyAsType(map, TRANSPORT_PROTOCOL_KEY, String.class, wrapperName, DEFAULT_TRANSPORT_PROTOCOL);
+
+ if (!transportProtocolOptions.valid(transportProtocol)){
+ addValidationIssue(TRANSPORT_PROTOCOL_KEY, wrapperName, "it must be either 'RAW' or 'HTTP' but is '" + transportProtocol + "'");
+ }
}
@Override
@@ -64,6 +90,7 @@
result.put(COMMENT_KEY, comment);
result.put(TIMEOUT_KEY, timeout);
result.put(YIELD_PERIOD_KEY, yieldPeriod);
+ result.put(TRANSPORT_PROTOCOL_KEY, transportProtocol);
putListIfNotNull(result, INPUT_PORTS_KEY, inputPorts);
return result;
}
@@ -87,4 +114,8 @@
public List<RemoteInputPortSchema> getInputPorts() {
return inputPorts;
}
+
+ public String getTransportProtocol() {
+ return transportProtocol;
+ }
}
diff --git a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/common/CommonPropertyKeys.java b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/common/CommonPropertyKeys.java
index dcf0500..4efb258 100644
--- a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/common/CommonPropertyKeys.java
+++ b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/common/CommonPropertyKeys.java
@@ -29,7 +29,7 @@
public static final String PROCESSORS_KEY = "Processors";
public static final String CONNECTIONS_KEY = "Connections";
public static final String PROVENANCE_REPORTING_KEY = "Provenance Reporting";
- public static final String REMOTE_PROCESSING_GROUPS_KEY = "Remote Processing Groups";
+ public static final String REMOTE_PROCESS_GROUPS_KEY = "Remote Process Groups";
public static final String INPUT_PORTS_KEY = "Input Ports";
public static final String OUTPUT_PORTS_KEY = "Output Ports";
public static final String FUNNELS_KEY = "Funnels";
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 526c92b..37f34b1 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
@@ -30,7 +30,7 @@
import org.apache.nifi.minifi.commons.schema.ProvenanceReportingSchema;
import org.apache.nifi.minifi.commons.schema.ProvenanceRepositorySchema;
import org.apache.nifi.minifi.commons.schema.RemoteInputPortSchema;
-import org.apache.nifi.minifi.commons.schema.RemoteProcessingGroupSchema;
+import org.apache.nifi.minifi.commons.schema.RemoteProcessGroupSchema;
import org.apache.nifi.minifi.commons.schema.SecurityPropertiesSchema;
import org.apache.nifi.minifi.commons.schema.common.BaseSchema;
import org.apache.nifi.minifi.commons.schema.common.ConvertableSchema;
@@ -57,10 +57,13 @@
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.PROCESSORS_KEY;
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.PROVENANCE_REPORTING_KEY;
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.PROVENANCE_REPO_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.REMOTE_PROCESS_GROUPS_KEY;
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.SECURITY_PROPS_KEY;
public class ConfigSchemaV1 extends BaseSchema implements ConvertableSchema<ConfigSchema> {
+
+ public static final String REMOTE_PROCESS_GROUPS_KEY_V1 = "Remote Processing Groups";
+
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_REMOTE_PROCESSING_GROUP_NAMES = "Found the following duplicate remote processing group names: ";
@@ -77,7 +80,7 @@
private SecurityPropertiesSchema securityProperties;
private List<ProcessorSchemaV1> processors;
private List<ConnectionSchemaV1> connections;
- private List<RemoteProcessingGroupSchemaV1> remoteProcessingGroups;
+ private List<RemoteProcessGroupSchemaV1> remoteProcessingGroups;
private ProvenanceReportingSchema provenanceReportingProperties;
private ProvenanceRepositorySchema provenanceRepositorySchema;
@@ -94,8 +97,8 @@
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",
- RemoteProcessingGroupSchemaV1.class, REMOTE_PROCESSING_GROUPS_KEY);
+ remoteProcessingGroups = convertListToType(getOptionalKeyAsType(map, REMOTE_PROCESS_GROUPS_KEY_V1, List.class, TOP_LEVEL_NAME, new ArrayList<>()), "remote processing group",
+ RemoteProcessGroupSchemaV1.class, REMOTE_PROCESS_GROUPS_KEY_V1);
connections = convertListToType(getOptionalKeyAsType(map, CONNECTIONS_KEY, List.class, TOP_LEVEL_NAME, new ArrayList<>()), CONNECTIONS_KEY, ConnectionSchemaV1.class, TOP_LEVEL_NAME);
@@ -117,7 +120,7 @@
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(RemoteProcessingGroupSchemaV1::getName)
+ checkForDuplicates(this::addValidationIssue, FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESSING_GROUP_NAMES, remoteProcessingGroups.stream().map(RemoteProcessGroupSchemaV1::getName)
.collect(Collectors.toList()));
Set<String> connectableNames = new HashSet<>(processorNames);
@@ -214,12 +217,12 @@
return connectionSchemas;
}
- protected List<RemoteProcessingGroupSchema> getRemoteProcessingGroupSchemas() {
+ protected List<RemoteProcessGroupSchema> getRemoteProcessGroupSchemas() {
Set<UUID> ids = new HashSet<>();
- List<RemoteProcessingGroupSchema> rpgSchemas= new ArrayList<>(remoteProcessingGroups.size());
+ List<RemoteProcessGroupSchema> rpgSchemas= new ArrayList<>(remoteProcessingGroups.size());
- for (RemoteProcessingGroupSchemaV1 rpg : remoteProcessingGroups) {
- RemoteProcessingGroupSchema rpgSchema = rpg.convert();
+ for (RemoteProcessGroupSchemaV1 rpg : remoteProcessingGroups) {
+ RemoteProcessGroupSchema rpgSchema = rpg.convert();
rpgSchema.setId(getUniqueId(ids, rpgSchema.getName()));
rpgSchemas.add(rpgSchema);
}
@@ -242,7 +245,7 @@
putListIfNotNull(map, PROCESSORS_KEY, processorSchemas);
List<String> validationIssues = getValidationIssues();
putListIfNotNull(map, CONNECTIONS_KEY, getConnectionSchemas(processorSchemas, validationIssues));
- putListIfNotNull(map, REMOTE_PROCESSING_GROUPS_KEY, getRemoteProcessingGroupSchemas());
+ putListIfNotNull(map, REMOTE_PROCESS_GROUPS_KEY, getRemoteProcessGroupSchemas());
putIfNotNull(map, PROVENANCE_REPORTING_KEY, provenanceReportingProperties);
return new ConfigSchema(map, validationIssues);
}
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/RemoteProcessGroupSchemaV1.java
similarity index 90%
rename from minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/v1/RemoteProcessingGroupSchemaV1.java
rename to minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/v1/RemoteProcessGroupSchemaV1.java
index a6d2d62..fe1fd4f 100644
--- 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/RemoteProcessGroupSchemaV1.java
@@ -18,7 +18,7 @@
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.RemoteProcessGroupSchema;
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;
@@ -29,10 +29,10 @@
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.REMOTE_PROCESS_GROUPS_KEY;
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.YIELD_PERIOD_KEY;
-public class RemoteProcessingGroupSchemaV1 extends BaseSchema implements ConvertableSchema<RemoteProcessingGroupSchema> {
+public class RemoteProcessGroupSchemaV1 extends BaseSchema implements ConvertableSchema<RemoteProcessGroupSchema> {
public static final String URL_KEY = "url";
public static final String TIMEOUT_KEY = "timeout";
@@ -48,8 +48,8 @@
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);
+ public RemoteProcessGroupSchemaV1(Map map) {
+ name = getRequiredKeyAsType(map, NAME_KEY, String.class, REMOTE_PROCESS_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);
@@ -65,7 +65,7 @@
}
@Override
- public RemoteProcessingGroupSchema convert() {
+ public RemoteProcessGroupSchema convert() {
Map<String, Object> result = mapSupplier.get();
result.put(NAME_KEY, name);
result.put(URL_KEY, url);
@@ -73,7 +73,7 @@
result.put(TIMEOUT_KEY, timeout);
result.put(YIELD_PERIOD_KEY, yieldPeriod);
putListIfNotNull(result, INPUT_PORTS_KEY, inputPorts);
- return new RemoteProcessingGroupSchema(result);
+ return new RemoteProcessGroupSchema(result);
}
public String getName() {
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 83b5525..0037bce 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
@@ -79,15 +79,15 @@
}
@Test
- public void testRemoteProcessingGroupDuplicateValidationNegativeCase() {
- ConfigSchema configSchema = new ConfigSchema(Collections.singletonMap(CommonPropertyKeys.REMOTE_PROCESSING_GROUPS_KEY, getListWithNames("testName1", "testName2")));
- assertMessageDoesNotExist(configSchema, ConfigSchema.FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESSING_GROUP_NAMES);
+ public void testRemoteProcessGroupDuplicateValidationNegativeCase() {
+ ConfigSchema configSchema = new ConfigSchema(Collections.singletonMap(CommonPropertyKeys.REMOTE_PROCESS_GROUPS_KEY, getListWithNames("testName1", "testName2")));
+ assertMessageDoesNotExist(configSchema, ConfigSchema.FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESS_GROUP_NAMES);
}
@Test
- public void testRemoteProcessingGroupDuplicateValidationPositiveCase() {
- ConfigSchema configSchema = new ConfigSchema(Collections.singletonMap(CommonPropertyKeys.REMOTE_PROCESSING_GROUPS_KEY, getListWithNames("testName1", "testName1")));
- assertMessageDoesExist(configSchema, ConfigSchema.FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESSING_GROUP_NAMES);
+ public void testRemoteProcessGroupDuplicateValidationPositiveCase() {
+ ConfigSchema configSchema = new ConfigSchema(Collections.singletonMap(CommonPropertyKeys.REMOTE_PROCESS_GROUPS_KEY, getListWithNames("testName1", "testName1")));
+ assertMessageDoesExist(configSchema, ConfigSchema.FOUND_THE_FOLLOWING_DUPLICATE_REMOTE_PROCESS_GROUP_NAMES);
}
@Test
diff --git a/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/RemoteProcessGroupSchemaTest.java b/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/RemoteProcessGroupSchemaTest.java
new file mode 100644
index 0000000..aa7ef61
--- /dev/null
+++ b/minifi-commons/minifi-commons-schema/src/test/java/org/apache/nifi/minifi/commons/schema/RemoteProcessGroupSchemaTest.java
@@ -0,0 +1,79 @@
+/*
+ *
+ * * 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;
+
+import org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys;
+import org.junit.Test;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import static org.junit.Assert.assertEquals;
+
+public class RemoteProcessGroupSchemaTest {
+ @Test
+ public void testNoPropertiesSet() {
+ validateIssuesNumMatches(3, new RemoteProcessGroupSchema(new HashMap<>()));
+ }
+
+ @Test
+ public void testInputPortsRootGroup() {
+ Map<String, Object> map = new HashMap<>();
+ map.put(CommonPropertyKeys.INPUT_PORTS_KEY, Arrays.asList(createPortSchema("f94d2469-39f8-4f07-a0d8-acd9396f639e", "testName", ConfigSchema.TOP_LEVEL_NAME).toMap()));
+ map.put(RemoteProcessGroupSchema.URL_KEY, "http://localhost:8080/nifi");
+ map.put(CommonPropertyKeys.ID_KEY, "a58d2fab-7efe-4cb7-8224-12a60bd8003d");
+ validateIssuesNumMatches(0, new RemoteProcessGroupSchema(map));
+ }
+
+ @Test
+ public void testTransportProtocol() {
+ Map<String, Object> map = new HashMap<>();
+ map.put(CommonPropertyKeys.INPUT_PORTS_KEY, Arrays.asList(createPortSchema("f94d2469-39f8-4f07-a0d8-acd9396f639e", "testName", ConfigSchema.TOP_LEVEL_NAME).toMap()));
+ map.put(RemoteProcessGroupSchema.URL_KEY, "http://localhost:8080/nifi");
+ map.put(CommonPropertyKeys.ID_KEY, "a58d2fab-7efe-4cb7-8224-12a60bd8003d");
+ map.put(RemoteProcessGroupSchema.TRANSPORT_PROTOCOL_KEY, "not valid");
+ validateIssuesNumMatches(1, new RemoteProcessGroupSchema(map));
+
+ map.put(RemoteProcessGroupSchema.TRANSPORT_PROTOCOL_KEY, "RAW");
+ RemoteProcessGroupSchema first = new RemoteProcessGroupSchema(map);
+ validateIssuesNumMatches(0,first);
+ assertEquals(first.getTransportProtocol(), "RAW");
+
+ map.put(RemoteProcessGroupSchema.TRANSPORT_PROTOCOL_KEY, "HTTP");
+ RemoteProcessGroupSchema second = new RemoteProcessGroupSchema(map);
+ validateIssuesNumMatches(0, second);
+ assertEquals(second.getTransportProtocol(), "HTTP");
+ }
+
+ private PortSchema createPortSchema(String id, String name, String wrapperName) {
+ Map<String, Object> map = new HashMap<>();
+ map.put(CommonPropertyKeys.ID_KEY, id);
+ map.put(CommonPropertyKeys.NAME_KEY, name);
+ return new PortSchema(map, wrapperName);
+ }
+
+ private void validateIssuesNumMatches(int expected, RemoteProcessGroupSchema remoteProcessGroupSchema) {
+ int actual = remoteProcessGroupSchema.getValidationIssues().size();
+ String issues = "[" + System.lineSeparator() + remoteProcessGroupSchema.getValidationIssues().stream().collect(Collectors.joining("," + System.lineSeparator())) + "]";
+ assertEquals("Expected " + expected + " issue(s), got " + actual + ": " + issues, expected, actual);
+ }
+}
diff --git a/minifi-docs/src/main/markdown/System_Admin_Guide.md b/minifi-docs/src/main/markdown/System_Admin_Guide.md
index 361e601..d65f8ed 100644
--- a/minifi-docs/src/main/markdown/System_Admin_Guide.md
+++ b/minifi-docs/src/main/markdown/System_Admin_Guide.md
@@ -235,7 +235,7 @@
An example query to get the health, bulletins, input ports and stats of all the RPGS is below.
```
-minifi.sh flowStatus remoteprocessinggroup:all:health,bulletins,inputports,stats
+minifi.sh flowStatus remoteprocessgroup:all:health,bulletins,inputports,stats
```
### Controller Services
@@ -315,7 +315,7 @@
Bootstrap Config File: /Users/user/projects/nifi-minifi/minifi-assembly/target/minifi-0.0.1-SNAPSHOT-bin/minifi-0.0.1-SNAPSHOT/conf/bootstrap.conf
FlowStatusReport{controllerServiceStatusList=null, processorStatusList=[{name='TailFile', processorHealth={runStatus='Running', hasBulletins=false, validationErrorList=[]}, processorStats=null,
-bulletinList=null}], connectionStatusList=null, remoteProcessingGroupStatusList=null, instanceStatus=null, systemDiagnosticsStatus=null, reportingTaskStatusList=null, errorsGeneratingReport=[]}
+bulletinList=null}], connectionStatusList=null, remoteProcessGroupStatusList=null, instanceStatus=null, systemDiagnosticsStatus=null, reportingTaskStatusList=null, errorsGeneratingReport=[]}
```
# Periodic Status Reporters
@@ -345,6 +345,7 @@
1. Use ids instead of names for processors, connections.
2. Allow multiple source relationships for connections.
3. Support process groups, input ports, output ports
+4. Change Id Key for RPGs from "Remote Processing Groups" to the proper "Remote Process Groups" (not "ing")
## Flow Controller
@@ -496,7 +497,7 @@
name | The name of what this process group will do.
id | The id of this process group. This needs to be set to a unique filesystem-friendly value (regex: [A-Za-z0-9_-]+)
Processors | The processors contained in this Process Group. (Defined above)
-Remote Processing Groups | The remote processing groups contained in this Process Group. (Defined below)
+Remote Process Groups | The remote process groups contained in this Process Group. (Defined below)
Connections | The connections contained in this Process Group. (Defined below)
Input Ports | The input ports contained in this Process Group. (Defined below)
Output Ports | The output ports contained in this Process Group. (Defined below)
@@ -545,17 +546,18 @@
flowfile expiration | Indicates how long FlowFiles are allowed to exist in the connection before be expired (automatically removed from the flow).
queue prioritizer class | This configuration option specifies the fully qualified java class path of a queue prioritizer to use. If no special prioritizer is desired then it should be left blank. An example value of this property is: org.apache.nifi.prioritizer.NewestFlowFileFirstPrioritizer
-## Remote Processing Groups
+## Remote Process Groups
-MiNiFi can be used to send data using the Site to Site protocol (via a Remote Processing Group) or a Processor. These properties configure the Remote Processing Groups that use Site-To-Site to send data to a core instance.
+MiNiFi can be used to send data using the Site to Site protocol (via a Remote Process Group) or a Processor. These properties configure the Remote Process Groups that use Site-To-Site to send data to a core instance.
-*Property* | *Description*
------------- | -------------
-name | The name of what this Remote Processing Group points to. This is not used for any underlying implementation but solely for the users of this configuration and MiNiFi agent.
-comment | A comment about the Remote Processing Group. This is not used for any underlying implementation but solely for the users of this configuration and MiNiFi agent.
-url | The URL of the core NiFi instance.
-timeout | How long MiNiFi should wait before timing out the connection.
-yield period | When communication with this Remote Processing Group fails, it will not be scheduled again for this amount of time.
+*Property* | *Description*
+-------------------| -------------
+name | The name of what this Remote Process Group points to. This is not used for any underlying implementation but solely for the users of this configuration and MiNiFi agent.
+comment | A comment about the Remote Process Group. This is not used for any underlying implementation but solely for the users of this configuration and MiNiFi agent.
+url | The URL of the core NiFi instance.
+timeout | How long MiNiFi should wait before timing out the connection.
+yield period | When communication with this Remote Process Group fails, it will not be scheduled again for this amount of time.
+transport protocol | The transport protocol to use for this Remote Process Group. Can be either "RAW" or "HTTP"
#### Input Ports Subsection
@@ -594,6 +596,7 @@
``` yaml
+MiNiFi Config Version: 1
Flow Controller:
name: MiNiFi Flow
comment:
diff --git a/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/main/java/org/apache/nifi/minifi/status/StatusConfigReporter.java b/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/main/java/org/apache/nifi/minifi/status/StatusConfigReporter.java
index 8e0348b..75350b2 100644
--- a/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/main/java/org/apache/nifi/minifi/status/StatusConfigReporter.java
+++ b/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/main/java/org/apache/nifi/minifi/status/StatusConfigReporter.java
@@ -213,8 +213,8 @@
RemoteProcessGroupStatus remoteProcessGroupStatus = remoteProcessGroupStatusMap.get(sections[1]);
remoteProcessGroupStatusList.add(parseRemoteProcessGroupStatusRequest(remoteProcessGroupStatus, sections[2], flowController));
} else {
- logger.warn("Status for Remote Processing Group with key " + sections[1] + " was requested but one does not exist");
- throw new StatusRequestException("No Remote Processing Group with key " + sections[1] + " to report status on");
+ logger.warn("Status for Remote Process Group with key " + sections[1] + " was requested but one does not exist");
+ throw new StatusRequestException("No Remote Process Group with key " + sections[1] + " to report status on");
}
}
}
diff --git a/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-resources/src/main/resources/conf/config.yml b/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-resources/src/main/resources/conf/config.yml
index 53462e3..5bcf11d 100644
--- a/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-resources/src/main/resources/conf/config.yml
+++ b/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-resources/src/main/resources/conf/config.yml
@@ -59,4 +59,4 @@
Process Groups: []
Funnels: []
Connections: []
-Remote Processing Groups: []
+Remote Process Groups: []
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/ConfigSchemaFunction.java b/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/ConfigSchemaFunction.java
index d6aaabf..ed016e1 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/ConfigSchemaFunction.java
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/ConfigSchemaFunction.java
@@ -23,7 +23,7 @@
import org.apache.nifi.minifi.commons.schema.PortSchema;
import org.apache.nifi.minifi.commons.schema.ProcessGroupSchema;
import org.apache.nifi.minifi.commons.schema.ProcessorSchema;
-import org.apache.nifi.minifi.commons.schema.RemoteProcessingGroupSchema;
+import org.apache.nifi.minifi.commons.schema.RemoteProcessGroupSchema;
import org.apache.nifi.minifi.commons.schema.common.CollectionUtil;
import org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys;
import org.apache.nifi.minifi.commons.schema.common.StringUtil;
@@ -47,23 +47,23 @@
private final ProcessorSchemaFunction processorSchemaFunction;
private final ConnectionSchemaFunction connectionSchemaFunction;
private final FunnelSchemaFunction funnelSchemaFunction;
- private final RemoteProcessingGroupSchemaFunction remoteProcessingGroupSchemaFunction;
+ private final RemoteProcessGroupSchemaFunction remoteProcessGroupSchemaFunction;
private final PortSchemaFunction inputPortSchemaFunction;
private final PortSchemaFunction outputPortSchemaFunction;
public ConfigSchemaFunction() {
- this(new FlowControllerSchemaFunction(), new ProcessorSchemaFunction(), new ConnectionSchemaFunction(), new FunnelSchemaFunction(), new RemoteProcessingGroupSchemaFunction(
+ this(new FlowControllerSchemaFunction(), new ProcessorSchemaFunction(), new ConnectionSchemaFunction(), new FunnelSchemaFunction(), new RemoteProcessGroupSchemaFunction(
new RemoteInputPortSchemaFunction()), new PortSchemaFunction(INPUT_PORTS_KEY), new PortSchemaFunction(OUTPUT_PORTS_KEY));
}
public ConfigSchemaFunction(FlowControllerSchemaFunction flowControllerSchemaFunction, ProcessorSchemaFunction processorSchemaFunction, ConnectionSchemaFunction connectionSchemaFunction,
- FunnelSchemaFunction funnelSchemaFunction, RemoteProcessingGroupSchemaFunction remoteProcessingGroupSchemaFunction, PortSchemaFunction inputPortSchemaFunction,
+ FunnelSchemaFunction funnelSchemaFunction, RemoteProcessGroupSchemaFunction remoteProcessGroupSchemaFunction, PortSchemaFunction inputPortSchemaFunction,
PortSchemaFunction outputPortSchemaFunction) {
this.flowControllerSchemaFunction = flowControllerSchemaFunction;
this.processorSchemaFunction = processorSchemaFunction;
this.connectionSchemaFunction = connectionSchemaFunction;
this.funnelSchemaFunction = funnelSchemaFunction;
- this.remoteProcessingGroupSchemaFunction = remoteProcessingGroupSchemaFunction;
+ this.remoteProcessGroupSchemaFunction = remoteProcessGroupSchemaFunction;
this.inputPortSchemaFunction = inputPortSchemaFunction;
this.outputPortSchemaFunction = outputPortSchemaFunction;
}
@@ -112,10 +112,10 @@
.map(FunnelSchema::toMap)
.collect(Collectors.toList()));
- map.put(CommonPropertyKeys.REMOTE_PROCESSING_GROUPS_KEY, nullToEmpty(snippet.getRemoteProcessGroups()).stream()
- .map(remoteProcessingGroupSchemaFunction)
- .sorted(Comparator.comparing(RemoteProcessingGroupSchema::getName))
- .map(RemoteProcessingGroupSchema::toMap)
+ map.put(CommonPropertyKeys.REMOTE_PROCESS_GROUPS_KEY, nullToEmpty(snippet.getRemoteProcessGroups()).stream()
+ .map(remoteProcessGroupSchemaFunction)
+ .sorted(Comparator.comparing(RemoteProcessGroupSchema::getName))
+ .map(RemoteProcessGroupSchema::toMap)
.collect(Collectors.toList()));
map.put(INPUT_PORTS_KEY, nullToEmpty(snippet.getInputPorts()).stream()
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/RemoteProcessGroupSchemaFunction.java
similarity index 76%
rename from minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteProcessingGroupSchemaFunction.java
rename to minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteProcessGroupSchemaFunction.java
index 95b9ff9..1dcc511 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/RemoteProcessGroupSchemaFunction.java
@@ -18,7 +18,7 @@
package org.apache.nifi.minifi.toolkit.configuration.dto;
import org.apache.nifi.minifi.commons.schema.RemoteInputPortSchema;
-import org.apache.nifi.minifi.commons.schema.RemoteProcessingGroupSchema;
+import org.apache.nifi.minifi.commons.schema.RemoteProcessGroupSchema;
import org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys;
import org.apache.nifi.web.api.dto.RemoteProcessGroupContentsDTO;
import org.apache.nifi.web.api.dto.RemoteProcessGroupDTO;
@@ -30,19 +30,19 @@
import java.util.function.Function;
import java.util.stream.Collectors;
-public class RemoteProcessingGroupSchemaFunction implements Function<RemoteProcessGroupDTO, RemoteProcessingGroupSchema> {
+public class RemoteProcessGroupSchemaFunction implements Function<RemoteProcessGroupDTO, RemoteProcessGroupSchema> {
private final RemoteInputPortSchemaFunction remoteInputPortSchemaFunction;
- public RemoteProcessingGroupSchemaFunction(RemoteInputPortSchemaFunction remoteInputPortSchemaFunction) {
+ public RemoteProcessGroupSchemaFunction(RemoteInputPortSchemaFunction remoteInputPortSchemaFunction) {
this.remoteInputPortSchemaFunction = remoteInputPortSchemaFunction;
}
@Override
- public RemoteProcessingGroupSchema apply(RemoteProcessGroupDTO remoteProcessGroupDTO) {
+ public RemoteProcessGroupSchema 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());
+ map.put(RemoteProcessGroupSchema.URL_KEY, remoteProcessGroupDTO.getTargetUri());
RemoteProcessGroupContentsDTO contents = remoteProcessGroupDTO.getContents();
if (contents != null) {
@@ -56,8 +56,9 @@
}
map.put(CommonPropertyKeys.COMMENT_KEY, remoteProcessGroupDTO.getComments());
- map.put(RemoteProcessingGroupSchema.TIMEOUT_KEY, remoteProcessGroupDTO.getCommunicationsTimeout());
+ map.put(RemoteProcessGroupSchema.TIMEOUT_KEY, remoteProcessGroupDTO.getCommunicationsTimeout());
map.put(CommonPropertyKeys.YIELD_PERIOD_KEY, remoteProcessGroupDTO.getYieldDuration());
- return new RemoteProcessingGroupSchema(map);
+ map.put(RemoteProcessGroupSchema.TRANSPORT_PROTOCOL_KEY, remoteProcessGroupDTO.getTransportProtocol());
+ return new RemoteProcessGroupSchema(map);
}
}
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 10f263e..70f9e75 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
@@ -23,6 +23,7 @@
import org.apache.nifi.minifi.commons.schema.ConnectionSchema;
import org.apache.nifi.minifi.commons.schema.ProcessorSchema;
import org.apache.nifi.minifi.commons.schema.RemoteInputPortSchema;
+import org.apache.nifi.minifi.commons.schema.RemoteProcessGroupSchema;
import org.apache.nifi.minifi.commons.schema.common.ConvertableSchema;
import org.apache.nifi.minifi.commons.schema.serialization.SchemaLoader;
import org.apache.nifi.minifi.commons.schema.exception.SchemaLoaderException;
@@ -202,6 +203,11 @@
}
@Test
+ public void testTransformRoundTripSimpleTailFileToRPG() throws IOException, JAXBException, SchemaLoaderException {
+ transformRoundTrip("SimpleTailFileToRPG");
+ }
+
+ @Test
public void testSuccessTransformProcessGroup() throws IOException, JAXBException, SchemaLoaderException {
ConfigMain.transformTemplateToSchema(getClass().getClassLoader().getResourceAsStream("TemplateWithProcessGroup.xml")).toMap();
}
@@ -303,7 +309,18 @@
v1Processor.setId(currentProcessor.getId());
}
- configSchemaUpgradedFromV1.getProcessGroupSchema().getRemoteProcessingGroups().stream().flatMap(g -> g.getInputPorts().stream()).map(RemoteInputPortSchema::getId).sequential()
+ List<RemoteProcessGroupSchema> currentRPGs = configSchemaFromCurrent.getProcessGroupSchema().getRemoteProcessGroups();
+ List<RemoteProcessGroupSchema> v1RPGs = configSchemaUpgradedFromV1.getProcessGroupSchema().getRemoteProcessGroups();
+ // V1 doesn't have ids so we need to map the autogenerated ones to the ones from the template
+ for (int i = 0; i < currentRPGs.size(); i++) {
+ RemoteProcessGroupSchema currentRPG = currentRPGs.get(i);
+ RemoteProcessGroupSchema v1RPG = v1RPGs.get(i);
+ assertEquals(currentRPG.getName(), v1RPG.getName());
+ v1IdToCurrentIdMap.put(v1RPG.getId(), currentRPG.getId());
+ v1RPG.setId(currentRPG.getId());
+ }
+
+ configSchemaUpgradedFromV1.getProcessGroupSchema().getRemoteProcessGroups().stream().flatMap(g -> g.getInputPorts().stream()).map(RemoteInputPortSchema::getId).sequential()
.forEach(id -> v1IdToCurrentIdMap.put(id, id));
List<ConnectionSchema> currentConnections = configSchemaFromCurrent.getProcessGroupSchema().getConnections();
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/RemoteProcessGroupSchemaTest.java
similarity index 81%
rename from minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteProcessingGroupSchemaTest.java
rename to minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/RemoteProcessGroupSchemaTest.java
index bcd0a77..e4d5b46 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/RemoteProcessGroupSchemaTest.java
@@ -18,7 +18,7 @@
package org.apache.nifi.minifi.toolkit.configuration.dto;
import org.apache.nifi.minifi.commons.schema.RemoteInputPortSchema;
-import org.apache.nifi.minifi.commons.schema.RemoteProcessingGroupSchema;
+import org.apache.nifi.minifi.commons.schema.RemoteProcessGroupSchema;
import org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys;
import org.apache.nifi.web.api.dto.RemoteProcessGroupContentsDTO;
import org.apache.nifi.web.api.dto.RemoteProcessGroupDTO;
@@ -36,7 +36,7 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-public class RemoteProcessingGroupSchemaTest extends BaseSchemaTester<RemoteProcessingGroupSchema, RemoteProcessGroupDTO> {
+public class RemoteProcessGroupSchemaTest extends BaseSchemaTester<RemoteProcessGroupSchema, RemoteProcessGroupDTO> {
private final RemoteInputPortSchemaTest remoteInputPortSchemaTest;
private String testId = UUID.randomUUID().toString();
private String testName = "testName";
@@ -44,9 +44,10 @@
private String testComment = "testComment";
private String testTimeout = "11 s";
private String testYieldPeriod = "22 s";
+ private String transportProtocol = "HTTP";
- public RemoteProcessingGroupSchemaTest() {
- super(new RemoteProcessingGroupSchemaFunction(new RemoteInputPortSchemaFunction()), RemoteProcessingGroupSchema::new);
+ public RemoteProcessGroupSchemaTest() {
+ super(new RemoteProcessGroupSchemaFunction(new RemoteInputPortSchemaFunction()), RemoteProcessGroupSchema::new);
remoteInputPortSchemaTest = new RemoteInputPortSchemaTest();
}
@@ -66,16 +67,18 @@
dto.setComments(testComment);
dto.setCommunicationsTimeout(testTimeout);
dto.setYieldDuration(testYieldPeriod);
+ dto.setTransportProtocol(transportProtocol);
map = new HashMap<>();
map.put(CommonPropertyKeys.ID_KEY, testId);
map.put(CommonPropertyKeys.NAME_KEY, testName);
- map.put(RemoteProcessingGroupSchema.URL_KEY, testUrl);
+ map.put(RemoteProcessGroupSchema.URL_KEY, testUrl);
map.put(CommonPropertyKeys.INPUT_PORTS_KEY, new ArrayList<>(Arrays.asList(remoteInputPortSchemaTest.map)));
map.put(CommonPropertyKeys.COMMENT_KEY, testComment);
- map.put(RemoteProcessingGroupSchema.TIMEOUT_KEY, testTimeout);
+ map.put(RemoteProcessGroupSchema.TIMEOUT_KEY, testTimeout);
map.put(CommonPropertyKeys.YIELD_PERIOD_KEY, testYieldPeriod);
+ map.put(RemoteProcessGroupSchema.TRANSPORT_PROTOCOL_KEY, transportProtocol);
}
@Test
@@ -95,7 +98,7 @@
@Test
public void testNoUrl() {
dto.setTargetUri(null);
- map.remove(RemoteProcessingGroupSchema.URL_KEY);
+ map.remove(RemoteProcessGroupSchema.URL_KEY);
assertDtoAndMapConstructorAreSame(1);
}
@@ -116,7 +119,7 @@
@Test
public void testNoTimeout() {
dto.setCommunicationsTimeout(null);
- map.remove(RemoteProcessingGroupSchema.TIMEOUT_KEY);
+ map.remove(RemoteProcessGroupSchema.TIMEOUT_KEY);
assertDtoAndMapConstructorAreSame(0);
}
@@ -127,8 +130,15 @@
assertDtoAndMapConstructorAreSame(0);
}
+ @Test
+ public void testNoTransportProtocol() {
+ dto.setTransportProtocol(null);
+ map.remove(RemoteProcessGroupSchema.TRANSPORT_PROTOCOL_KEY);
+ assertDtoAndMapConstructorAreSame(0);
+ }
+
@Override
- public void assertSchemaEquals(RemoteProcessingGroupSchema one, RemoteProcessingGroupSchema two) {
+ public void assertSchemaEquals(RemoteProcessGroupSchema one, RemoteProcessGroupSchema two) {
assertEquals(one.getName(), two.getName());
assertEquals(one.getUrl(), two.getUrl());
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/CsvToJson.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/CsvToJson.yml
index 3707335..eaa16c2 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/CsvToJson.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/CsvToJson.yml
@@ -193,4 +193,4 @@
max work queue data size: 0 MB
flowfile expiration: 0 sec
queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
-Remote Processing Groups: []
+Remote Process Groups: []
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/DecompressionCircularFlow.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/DecompressionCircularFlow.yml
index c27fb62..4d11eac 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/DecompressionCircularFlow.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/DecompressionCircularFlow.yml
@@ -332,4 +332,4 @@
max work queue data size: 0 MB
flowfile expiration: 0 sec
queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
-Remote Processing Groups: []
+Remote Process Groups: []
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 30e33f4..a427409 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml
@@ -281,13 +281,14 @@
max work queue data size: 0 MB
flowfile expiration: 0 sec
queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
-Remote Processing Groups:
+Remote Process Groups:
- id: d41d8cd9-8f00-3204-a980-0998ecf8427e
name: ''
url: http://nifi:8080/nifi
comment: ''
timeout: 30 sec
yield period: 10 sec
+ transport protocol: RAW
Input Ports:
- name: response
id: b23a4621-cf19-42e6-967c-ffd3716e6a24
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleRelationships.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleRelationships.yml
index 4e3b479..8f8b038 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleRelationships.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleRelationships.yml
@@ -150,4 +150,4 @@
max work queue data size: 1 GB
flowfile expiration: 0 sec
queue prioritizer class: ''
-Remote Processing Groups: []
+Remote Process Groups: []
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.xml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.xml
index 8cd6f1b..d87c9b2 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.xml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.xml
@@ -441,7 +441,7 @@
<proxyHost></proxyHost>
<proxyUser></proxyUser>
<targetUri>http://localhost:9090/nifi</targetUri>
- <transportProtocol>RAW</transportProtocol>
+ <transportProtocol>HTTP</transportProtocol>
<yieldDuration>10 sec</yieldDuration>
</remoteProcessGroups>
</contents>
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 064cd44..46be605 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.yml
@@ -173,13 +173,14 @@
max work queue data size: 1 GB
flowfile expiration: 0 sec
queue prioritizer class: ''
- Remote Processing Groups:
+ Remote Process Groups:
- id: 21a651bb-0158-1000-0000-000000000000
name: ''
url: http://localhost:9091/nifi
comment: ''
timeout: 30 sec
yield period: 10 sec
+ transport protocol: RAW
Input Ports:
- id: 21a39aba-0158-1000-a1a0-1b55bcddcd72
name: input2
@@ -232,13 +233,14 @@
max work queue data size: 1 GB
flowfile expiration: 0 sec
queue prioritizer class: ''
- Remote Processing Groups:
+ Remote Process Groups:
- id: 21a4e2f0-0158-1000-0000-000000000000
name: ''
url: http://localhost:9090/nifi
comment: ''
timeout: 30 sec
yield period: 10 sec
+ transport protocol: HTTP
Input Ports:
- id: 21a2fb5e-0158-1000-3b5e-5a7d3aaee01b
name: input
@@ -278,4 +280,4 @@
max work queue data size: 1 GB
flowfile expiration: 0 sec
queue prioritizer class: ''
-Remote Processing Groups: []
+Remote Process Groups: []
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ReplaceTextExpressionLanguageCSVReformatting.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ReplaceTextExpressionLanguageCSVReformatting.yml
index 64a9108..cc89aa6 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ReplaceTextExpressionLanguageCSVReformatting.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ReplaceTextExpressionLanguageCSVReformatting.yml
@@ -158,4 +158,4 @@
max work queue data size: 0 MB
flowfile expiration: 0 sec
queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
-Remote Processing Groups: []
+Remote Process Groups: []
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleTailFileToRPG-v1.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleTailFileToRPG-v1.yml
new file mode 100644
index 0000000..183d891
--- /dev/null
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleTailFileToRPG-v1.yml
@@ -0,0 +1,102 @@
+# 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.
+
+Flow Controller:
+ name: Simple TailFile To RPG
+ comment: ''
+Core Properties:
+ flow controller graceful shutdown period: 10 sec
+ flow service write delay interval: 500 ms
+ administrative yield duration: 30 sec
+ bored yield duration: 10 millis
+ max concurrent threads: 1
+FlowFile Repository:
+ partitions: 256
+ checkpoint interval: 2 mins
+ always sync: false
+ Swap:
+ threshold: 20000
+ in period: 5 sec
+ in threads: 1
+ out period: 5 sec
+ out threads: 4
+Content Repository:
+ content claim max appendable size: 10 MB
+ content claim max flow files: 100
+ always sync: false
+Provenance Repository:
+ provenance rollover time: 1 min
+Component Status Repository:
+ buffer size: 1440
+ snapshot frequency: 1 min
+Security Properties:
+ keystore: ''
+ keystore type: ''
+ keystore password: ''
+ key password: ''
+ truststore: ''
+ truststore type: ''
+ truststore password: ''
+ ssl protocol: ''
+ Sensitive Props:
+ key:
+ algorithm: PBEWITHMD5AND256BITAES-CBC-OPENSSL
+ provider: BC
+Processors:
+- name: TailFile
+ class: org.apache.nifi.processors.standard.TailFile
+ max concurrent tasks: 1
+ scheduling strategy: TIMER_DRIVEN
+ scheduling period: 1 sec
+ penalization period: 30 sec
+ yield period: 1 sec
+ run duration nanos: 0
+ auto-terminated relationships list: []
+ Properties:
+ File Location: Local
+ File to Tail: ./logs/minifi-app.log
+ Initial Start Position: Beginning of File
+ Rolling Filename Pattern:
+ tail-base-directory:
+ tail-mode: Single file
+ tailfile-lookup-frequency: 10 minutes
+ tailfile-maximum-age: 24 hours
+ tailfile-recursive-lookup: 'false'
+ tailfile-rolling-strategy: Fixed name
+Connections:
+- name: TailFile/success/ac0e798c-0158-1000-0588-cda9b944e011
+ source name: TailFile
+ source relationship name: success
+ destination name: ac0e798c-0158-1000-0588-cda9b944e011
+ max work queue size: 10000
+ max work queue data size: 1 GB
+ flowfile expiration: 0 sec
+ queue prioritizer class: ''
+Remote Processing Groups:
+- url: http://localhost:8080/nifi
+ comment: ''
+ timeout: 30 sec
+ yield period: 10 sec
+ Input Ports:
+ - id: aca664f8-0158-1000-a139-92485891d349
+ name: test2
+ comment: ''
+ max concurrent tasks: 1
+ use compression: false
+ - id: ac0e798c-0158-1000-0588-cda9b944e011
+ name: test
+ comment: ''
+ max concurrent tasks: 1
+ use compression: false
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleTailFileToRPG.xml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleTailFileToRPG.xml
new file mode 100644
index 0000000..da88f2d
--- /dev/null
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleTailFileToRPG.xml
@@ -0,0 +1,213 @@
+<?xml version="1.0" ?>
+<!--
+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.
+ -->
+<template encoding-version="1.0">
+ <description></description>
+ <groupId>92d57ac5-0158-1000-aab7-42ca398aadea</groupId>
+ <name>Simple TailFile To RPG</name>
+ <snippet>
+ <connections>
+ <id>b0c0c3cc-0158-1000-0000-000000000000</id>
+ <parentGroupId>92d57ac5-0158-1000-0000-000000000000</parentGroupId>
+ <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+ <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+ <destination>
+ <groupId>b0c09ff0-0158-1000-0000-000000000000</groupId>
+ <id>ac0e798c-0158-1000-0588-cda9b944e011</id>
+ <type>REMOTE_INPUT_PORT</type>
+ </destination>
+ <flowFileExpiration>0 sec</flowFileExpiration>
+ <labelIndex>1</labelIndex>
+ <name></name>
+ <selectedRelationships>success</selectedRelationships>
+ <source>
+ <groupId>92d57ac5-0158-1000-0000-000000000000</groupId>
+ <id>b0c04f28-0158-1000-0000-000000000000</id>
+ <type>PROCESSOR</type>
+ </source>
+ <zIndex>0</zIndex>
+ </connections>
+ <processors>
+ <id>b0c04f28-0158-1000-0000-000000000000</id>
+ <parentGroupId>92d57ac5-0158-1000-0000-000000000000</parentGroupId>
+ <position>
+ <x>20.698639744598154</x>
+ <y>0.0</y>
+ </position>
+ <config>
+ <bulletinLevel>WARN</bulletinLevel>
+ <comments></comments>
+ <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+ <descriptors>
+ <entry>
+ <key>tail-mode</key>
+ <value>
+ <name>tail-mode</name>
+ </value>
+ </entry>
+ <entry>
+ <key>File to Tail</key>
+ <value>
+ <name>File to Tail</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Rolling Filename Pattern</key>
+ <value>
+ <name>Rolling Filename Pattern</name>
+ </value>
+ </entry>
+ <entry>
+ <key>tail-base-directory</key>
+ <value>
+ <name>tail-base-directory</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Initial Start Position</key>
+ <value>
+ <name>Initial Start Position</name>
+ </value>
+ </entry>
+ <entry>
+ <key>File Location</key>
+ <value>
+ <name>File Location</name>
+ </value>
+ </entry>
+ <entry>
+ <key>tailfile-recursive-lookup</key>
+ <value>
+ <name>tailfile-recursive-lookup</name>
+ </value>
+ </entry>
+ <entry>
+ <key>tailfile-rolling-strategy</key>
+ <value>
+ <name>tailfile-rolling-strategy</name>
+ </value>
+ </entry>
+ <entry>
+ <key>tailfile-lookup-frequency</key>
+ <value>
+ <name>tailfile-lookup-frequency</name>
+ </value>
+ </entry>
+ <entry>
+ <key>tailfile-maximum-age</key>
+ <value>
+ <name>tailfile-maximum-age</name>
+ </value>
+ </entry>
+ </descriptors>
+ <executionNode>ALL</executionNode>
+ <lossTolerant>false</lossTolerant>
+ <penaltyDuration>30 sec</penaltyDuration>
+ <properties>
+ <entry>
+ <key>tail-mode</key>
+ <value>Single file</value>
+ </entry>
+ <entry>
+ <key>File to Tail</key>
+ <value>./logs/minifi-app.log</value>
+ </entry>
+ <entry>
+ <key>Rolling Filename Pattern</key>
+ </entry>
+ <entry>
+ <key>tail-base-directory</key>
+ </entry>
+ <entry>
+ <key>Initial Start Position</key>
+ <value>Beginning of File</value>
+ </entry>
+ <entry>
+ <key>File Location</key>
+ <value>Local</value>
+ </entry>
+ <entry>
+ <key>tailfile-recursive-lookup</key>
+ <value>false</value>
+ </entry>
+ <entry>
+ <key>tailfile-rolling-strategy</key>
+ <value>Fixed name</value>
+ </entry>
+ <entry>
+ <key>tailfile-lookup-frequency</key>
+ <value>10 minutes</value>
+ </entry>
+ <entry>
+ <key>tailfile-maximum-age</key>
+ <value>24 hours</value>
+ </entry>
+ </properties>
+ <runDurationMillis>0</runDurationMillis>
+ <schedulingPeriod>1 sec</schedulingPeriod>
+ <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+ <yieldDuration>1 sec</yieldDuration>
+ </config>
+ <name>TailFile</name>
+ <relationships>
+ <autoTerminate>false</autoTerminate>
+ <name>success</name>
+ </relationships>
+ <style></style>
+ <type>org.apache.nifi.processors.standard.TailFile</type>
+ </processors>
+ <remoteProcessGroups>
+ <id>b0c09ff0-0158-1000-0000-000000000000</id>
+ <parentGroupId>92d57ac5-0158-1000-0000-000000000000</parentGroupId>
+ <position>
+ <x>0.0</x>
+ <y>255.68887264079288</y>
+ </position>
+ <communicationsTimeout>30 sec</communicationsTimeout>
+ <contents>
+ <inputPorts>
+ <comments></comments>
+ <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+ <connected>false</connected>
+ <exists>true</exists>
+ <id>aca664f8-0158-1000-a139-92485891d349</id>
+ <name>test2</name>
+ <targetRunning>false</targetRunning>
+ <transmitting>false</transmitting>
+ <useCompression>false</useCompression>
+ </inputPorts>
+ <inputPorts>
+ <comments></comments>
+ <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+ <connected>true</connected>
+ <exists>true</exists>
+ <id>ac0e798c-0158-1000-0588-cda9b944e011</id>
+ <name>test</name>
+ <targetRunning>false</targetRunning>
+ <transmitting>false</transmitting>
+ <useCompression>false</useCompression>
+ </inputPorts>
+ </contents>
+ <proxyHost></proxyHost>
+ <proxyUser></proxyUser>
+ <targetUri>http://localhost:8080/nifi</targetUri>
+ <transportProtocol>RAW</transportProtocol>
+ <yieldDuration>10 sec</yieldDuration>
+ </remoteProcessGroups>
+ </snippet>
+ <timestamp>11/29/2016 10:43:33 EST</timestamp>
+</template>
\ No newline at end of file
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleTailFileToRPG.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleTailFileToRPG.yml
new file mode 100644
index 0000000..c70a018
--- /dev/null
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleTailFileToRPG.yml
@@ -0,0 +1,113 @@
+# 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.
+
+MiNiFi Config Version: 2
+Flow Controller:
+ name: Simple TailFile To RPG
+ comment: ''
+Core Properties:
+ flow controller graceful shutdown period: 10 sec
+ flow service write delay interval: 500 ms
+ administrative yield duration: 30 sec
+ bored yield duration: 10 millis
+ max concurrent threads: 1
+FlowFile Repository:
+ partitions: 256
+ checkpoint interval: 2 mins
+ always sync: false
+ Swap:
+ threshold: 20000
+ in period: 5 sec
+ in threads: 1
+ out period: 5 sec
+ out threads: 4
+Content Repository:
+ content claim max appendable size: 10 MB
+ content claim max flow files: 100
+ always sync: false
+Provenance Repository:
+ provenance rollover time: 1 min
+Component Status Repository:
+ buffer size: 1440
+ snapshot frequency: 1 min
+Security Properties:
+ keystore: ''
+ keystore type: ''
+ keystore password: ''
+ key password: ''
+ truststore: ''
+ truststore type: ''
+ truststore password: ''
+ ssl protocol: ''
+ Sensitive Props:
+ key:
+ algorithm: PBEWITHMD5AND256BITAES-CBC-OPENSSL
+ provider: BC
+Processors:
+- id: b0c04f28-0158-1000-0000-000000000000
+ name: TailFile
+ class: org.apache.nifi.processors.standard.TailFile
+ max concurrent tasks: 1
+ scheduling strategy: TIMER_DRIVEN
+ scheduling period: 1 sec
+ penalization period: 30 sec
+ yield period: 1 sec
+ run duration nanos: 0
+ auto-terminated relationships list: []
+ Properties:
+ File Location: Local
+ File to Tail: ./logs/minifi-app.log
+ Initial Start Position: Beginning of File
+ Rolling Filename Pattern:
+ tail-base-directory:
+ tail-mode: Single file
+ tailfile-lookup-frequency: 10 minutes
+ tailfile-maximum-age: 24 hours
+ tailfile-recursive-lookup: 'false'
+ tailfile-rolling-strategy: Fixed name
+Process Groups: []
+Input Ports: []
+Output Ports: []
+Funnels: []
+Connections:
+- id: b0c0c3cc-0158-1000-0000-000000000000
+ name: TailFile/success/ac0e798c-0158-1000-0588-cda9b944e011
+ source id: b0c04f28-0158-1000-0000-000000000000
+ source relationship names:
+ - success
+ destination id: ac0e798c-0158-1000-0588-cda9b944e011
+ max work queue size: 10000
+ max work queue data size: 1 GB
+ flowfile expiration: 0 sec
+ queue prioritizer class: ''
+Remote Process Groups:
+- id: b0c09ff0-0158-1000-0000-000000000000
+ name: ''
+ url: http://localhost:8080/nifi
+ comment: ''
+ timeout: 30 sec
+ yield period: 10 sec
+ transport protocol: RAW
+ Input Ports:
+ - id: aca664f8-0158-1000-a139-92485891d349
+ name: test2
+ comment: ''
+ max concurrent tasks: 1
+ use compression: false
+ - id: ac0e798c-0158-1000-0588-cda9b944e011
+ name: test
+ comment: ''
+ max concurrent tasks: 1
+ use compression: false
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFramework.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFramework.yml
index 2df4526..b510f97 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFramework.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFramework.yml
@@ -123,4 +123,4 @@
max work queue data size: 0 MB
flowfile expiration: 0 sec
queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
-Remote Processing Groups: []
+Remote Process Groups: []
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFrameworkFunnel.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFrameworkFunnel.yml
index bbbda3a..95e8f52 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFrameworkFunnel.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFrameworkFunnel.yml
@@ -208,4 +208,4 @@
max work queue data size: 0 MB
flowfile expiration: 0 sec
queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
-Remote Processing Groups: []
\ No newline at end of file
+Remote Process Groups: []
\ No newline at end of file
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 b6a4902..c1685af 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/config.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/config.yml
@@ -81,7 +81,7 @@
max work queue data size: 1 MB
flowfile expiration: 60 sec
queue prioritizer class: org.apache.nifi.prioritizer.NewestFlowFileFirstPrioritizer
-Remote Processing Groups:
+Remote Process Groups:
- id: 94b8e610-b4ed-3ec9-b26f-c839931bf3e3
name: NiFi Flow
url: https://localhost:8090/nifi