You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by br...@apache.org on 2016/12/09 19:51:46 UTC
[2/3] nifi-minifi git commit: MINIFI-154 Adding support for
Controller Services
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/cbb2bdd8/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
deleted file mode 100644
index c8ab6ee..0000000
--- a/minifi-nar-bundles/minifi-standard-services-api-nar/pom.xml
+++ /dev/null
@@ -1,94 +0,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/xsd/maven-4.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</groupId>
- <artifactId>nifi-standard-services</artifactId>
- <version>1.0.0</version>
- <relativePath />
- </parent>
- <groupId>org.apache.nifi.minifi</groupId>
- <artifactId>minifi-standard-services-api-nar</artifactId>
- <version>0.2.0-SNAPSHOT</version>
- <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-ssl-context-service-api</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-distributed-cache-client-service-api</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-load-distribution-service-api</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-http-context-map-api</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-dbcp-service-api</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-hbase-client-service-api</artifactId>
- <scope>compile</scope>
- </dependency>
-
- <!-- Manage provided dependencies in lib -->
- <dependency>
- <groupId>org.bouncycastle</groupId>
- <artifactId>bcprov-jdk15on</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.bouncycastle</groupId>
- <artifactId>bcpg-jdk15on</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.bouncycastle</groupId>
- <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/cbb2bdd8/minifi-nar-bundles/minifi-standard-services-api-nar/src/main/resources/META-INF/LICENSE
----------------------------------------------------------------------
diff --git a/minifi-nar-bundles/minifi-standard-services-api-nar/src/main/resources/META-INF/LICENSE b/minifi-nar-bundles/minifi-standard-services-api-nar/src/main/resources/META-INF/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/minifi-nar-bundles/minifi-standard-services-api-nar/src/main/resources/META-INF/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed 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.
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/cbb2bdd8/minifi-nar-bundles/minifi-standard-services-api-nar/src/main/resources/META-INF/NOTICE
----------------------------------------------------------------------
diff --git a/minifi-nar-bundles/minifi-standard-services-api-nar/src/main/resources/META-INF/NOTICE b/minifi-nar-bundles/minifi-standard-services-api-nar/src/main/resources/META-INF/NOTICE
deleted file mode 100644
index 7eb13a7..0000000
--- a/minifi-nar-bundles/minifi-standard-services-api-nar/src/main/resources/META-INF/NOTICE
+++ /dev/null
@@ -1,24 +0,0 @@
-minifi-standard-nar
-Copyright 2014-2016 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-******************
-Apache Software License v2
-******************
-
-The following binary components are provided under the Apache Software License v2
-
- (ASLv2) Apache Commons IO
- The following NOTICE information applies:
- Apache Commons IO
- Copyright 2002-2012 The Apache Software Foundation
-
- (ASLv2) Apache Commons Lang
- The following NOTICE information applies:
- Apache Commons Lang
- Copyright 2001-2015 The Apache Software Foundation
-
- This product includes software from the Spring Framework,
- under the Apache License 2.0 (see: StringUtils.containsWhitespace())
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/cbb2bdd8/minifi-nar-bundles/pom.xml
----------------------------------------------------------------------
diff --git a/minifi-nar-bundles/pom.xml b/minifi-nar-bundles/pom.xml
index 2061163..3d9eea9 100644
--- a/minifi-nar-bundles/pom.xml
+++ b/minifi-nar-bundles/pom.xml
@@ -28,7 +28,6 @@
<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>
<module>minifi-ssl-context-service-nar</module>
</modules>
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/cbb2bdd8/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/ConfigSchemaFunction.java
----------------------------------------------------------------------
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 ed016e1..5665430 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
@@ -19,6 +19,7 @@ package org.apache.nifi.minifi.toolkit.configuration.dto;
import org.apache.nifi.minifi.commons.schema.ConfigSchema;
import org.apache.nifi.minifi.commons.schema.ConnectionSchema;
+import org.apache.nifi.minifi.commons.schema.ControllerServiceSchema;
import org.apache.nifi.minifi.commons.schema.FunnelSchema;
import org.apache.nifi.minifi.commons.schema.PortSchema;
import org.apache.nifi.minifi.commons.schema.ProcessGroupSchema;
@@ -45,6 +46,7 @@ import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.OU
public class ConfigSchemaFunction implements Function<TemplateDTO, ConfigSchema> {
private final FlowControllerSchemaFunction flowControllerSchemaFunction;
private final ProcessorSchemaFunction processorSchemaFunction;
+ private final ControllerServiceSchemaFunction controllerServiceSchemaFunction;
private final ConnectionSchemaFunction connectionSchemaFunction;
private final FunnelSchemaFunction funnelSchemaFunction;
private final RemoteProcessGroupSchemaFunction remoteProcessGroupSchemaFunction;
@@ -53,12 +55,12 @@ public class ConfigSchemaFunction implements Function<TemplateDTO, ConfigSchema>
public ConfigSchemaFunction() {
this(new FlowControllerSchemaFunction(), new ProcessorSchemaFunction(), new ConnectionSchemaFunction(), new FunnelSchemaFunction(), new RemoteProcessGroupSchemaFunction(
- new RemoteInputPortSchemaFunction()), new PortSchemaFunction(INPUT_PORTS_KEY), new PortSchemaFunction(OUTPUT_PORTS_KEY));
+ new RemoteInputPortSchemaFunction()), new PortSchemaFunction(INPUT_PORTS_KEY), new PortSchemaFunction(OUTPUT_PORTS_KEY), new ControllerServiceSchemaFunction());
}
public ConfigSchemaFunction(FlowControllerSchemaFunction flowControllerSchemaFunction, ProcessorSchemaFunction processorSchemaFunction, ConnectionSchemaFunction connectionSchemaFunction,
FunnelSchemaFunction funnelSchemaFunction, RemoteProcessGroupSchemaFunction remoteProcessGroupSchemaFunction, PortSchemaFunction inputPortSchemaFunction,
- PortSchemaFunction outputPortSchemaFunction) {
+ PortSchemaFunction outputPortSchemaFunction, ControllerServiceSchemaFunction controllerServiceSchemaFunction) {
this.flowControllerSchemaFunction = flowControllerSchemaFunction;
this.processorSchemaFunction = processorSchemaFunction;
this.connectionSchemaFunction = connectionSchemaFunction;
@@ -66,6 +68,7 @@ public class ConfigSchemaFunction implements Function<TemplateDTO, ConfigSchema>
this.remoteProcessGroupSchemaFunction = remoteProcessGroupSchemaFunction;
this.inputPortSchemaFunction = inputPortSchemaFunction;
this.outputPortSchemaFunction = outputPortSchemaFunction;
+ this.controllerServiceSchemaFunction = controllerServiceSchemaFunction;
}
@Override
@@ -100,6 +103,12 @@ public class ConfigSchemaFunction implements Function<TemplateDTO, ConfigSchema>
.map(ProcessorSchema::toMap)
.collect(Collectors.toList()));
+ map.put(CommonPropertyKeys.CONTROLLER_SERVICES_KEY, nullToEmpty(snippet.getControllerServices()).stream()
+ .map(controllerServiceSchemaFunction)
+ .sorted(Comparator.comparing(ControllerServiceSchema::getName))
+ .map(ControllerServiceSchema::toMap)
+ .collect(Collectors.toList()));
+
map.put(CommonPropertyKeys.CONNECTIONS_KEY, nullToEmpty(snippet.getConnections()).stream()
.map(connectionSchemaFunction)
.sorted(Comparator.comparing(ConnectionSchema::getName))
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/cbb2bdd8/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/ControllerServiceSchemaFunction.java
----------------------------------------------------------------------
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/ControllerServiceSchemaFunction.java b/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/ControllerServiceSchemaFunction.java
new file mode 100644
index 0000000..c76751c
--- /dev/null
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/ControllerServiceSchemaFunction.java
@@ -0,0 +1,51 @@
+/*
+ * 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.toolkit.configuration.dto;
+
+import org.apache.nifi.minifi.commons.schema.ControllerServiceSchema;
+import org.apache.nifi.web.api.dto.ControllerServiceDTO;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.Function;
+
+import static org.apache.nifi.minifi.commons.schema.common.CollectionUtil.nullToEmpty;
+import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.ANNOTATION_DATA_KEY;
+import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.ID_KEY;
+import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.NAME_KEY;
+import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.PROPERTIES_KEY;
+import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.TYPE_KEY;
+
+public class ControllerServiceSchemaFunction implements Function<ControllerServiceDTO, ControllerServiceSchema> {
+ @Override
+ public ControllerServiceSchema apply(ControllerServiceDTO controllerServiceDTO) {
+ Map<String, Object> map = new HashMap<>();
+ map.put(NAME_KEY, controllerServiceDTO.getName());
+ map.put(ID_KEY, controllerServiceDTO.getId());
+ map.put(TYPE_KEY, controllerServiceDTO.getType());
+
+ map.put(PROPERTIES_KEY, new HashMap<>(nullToEmpty(controllerServiceDTO.getProperties())));
+
+ String annotationData = controllerServiceDTO.getAnnotationData();
+ if(annotationData != null && !annotationData.isEmpty()) {
+ map.put(ANNOTATION_DATA_KEY, annotationData);
+ }
+
+ return new ControllerServiceSchema(map);
+ }
+}
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/cbb2bdd8/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaFunction.java
----------------------------------------------------------------------
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaFunction.java b/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaFunction.java
index 89097cc..2efaca8 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaFunction.java
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaFunction.java
@@ -29,8 +29,11 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import static org.apache.nifi.minifi.commons.schema.common.CollectionUtil.nullToEmpty;
+import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.ANNOTATION_DATA_KEY;
+import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.CLASS_KEY;
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.ID_KEY;
import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.NAME_KEY;
+import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.PROPERTIES_KEY;
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;
@@ -42,7 +45,7 @@ public class ProcessorSchemaFunction implements Function<ProcessorDTO, Processor
Map<String, Object> map = new HashMap<>();
map.put(NAME_KEY, processorDTO.getName());
map.put(ID_KEY, processorDTO.getId());
- map.put(ProcessorSchema.CLASS_KEY, processorDTO.getType());
+ map.put(CLASS_KEY, processorDTO.getType());
map.put(SCHEDULING_STRATEGY_KEY, processorDTOConfig.getSchedulingStrategy());
map.put(SCHEDULING_PERIOD_KEY, processorDTOConfig.getSchedulingPeriod());
@@ -57,11 +60,11 @@ public class ProcessorSchemaFunction implements Function<ProcessorDTO, Processor
.filter(RelationshipDTO::isAutoTerminate)
.map(RelationshipDTO::getName)
.collect(Collectors.toList()));
- map.put(ProcessorSchema.PROCESSOR_PROPS_KEY, new HashMap<>(nullToEmpty(processorDTOConfig.getProperties())));
+ map.put(PROPERTIES_KEY, new HashMap<>(nullToEmpty(processorDTOConfig.getProperties())));
String annotationData = processorDTOConfig.getAnnotationData();
if(annotationData != null && !annotationData.isEmpty()) {
- map.put(ProcessorSchema.ANNOTATION_DATA_KEY, annotationData);
+ map.put(ANNOTATION_DATA_KEY, annotationData);
}
return new ProcessorSchema(map);
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/cbb2bdd8/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 70f9e75..597546f 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
@@ -208,6 +208,11 @@ public class ConfigMainTest {
}
@Test
+ public void testTransformRoundTripNestedControllerServices() throws IOException, JAXBException, SchemaLoaderException {
+ transformRoundTrip("NestedControllerServices");
+ }
+
+ @Test
public void testSuccessTransformProcessGroup() throws IOException, JAXBException, SchemaLoaderException {
ConfigMain.transformTemplateToSchema(getClass().getClassLoader().getResourceAsStream("TemplateWithProcessGroup.xml")).toMap();
}
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/cbb2bdd8/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaTest.java
----------------------------------------------------------------------
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaTest.java b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaTest.java
index 719c89a..e3125fa 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaTest.java
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/dto/ProcessorSchemaTest.java
@@ -32,6 +32,9 @@ import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
+import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.ANNOTATION_DATA_KEY;
+import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.CLASS_KEY;
+import static org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys.PROPERTIES_KEY;
import static org.junit.Assert.assertEquals;
public class ProcessorSchemaTest extends BaseSchemaTester<ProcessorSchema, ProcessorDTO> {
@@ -110,7 +113,7 @@ public class ProcessorSchemaTest extends BaseSchemaTester<ProcessorSchema, Proce
map = new HashMap<>();
map.put(CommonPropertyKeys.NAME_KEY, testName);
map.put(CommonPropertyKeys.ID_KEY, testId);
- map.put(ProcessorSchema.CLASS_KEY, testProcessorClass);
+ map.put(CLASS_KEY, testProcessorClass);
map.put(CommonPropertyKeys.SCHEDULING_STRATEGY_KEY, testSchedulingStrategy);
map.put(CommonPropertyKeys.SCHEDULING_PERIOD_KEY, testSchedulingPeriod);
map.put(CommonPropertyKeys.MAX_CONCURRENT_TASKS_KEY, testMaxConcurrentTasks);
@@ -118,8 +121,8 @@ public class ProcessorSchemaTest extends BaseSchemaTester<ProcessorSchema, Proce
map.put(CommonPropertyKeys.YIELD_PERIOD_KEY, testYieldDuration);
map.put(ProcessorSchema.RUN_DURATION_NANOS_KEY, testRunDurationNanos);
map.put(ProcessorSchema.AUTO_TERMINATED_RELATIONSHIPS_LIST_KEY, Arrays.asList(testRelationship));
- map.put(ProcessorSchema.PROCESSOR_PROPS_KEY, new HashMap<>(properties));
- map.put(ProcessorSchema.ANNOTATION_DATA_KEY, testAnnotationData);
+ map.put(PROPERTIES_KEY, new HashMap<>(properties));
+ map.put(ANNOTATION_DATA_KEY, testAnnotationData);
}
@Test
@@ -139,7 +142,7 @@ public class ProcessorSchemaTest extends BaseSchemaTester<ProcessorSchema, Proce
@Test
public void testNoProcessorClass() {
dto.setType(null);
- map.remove(ProcessorSchema.CLASS_KEY);
+ map.remove(CLASS_KEY);
assertDtoAndMapConstructorAreSame(1);
}
@@ -203,14 +206,14 @@ public class ProcessorSchemaTest extends BaseSchemaTester<ProcessorSchema, Proce
@Test
public void testNoProperties() {
config.setProperties(null);
- map.remove(ProcessorSchema.PROCESSOR_PROPS_KEY);
+ map.remove(PROPERTIES_KEY);
assertDtoAndMapConstructorAreSame(0);
}
@Test
public void testNoAnnotationData() {
config.setAnnotationData(null);
- map.remove(ProcessorSchema.ANNOTATION_DATA_KEY);
+ map.remove(ANNOTATION_DATA_KEY);
assertDtoAndMapConstructorAreSame(0);
}
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/cbb2bdd8/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/CsvToJson.yml
----------------------------------------------------------------------
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 eaa16c2..ad0d0ac 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/CsvToJson.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/CsvToJson.yml
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-MiNiFi Config Version: 2
+MiNiFi Config Version: 3
Flow Controller:
name: CsvToJsonWorking
comment: ''
@@ -148,6 +148,7 @@ Processors:
- success
Properties:
Delete Attributes Expression:
+Controller Services: []
Process Groups: []
Input Ports: []
Output Ports: []
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/cbb2bdd8/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/DecompressionCircularFlow.yml
----------------------------------------------------------------------
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 4d11eac..f93877e 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/DecompressionCircularFlow.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/DecompressionCircularFlow.yml
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-MiNiFi Config Version: 2
+MiNiFi Config Version: 3
Flow Controller:
name: DecompressionCircularFlow2
comment: ''
@@ -187,6 +187,7 @@ Processors:
Compression Level:
Mode: decompress
Update Filename:
+Controller Services: []
Process Groups: []
Input Ports: []
Output Ports: []
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/cbb2bdd8/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 a427409..6a84d72 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-MiNiFi Config Version: 2
+MiNiFi Config Version: 3
Flow Controller:
name: InvokeHttpMiNiFiTemplateTest2
comment: ''
@@ -166,6 +166,7 @@ Processors:
Properties:
Delete Attributes Expression:
q: nifi
+Controller Services: []
Process Groups: []
Input Ports: []
Output Ports: []
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/cbb2bdd8/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleRelationships.yml
----------------------------------------------------------------------
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 8f8b038..264b68d 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleRelationships.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleRelationships.yml
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-MiNiFi Config Version: 2
+MiNiFi Config Version: 3
Flow Controller:
name: MultipleRelationships
comment: ''
@@ -114,6 +114,7 @@ Processors:
Properties:
Delete Attributes Expression:
filename: abc
+Controller Services: []
Process Groups: []
Input Ports: []
Output Ports: []
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/cbb2bdd8/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NestedControllerServices.xml
----------------------------------------------------------------------
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NestedControllerServices.xml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NestedControllerServices.xml
new file mode 100644
index 0000000..13fc40e
--- /dev/null
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NestedControllerServices.xml
@@ -0,0 +1,1089 @@
+<?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>d193767e-0158-1000-9f0b-960406019246</groupId>
+ <name>NestedControllerServices</name>
+ <snippet>
+ <connections>
+ <id>d5234d12-0158-1000-0000-000000000000</id>
+ <parentGroupId>d193767e-0158-1000-0000-000000000000</parentGroupId>
+ <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+ <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+ <destination>
+ <groupId>d193767e-0158-1000-0000-000000000000</groupId>
+ <id>d5233667-0158-1000-0000-000000000000</id>
+ <type>PROCESSOR</type>
+ </destination>
+ <flowFileExpiration>0 sec</flowFileExpiration>
+ <labelIndex>1</labelIndex>
+ <name></name>
+ <selectedRelationships>success</selectedRelationships>
+ <source>
+ <groupId>d193767e-0158-1000-0000-000000000000</groupId>
+ <id>d5232ad7-0158-1000-0000-000000000000</id>
+ <type>PROCESSOR</type>
+ </source>
+ <zIndex>0</zIndex>
+ </connections>
+ <controllerServices>
+ <id>d4c47b18-0158-1000-0000-000000000000</id>
+ <parentGroupId>d193767e-0158-1000-0000-000000000000</parentGroupId>
+ <comments></comments>
+ <descriptors>
+ <entry>
+ <key>Keystore Filename</key>
+ <value>
+ <name>Keystore Filename</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Keystore Password</key>
+ <value>
+ <name>Keystore Password</name>
+ </value>
+ </entry>
+ <entry>
+ <key>key-password</key>
+ <value>
+ <name>key-password</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Keystore Type</key>
+ <value>
+ <name>Keystore Type</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Truststore Filename</key>
+ <value>
+ <name>Truststore Filename</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Truststore Password</key>
+ <value>
+ <name>Truststore Password</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Truststore Type</key>
+ <value>
+ <name>Truststore Type</name>
+ </value>
+ </entry>
+ <entry>
+ <key>SSL Protocol</key>
+ <value>
+ <name>SSL Protocol</name>
+ </value>
+ </entry>
+ </descriptors>
+ <name>test-root</name>
+ <properties>
+ <entry>
+ <key>Keystore Filename</key>
+ </entry>
+ <entry>
+ <key>Keystore Password</key>
+ </entry>
+ <entry>
+ <key>key-password</key>
+ </entry>
+ <entry>
+ <key>Keystore Type</key>
+ </entry>
+ <entry>
+ <key>Truststore Filename</key>
+ </entry>
+ <entry>
+ <key>Truststore Password</key>
+ </entry>
+ <entry>
+ <key>Truststore Type</key>
+ </entry>
+ <entry>
+ <key>SSL Protocol</key>
+ </entry>
+ </properties>
+ <state>DISABLED</state>
+ <type>org.apache.nifi.ssl.StandardSSLContextService</type>
+ </controllerServices>
+ <processGroups>
+ <id>d4c4b4e4-0158-1000-0000-000000000000</id>
+ <parentGroupId>d193767e-0158-1000-0000-000000000000</parentGroupId>
+ <position>
+ <x>602.334350907364</x>
+ <y>0.0</y>
+ </position>
+ <comments></comments>
+ <contents>
+ <connections>
+ <id>d522e203-0158-1000-0000-000000000000</id>
+ <parentGroupId>d4c4b4e4-0158-1000-0000-000000000000</parentGroupId>
+ <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+ <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+ <destination>
+ <groupId>d4c4b4e4-0158-1000-0000-000000000000</groupId>
+ <id>d522d82b-0158-1000-0000-000000000000</id>
+ <type>PROCESSOR</type>
+ </destination>
+ <flowFileExpiration>0 sec</flowFileExpiration>
+ <labelIndex>1</labelIndex>
+ <name></name>
+ <selectedRelationships>success</selectedRelationships>
+ <source>
+ <groupId>d4c4b4e4-0158-1000-0000-000000000000</groupId>
+ <id>d520168b-0158-1000-0000-000000000000</id>
+ <type>PROCESSOR</type>
+ </source>
+ <zIndex>0</zIndex>
+ </connections>
+ <controllerServices>
+ <id>d4c4c947-0158-1000-0000-000000000000</id>
+ <parentGroupId>d4c4b4e4-0158-1000-0000-000000000000</parentGroupId>
+ <comments></comments>
+ <descriptors>
+ <entry>
+ <key>Maximum Outstanding Requests</key>
+ <value>
+ <name>Maximum Outstanding Requests</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Request Expiration</key>
+ <value>
+ <name>Request Expiration</name>
+ </value>
+ </entry>
+ </descriptors>
+ <name>test-middle</name>
+ <properties>
+ <entry>
+ <key>Maximum Outstanding Requests</key>
+ </entry>
+ <entry>
+ <key>Request Expiration</key>
+ </entry>
+ </properties>
+ <state>DISABLED</state>
+ <type>org.apache.nifi.http.StandardHttpContextMap</type>
+ </controllerServices>
+ <processGroups>
+ <id>d4c52c16-0158-1000-0000-000000000000</id>
+ <parentGroupId>d4c4b4e4-0158-1000-0000-000000000000</parentGroupId>
+ <position>
+ <x>444.00000013523464</x>
+ <y>139.99998313812395</y>
+ </position>
+ <comments></comments>
+ <contents>
+ <connections>
+ <id>d52147e4-0158-1000-0000-000000000000</id>
+ <parentGroupId>d4c52c16-0158-1000-0000-000000000000</parentGroupId>
+ <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+ <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+ <destination>
+ <groupId>d4c52c16-0158-1000-0000-000000000000</groupId>
+ <id>d5205c43-0158-1000-0000-000000000000</id>
+ <type>PROCESSOR</type>
+ </destination>
+ <flowFileExpiration>0 sec</flowFileExpiration>
+ <labelIndex>1</labelIndex>
+ <name></name>
+ <selectedRelationships>success</selectedRelationships>
+ <source>
+ <groupId>d4c52c16-0158-1000-0000-000000000000</groupId>
+ <id>d5211ba3-0158-1000-0000-000000000000</id>
+ <type>PROCESSOR</type>
+ </source>
+ <zIndex>0</zIndex>
+ </connections>
+ <connections>
+ <id>d521c3e8-0158-1000-0000-000000000000</id>
+ <parentGroupId>d4c52c16-0158-1000-0000-000000000000</parentGroupId>
+ <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+ <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+ <destination>
+ <groupId>d4c52c16-0158-1000-0000-000000000000</groupId>
+ <id>d521ab50-0158-1000-0000-000000000000</id>
+ <type>PROCESSOR</type>
+ </destination>
+ <flowFileExpiration>0 sec</flowFileExpiration>
+ <labelIndex>1</labelIndex>
+ <name></name>
+ <selectedRelationships>duplicate</selectedRelationships>
+ <selectedRelationships>failure</selectedRelationships>
+ <selectedRelationships>non-duplicate</selectedRelationships>
+ <source>
+ <groupId>d4c52c16-0158-1000-0000-000000000000</groupId>
+ <id>d5205c43-0158-1000-0000-000000000000</id>
+ <type>PROCESSOR</type>
+ </source>
+ <zIndex>0</zIndex>
+ </connections>
+ <controllerServices>
+ <id>d4c5554d-0158-1000-0000-000000000000</id>
+ <parentGroupId>d4c52c16-0158-1000-0000-000000000000</parentGroupId>
+ <comments></comments>
+ <descriptors>
+ <entry>
+ <key>Server Hostname</key>
+ <value>
+ <name>Server Hostname</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Server Port</key>
+ <value>
+ <name>Server Port</name>
+ </value>
+ </entry>
+ <entry>
+ <key>SSL Context Service</key>
+ <value>
+ <identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService>
+ <name>SSL Context Service</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Communications Timeout</key>
+ <value>
+ <name>Communications Timeout</name>
+ </value>
+ </entry>
+ </descriptors>
+ <name>test-inner</name>
+ <properties>
+ <entry>
+ <key>Server Hostname</key>
+ <value>localhost</value>
+ </entry>
+ <entry>
+ <key>Server Port</key>
+ </entry>
+ <entry>
+ <key>SSL Context Service</key>
+ <value>d4c47b18-0158-1000-0000-000000000000</value>
+ </entry>
+ <entry>
+ <key>Communications Timeout</key>
+ </entry>
+ </properties>
+ <state>DISABLED</state>
+ <type>org.apache.nifi.distributed.cache.client.DistributedMapCacheClientService</type>
+ </controllerServices>
+ <processors>
+ <id>d5205c43-0158-1000-0000-000000000000</id>
+ <parentGroupId>d4c52c16-0158-1000-0000-000000000000</parentGroupId>
+ <position>
+ <x>654.0000001352346</x>
+ <y>379.99999839691304</y>
+ </position>
+ <config>
+ <bulletinLevel>WARN</bulletinLevel>
+ <comments></comments>
+ <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+ <descriptors>
+ <entry>
+ <key>Cache Entry Identifier</key>
+ <value>
+ <name>Cache Entry Identifier</name>
+ </value>
+ </entry>
+ <entry>
+ <key>FlowFile Description</key>
+ <value>
+ <name>FlowFile Description</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Age Off Duration</key>
+ <value>
+ <name>Age Off Duration</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Distributed Cache Service</key>
+ <value>
+ <identifiesControllerService>org.apache.nifi.distributed.cache.client.DistributedMapCacheClient</identifiesControllerService>
+ <name>Distributed Cache Service</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Cache The Entry Identifier</key>
+ <value>
+ <name>Cache The Entry Identifier</name>
+ </value>
+ </entry>
+ </descriptors>
+ <executionNode>ALL</executionNode>
+ <lossTolerant>false</lossTolerant>
+ <penaltyDuration>30 sec</penaltyDuration>
+ <properties>
+ <entry>
+ <key>Cache Entry Identifier</key>
+ <value>${hash.value}</value>
+ </entry>
+ <entry>
+ <key>FlowFile Description</key>
+ <value>test</value>
+ </entry>
+ <entry>
+ <key>Age Off Duration</key>
+ </entry>
+ <entry>
+ <key>Distributed Cache Service</key>
+ <value>d4c5554d-0158-1000-0000-000000000000</value>
+ </entry>
+ <entry>
+ <key>Cache The Entry Identifier</key>
+ <value>true</value>
+ </entry>
+ </properties>
+ <runDurationMillis>0</runDurationMillis>
+ <schedulingPeriod>0 sec</schedulingPeriod>
+ <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+ <yieldDuration>1 sec</yieldDuration>
+ </config>
+ <name>DetectDuplicate</name>
+ <relationships>
+ <autoTerminate>false</autoTerminate>
+ <name>duplicate</name>
+ </relationships>
+ <relationships>
+ <autoTerminate>false</autoTerminate>
+ <name>failure</name>
+ </relationships>
+ <relationships>
+ <autoTerminate>false</autoTerminate>
+ <name>non-duplicate</name>
+ </relationships>
+ <style></style>
+ <type>org.apache.nifi.processors.standard.DetectDuplicate</type>
+ </processors>
+ <processors>
+ <id>d5211ba3-0158-1000-0000-000000000000</id>
+ <parentGroupId>d4c52c16-0158-1000-0000-000000000000</parentGroupId>
+ <position>
+ <x>669.0000001352346</x>
+ <y>154.999998396913</y>
+ </position>
+ <config>
+ <bulletinLevel>WARN</bulletinLevel>
+ <comments></comments>
+ <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+ <descriptors>
+ <entry>
+ <key>URL</key>
+ <value>
+ <name>URL</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Filename</key>
+ <value>
+ <name>Filename</name>
+ </value>
+ </entry>
+ <entry>
+ <key>SSL Context Service</key>
+ <value>
+ <identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService>
+ <name>SSL Context Service</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Username</key>
+ <value>
+ <name>Username</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Password</key>
+ <value>
+ <name>Password</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Connection Timeout</key>
+ <value>
+ <name>Connection Timeout</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Data Timeout</key>
+ <value>
+ <name>Data Timeout</name>
+ </value>
+ </entry>
+ <entry>
+ <key>User Agent</key>
+ <value>
+ <name>User Agent</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Accept Content-Type</key>
+ <value>
+ <name>Accept Content-Type</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Follow Redirects</key>
+ <value>
+ <name>Follow Redirects</name>
+ </value>
+ </entry>
+ <entry>
+ <key>redirect-cookie-policy</key>
+ <value>
+ <name>redirect-cookie-policy</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Proxy Host</key>
+ <value>
+ <name>Proxy Host</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Proxy Port</key>
+ <value>
+ <name>Proxy Port</name>
+ </value>
+ </entry>
+ </descriptors>
+ <executionNode>ALL</executionNode>
+ <lossTolerant>false</lossTolerant>
+ <penaltyDuration>30 sec</penaltyDuration>
+ <properties>
+ <entry>
+ <key>URL</key>
+ <value>https://localhost:8080/</value>
+ </entry>
+ <entry>
+ <key>Filename</key>
+ <value>getLocalhost</value>
+ </entry>
+ <entry>
+ <key>SSL Context Service</key>
+ </entry>
+ <entry>
+ <key>Username</key>
+ </entry>
+ <entry>
+ <key>Password</key>
+ </entry>
+ <entry>
+ <key>Connection Timeout</key>
+ <value>30 sec</value>
+ </entry>
+ <entry>
+ <key>Data Timeout</key>
+ <value>30 sec</value>
+ </entry>
+ <entry>
+ <key>User Agent</key>
+ </entry>
+ <entry>
+ <key>Accept Content-Type</key>
+ </entry>
+ <entry>
+ <key>Follow Redirects</key>
+ <value>false</value>
+ </entry>
+ <entry>
+ <key>redirect-cookie-policy</key>
+ <value>default</value>
+ </entry>
+ <entry>
+ <key>Proxy Host</key>
+ </entry>
+ <entry>
+ <key>Proxy Port</key>
+ </entry>
+ </properties>
+ <runDurationMillis>0</runDurationMillis>
+ <schedulingPeriod>0 sec</schedulingPeriod>
+ <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+ <yieldDuration>1 sec</yieldDuration>
+ </config>
+ <name>GetHTTP</name>
+ <relationships>
+ <autoTerminate>false</autoTerminate>
+ <name>success</name>
+ </relationships>
+ <style></style>
+ <type>org.apache.nifi.processors.standard.GetHTTP</type>
+ </processors>
+ <processors>
+ <id>d521ab50-0158-1000-0000-000000000000</id>
+ <parentGroupId>d4c52c16-0158-1000-0000-000000000000</parentGroupId>
+ <position>
+ <x>635.0000001352346</x>
+ <y>631.999998396913</y>
+ </position>
+ <config>
+ <bulletinLevel>WARN</bulletinLevel>
+ <comments></comments>
+ <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+ <descriptors>
+ <entry>
+ <key>Log Level</key>
+ <value>
+ <name>Log Level</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Log Payload</key>
+ <value>
+ <name>Log Payload</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Attributes to Log</key>
+ <value>
+ <name>Attributes to Log</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Attributes to Ignore</key>
+ <value>
+ <name>Attributes to Ignore</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Log prefix</key>
+ <value>
+ <name>Log prefix</name>
+ </value>
+ </entry>
+ </descriptors>
+ <executionNode>ALL</executionNode>
+ <lossTolerant>false</lossTolerant>
+ <penaltyDuration>30 sec</penaltyDuration>
+ <properties>
+ <entry>
+ <key>Log Level</key>
+ <value>info</value>
+ </entry>
+ <entry>
+ <key>Log Payload</key>
+ <value>false</value>
+ </entry>
+ <entry>
+ <key>Attributes to Log</key>
+ </entry>
+ <entry>
+ <key>Attributes to Ignore</key>
+ </entry>
+ <entry>
+ <key>Log prefix</key>
+ </entry>
+ </properties>
+ <runDurationMillis>0</runDurationMillis>
+ <schedulingPeriod>0 sec</schedulingPeriod>
+ <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+ <yieldDuration>1 sec</yieldDuration>
+ </config>
+ <name>LogAttribute</name>
+ <relationships>
+ <autoTerminate>true</autoTerminate>
+ <name>success</name>
+ </relationships>
+ <style></style>
+ <type>org.apache.nifi.processors.standard.LogAttribute</type>
+ </processors>
+ </contents>
+ <name>inner</name>
+ </processGroups>
+ <processors>
+ <id>d520168b-0158-1000-0000-000000000000</id>
+ <parentGroupId>d4c4b4e4-0158-1000-0000-000000000000</parentGroupId>
+ <position>
+ <x>-60.99999986476536</x>
+ <y>54.99998313812398</y>
+ </position>
+ <config>
+ <bulletinLevel>WARN</bulletinLevel>
+ <comments></comments>
+ <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+ <descriptors>
+ <entry>
+ <key>Listening Port</key>
+ <value>
+ <name>Listening Port</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Hostname</key>
+ <value>
+ <name>Hostname</name>
+ </value>
+ </entry>
+ <entry>
+ <key>SSL Context Service</key>
+ <value>
+ <identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService>
+ <name>SSL Context Service</name>
+ </value>
+ </entry>
+ <entry>
+ <key>HTTP Context Map</key>
+ <value>
+ <identifiesControllerService>org.apache.nifi.http.HttpContextMap</identifiesControllerService>
+ <name>HTTP Context Map</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Allowed Paths</key>
+ <value>
+ <name>Allowed Paths</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Default URL Character Set</key>
+ <value>
+ <name>Default URL Character Set</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Allow GET</key>
+ <value>
+ <name>Allow GET</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Allow POST</key>
+ <value>
+ <name>Allow POST</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Allow PUT</key>
+ <value>
+ <name>Allow PUT</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Allow DELETE</key>
+ <value>
+ <name>Allow DELETE</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Allow HEAD</key>
+ <value>
+ <name>Allow HEAD</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Allow OPTIONS</key>
+ <value>
+ <name>Allow OPTIONS</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Additional HTTP Methods</key>
+ <value>
+ <name>Additional HTTP Methods</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Client Authentication</key>
+ <value>
+ <name>Client Authentication</name>
+ </value>
+ </entry>
+ <entry>
+ <key>container-queue-size</key>
+ <value>
+ <name>container-queue-size</name>
+ </value>
+ </entry>
+ </descriptors>
+ <executionNode>ALL</executionNode>
+ <lossTolerant>false</lossTolerant>
+ <penaltyDuration>30 sec</penaltyDuration>
+ <properties>
+ <entry>
+ <key>Listening Port</key>
+ <value>80</value>
+ </entry>
+ <entry>
+ <key>Hostname</key>
+ </entry>
+ <entry>
+ <key>SSL Context Service</key>
+ </entry>
+ <entry>
+ <key>HTTP Context Map</key>
+ <value>d4c4c947-0158-1000-0000-000000000000</value>
+ </entry>
+ <entry>
+ <key>Allowed Paths</key>
+ </entry>
+ <entry>
+ <key>Default URL Character Set</key>
+ <value>UTF-8</value>
+ </entry>
+ <entry>
+ <key>Allow GET</key>
+ <value>true</value>
+ </entry>
+ <entry>
+ <key>Allow POST</key>
+ <value>true</value>
+ </entry>
+ <entry>
+ <key>Allow PUT</key>
+ <value>true</value>
+ </entry>
+ <entry>
+ <key>Allow DELETE</key>
+ <value>true</value>
+ </entry>
+ <entry>
+ <key>Allow HEAD</key>
+ <value>false</value>
+ </entry>
+ <entry>
+ <key>Allow OPTIONS</key>
+ <value>false</value>
+ </entry>
+ <entry>
+ <key>Additional HTTP Methods</key>
+ </entry>
+ <entry>
+ <key>Client Authentication</key>
+ <value>No Authentication</value>
+ </entry>
+ <entry>
+ <key>container-queue-size</key>
+ <value>50</value>
+ </entry>
+ </properties>
+ <runDurationMillis>0</runDurationMillis>
+ <schedulingPeriod>0 sec</schedulingPeriod>
+ <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+ <yieldDuration>1 sec</yieldDuration>
+ </config>
+ <name>HandleHttpRequest</name>
+ <relationships>
+ <autoTerminate>false</autoTerminate>
+ <name>success</name>
+ </relationships>
+ <style></style>
+ <type>org.apache.nifi.processors.standard.HandleHttpRequest</type>
+ </processors>
+ <processors>
+ <id>d522d82b-0158-1000-0000-000000000000</id>
+ <parentGroupId>d4c4b4e4-0158-1000-0000-000000000000</parentGroupId>
+ <position>
+ <x>-57.99999986476536</x>
+ <y>290.999983138124</y>
+ </position>
+ <config>
+ <bulletinLevel>WARN</bulletinLevel>
+ <comments></comments>
+ <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+ <descriptors>
+ <entry>
+ <key>HTTP Status Code</key>
+ <value>
+ <name>HTTP Status Code</name>
+ </value>
+ </entry>
+ <entry>
+ <key>HTTP Context Map</key>
+ <value>
+ <identifiesControllerService>org.apache.nifi.http.HttpContextMap</identifiesControllerService>
+ <name>HTTP Context Map</name>
+ </value>
+ </entry>
+ </descriptors>
+ <executionNode>ALL</executionNode>
+ <lossTolerant>false</lossTolerant>
+ <penaltyDuration>30 sec</penaltyDuration>
+ <properties>
+ <entry>
+ <key>HTTP Status Code</key>
+ <value>200</value>
+ </entry>
+ <entry>
+ <key>HTTP Context Map</key>
+ <value>d4c4c947-0158-1000-0000-000000000000</value>
+ </entry>
+ </properties>
+ <runDurationMillis>0</runDurationMillis>
+ <schedulingPeriod>0 sec</schedulingPeriod>
+ <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+ <yieldDuration>1 sec</yieldDuration>
+ </config>
+ <name>HandleHttpResponse</name>
+ <relationships>
+ <autoTerminate>false</autoTerminate>
+ <name>failure</name>
+ </relationships>
+ <relationships>
+ <autoTerminate>false</autoTerminate>
+ <name>success</name>
+ </relationships>
+ <style></style>
+ <type>org.apache.nifi.processors.standard.HandleHttpResponse</type>
+ </processors>
+ </contents>
+ <name>middle</name>
+ </processGroups>
+ <processors>
+ <id>d5232ad7-0158-1000-0000-000000000000</id>
+ <parentGroupId>d193767e-0158-1000-0000-000000000000</parentGroupId>
+ <position>
+ <x>0.0</x>
+ <y>9.5862223843003</y>
+ </position>
+ <config>
+ <bulletinLevel>WARN</bulletinLevel>
+ <comments></comments>
+ <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+ <descriptors>
+ <entry>
+ <key>URL</key>
+ <value>
+ <name>URL</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Filename</key>
+ <value>
+ <name>Filename</name>
+ </value>
+ </entry>
+ <entry>
+ <key>SSL Context Service</key>
+ <value>
+ <identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService>
+ <name>SSL Context Service</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Username</key>
+ <value>
+ <name>Username</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Password</key>
+ <value>
+ <name>Password</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Connection Timeout</key>
+ <value>
+ <name>Connection Timeout</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Data Timeout</key>
+ <value>
+ <name>Data Timeout</name>
+ </value>
+ </entry>
+ <entry>
+ <key>User Agent</key>
+ <value>
+ <name>User Agent</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Accept Content-Type</key>
+ <value>
+ <name>Accept Content-Type</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Follow Redirects</key>
+ <value>
+ <name>Follow Redirects</name>
+ </value>
+ </entry>
+ <entry>
+ <key>redirect-cookie-policy</key>
+ <value>
+ <name>redirect-cookie-policy</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Proxy Host</key>
+ <value>
+ <name>Proxy Host</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Proxy Port</key>
+ <value>
+ <name>Proxy Port</name>
+ </value>
+ </entry>
+ </descriptors>
+ <executionNode>ALL</executionNode>
+ <lossTolerant>false</lossTolerant>
+ <penaltyDuration>30 sec</penaltyDuration>
+ <properties>
+ <entry>
+ <key>URL</key>
+ <value>https://localhost:8080/nifi</value>
+ </entry>
+ <entry>
+ <key>Filename</key>
+ <value>nifiCorrectGet</value>
+ </entry>
+ <entry>
+ <key>SSL Context Service</key>
+ <value>d4c47b18-0158-1000-0000-000000000000</value>
+ </entry>
+ <entry>
+ <key>Username</key>
+ </entry>
+ <entry>
+ <key>Password</key>
+ </entry>
+ <entry>
+ <key>Connection Timeout</key>
+ <value>30 sec</value>
+ </entry>
+ <entry>
+ <key>Data Timeout</key>
+ <value>30 sec</value>
+ </entry>
+ <entry>
+ <key>User Agent</key>
+ </entry>
+ <entry>
+ <key>Accept Content-Type</key>
+ </entry>
+ <entry>
+ <key>Follow Redirects</key>
+ <value>false</value>
+ </entry>
+ <entry>
+ <key>redirect-cookie-policy</key>
+ <value>default</value>
+ </entry>
+ <entry>
+ <key>Proxy Host</key>
+ </entry>
+ <entry>
+ <key>Proxy Port</key>
+ </entry>
+ </properties>
+ <runDurationMillis>0</runDurationMillis>
+ <schedulingPeriod>0 sec</schedulingPeriod>
+ <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+ <yieldDuration>1 sec</yieldDuration>
+ </config>
+ <name>GetHTTP</name>
+ <relationships>
+ <autoTerminate>false</autoTerminate>
+ <name>success</name>
+ </relationships>
+ <style></style>
+ <type>org.apache.nifi.processors.standard.GetHTTP</type>
+ </processors>
+ <processors>
+ <id>d5233667-0158-1000-0000-000000000000</id>
+ <parentGroupId>d193767e-0158-1000-0000-000000000000</parentGroupId>
+ <position>
+ <x>3.1954241180271765</x>
+ <y>238.0578704887564</y>
+ </position>
+ <config>
+ <bulletinLevel>WARN</bulletinLevel>
+ <comments></comments>
+ <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+ <descriptors>
+ <entry>
+ <key>Log Level</key>
+ <value>
+ <name>Log Level</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Log Payload</key>
+ <value>
+ <name>Log Payload</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Attributes to Log</key>
+ <value>
+ <name>Attributes to Log</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Attributes to Ignore</key>
+ <value>
+ <name>Attributes to Ignore</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Log prefix</key>
+ <value>
+ <name>Log prefix</name>
+ </value>
+ </entry>
+ </descriptors>
+ <executionNode>ALL</executionNode>
+ <lossTolerant>false</lossTolerant>
+ <penaltyDuration>30 sec</penaltyDuration>
+ <properties>
+ <entry>
+ <key>Log Level</key>
+ <value>info</value>
+ </entry>
+ <entry>
+ <key>Log Payload</key>
+ <value>false</value>
+ </entry>
+ <entry>
+ <key>Attributes to Log</key>
+ </entry>
+ <entry>
+ <key>Attributes to Ignore</key>
+ </entry>
+ <entry>
+ <key>Log prefix</key>
+ </entry>
+ </properties>
+ <runDurationMillis>0</runDurationMillis>
+ <schedulingPeriod>0 sec</schedulingPeriod>
+ <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+ <yieldDuration>1 sec</yieldDuration>
+ </config>
+ <name>LogAttribute</name>
+ <relationships>
+ <autoTerminate>true</autoTerminate>
+ <name>success</name>
+ </relationships>
+ <style></style>
+ <type>org.apache.nifi.processors.standard.LogAttribute</type>
+ </processors>
+ </snippet>
+ <timestamp>12/06/2016 12:17:35 EST</timestamp>
+</template>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/cbb2bdd8/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NestedControllerServices.yml
----------------------------------------------------------------------
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NestedControllerServices.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NestedControllerServices.yml
new file mode 100644
index 0000000..964b784
--- /dev/null
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NestedControllerServices.yml
@@ -0,0 +1,290 @@
+# 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: 3
+Flow Controller:
+ name: NestedControllerServices
+ 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: d5232ad7-0158-1000-0000-000000000000
+ name: GetHTTP
+ class: org.apache.nifi.processors.standard.GetHTTP
+ max concurrent tasks: 1
+ scheduling strategy: TIMER_DRIVEN
+ scheduling period: 0 sec
+ penalization period: 30 sec
+ yield period: 1 sec
+ run duration nanos: 0
+ auto-terminated relationships list: []
+ Properties:
+ Accept Content-Type:
+ Connection Timeout: 30 sec
+ Data Timeout: 30 sec
+ Filename: nifiCorrectGet
+ Follow Redirects: 'false'
+ Password:
+ Proxy Host:
+ Proxy Port:
+ SSL Context Service: d4c47b18-0158-1000-0000-000000000000
+ URL: https://localhost:8080/nifi
+ User Agent:
+ Username:
+ redirect-cookie-policy: default
+- id: d5233667-0158-1000-0000-000000000000
+ name: LogAttribute
+ class: org.apache.nifi.processors.standard.LogAttribute
+ max concurrent tasks: 1
+ scheduling strategy: TIMER_DRIVEN
+ scheduling period: 0 sec
+ penalization period: 30 sec
+ yield period: 1 sec
+ run duration nanos: 0
+ auto-terminated relationships list:
+ - success
+ Properties:
+ Attributes to Ignore:
+ Attributes to Log:
+ Log Level: info
+ Log Payload: 'false'
+ Log prefix:
+Controller Services:
+- id: d4c47b18-0158-1000-0000-000000000000
+ name: test-root
+ type: org.apache.nifi.ssl.StandardSSLContextService
+ Properties:
+ Keystore Filename:
+ Keystore Password:
+ Keystore Type:
+ SSL Protocol:
+ Truststore Filename:
+ Truststore Password:
+ Truststore Type:
+ key-password:
+Process Groups:
+- id: d4c4b4e4-0158-1000-0000-000000000000
+ name: middle
+ Processors:
+ - id: d520168b-0158-1000-0000-000000000000
+ name: HandleHttpRequest
+ class: org.apache.nifi.processors.standard.HandleHttpRequest
+ max concurrent tasks: 1
+ scheduling strategy: TIMER_DRIVEN
+ scheduling period: 0 sec
+ penalization period: 30 sec
+ yield period: 1 sec
+ run duration nanos: 0
+ auto-terminated relationships list: []
+ Properties:
+ Additional HTTP Methods:
+ Allow DELETE: 'true'
+ Allow GET: 'true'
+ Allow HEAD: 'false'
+ Allow OPTIONS: 'false'
+ Allow POST: 'true'
+ Allow PUT: 'true'
+ Allowed Paths:
+ Client Authentication: No Authentication
+ Default URL Character Set: UTF-8
+ HTTP Context Map: d4c4c947-0158-1000-0000-000000000000
+ Hostname:
+ Listening Port: '80'
+ SSL Context Service:
+ container-queue-size: '50'
+ - id: d522d82b-0158-1000-0000-000000000000
+ name: HandleHttpResponse
+ class: org.apache.nifi.processors.standard.HandleHttpResponse
+ max concurrent tasks: 1
+ scheduling strategy: TIMER_DRIVEN
+ scheduling period: 0 sec
+ penalization period: 30 sec
+ yield period: 1 sec
+ run duration nanos: 0
+ auto-terminated relationships list: []
+ Properties:
+ HTTP Context Map: d4c4c947-0158-1000-0000-000000000000
+ HTTP Status Code: '200'
+ Controller Services:
+ - id: d4c4c947-0158-1000-0000-000000000000
+ name: test-middle
+ type: org.apache.nifi.http.StandardHttpContextMap
+ Properties:
+ Maximum Outstanding Requests:
+ Request Expiration:
+ Process Groups:
+ - id: d4c52c16-0158-1000-0000-000000000000
+ name: inner
+ Processors:
+ - id: d5205c43-0158-1000-0000-000000000000
+ name: DetectDuplicate
+ class: org.apache.nifi.processors.standard.DetectDuplicate
+ max concurrent tasks: 1
+ scheduling strategy: TIMER_DRIVEN
+ scheduling period: 0 sec
+ penalization period: 30 sec
+ yield period: 1 sec
+ run duration nanos: 0
+ auto-terminated relationships list: []
+ Properties:
+ Age Off Duration:
+ Cache Entry Identifier: ${hash.value}
+ Cache The Entry Identifier: 'true'
+ Distributed Cache Service: d4c5554d-0158-1000-0000-000000000000
+ FlowFile Description: test
+ - id: d5211ba3-0158-1000-0000-000000000000
+ name: GetHTTP
+ class: org.apache.nifi.processors.standard.GetHTTP
+ max concurrent tasks: 1
+ scheduling strategy: TIMER_DRIVEN
+ scheduling period: 0 sec
+ penalization period: 30 sec
+ yield period: 1 sec
+ run duration nanos: 0
+ auto-terminated relationships list: []
+ Properties:
+ Accept Content-Type:
+ Connection Timeout: 30 sec
+ Data Timeout: 30 sec
+ Filename: getLocalhost
+ Follow Redirects: 'false'
+ Password:
+ Proxy Host:
+ Proxy Port:
+ SSL Context Service:
+ URL: https://localhost:8080/
+ User Agent:
+ Username:
+ redirect-cookie-policy: default
+ - id: d521ab50-0158-1000-0000-000000000000
+ name: LogAttribute
+ class: org.apache.nifi.processors.standard.LogAttribute
+ max concurrent tasks: 1
+ scheduling strategy: TIMER_DRIVEN
+ scheduling period: 0 sec
+ penalization period: 30 sec
+ yield period: 1 sec
+ run duration nanos: 0
+ auto-terminated relationships list:
+ - success
+ Properties:
+ Attributes to Ignore:
+ Attributes to Log:
+ Log Level: info
+ Log Payload: 'false'
+ Log prefix:
+ Controller Services:
+ - id: d4c5554d-0158-1000-0000-000000000000
+ name: test-inner
+ type: org.apache.nifi.distributed.cache.client.DistributedMapCacheClientService
+ Properties:
+ Communications Timeout:
+ SSL Context Service: d4c47b18-0158-1000-0000-000000000000
+ Server Hostname: localhost
+ Server Port:
+ Process Groups: []
+ Input Ports: []
+ Output Ports: []
+ Funnels: []
+ Connections:
+ - id: d521c3e8-0158-1000-0000-000000000000
+ name: DetectDuplicate/failure/LogAttribute
+ source id: d5205c43-0158-1000-0000-000000000000
+ source relationship names:
+ - duplicate
+ - failure
+ - non-duplicate
+ destination id: d521ab50-0158-1000-0000-000000000000
+ max work queue size: 10000
+ max work queue data size: 1 GB
+ flowfile expiration: 0 sec
+ queue prioritizer class: ''
+ - id: d52147e4-0158-1000-0000-000000000000
+ name: GetHTTP/success/DetectDuplicate
+ source id: d5211ba3-0158-1000-0000-000000000000
+ source relationship names:
+ - success
+ destination id: d5205c43-0158-1000-0000-000000000000
+ max work queue size: 10000
+ max work queue data size: 1 GB
+ flowfile expiration: 0 sec
+ queue prioritizer class: ''
+ Remote Process Groups: []
+ Input Ports: []
+ Output Ports: []
+ Funnels: []
+ Connections:
+ - id: d522e203-0158-1000-0000-000000000000
+ name: HandleHttpRequest/success/HandleHttpResponse
+ source id: d520168b-0158-1000-0000-000000000000
+ source relationship names:
+ - success
+ destination id: d522d82b-0158-1000-0000-000000000000
+ max work queue size: 10000
+ max work queue data size: 1 GB
+ flowfile expiration: 0 sec
+ queue prioritizer class: ''
+ Remote Process Groups: []
+Input Ports: []
+Output Ports: []
+Funnels: []
+Connections:
+- id: d5234d12-0158-1000-0000-000000000000
+ name: GetHTTP/success/LogAttribute
+ source id: d5232ad7-0158-1000-0000-000000000000
+ source relationship names:
+ - success
+ destination id: d5233667-0158-1000-0000-000000000000
+ max work queue size: 10000
+ max work queue data size: 1 GB
+ flowfile expiration: 0 sec
+ queue prioritizer class: ''
+Remote Process Groups: []