You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nifi.apache.org by brosander <gi...@git.apache.org> on 2016/06/27 20:29:12 UTC

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

GitHub user brosander opened a pull request:

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

    MINIFI-41 - CLI utility for template.xml -> YAML and YAML validation

    

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

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

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

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

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

    This closes #21
    
----
commit 579250798117a04989ff07adaff961668ea1a011
Author: Bryan Rosander <br...@gmail.com>
Date:   2016-06-20T21:09:19Z

    MINIFI-41 - CLI utility for template.xml -> YAML and YAML validation

----


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by brosander <gi...@git.apache.org>.
Github user brosander commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69603602
  
    --- Diff: minifi-toolkit/minifi-toolkit-assembly/NOTICE ---
    @@ -0,0 +1,16 @@
    +Apache NiFi
    +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 NiFi
    --- End diff --
    
    I took that from [the minifi assembly notice](https://github.com/apache/nifi-minifi/blob/a1d2fd3fe6b0b2cdd50394e2451aa10d5c9c81e9/minifi-assembly/NOTICE#L13).  Should I update that one too or address in separate jira?


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69180850
  
    --- Diff: minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/BaseSchema.java ---
    @@ -15,13 +15,17 @@
      * limitations under the License.
      */
     
    -package org.apache.nifi.minifi.bootstrap.util.schema.common;
    +package org.apache.nifi.minifi.commons.schema;
     
     import java.lang.reflect.Constructor;
     import java.lang.reflect.InvocationTargetException;
    +import java.util.Collections;
    +import java.util.LinkedHashMap;
     import java.util.LinkedList;
     import java.util.List;
     import java.util.Map;
    +import java.util.Set;
    +import java.util.stream.Collectors;
     
     public class BaseSchema {
    --- End diff --
    
    Ah very true, ok I'm on board with not making them static.


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by brosander <gi...@git.apache.org>.
Github user brosander commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69183488
  
    --- Diff: minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/BaseSchema.java ---
    @@ -15,13 +15,17 @@
      * limitations under the License.
      */
     
    -package org.apache.nifi.minifi.bootstrap.util.schema.common;
    +package org.apache.nifi.minifi.commons.schema;
     
     import java.lang.reflect.Constructor;
     import java.lang.reflect.InvocationTargetException;
    +import java.util.Collections;
    +import java.util.LinkedHashMap;
     import java.util.LinkedList;
     import java.util.List;
     import java.util.Map;
    +import java.util.Set;
    +import java.util.stream.Collectors;
     
     public class BaseSchema {
    --- End diff --
    
    Using map supplier to instantiate maps, toMap() is static now, as well as the helper methods that don't need the state of the schema to do their job.


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69162642
  
    --- Diff: minifi-toolkit/minifi-toolkit-assembly/NOTICE ---
    @@ -0,0 +1,21 @@
    +Apache NiFi
    +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 NiFi
    +    The following NOTICE information applies:
    +      Apache NiFi
    +      Copyright 2014-2016 The Apache Software Foundation
    +
    +  (ASLv2) Jetty
    +    The following NOTICE information applies:
    +       Jetty Web Container
    --- End diff --
    
    Is Jetty packaged in the toolkit-assembly?


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69210176
  
    --- Diff: minifi-toolkit/minifi-toolkit-assembly/src/main/resources/config.sh ---
    @@ -0,0 +1,133 @@
    +#!/bin/sh
    +#
    +#    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.
    +#
    +# chkconfig: 2345 20 80
    +# description: Apache NiFi - MiNiFi
    +#
    +
    +# Script structure inspired from Apache Karaf and other Apache projects with similar startup approaches
    +
    +SCRIPT_DIR=$(dirname "$0")
    +SCRIPT_NAME=$(basename "$0")
    +MINIFI_TOOLKIT_HOME=$(cd "${SCRIPT_DIR}" && cd .. && pwd)
    +PROGNAME=$(basename "$0")
    +
    +
    +warn() {
    +    echo "${PROGNAME}: $*"
    +}
    +
    +die() {
    +    warn "$*"
    +    exit 1
    +}
    +
    +detectOS() {
    +    # OS specific support (must be 'true' or 'false').
    +    cygwin=false;
    +    aix=false;
    +    os400=false;
    +    darwin=false;
    +    case "$(uname)" in
    +        CYGWIN*)
    +            cygwin=true
    +            ;;
    +        AIX*)
    +            aix=true
    +            ;;
    +        OS400*)
    +            os400=true
    +            ;;
    +        Darwin)
    +            darwin=true
    +            ;;
    +    esac
    +    # For AIX, set an environment variable
    +    if ${aix}; then
    +         export LDR_CNTRL=MAXDATA=0xB0000000@DSA
    +         echo ${LDR_CNTRL}
    +    fi
    +}
    +
    +locateJava() {
    +    # Setup the Java Virtual Machine
    +    if $cygwin ; then
    +        [ -n "${JAVA}" ] && JAVA=$(cygpath --unix "${JAVA}")
    +        [ -n "${JAVA_HOME}" ] && JAVA_HOME=$(cygpath --unix "${JAVA_HOME}")
    +    fi
    +
    +    if [ "x${JAVA}" = "x" ] && [ -r /etc/gentoo-release ] ; then
    +        JAVA_HOME=$(java-config --jre-home)
    +    fi
    +    if [ "x${JAVA}" = "x" ]; then
    +        if [ "x${JAVA_HOME}" != "x" ]; then
    +            if [ ! -d "${JAVA_HOME}" ]; then
    +                die "JAVA_HOME is not valid: ${JAVA_HOME}"
    +            fi
    +            JAVA="${JAVA_HOME}/bin/java"
    +        else
    +            warn "JAVA_HOME not set; results may vary"
    +            JAVA=$(type java)
    +            JAVA=$(expr "${JAVA}" : '.* \(/.*\)$')
    +            if [ "x${JAVA}" = "x" ]; then
    +                die "java command not found"
    +            fi
    +        fi
    +    fi
    +    # if command is env, attempt to add more to the classpath
    +    if [ "$1" = "env" ]; then
    +        [ "x${TOOLS_JAR}" =  "x" ] && [ -n "${JAVA_HOME}" ] && TOOLS_JAR=$(find -H "${JAVA_HOME}" -name "tools.jar")
    +        [ "x${TOOLS_JAR}" =  "x" ] && [ -n "${JAVA_HOME}" ] && TOOLS_JAR=$(find -H "${JAVA_HOME}" -name "classes.jar")
    +        if [ "x${TOOLS_JAR}" =  "x" ]; then
    +             warn "Could not locate tools.jar or classes.jar. Please set manually to avail all command features."
    +        fi
    +    fi
    --- End diff --
    
    Is this block left over from the minifi.sh? I tried running it and got this:
    Joseph-Percivall:bin jpercivall$ ./config.sh env
    
    Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home
    MiNiFi Toolkit home: /Users/jpercivall/projects/edge/nifi-minifi/minifi-toolkit/minifi-toolkit-assembly/target/minifi-0.0.1-SNAPSHOT-bin/minifi-toolkit-0.0.1-SNAPSHOT
    
    
    Usage:
    
    java org.apache.nifi.minifi.toolkit.configuration.ConfigMain <command> options
    
    Valid commands include:
    transform: Transform template xml into MiNiFi config YAML
    validate: Validate config YAML



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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69165759
  
    --- Diff: minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/BaseSchema.java ---
    @@ -15,13 +15,17 @@
      * limitations under the License.
      */
     
    -package org.apache.nifi.minifi.bootstrap.util.schema.common;
    +package org.apache.nifi.minifi.commons.schema;
     
     import java.lang.reflect.Constructor;
     import java.lang.reflect.InvocationTargetException;
    +import java.util.Collections;
    +import java.util.LinkedHashMap;
     import java.util.LinkedList;
     import java.util.List;
     import java.util.Map;
    +import java.util.Set;
    +import java.util.stream.Collectors;
     
     public class BaseSchema {
    --- End diff --
    
    I think I originally should have made this class Abstract. One of the main things is the toMap method. In this class all it does it return a LinkedHashMap and that just feels off to me. I see that others are overriding it and just using this to get a LinkedHashMap. Also I think it is counter intuitive to have the ability to initialize a BaseSchema. 
    
    Overall I believe all the "Value Access/Interpretation helper methods" should be make static and toMap would be abstract. Thoughts?


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69166517
  
    --- Diff: minifi-toolkit/minifi-toolkit-assembly/pom.xml ---
    @@ -0,0 +1,68 @@
    +<?xml version="1.0" encoding="UTF-8"?>
    +<!--
    +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.
    + -->
    +<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">
    +    <modelVersion>4.0.0</modelVersion>
    +    <parent>
    +        <artifactId>minifi-toolkit</artifactId>
    +        <groupId>org.apache.nifi.minifi</groupId>
    +        <version>0.0.1-SNAPSHOT</version>
    +    </parent>
    +    <artifactId>minifi-toolkit-assembly</artifactId>
    +    <packaging>pom</packaging>
    +    <description>This is the assembly of Apache NiFi - MiNiFi</description>
    --- End diff --
    
    Should be changed to reflect it being the toolkit


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by brosander <gi...@git.apache.org>.
Github user brosander commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69180225
  
    --- Diff: minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/BaseSchema.java ---
    @@ -15,13 +15,17 @@
      * limitations under the License.
      */
     
    -package org.apache.nifi.minifi.bootstrap.util.schema.common;
    +package org.apache.nifi.minifi.commons.schema;
     
     import java.lang.reflect.Constructor;
     import java.lang.reflect.InvocationTargetException;
    +import java.util.Collections;
    +import java.util.LinkedHashMap;
     import java.util.LinkedList;
     import java.util.List;
     import java.util.Map;
    +import java.util.Set;
    +import java.util.stream.Collectors;
     
     public class BaseSchema {
    --- End diff --
    
    The getKeyAsType() and interpretValueAsType() both add validation issues and need the schema reference to do so.  Those are used by the rest of the Value Access/Interpretation helper methods which also need the reference.


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69603609
  
    --- Diff: minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMain.java ---
    @@ -0,0 +1,342 @@
    +/*
    + * 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;
    +
    +import org.apache.nifi.controller.Template;
    +import org.apache.nifi.minifi.commons.schema.ConfigSchema;
    +import org.apache.nifi.minifi.commons.schema.SecurityPropertiesSchema;
    +import org.apache.nifi.minifi.commons.schema.common.BaseSchema;
    +import org.apache.nifi.minifi.commons.schema.serialization.SchemaLoader;
    +import org.apache.nifi.minifi.commons.schema.serialization.SchemaSaver;
    +import org.apache.nifi.minifi.commons.schema.exception.SchemaLoaderException;
    +import org.apache.nifi.ssl.StandardSSLContextService;
    +import org.apache.nifi.web.api.dto.ConnectableDTO;
    +import org.apache.nifi.web.api.dto.ConnectionDTO;
    +import org.apache.nifi.web.api.dto.ControllerServiceDTO;
    +import org.apache.nifi.web.api.dto.FlowSnippetDTO;
    +import org.apache.nifi.web.api.dto.NiFiComponentDTO;
    +import org.apache.nifi.web.api.dto.PortDTO;
    +import org.apache.nifi.web.api.dto.ProcessorDTO;
    +import org.apache.nifi.web.api.dto.RemoteProcessGroupContentsDTO;
    +import org.apache.nifi.web.api.dto.RemoteProcessGroupDTO;
    +import org.apache.nifi.web.api.dto.RemoteProcessGroupPortDTO;
    +import org.apache.nifi.web.api.dto.TemplateDTO;
    +
    +import javax.xml.bind.JAXBContext;
    +import javax.xml.bind.JAXBException;
    +import java.io.FileInputStream;
    +import java.io.FileNotFoundException;
    +import java.io.FileOutputStream;
    +import java.io.IOException;
    +import java.io.InputStream;
    +import java.io.OutputStream;
    +import java.util.ArrayList;
    +import java.util.Collection;
    +import java.util.HashMap;
    +import java.util.List;
    +import java.util.Map;
    +import java.util.Set;
    +import java.util.TreeMap;
    +import java.util.function.Function;
    +import java.util.stream.Collectors;
    +
    +public class ConfigMain {
    +    public static final int ERR_INVALID_ARGS = 1;
    +    public static final int ERR_UNABLE_TO_OPEN_OUTPUT = 2;
    +    public static final int ERR_UNABLE_TO_OPEN_INPUT = 3;
    +    public static final int ERR_UNABLE_TO_READ_TEMPLATE = 4;
    +    public static final int ERR_UNABLE_TO_TRANFORM_TEMPLATE = 5;
    +    public static final int ERR_UNABLE_TO_PARSE_CONFIG = 6;
    +    public static final int ERR_INVALID_CONFIG = 7;
    +
    +    public static final int SUCCESS = 0;
    +
    +    public static final String TRANSFORM = "transform";
    +    public static final String VALIDATE = "validate";
    +
    +    private final Map<String, Command> commandMap;
    +    private final PathInputStreamFactory pathInputStreamFactory;
    +    private final PathOutputStreamFactory pathOutputStreamFactory;
    +
    +    public ConfigMain() {
    +        this(FileInputStream::new, FileOutputStream::new);
    +    }
    +
    +    public ConfigMain(PathInputStreamFactory pathInputStreamFactory, PathOutputStreamFactory pathOutputStreamFactory) {
    +        this.pathInputStreamFactory = pathInputStreamFactory;
    +        this.pathOutputStreamFactory = pathOutputStreamFactory;
    +        this.commandMap = createCommandMap();
    +    }
    +
    +    public static void main(String[] args) {
    +        System.exit(new ConfigMain().execute(args));
    +    }
    +
    +    public static void printValidateUsage() {
    +        System.out.println("Validate Usage:");
    +        System.out.println();
    +        System.out.print("java ");
    +        System.out.print(ConfigMain.class.getCanonicalName());
    +        System.out.println(" validate INPUT_FILE");
    +        System.out.println();
    +    }
    +
    +    public int validate(String[] args) {
    +        if (args.length != 2) {
    +            printValidateUsage();
    +            return ERR_INVALID_ARGS;
    +        }
    +        try (InputStream inputStream = pathInputStreamFactory.create(args[1])) {
    +            try {
    +                ConfigSchema configSchema = SchemaLoader.loadConfigSchemaFromYaml(inputStream);
    +                if (!configSchema.isValid()) {
    --- End diff --
    
    Unless if I'm missing something, I see a print statement confirmation for "transform" but I don't see one for "validate".


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69371933
  
    --- Diff: minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMain.java ---
    @@ -0,0 +1,342 @@
    +/*
    + * 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;
    +
    +import org.apache.nifi.controller.Template;
    +import org.apache.nifi.minifi.commons.schema.ConfigSchema;
    +import org.apache.nifi.minifi.commons.schema.SecurityPropertiesSchema;
    +import org.apache.nifi.minifi.commons.schema.common.BaseSchema;
    +import org.apache.nifi.minifi.commons.schema.serialization.SchemaLoader;
    +import org.apache.nifi.minifi.commons.schema.serialization.SchemaSaver;
    +import org.apache.nifi.minifi.commons.schema.exception.SchemaLoaderException;
    +import org.apache.nifi.ssl.StandardSSLContextService;
    +import org.apache.nifi.web.api.dto.ConnectableDTO;
    +import org.apache.nifi.web.api.dto.ConnectionDTO;
    +import org.apache.nifi.web.api.dto.ControllerServiceDTO;
    +import org.apache.nifi.web.api.dto.FlowSnippetDTO;
    +import org.apache.nifi.web.api.dto.NiFiComponentDTO;
    +import org.apache.nifi.web.api.dto.PortDTO;
    +import org.apache.nifi.web.api.dto.ProcessorDTO;
    +import org.apache.nifi.web.api.dto.RemoteProcessGroupContentsDTO;
    +import org.apache.nifi.web.api.dto.RemoteProcessGroupDTO;
    +import org.apache.nifi.web.api.dto.RemoteProcessGroupPortDTO;
    +import org.apache.nifi.web.api.dto.TemplateDTO;
    +
    +import javax.xml.bind.JAXBContext;
    +import javax.xml.bind.JAXBException;
    +import java.io.FileInputStream;
    +import java.io.FileNotFoundException;
    +import java.io.FileOutputStream;
    +import java.io.IOException;
    +import java.io.InputStream;
    +import java.io.OutputStream;
    +import java.util.ArrayList;
    +import java.util.Collection;
    +import java.util.HashMap;
    +import java.util.List;
    +import java.util.Map;
    +import java.util.Set;
    +import java.util.TreeMap;
    +import java.util.function.Function;
    +import java.util.stream.Collectors;
    +
    +public class ConfigMain {
    +    public static final int ERR_INVALID_ARGS = 1;
    +    public static final int ERR_UNABLE_TO_OPEN_OUTPUT = 2;
    +    public static final int ERR_UNABLE_TO_OPEN_INPUT = 3;
    +    public static final int ERR_UNABLE_TO_READ_TEMPLATE = 4;
    +    public static final int ERR_UNABLE_TO_TRANFORM_TEMPLATE = 5;
    +    public static final int ERR_UNABLE_TO_PARSE_CONFIG = 6;
    +    public static final int ERR_INVALID_CONFIG = 7;
    +
    +    public static final int SUCCESS = 0;
    +
    +    public static final String TRANSFORM = "transform";
    +    public static final String VALIDATE = "validate";
    +
    +    private final Map<String, Command> commandMap;
    +    private final PathInputStreamFactory pathInputStreamFactory;
    +    private final PathOutputStreamFactory pathOutputStreamFactory;
    +
    +    public ConfigMain() {
    +        this(FileInputStream::new, FileOutputStream::new);
    +    }
    +
    +    public ConfigMain(PathInputStreamFactory pathInputStreamFactory, PathOutputStreamFactory pathOutputStreamFactory) {
    +        this.pathInputStreamFactory = pathInputStreamFactory;
    +        this.pathOutputStreamFactory = pathOutputStreamFactory;
    +        this.commandMap = createCommandMap();
    +    }
    +
    +    public static void main(String[] args) {
    +        System.exit(new ConfigMain().execute(args));
    +    }
    +
    +    public static void printValidateUsage() {
    +        System.out.println("Validate Usage:");
    +        System.out.println();
    +        System.out.print("java ");
    +        System.out.print(ConfigMain.class.getCanonicalName());
    +        System.out.println(" validate INPUT_FILE");
    +        System.out.println();
    +    }
    +
    +    public int validate(String[] args) {
    +        if (args.length != 2) {
    +            printValidateUsage();
    +            return ERR_INVALID_ARGS;
    +        }
    +        try (InputStream inputStream = pathInputStreamFactory.create(args[1])) {
    +            try {
    +                ConfigSchema configSchema = SchemaLoader.loadConfigSchemaFromYaml(inputStream);
    +                if (!configSchema.isValid()) {
    --- End diff --
    
    It would be nice to print a line saying the flow is valid


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by brosander <gi...@git.apache.org>.
Github user brosander commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69603745
  
    --- Diff: minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMain.java ---
    @@ -0,0 +1,342 @@
    +/*
    + * 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;
    +
    +import org.apache.nifi.controller.Template;
    +import org.apache.nifi.minifi.commons.schema.ConfigSchema;
    +import org.apache.nifi.minifi.commons.schema.SecurityPropertiesSchema;
    +import org.apache.nifi.minifi.commons.schema.common.BaseSchema;
    +import org.apache.nifi.minifi.commons.schema.serialization.SchemaLoader;
    +import org.apache.nifi.minifi.commons.schema.serialization.SchemaSaver;
    +import org.apache.nifi.minifi.commons.schema.exception.SchemaLoaderException;
    +import org.apache.nifi.ssl.StandardSSLContextService;
    +import org.apache.nifi.web.api.dto.ConnectableDTO;
    +import org.apache.nifi.web.api.dto.ConnectionDTO;
    +import org.apache.nifi.web.api.dto.ControllerServiceDTO;
    +import org.apache.nifi.web.api.dto.FlowSnippetDTO;
    +import org.apache.nifi.web.api.dto.NiFiComponentDTO;
    +import org.apache.nifi.web.api.dto.PortDTO;
    +import org.apache.nifi.web.api.dto.ProcessorDTO;
    +import org.apache.nifi.web.api.dto.RemoteProcessGroupContentsDTO;
    +import org.apache.nifi.web.api.dto.RemoteProcessGroupDTO;
    +import org.apache.nifi.web.api.dto.RemoteProcessGroupPortDTO;
    +import org.apache.nifi.web.api.dto.TemplateDTO;
    +
    +import javax.xml.bind.JAXBContext;
    +import javax.xml.bind.JAXBException;
    +import java.io.FileInputStream;
    +import java.io.FileNotFoundException;
    +import java.io.FileOutputStream;
    +import java.io.IOException;
    +import java.io.InputStream;
    +import java.io.OutputStream;
    +import java.util.ArrayList;
    +import java.util.Collection;
    +import java.util.HashMap;
    +import java.util.List;
    +import java.util.Map;
    +import java.util.Set;
    +import java.util.TreeMap;
    +import java.util.function.Function;
    +import java.util.stream.Collectors;
    +
    +public class ConfigMain {
    +    public static final int ERR_INVALID_ARGS = 1;
    +    public static final int ERR_UNABLE_TO_OPEN_OUTPUT = 2;
    +    public static final int ERR_UNABLE_TO_OPEN_INPUT = 3;
    +    public static final int ERR_UNABLE_TO_READ_TEMPLATE = 4;
    +    public static final int ERR_UNABLE_TO_TRANFORM_TEMPLATE = 5;
    +    public static final int ERR_UNABLE_TO_PARSE_CONFIG = 6;
    +    public static final int ERR_INVALID_CONFIG = 7;
    +
    +    public static final int SUCCESS = 0;
    +
    +    public static final String TRANSFORM = "transform";
    +    public static final String VALIDATE = "validate";
    +
    +    private final Map<String, Command> commandMap;
    +    private final PathInputStreamFactory pathInputStreamFactory;
    +    private final PathOutputStreamFactory pathOutputStreamFactory;
    +
    +    public ConfigMain() {
    +        this(FileInputStream::new, FileOutputStream::new);
    +    }
    +
    +    public ConfigMain(PathInputStreamFactory pathInputStreamFactory, PathOutputStreamFactory pathOutputStreamFactory) {
    +        this.pathInputStreamFactory = pathInputStreamFactory;
    +        this.pathOutputStreamFactory = pathOutputStreamFactory;
    +        this.commandMap = createCommandMap();
    +    }
    +
    +    public static void main(String[] args) {
    +        System.exit(new ConfigMain().execute(args));
    +    }
    +
    +    public static void printValidateUsage() {
    +        System.out.println("Validate Usage:");
    +        System.out.println();
    +        System.out.print("java ");
    +        System.out.print(ConfigMain.class.getCanonicalName());
    +        System.out.println(" validate INPUT_FILE");
    +        System.out.println();
    +    }
    +
    +    public int validate(String[] args) {
    +        if (args.length != 2) {
    +            printValidateUsage();
    +            return ERR_INVALID_ARGS;
    +        }
    +        try (InputStream inputStream = pathInputStreamFactory.create(args[1])) {
    +            try {
    +                ConfigSchema configSchema = SchemaLoader.loadConfigSchemaFromYaml(inputStream);
    +                if (!configSchema.isValid()) {
    --- End diff --
    
    You're right, addressing


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by brosander <gi...@git.apache.org>.
Github user brosander commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69165446
  
    --- Diff: minifi-toolkit/minifi-toolkit-assembly/NOTICE ---
    @@ -0,0 +1,21 @@
    +Apache NiFi
    +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 NiFi
    +    The following NOTICE information applies:
    +      Apache NiFi
    +      Copyright 2014-2016 The Apache Software Foundation
    +
    +  (ASLv2) Jetty
    +    The following NOTICE information applies:
    +       Jetty Web Container
    --- End diff --
    
    Nope, removing


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69214705
  
    --- Diff: minifi-toolkit/minifi-toolkit-configuration/pom.xml ---
    @@ -0,0 +1,42 @@
    +<?xml version="1.0" encoding="UTF-8"?>
    +<!--
    +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.
    + -->
    +<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">
    +    <modelVersion>4.0.0</modelVersion>
    +    <parent>
    +        <artifactId>minifi-toolkit</artifactId>
    +        <groupId>org.apache.nifi.minifi</groupId>
    +        <version>0.0.1-SNAPSHOT</version>
    +    </parent>
    +    <artifactId>minifi-toolkit-configuration</artifactId>
    +    <packaging>jar</packaging>
    +
    +    <dependencies>
    +        <dependency>
    +            <groupId>org.apache.nifi.minifi</groupId>
    +            <artifactId>minifi-commons-schema</artifactId>
    +            <version>${project.version}</version>
    +        </dependency>
    +        <dependency>
    +            <groupId>org.apache.nifi</groupId>
    +            <artifactId>nifi-framework-core</artifactId>
    +            <version>0.6.0</version>
    --- End diff --
    
    This should be added to the Dependency Management portion of the root pom so that it shares the nifi version set there.


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by brosander <gi...@git.apache.org>.
Github user brosander commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69177842
  
    --- Diff: minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/BaseSchema.java ---
    @@ -15,13 +15,17 @@
      * limitations under the License.
      */
     
    -package org.apache.nifi.minifi.bootstrap.util.schema.common;
    +package org.apache.nifi.minifi.commons.schema;
     
     import java.lang.reflect.Constructor;
     import java.lang.reflect.InvocationTargetException;
    +import java.util.Collections;
    +import java.util.LinkedHashMap;
     import java.util.LinkedList;
     import java.util.List;
     import java.util.Map;
    +import java.util.Set;
    +import java.util.stream.Collectors;
     
     public class BaseSchema {
    --- End diff --
    
    So those helper methods do access the internal state (validation issues).  I can tweak them to take that as an argument but it seems like leaving them as instance methods makes sense for now.


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69342080
  
    --- Diff: minifi-toolkit/minifi-toolkit-configuration/src/test/resources/Splunk_Processors_with_Listen_TCP.xml ---
    @@ -0,0 +1,18 @@
    +<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    +<!--
    +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><description></description><name>Splunk Processors with Listen TCP</name><snippet><connections><id>420ccabf-c795-4a5f-a502-3deead673de3</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>10d65054-5258-4cc4-9589-bd1185b07f85</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>failure</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>0ac7aebc-7692-4f37-804d-a7f03d2ddd1b</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>b171f7c1-c640-4d17-8a4a-9cee8a0c49a6</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshol
 d><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>0ac7aebc-7692-4f37-804d-a7f03d2ddd1b</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>6c7f545e-c272-4f45-893e-0838b75d744e</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>0c10de1c-4917-4bb7-94e3-d346d3a736c2</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>889f8d28-f936-457a-addb-c49ef7eed23b</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><na
 me></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>41eb952d-e8c8-4d9d-85a7-0aabb542ec56</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>c6000652-74be-4bf8-b01f-7fcb1dd0b48c</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>9fafd271-dcbd-4a6c-9625-29f28259fa4a</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>failure</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>ff3b49ee-8535-4084-82e2-3aa22a10629d</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>c6529f3f-b4f5-49cb-9a7a-93b9e52c71
 fa</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>6c7f545e-c272-4f45-893e-0838b75d744e</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>8bae21ad-6c89-4c01-9e71-b26340c50052</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>fdbe0740-4be6-4712-917a-77613bb6089a</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>ff3b49ee-8535
 -4084-82e2-3aa22a10629d</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>73212a32-1340-4423-a302-a884df0231b4</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>67557f37-c2f5-42b0-b2de-e7660ebc8145</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>78471344-9f3d-4eb5-94f9-e25ee9a35f79</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>ed0fa412-fe42-47
 7c-b799-eb3270287221</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>80944451-d3b5-45d8-a23d-ab214f6420b4</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>792bf873-97f4-4af1-8aa9-0534e79da810</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>2ddc92dd-5f5b-4b3e-911d-d0aac1823b71</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><controllerServices><id>871f7215-56c4-4733-927c-00236e82486e</id><comments></comments><descriptors><entry><key>Keystore Filename</key><value><description>The fully-qualified filename of the Keystore
 </description><displayName>Keystore Filename</displayName><dynamic>false</dynamic><name>Keystore Filename</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Keystore Password</key><value><description>The password for the Keystore</description><displayName>Keystore Password</displayName><dynamic>false</dynamic><name>Keystore Password</name><required>false</required><sensitive>true</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Keystore Type</key><value><allowableValues><displayName>JKS</displayName><value>JKS</value></allowableValues><allowableValues><displayName>PKCS12</displayName><value>PKCS12</value></allowableValues><description>The Type of the Keystore</description><displayName>Keystore Type</displayName><dynamic>false</dynamic><name>Keystore Type</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Truststore Filename</key><v
 alue><description>The fully-qualified filename of the Truststore</description><displayName>Truststore Filename</displayName><dynamic>false</dynamic><name>Truststore Filename</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Truststore Password</key><value><description>The password for the Truststore</description><displayName>Truststore Password</displayName><dynamic>false</dynamic><name>Truststore Password</name><required>false</required><sensitive>true</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Truststore Type</key><value><allowableValues><displayName>JKS</displayName><value>JKS</value></allowableValues><allowableValues><displayName>PKCS12</displayName><value>PKCS12</value></allowableValues><description>The Type of the Truststore. Either JKS or PKCS12</description><displayName>Truststore Type</displayName><dynamic>false</dynamic><name>Truststore Type</name><required>false</required><sensit
 ive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>SSL Protocol</key><value><allowableValues><displayName>SSL</displayName><value>SSL</value></allowableValues><allowableValues><displayName>SSLv2Hello</displayName><value>SSLv2Hello</value></allowableValues><allowableValues><displayName>SSLv3</displayName><value>SSLv3</value></allowableValues><allowableValues><displayName>TLS</displayName><value>TLS</value></allowableValues><allowableValues><displayName>TLSv1</displayName><value>TLSv1</value></allowableValues><allowableValues><displayName>TLSv1.1</displayName><value>TLSv1.1</value></allowableValues><allowableValues><displayName>TLSv1.2</displayName><value>TLSv1.2</value></allowableValues><defaultValue>TLS</defaultValue><description>The algorithm to use for this SSL context</description><displayName>SSL Protocol</displayName><dynamic>false</dynamic><name>SSL Protocol</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></
 value></entry></descriptors><name>StandardSSLContextService</name><properties><entry><key>Keystore Filename</key><value>/home/osboxes/Dev/certs/distro-1.p12</value></entry><entry><key>Keystore Password</key></entry><entry><key>Keystore Type</key><value>PKCS12</value></entry><entry><key>Truststore Filename</key><value>/home/osboxes/Dev/certs/truststore.jks</value></entry><entry><key>Truststore Password</key></entry><entry><key>Truststore Type</key><value>JKS</value></entry><entry><key>SSL Protocol</key><value>TLS</value></entry></properties><referencingComponents><activeThreadCount>0</activeThreadCount><descriptors><entry><key>Port</key><value><description>The port to listen on for communication.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Receive Buffer Size</key><value><defaultValue>65507 B</defaultValue><description>The size of eac
 h buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.</description><displayName>Receive Buffer Size</displayName><dynamic>false</dynamic><name>Receive Buffer Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Message Queue</key><value><defaultValue>10000</defaultValue><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor.</description><displayName>Max Size of Message Queue</displayName><dynamic>false</dynamic><name>Max Size of Message Queue</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Socket Buffer</key><value><
 defaultValue>1 MB</defaultValue><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><displayName>Max Size of Socket Buffer</displayName><dynamic>false</dynamic><name>Max Size of Socket Buffer</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Character Set</key><value><defaultValue>UTF-8</defaultValue><description>Specifies the character set of the received data.</description><displayName>Character Set</displayName><dynamic>false</dynamic><name>Character Set</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Number of TCP Connections</key><value><defaultValue>2</defaultValue><description>The maximum number of 
 concurrent TCP connections to accept.</description><displayName>Max Number of TCP Connections</displayName><dynamic>false</dynamic><name>Max Number of TCP Connections</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Batch Size</key><value><defaultValue>1</defaultValue><description>The maximum number of messages to add to a single FlowFile. If multiple messages are available, they will be concatenated along with the &lt;Message Delimiter&gt; up to this configured maximum number of messages</description><displayName>Max Batch Size</displayName><dynamic>false</dynamic><name>Max Batch Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Message Delimiter</key><value><defaultValue>\n</defaultValue><description>Specifies the delimiter to place between messages when multiple messages are bundled together (see &lt;Max Batch Size&gt; property).</descrip
 tion><displayName>Message Delimiter</displayName><dynamic>false</dynamic><name>Message Delimiter</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>SSL Context Service</key><value><allowableValues><displayName>StandardSSLContextService</displayName><value>871f7215-56c4-4733-927c-00236e82486e</value></allowableValues><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be received over a secure connection.</description><displayName>SSL Context Service</displayName><dynamic>false</dynamic><identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService><name>SSL Context Service</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Client Auth</key><value><allowableValues><displayName>WANT</displayName><value>WANT</value></allowableValues><allowableValues><displayN
 ame>REQUIRED</displayName><value>REQUIRED</value></allowableValues><allowableValues><displayName>NONE</displayName><value>NONE</value></allowableValues><defaultValue>REQUIRED</defaultValue><description>The client authentication policy to use for the SSL Context. Only used if an SSL Context Service is provided.</description><displayName>Client Auth</displayName><dynamic>false</dynamic><name>Client Auth</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>2ddc92dd-5f5b-4b3e-911d-d0aac1823b71</id><name>ListenTCP SSL</name><properties><entry><key>Port</key><value>6589</value></entry><entry><key>Receive Buffer Size</key><value>65507 B</value></entry><entry><key>Max Size of Message Queue</key></entry><entry><key>Max Size of Socket Buffer</key><value>1 MB</value></entry><entry><key>Character Set</key><value>UTF-8</value></entry><entry><key>Max Number of TCP Connecti
 ons</key><value>2</value></entry><entry><key>Max Batch Size</key><value>1</value></entry><entry><key>Message Delimiter</key><value>\n</value></entry><entry><key>SSL Context Service</key><value>871f7215-56c4-4733-927c-00236e82486e</value></entry><entry><key>Client Auth</key></entry></properties><referenceType>Processor</referenceType><state>STOPPED</state><type>org.apache.nifi.processors.standard.ListenTCP</type><validationErrors>'SSL Context Service' validated against 'StandardSSLContextService' is invalid because Controller Service SSLContextService[id=871f7215-56c4-4733-927c-00236e82486e] is disabled</validationErrors></referencingComponents><state>DISABLED</state><type>org.apache.nifi.ssl.StandardSSLContextService</type></controllerServices><labels><id>52c9606a-a147-4bd1-bdfb-faebee77a6c7</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>1496.0</x><y>69.0</y></position><height>364.0</height><label>Extract from Splunk Enterprise</label><style><ent
 ry><key>background-color</key><value>#d2ff8f</value></entry><entry><key>font-size</key><value>16px</value></entry></style><width>384.0</width></labels><labels><id>18d89174-f53d-4dc0-9f8b-25bf232f2461</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>321.0</x><y>68.0</y></position><height>666.0</height><label>Listen from Splunk Forwarder</label><style><entry><key>font-size</key><value>16px</value></entry></style><width>393.0</width></labels><labels><id>4a2cad8e-47e5-4f1d-ad7d-16f35269aaf6</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>736.4000244140625</x><y>68.9998779296875</y></position><height>663.0</height><label>Send Data to Splunk Enterprise</label><style><entry><key>background-color</key><value>#91f0ff</value></entry><entry><key>font-size</key><value>16px</value></entry></style><width>732.0</width></labels><processors><id>10d65054-5258-4cc4-9589-bd1185b07f85</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6
 998826</parentGroupId><position><x>777.1999267578126</x><y>609.4999755859375</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Delete Attributes Expression</key><value><description>Regular expression for attributes to be deleted from flowfiles.</description><displayName>Delete Attributes Expression</displayName><dynamic>false</dynamic><name>Delete Attributes Expression</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry></descriptors><
 lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Delete Attributes Expression</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>UpdateAttribute</name><relationships><autoTerminate>true</autoTerminate><description>All FlowFiles are routed to this relationship</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.attributes.UpdateAttribute</type></processors><processors><id>78471344-9f3d-4eb5-94f9-e25ee9a35f79</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>359.0</x><y>279.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTask
 Count>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Log Level</key><value><allowableValues><displayName>trace</displayName><value>trace</value></allowableValues><allowableValues><displayName>debug</displayName><value>debug</value></allowableValues><allowableValues><displayName>info</displayName><value>info</value></allowableValues><allowableValues><displayName>warn</displayName><value>warn</value></allowableValues><allowableValues><displayName>error</displayName><value>error</value></allowableValues><defaultValue>info</defaultValue><description>The Log Level to use when logging the Attributes<
 /description><displayName>Log Level</displayName><dynamic>false</dynamic><name>Log Level</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Log Payload</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, the FlowFile's payload will be logged, in addition to its attributes; otherwise, just the Attributes will be logged.</description><displayName>Log Payload</displayName><dynamic>false</dynamic><name>Log Payload</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attributes to Log</key><value><description>A comma-separated list of Attributes to Log. If not specified, all attributes will be logged.</description><displayName>Attributes to Log</displayName><dynamic>false</dy
 namic><name>Attributes to Log</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attributes to Ignore</key><value><description>A comma-separated list of Attributes to ignore. If not specified, no attributes will be ignored.</description><displayName>Attributes to Ignore</displayName><dynamic>false</dynamic><name>Attributes to Ignore</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Log prefix</key><value><description>Log prefix appended to the log lines. It helps to distinguish the output of multiple LogAttribute processors.</description><displayName>Log prefix</displayName><dynamic>false</dynamic><name>Log prefix</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Log Level</key><value>
 info</value></entry><entry><key>Log Payload</key><value>true</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><description>All FlowFiles are routed to this relationship</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.LogAttribute</type></processors><processors><id>8bae21ad-6c89-4c01-9e71-b26340c50052</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>780.7198486328125</x><y>113.0</y></position><config><bulletinLevel>WARN
 </bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>File Size</key><value><description>The size of the file that will be used</description><displayName>File Size</displayName><dynamic>false</dynamic><name>File Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Batch Size</key><value><defaultValue>1</defaultValue><description>The number of FlowFiles to be transferred in each invocation</description><displayName>Batch Size</displayName><dynamic>false</dynamic><n
 ame>Batch Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Data Format</key><value><allowableValues><displayName>Binary</displayName><value>Binary</value></allowableValues><allowableValues><displayName>Text</displayName><value>Text</value></allowableValues><defaultValue>Binary</defaultValue><description>Specifies whether the data should be Text or Binary</description><displayName>Data Format</displayName><dynamic>false</dynamic><name>Data Format</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Unique FlowFiles</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, each FlowFile that is generated will be unique. If false, a random value will be generated and all F
 lowFiles will get the same content but this offers much higher throughput</description><displayName>Unique FlowFiles</displayName><dynamic>false</dynamic><name>Unique FlowFiles</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>File Size</key><value>1 kb</value></entry><entry><key>Batch Size</key><value>1</value></entry><entry><key>Data Format</key><value>Binary</value></entry><entry><key>Unique FlowFiles</key><value>false</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>1 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>GenerateFlowFile</name><relationships><autoTerminate>false</autoTerminate><description></description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>f
 alse</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.GenerateFlowFile</type></processors><processors><id>41eb952d-e8c8-4d9d-85a7-0aabb542ec56</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>1529.0</x><y>112.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Scheme</key><value><allowableValues><displayName>https</displayName><value>https</value></allowableValues><allowableValue
 s><displayName>http</displayName><value>http</value></allowableValues><defaultValue>https</defaultValue><description>The scheme for connecting to Splunk.</description><displayName>Scheme</displayName><dynamic>false</dynamic><name>Scheme</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Hostname</key><value><defaultValue>localhost</defaultValue><description>The ip address or hostname of the Splunk server.</description><displayName>Hostname</displayName><dynamic>false</dynamic><name>Hostname</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Port</key><value><defaultValue>8089</defaultValue><description>The port of the Splunk server.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Query</key><value><defaultVa
 lue>search * | head 100</defaultValue><description>The query to execute. Typically beginning with a &lt;search&gt; command followed by a search clause, such as &lt;search source=&quot;tcp:7689&quot;&gt; to search for messages received on TCP port 7689.</description><displayName>Query</displayName><dynamic>false</dynamic><name>Query</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Time Range Strategy</key><value><allowableValues><description>The processor will manage the date ranges of the query starting from the beginning of time.</description><displayName>Managed from Beginning</displayName><value>Managed from Beginning</value></allowableValues><allowableValues><description>The processor will manage the date ranges of the query starting from the current time.</description><displayName>Managed from Current</displayName><value>Managed from Current</value></allowableValues><allowableValues><description>The the time ra
 nge provided through the Earliest Time and Latest Time properties will be used.</description><displayName>Provided</displayName><value>Provided</value></allowableValues><defaultValue>Provided</defaultValue><description>Indicates how to apply time ranges to each execution of the query. Selecting a managed option allows the processor to apply a time range from the last execution time to the current execution time. When using &lt;Managed from Beginning&gt;, an earliest time will not be applied on the first execution, and thus all records searched. When using &lt;Managed from Current&gt; the earliest time of the first execution will be the initial execution time. When using &lt;Provided&gt;, the time range will come from the Earliest Time and Latest Time properties, or no time range will be applied if these properties are left blank.</description><displayName>Time Range Strategy</displayName><dynamic>false</dynamic><name>Time Range Strategy</name><required>true</required><sensitive>fals
 e</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Earliest Time</key><value><description>The value to use for the earliest time when querying. Only used with a Time Range Strategy of Provided. See Splunk's documentation on Search Time Modifiers for guidance in populating this field.</description><displayName>Earliest Time</displayName><dynamic>false</dynamic><name>Earliest Time</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Latest Time</key><value><description>The value to use for the latest time when querying. Only used with a Time Range Strategy of Provided. See Splunk's documentation on Search Time Modifiers for guidance in populating this field.</description><displayName>Latest Time</displayName><dynamic>false</dynamic><name>Latest Time</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Application</key><value><description
 >The Splunk Application to query.</description><displayName>Application</displayName><dynamic>false</dynamic><name>Application</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Owner</key><value><description>The owner to pass to Splunk.</description><displayName>Owner</displayName><dynamic>false</dynamic><name>Owner</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Token</key><value><description>The token to pass to Splunk.</description><displayName>Token</displayName><dynamic>false</dynamic><name>Token</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Username</key><value><description>The username to authenticate to Splunk.</description><displayName>Username</displayName><dynamic>false</dynamic><name>Username</name><required>false</required><sensitive>false</sensitive><supportsEl>f
 alse</supportsEl></value></entry><entry><key>Password</key><value><description>The password to authenticate to Splunk.</description><displayName>Password</displayName><dynamic>false</dynamic><name>Password</name><required>false</required><sensitive>true</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Security Protocol</key><value><allowableValues><displayName>TLSv1_2</displayName><value>TLSv1_2</value></allowableValues><allowableValues><displayName>TLSv1_1</displayName><value>TLSv1_1</value></allowableValues><allowableValues><displayName>TLSv1</displayName><value>TLSv1</value></allowableValues><allowableValues><displayName>SSLv3</displayName><value>SSLv3</value></allowableValues><defaultValue>TLSv1_2</defaultValue><description>The security protocol to use for communicating with Splunk.</description><displayName>Security Protocol</displayName><dynamic>false</dynamic><name>Security Protocol</name><required>false</required><sensitive>false</sensitive><supportsEl>fa
 lse</supportsEl></value></entry><entry><key>Output Mode</key><value><allowableValues><displayName>ATOM</displayName><value>ATOM</value></allowableValues><allowableValues><displayName>CSV</displayName><value>CSV</value></allowableValues><allowableValues><displayName>JSON</displayName><value>JSON</value></allowableValues><allowableValues><displayName>JSON_COLS</displayName><value>JSON_COLS</value></allowableValues><allowableValues><displayName>JSON_ROWS</displayName><value>JSON_ROWS</value></allowableValues><allowableValues><displayName>RAW</displayName><value>RAW</value></allowableValues><allowableValues><displayName>XML</displayName><value>XML</value></allowableValues><defaultValue>JSON</defaultValue><description>The output mode for the results.</description><displayName>Output Mode</displayName><dynamic>false</dynamic><name>Output Mode</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTole
 rant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Scheme</key><value>https</value></entry><entry><key>Hostname</key><value>localhost</value></entry><entry><key>Port</key><value>8070</value></entry><entry><key>Query</key><value>search host=&quot;localhost&quot;</value></entry><entry><key>Time Range Strategy</key><value>Provided</value></entry><entry><key>Earliest Time</key><value>-5m</value></entry><entry><key>Latest Time</key><value>-1m</value></entry><entry><key>Application</key></entry><entry><key>Owner</key></entry><entry><key>Token</key></entry><entry><key>Username</key><value>admin</value></entry><entry><key>Password</key></entry><entry><key>Security Protocol</key><value>TLSv1_2</value></entry><entry><key>Output Mode</key><value>JSON</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>30 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>Query every 3
 0 seconds</name><relationships><autoTerminate>false</autoTerminate><description>Results retrieved from Splunk are sent out this relationship.</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>false</supportsParallelProcessing><type>org.apache.nifi.processors.splunk.GetSplunk</type></processors><processors><id>73212a32-1340-4423-a302-a884df0231b4</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>1129.0</x><y>112.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry>
 <entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Input Directory</key><value><description>The input directory from which to pull files</description><displayName>Input Directory</displayName><dynamic>false</dynamic><name>Input Directory</name><required>true</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>File Filter</key><value><defaultValue>[^\.].*</defaultValue><description>Only files whose names match the given regular expression will be picked up</description><displayName>File Filter</displayName><dynamic>false</dynamic><name>File Filter</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Path Filter</key><value><description>When Recurse Subdirectories is true, then only subdirectories whose path matches the given regular expression will be scanned</description><displayName>Path Filter</displayName><dynami
 c>false</dynamic><name>Path Filter</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Batch Size</key><value><defaultValue>10</defaultValue><description>The maximum number of files to pull in each iteration</description><displayName>Batch Size</displayName><dynamic>false</dynamic><name>Batch Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Keep Source File</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, the file is not deleted after it has been copied to the Content Repository; this causes the file to be picked up continually and is useful for testing purposes.  If not keeping original NiFi will need write permissions on the directory it is pulling from oth
 erwise it will ignore the file.</description><displayName>Keep Source File</displayName><dynamic>false</dynamic><name>Keep Source File</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Recurse Subdirectories</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>true</defaultValue><description>Indicates whether or not to pull files from subdirectories</description><displayName>Recurse Subdirectories</displayName><dynamic>false</dynamic><name>Recurse Subdirectories</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Polling Interval</key><value><defaultValue>0 sec</defaultValue><description>Indicates how long to wait before performing a directory listing</description><displayName>Polling Interval</displayName><dyn
 amic>false</dynamic><name>Polling Interval</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Ignore Hidden Files</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>true</defaultValue><description>Indicates whether or not hidden files should be ignored</description><displayName>Ignore Hidden Files</displayName><dynamic>false</dynamic><name>Ignore Hidden Files</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Minimum File Age</key><value><defaultValue>0 sec</defaultValue><description>The minimum age that a file must be in order to be pulled; any file younger than this amount of time (according to last modification date) will be ignored</description><displayName>Minimum File Age</displayName><dynamic>false</dy
 namic><name>Minimum File Age</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Maximum File Age</key><value><description>The maximum age that a file must be in order to be pulled; any file older than this amount of time (according to last modification date) will be ignored</description><displayName>Maximum File Age</displayName><dynamic>false</dynamic><name>Maximum File Age</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Minimum File Size</key><value><defaultValue>0 B</defaultValue><description>The minimum size that a file must be in order to be pulled</description><displayName>Minimum File Size</displayName><dynamic>false</dynamic><name>Minimum File Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Maximum File Size</key><value><description>The maximum size that a file can be 
 in order to be pulled</description><displayName>Maximum File Size</displayName><dynamic>false</dynamic><name>Maximum File Size</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Input Directory</key><value>./logs</value></entry><entry><key>File Filter</key><value>[^\.].*</value></entry><entry><key>Path Filter</key></entry><entry><key>Batch Size</key><value>10</value></entry><entry><key>Keep Source File</key><value>true</value></entry><entry><key>Recurse Subdirectories</key><value>true</value></entry><entry><key>Polling Interval</key><value>0 sec</value></entry><entry><key>Ignore Hidden Files</key><value>true</value></entry><entry><key>Minimum File Age</key><value>0 sec</value></entry><entry><key>Maximum File Age</key></entry><entry><key>Minimum File Size</key><value>0 B</value></entry><entry><key>Maximum File Size</ke
 y></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>2 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>GetFile ./data/input</name><relationships><autoTerminate>false</autoTerminate><description>All files are routed to success</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.GetFile</type></processors><processors><id>ff3b49ee-8535-4084-82e2-3aa22a10629d</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>1131.2002685546875</x><y>274.6999267578125</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><e
 ntry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Hostname</key><value><defaultValue>localhost</defaultValue><description>The ip address or hostname of the destination.</description><displayName>Hostname</displayName><dynamic>false</dynamic><name>Hostname</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Port</key><value><description>The port on the destination.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Socket Send Buffer</key><value><defaultValue>1 MB</defaultValue><description>The
  maximum size of the socket send buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><displayName>Max Size of Socket Send Buffer</displayName><dynamic>false</dynamic><name>Max Size of Socket Send Buffer</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Character Set</key><value><defaultValue>UTF-8</defaultValue><description>Specifies the character set of the data being sent.</description><displayName>Character Set</displayName><dynamic>false</dynamic><name>Character Set</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Timeout</key><value><defaultValue>10 seconds</defaultValue><description>The timeout for connecting to and communicating with the destinati
 on. Does not apply to UDP</description><displayName>Timeout</displayName><dynamic>false</dynamic><name>Timeout</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Idle Connection Expiration</key><value><defaultValue>5 seconds</defaultValue><description>The amount of time a connection should be held open without being used before closing the connection.</description><displayName>Idle Connection Expiration</displayName><dynamic>false</dynamic><name>Idle Connection Expiration</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Protocol</key><value><allowableValues><displayName>TCP</displayName><value>TCP</value></allowableValues><allowableValues><displayName>UDP</displayName><value>UDP</value></allowableValues><defaultValue>UDP</defaultValue><description>The protocol for communication.</description><displayName>Protocol</displayName><dynamic>false</dynamic>
 <name>Protocol</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Message Delimiter</key><value><description>Specifies the delimiter to use for splitting apart multiple messages within a single FlowFile. If not specified, the entire content of the FlowFile will be used as a single message. If specified, the contents of the FlowFile will be split on this delimiter and each section sent as a separate message. Note that if messages are delimited and some messages for a given FlowFile are transferred successfully while others are not, the messages will be split into individual FlowFiles, such that those messages that were successfully sent are routed to the 'success' relationship while other messages are sent to the 'failure' relationship.</description><displayName>Message Delimiter</displayName><dynamic>false</dynamic><name>Message Delimiter</name><required>false</required><sensitive>false</sensitive><supportsEl>true</su
 pportsEl></value></entry><entry><key>SSL Context Service</key><value><allowableValues><displayName>StandardSSLContextService</displayName><value>871f7215-56c4-4733-927c-00236e82486e</value></allowableValues><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be sent over a secure connection.</description><displayName>SSL Context Service</displayName><dynamic>false</dynamic><identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService><name>SSL Context Service</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Hostname</key><value>localhost</value></entry><entry><key>Port</key><value>7689</value></entry><entry><key>Max Size of Socket Send Buffer</key><value>1 MB</value></entry><entry><key>Character Set</key><value>UTF-8</
 value></entry><entry><key>Timeout</key><value>10 seconds</value></entry><entry><key>Idle Connection Expiration</key><value>5 seconds</value></entry><entry><key>Protocol</key><value>TCP</value></entry><entry><key>Message Delimiter</key><value>NN</value></entry><entry><key>SSL Context Service</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>PutSplunk Delimited Messages</name><relationships><autoTerminate>false</autoTerminate><description>FlowFiles that failed to send to the destination are sent out this relationship.</description><name>failure</name></relationships><relationships><autoTerminate>true</autoTerminate><description>FlowFiles that are sent successfully to the destination are sent out this relationship.</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</suppor
 tsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.splunk.PutSplunk</type></processors><processors><id>0ac7aebc-7692-4f37-804d-a7f03d2ddd1b</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>778.39990234375</x><y>441.1199035644531</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Hostname</key><value><defaultValue>localhost</defaultValue><description>The ip address or hostname of the destination.</d
 escription><displayName>Hostname</displayName><dynamic>false</dynamic><name>Hostname</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Port</key><value><description>The port on the destination.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Socket Send Buffer</key><value><defaultValue>1 MB</defaultValue><description>The maximum size of the socket send buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><displayName>Max Size of Socket Send Buffer</displayName><dynamic>false</dynamic><name>Max Size of Socket Send Buffer</name><required>true</required><sensitive>fal
 se</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Character Set</key><value><defaultValue>UTF-8</defaultValue><description>Specifies the character set of the data being sent.</description><displayName>Character Set</displayName><dynamic>false</dynamic><name>Character Set</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Timeout</key><value><defaultValue>10 seconds</defaultValue><description>The timeout for connecting to and communicating with the destination. Does not apply to UDP</description><displayName>Timeout</displayName><dynamic>false</dynamic><name>Timeout</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Idle Connection Expiration</key><value><defaultValue>5 seconds</defaultValue><description>The amount of time a connection should be held open without being used before closing the connection.</description><displayName>I
 dle Connection Expiration</displayName><dynamic>false</dynamic><name>Idle Connection Expiration</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Protocol</key><value><allowableValues><displayName>TCP</displayName><value>TCP</value></allowableValues><allowableValues><displayName>UDP</displayName><value>UDP</value></allowableValues><defaultValue>UDP</defaultValue><description>The protocol for communication.</description><displayName>Protocol</displayName><dynamic>false</dynamic><name>Protocol</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Message Delimiter</key><value><description>Specifies the delimiter to use for splitting apart multiple messages within a single FlowFile. If not specified, the entire content of the FlowFile will be used as a single message. If specified, the contents of the FlowFile will be split on this delimiter and each section
  sent as a separate message. Note that if messages are delimited and some messages for a given FlowFile are transferred successfully while others are not, the messages will be split into individual FlowFiles, such that those messages that were successfully sent are routed to the 'success' relationship while other messages are sent to the 'failure' relationship.</description><displayName>Message Delimiter</displayName><dynamic>false</dynamic><name>Message Delimiter</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>SSL Context Service</key><value><allowableValues><displayName>StandardSSLContextService</displayName><value>871f7215-56c4-4733-927c-00236e82486e</value></allowableValues><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be sent over a secure connection.</description><displayName>SSL Context Service</displayName><dynamic>false</dynamic><identi
 fiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService><name>SSL Context Service</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Hostname</key><value>localhost</value></entry><entry><key>Port</key><value>7689</value></entry><entry><key>Max Size of Socket Send Buffer</key><value>1 MB</value></entry><entry><key>Character Set</key><value>UTF-8</value></entry><entry><key>Timeout</key><value>10 seconds</value></entry><entry><key>Idle Connection Expiration</key><value>5 seconds</value></entry><entry><key>Protocol</key><value>TCP</value></entry><entry><key>Message Delimiter</key></entry><entry><key>SSL Context Service</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDurati
 on>1 sec</yieldDuration></config><name>PutSplunk Single Message</name><relationships><autoTerminate>false</autoTerminate><description>FlowFiles that failed to send to the destination are sent out this relationship.</description><name>failure</name></relationships><relationships><autoTerminate>true</autoTerminate><description>FlowFiles that are sent successfully to the destination are sent out this relationship.</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.splunk.PutSplunk</type></processors><processors><id>2ddc92dd-5f5b-4b3e-911d-d0aac1823b71</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>366.0</x><y>440.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTask
 s><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Port</key><value><description>The port to listen on for communication.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Receive Buffer Size</key><value><defaultValue>65507 B</defaultValue><description>The size of each buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.</description><displayName>Receive Buffer Size</displayName><dynamic>false</dynamic><name>Receive Buffer Size</name><required>true
 </required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Message Queue</key><value><defaultValue>10000</defaultValue><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor.</description><displayName>Max Size of Message Queue</displayName><dynamic>false</dynamic><name>Max Size of Message Queue</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Socket Buffer</key><value><defaultValue>1 MB</defaultValue><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill u
 p before the data can be read, and incoming data will be dropped.</description><displayName>Max Size of Socket Buffer</displayName><dynamic>false</dynamic><name>Max Size of Socket Buffer</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Character Set</key><value><defaultValue>UTF-8</defaultValue><description>Specifies the character set of the received data.</description><displayName>Character Set</displayName><dynamic>false</dynamic><name>Character Set</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Number of TCP Connections</key><value><defaultValue>2</defaultValue><description>The maximum number of concurrent TCP connections to accept.</description><displayName>Max Number of TCP Connections</displayName><dynamic>false</dynamic><name>Max Number of TCP Connections</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supp
 ortsEl></value></entry><entry><key>Max Batch Size</key><value><defaultValue>1</defaultValue><description>The maximum number of messages to add to a single FlowFile. If multiple messages are available, they will be concatenated along with the &lt;Message Delimiter&gt; up to this configured maximum number of messages</description><displayName>Max Batch Size</displayName><dynamic>false</dynamic><name>Max Batch Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Message Delimiter</key><value><defaultValue>\n</defaultValue><description>Specifies the delimiter to place between messages when multiple messages are bundled together (see &lt;Max Batch Size&gt; property).</description><displayName>Message Delimiter</displayName><dynamic>false</dynamic><name>Message Delimiter</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>SSL Context Service</key><value><al
 lowableValues><displayName>StandardSSLContextService</displayName><value>871f7215-56c4-4733-927c-00236e82486e</value></allowableValues><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be received over a secure connection.</description><displayName>SSL Context Service</displayName><dynamic>false</dynamic><identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService><name>SSL Context Service</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Client Auth</key><value><allowableValues><displayName>WANT</displayName><value>WANT</value></allowableValues><allowableValues><displayName>REQUIRED</displayName><value>REQUIRED</value></allowableValues><allowableValues><displayName>NONE</displayName><value>NONE</value></allowableValues><defaultValue>REQUIRED</defaultValue><description>The client authentication policy to use for the
  SSL Context. Only used if an SSL Context Service is provided.</description><displayName>Client Auth</displayName><dynamic>false</dynamic><name>Client Auth</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Port</key><value>6589</value></entry><entry><key>Receive Buffer Size</key><value>65507 B</value></entry><entry><key>Max Size of Message Queue</key></entry><entry><key>Max Size of Socket Buffer</key><value>1 MB</value></entry><entry><key>Character Set</key><value>UTF-8</value></entry><entry><key>Max Number of TCP Connections</key><value>2</value></entry><entry><key>Max Batch Size</key><value>1</value></entry><entry><key>Message Delimiter</key><value>\n</value></entry><entry><key>SSL Context Service</key><value>871f7215-56c4-4733-927c-00236e82486e</value></entry><entry><key>Client Auth</key></entry></properties><runD
 urationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>ListenTCP SSL</name><relationships><autoTerminate>false</autoTerminate><description>Messages received successfully will be sent out this relationship.</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.ListenTCP</type></processors><processors><id>792bf873-97f4-4af1-8aa9-0534e79da810</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>363.0</x><y>607.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN<
 /key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Log Level</key><value><allowableValues><displayName>trace</displayName><value>trace</value></allowableValues><allowableValues><displayName>debug</displayName><value>debug</value></allowableValues><allowableValues><displayName>info</displayName><value>info</value></allowableValues><allowableValues><displayName>warn</displayName><value>warn</value></allowableValues><allowableValues><displayName>error</displayName><value>error</value></allowableValues><defaultValue>info</defaultValue><description>The Log Level to use when logging the Attributes</description><displayName>Log Level</displayName><dynamic>false</dynamic><name>Log Level</name><required>true</required><sensitive>false</sensiti
 ve><supportsEl>false</supportsEl></value></entry><entry><key>Log Payload</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, the FlowFile's payload will be logged, in addition to its attributes; otherwise, just the Attributes will be logged.</description><displayName>Log Payload</displayName><dynamic>false</dynamic><name>Log Payload</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attributes to Log</key><value><description>A comma-separated list of Attributes to Log. If not specified, all attributes will be logged.</description><displayName>Attributes to Log</displayName><dynamic>false</dynamic><name>Attributes t
    --- End diff --
    
    We currently only bundle the NiFi standard processors by default (other nars can be added manually) but we should probably only refer to those to avoid confusion.


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69602801
  
    --- Diff: minifi-toolkit/minifi-toolkit-assembly/NOTICE ---
    @@ -0,0 +1,16 @@
    +Apache NiFi
    +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 NiFi
    --- End diff --
    
    Apache NiFi's notice includes more than just this. It should be this[1]:
    > 
    > Apache NiFi
    > Copyright 2014-2016 The Apache Software Foundation
    > 
    > This product includes software developed at
    > The Apache Software Foundation (http://www.apache.org/).
    > 
    > This product includes the following work from the Apache Hadoop project:
    > 
    > BoundedByteArrayOutputStream.java adapted to SoftLimitBoundedByteArrayOutputStream.java
    
    [1] https://github.com/apache/nifi/blob/nifi-0.6.0/NOTICE


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by brosander <gi...@git.apache.org>.
Github user brosander commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69382132
  
    --- Diff: minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMain.java ---
    @@ -0,0 +1,342 @@
    +/*
    + * 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;
    +
    +import org.apache.nifi.controller.Template;
    +import org.apache.nifi.minifi.commons.schema.ConfigSchema;
    +import org.apache.nifi.minifi.commons.schema.SecurityPropertiesSchema;
    +import org.apache.nifi.minifi.commons.schema.common.BaseSchema;
    +import org.apache.nifi.minifi.commons.schema.serialization.SchemaLoader;
    +import org.apache.nifi.minifi.commons.schema.serialization.SchemaSaver;
    +import org.apache.nifi.minifi.commons.schema.exception.SchemaLoaderException;
    +import org.apache.nifi.ssl.StandardSSLContextService;
    +import org.apache.nifi.web.api.dto.ConnectableDTO;
    +import org.apache.nifi.web.api.dto.ConnectionDTO;
    +import org.apache.nifi.web.api.dto.ControllerServiceDTO;
    +import org.apache.nifi.web.api.dto.FlowSnippetDTO;
    +import org.apache.nifi.web.api.dto.NiFiComponentDTO;
    +import org.apache.nifi.web.api.dto.PortDTO;
    +import org.apache.nifi.web.api.dto.ProcessorDTO;
    +import org.apache.nifi.web.api.dto.RemoteProcessGroupContentsDTO;
    +import org.apache.nifi.web.api.dto.RemoteProcessGroupDTO;
    +import org.apache.nifi.web.api.dto.RemoteProcessGroupPortDTO;
    +import org.apache.nifi.web.api.dto.TemplateDTO;
    +
    +import javax.xml.bind.JAXBContext;
    +import javax.xml.bind.JAXBException;
    +import java.io.FileInputStream;
    +import java.io.FileNotFoundException;
    +import java.io.FileOutputStream;
    +import java.io.IOException;
    +import java.io.InputStream;
    +import java.io.OutputStream;
    +import java.util.ArrayList;
    +import java.util.Collection;
    +import java.util.HashMap;
    +import java.util.List;
    +import java.util.Map;
    +import java.util.Set;
    +import java.util.TreeMap;
    +import java.util.function.Function;
    +import java.util.stream.Collectors;
    +
    +public class ConfigMain {
    +    public static final int ERR_INVALID_ARGS = 1;
    +    public static final int ERR_UNABLE_TO_OPEN_OUTPUT = 2;
    +    public static final int ERR_UNABLE_TO_OPEN_INPUT = 3;
    +    public static final int ERR_UNABLE_TO_READ_TEMPLATE = 4;
    +    public static final int ERR_UNABLE_TO_TRANFORM_TEMPLATE = 5;
    +    public static final int ERR_UNABLE_TO_PARSE_CONFIG = 6;
    +    public static final int ERR_INVALID_CONFIG = 7;
    +
    +    public static final int SUCCESS = 0;
    +
    +    public static final String TRANSFORM = "transform";
    +    public static final String VALIDATE = "validate";
    +
    +    private final Map<String, Command> commandMap;
    +    private final PathInputStreamFactory pathInputStreamFactory;
    +    private final PathOutputStreamFactory pathOutputStreamFactory;
    +
    +    public ConfigMain() {
    +        this(FileInputStream::new, FileOutputStream::new);
    +    }
    +
    +    public ConfigMain(PathInputStreamFactory pathInputStreamFactory, PathOutputStreamFactory pathOutputStreamFactory) {
    +        this.pathInputStreamFactory = pathInputStreamFactory;
    +        this.pathOutputStreamFactory = pathOutputStreamFactory;
    +        this.commandMap = createCommandMap();
    +    }
    +
    +    public static void main(String[] args) {
    +        System.exit(new ConfigMain().execute(args));
    +    }
    +
    +    public static void printValidateUsage() {
    +        System.out.println("Validate Usage:");
    +        System.out.println();
    +        System.out.print("java ");
    +        System.out.print(ConfigMain.class.getCanonicalName());
    +        System.out.println(" validate INPUT_FILE");
    +        System.out.println();
    +    }
    +
    +    public int validate(String[] args) {
    +        if (args.length != 2) {
    +            printValidateUsage();
    +            return ERR_INVALID_ARGS;
    +        }
    +        try (InputStream inputStream = pathInputStreamFactory.create(args[1])) {
    +            try {
    +                ConfigSchema configSchema = SchemaLoader.loadConfigSchemaFromYaml(inputStream);
    +                if (!configSchema.isValid()) {
    --- End diff --
    
    Added a print statement when schema is valid


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by brosander <gi...@git.apache.org>.
Github user brosander commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69164484
  
    --- Diff: minifi-commons/minifi-commons-schema/pom.xml ---
    @@ -0,0 +1,46 @@
    +<?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.
    +-->
    +<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">
    +    <modelVersion>4.0.0</modelVersion>
    +    <parent>
    +        <groupId>org.apache.nifi.minifi</groupId>
    +        <artifactId>minifi-commons</artifactId>
    +        <version>0.0.1-SNAPSHOT</version>
    +    </parent>
    +
    +    <artifactId>minifi-commons-schema</artifactId>
    +    <packaging>jar</packaging>
    +
    +    <dependencies>
    +        <dependency>
    +            <groupId>org.yaml</groupId>
    +            <artifactId>snakeyaml</artifactId>
    +            <version>1.17</version>
    +        </dependency>
    +        <dependency>
    +            <groupId>org.apache.nifi</groupId>
    +            <artifactId>nifi-framework-core</artifactId>
    +            <version>0.6.0</version>
    +            <exclusions>
    +                <!-- excluding for IDE purposes, this jar doesn't wind up in the lib/bootstrap folder so isn't safe to use in bootstrap project -->
    --- End diff --
    
    Good point, removed


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by brosander <gi...@git.apache.org>.
Github user brosander commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69172949
  
    --- Diff: minifi-toolkit/minifi-toolkit-assembly/pom.xml ---
    @@ -0,0 +1,68 @@
    +<?xml version="1.0" encoding="UTF-8"?>
    +<!--
    +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.
    + -->
    +<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">
    +    <modelVersion>4.0.0</modelVersion>
    +    <parent>
    +        <artifactId>minifi-toolkit</artifactId>
    +        <groupId>org.apache.nifi.minifi</groupId>
    +        <version>0.0.1-SNAPSHOT</version>
    +    </parent>
    +    <artifactId>minifi-toolkit-assembly</artifactId>
    +    <packaging>pom</packaging>
    +    <description>This is the assembly of Apache NiFi - MiNiFi</description>
    --- End diff --
    
    Updated description


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69159093
  
    --- Diff: minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/SchemaLoader.java ---
    @@ -0,0 +1,52 @@
    +/*
    + * 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.exception.SchemaLoaderException;
    +import org.yaml.snakeyaml.Yaml;
    +import org.yaml.snakeyaml.error.YAMLException;
    +
    +import java.io.IOException;
    +import java.io.InputStream;
    +import java.util.Map;
    +
    +public class SchemaLoader {
    +    public static Map<String, Object> loadYamlAsMap(InputStream sourceStream) throws IOException, SchemaLoaderException {
    +        try {
    +            Yaml yaml = new Yaml();
    +
    +            // Parse the YAML file
    +            final Object loadedObject = yaml.load(sourceStream);
    +
    +            // Verify the parsed object is a Map structure
    +            if (loadedObject instanceof Map) {
    +                return (Map<String, Object>) loadedObject;
    +            } else {
    +                throw new SchemaLoaderException("Provided YAML configuration is not a Map");
    +            }
    +        } catch (YAMLException e ) {
    +            throw new IOException(e);
    +        } finally {
    +            sourceStream.close();
    +        }
    +    }
    +
    +    public static ConfigSchema loadConfigSchema(InputStream sourceStream) throws IOException, SchemaLoaderException {
    --- End diff --
    
    Since this is just a wrapper around loadYamlAsMap and has the requirement that the input is Yaml, I'd prefer to have "Yaml" in somewhere in the method name.


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by brosander <gi...@git.apache.org>.
Github user brosander commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69166911
  
    --- Diff: minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/BaseSchema.java ---
    @@ -15,13 +15,17 @@
      * limitations under the License.
      */
     
    -package org.apache.nifi.minifi.bootstrap.util.schema.common;
    +package org.apache.nifi.minifi.commons.schema;
     
     import java.lang.reflect.Constructor;
     import java.lang.reflect.InvocationTargetException;
    +import java.util.Collections;
    +import java.util.LinkedHashMap;
     import java.util.LinkedList;
     import java.util.List;
     import java.util.Map;
    +import java.util.Set;
    +import java.util.stream.Collectors;
     
     public class BaseSchema {
    --- End diff --
    
    So I agree that the toMap method is a little light atm, the one thing I liked about defining it in the superclass was to centralize the decision to use a LinkedHashMap (to preserve insertion order and allow YAML to have attributes in the desired order).
    
    I figured that it was possible we would want to add common attributes at the top level at some point in which case that would be a good place for it.
    
    In terms of the helper methods, I don't have a problem with making them static.


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69218372
  
    --- Diff: minifi-commons/minifi-commons-schema/pom.xml ---
    @@ -0,0 +1,46 @@
    +<?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.
    +-->
    +<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">
    +    <modelVersion>4.0.0</modelVersion>
    +    <parent>
    +        <groupId>org.apache.nifi.minifi</groupId>
    +        <artifactId>minifi-commons</artifactId>
    +        <version>0.0.1-SNAPSHOT</version>
    +    </parent>
    +
    +    <artifactId>minifi-commons-schema</artifactId>
    +    <packaging>jar</packaging>
    +
    +    <dependencies>
    +        <dependency>
    +            <groupId>org.yaml</groupId>
    +            <artifactId>snakeyaml</artifactId>
    +            <version>1.17</version>
    +        </dependency>
    +        <dependency>
    +            <groupId>org.apache.nifi</groupId>
    +            <artifactId>nifi-framework-core</artifactId>
    +            <version>0.6.0</version>
    +            <exclusions>
    +                <!-- excluding for IDE purposes, this jar doesn't wind up in the lib/bootstrap folder so isn't safe to use in bootstrap project -->
    --- End diff --
    
    (Accidentally commented on the wrong pom originally) This should probably be removed from this pom too since it will be used in both assemblies.


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by brosander <gi...@git.apache.org>.
Github user brosander commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69346935
  
    --- Diff: minifi-toolkit/minifi-toolkit-configuration/src/test/resources/Splunk_Processors_with_Listen_TCP.xml ---
    @@ -0,0 +1,18 @@
    +<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    +<!--
    +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><description></description><name>Splunk Processors with Listen TCP</name><snippet><connections><id>420ccabf-c795-4a5f-a502-3deead673de3</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>10d65054-5258-4cc4-9589-bd1185b07f85</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>failure</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>0ac7aebc-7692-4f37-804d-a7f03d2ddd1b</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>b171f7c1-c640-4d17-8a4a-9cee8a0c49a6</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshol
 d><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>0ac7aebc-7692-4f37-804d-a7f03d2ddd1b</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>6c7f545e-c272-4f45-893e-0838b75d744e</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>0c10de1c-4917-4bb7-94e3-d346d3a736c2</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>889f8d28-f936-457a-addb-c49ef7eed23b</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><na
 me></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>41eb952d-e8c8-4d9d-85a7-0aabb542ec56</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>c6000652-74be-4bf8-b01f-7fcb1dd0b48c</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>9fafd271-dcbd-4a6c-9625-29f28259fa4a</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>failure</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>ff3b49ee-8535-4084-82e2-3aa22a10629d</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>c6529f3f-b4f5-49cb-9a7a-93b9e52c71
 fa</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>6c7f545e-c272-4f45-893e-0838b75d744e</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>8bae21ad-6c89-4c01-9e71-b26340c50052</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>fdbe0740-4be6-4712-917a-77613bb6089a</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>ff3b49ee-8535
 -4084-82e2-3aa22a10629d</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>73212a32-1340-4423-a302-a884df0231b4</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>67557f37-c2f5-42b0-b2de-e7660ebc8145</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>78471344-9f3d-4eb5-94f9-e25ee9a35f79</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>ed0fa412-fe42-47
 7c-b799-eb3270287221</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>80944451-d3b5-45d8-a23d-ab214f6420b4</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>792bf873-97f4-4af1-8aa9-0534e79da810</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>2ddc92dd-5f5b-4b3e-911d-d0aac1823b71</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><controllerServices><id>871f7215-56c4-4733-927c-00236e82486e</id><comments></comments><descriptors><entry><key>Keystore Filename</key><value><description>The fully-qualified filename of the Keystore
 </description><displayName>Keystore Filename</displayName><dynamic>false</dynamic><name>Keystore Filename</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Keystore Password</key><value><description>The password for the Keystore</description><displayName>Keystore Password</displayName><dynamic>false</dynamic><name>Keystore Password</name><required>false</required><sensitive>true</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Keystore Type</key><value><allowableValues><displayName>JKS</displayName><value>JKS</value></allowableValues><allowableValues><displayName>PKCS12</displayName><value>PKCS12</value></allowableValues><description>The Type of the Keystore</description><displayName>Keystore Type</displayName><dynamic>false</dynamic><name>Keystore Type</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Truststore Filename</key><v
 alue><description>The fully-qualified filename of the Truststore</description><displayName>Truststore Filename</displayName><dynamic>false</dynamic><name>Truststore Filename</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Truststore Password</key><value><description>The password for the Truststore</description><displayName>Truststore Password</displayName><dynamic>false</dynamic><name>Truststore Password</name><required>false</required><sensitive>true</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Truststore Type</key><value><allowableValues><displayName>JKS</displayName><value>JKS</value></allowableValues><allowableValues><displayName>PKCS12</displayName><value>PKCS12</value></allowableValues><description>The Type of the Truststore. Either JKS or PKCS12</description><displayName>Truststore Type</displayName><dynamic>false</dynamic><name>Truststore Type</name><required>false</required><sensit
 ive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>SSL Protocol</key><value><allowableValues><displayName>SSL</displayName><value>SSL</value></allowableValues><allowableValues><displayName>SSLv2Hello</displayName><value>SSLv2Hello</value></allowableValues><allowableValues><displayName>SSLv3</displayName><value>SSLv3</value></allowableValues><allowableValues><displayName>TLS</displayName><value>TLS</value></allowableValues><allowableValues><displayName>TLSv1</displayName><value>TLSv1</value></allowableValues><allowableValues><displayName>TLSv1.1</displayName><value>TLSv1.1</value></allowableValues><allowableValues><displayName>TLSv1.2</displayName><value>TLSv1.2</value></allowableValues><defaultValue>TLS</defaultValue><description>The algorithm to use for this SSL context</description><displayName>SSL Protocol</displayName><dynamic>false</dynamic><name>SSL Protocol</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></
 value></entry></descriptors><name>StandardSSLContextService</name><properties><entry><key>Keystore Filename</key><value>/home/osboxes/Dev/certs/distro-1.p12</value></entry><entry><key>Keystore Password</key></entry><entry><key>Keystore Type</key><value>PKCS12</value></entry><entry><key>Truststore Filename</key><value>/home/osboxes/Dev/certs/truststore.jks</value></entry><entry><key>Truststore Password</key></entry><entry><key>Truststore Type</key><value>JKS</value></entry><entry><key>SSL Protocol</key><value>TLS</value></entry></properties><referencingComponents><activeThreadCount>0</activeThreadCount><descriptors><entry><key>Port</key><value><description>The port to listen on for communication.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Receive Buffer Size</key><value><defaultValue>65507 B</defaultValue><description>The size of eac
 h buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.</description><displayName>Receive Buffer Size</displayName><dynamic>false</dynamic><name>Receive Buffer Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Message Queue</key><value><defaultValue>10000</defaultValue><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor.</description><displayName>Max Size of Message Queue</displayName><dynamic>false</dynamic><name>Max Size of Message Queue</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Socket Buffer</key><value><
 defaultValue>1 MB</defaultValue><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><displayName>Max Size of Socket Buffer</displayName><dynamic>false</dynamic><name>Max Size of Socket Buffer</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Character Set</key><value><defaultValue>UTF-8</defaultValue><description>Specifies the character set of the received data.</description><displayName>Character Set</displayName><dynamic>false</dynamic><name>Character Set</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Number of TCP Connections</key><value><defaultValue>2</defaultValue><description>The maximum number of 
 concurrent TCP connections to accept.</description><displayName>Max Number of TCP Connections</displayName><dynamic>false</dynamic><name>Max Number of TCP Connections</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Batch Size</key><value><defaultValue>1</defaultValue><description>The maximum number of messages to add to a single FlowFile. If multiple messages are available, they will be concatenated along with the &lt;Message Delimiter&gt; up to this configured maximum number of messages</description><displayName>Max Batch Size</displayName><dynamic>false</dynamic><name>Max Batch Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Message Delimiter</key><value><defaultValue>\n</defaultValue><description>Specifies the delimiter to place between messages when multiple messages are bundled together (see &lt;Max Batch Size&gt; property).</descrip
 tion><displayName>Message Delimiter</displayName><dynamic>false</dynamic><name>Message Delimiter</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>SSL Context Service</key><value><allowableValues><displayName>StandardSSLContextService</displayName><value>871f7215-56c4-4733-927c-00236e82486e</value></allowableValues><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be received over a secure connection.</description><displayName>SSL Context Service</displayName><dynamic>false</dynamic><identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService><name>SSL Context Service</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Client Auth</key><value><allowableValues><displayName>WANT</displayName><value>WANT</value></allowableValues><allowableValues><displayN
 ame>REQUIRED</displayName><value>REQUIRED</value></allowableValues><allowableValues><displayName>NONE</displayName><value>NONE</value></allowableValues><defaultValue>REQUIRED</defaultValue><description>The client authentication policy to use for the SSL Context. Only used if an SSL Context Service is provided.</description><displayName>Client Auth</displayName><dynamic>false</dynamic><name>Client Auth</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>2ddc92dd-5f5b-4b3e-911d-d0aac1823b71</id><name>ListenTCP SSL</name><properties><entry><key>Port</key><value>6589</value></entry><entry><key>Receive Buffer Size</key><value>65507 B</value></entry><entry><key>Max Size of Message Queue</key></entry><entry><key>Max Size of Socket Buffer</key><value>1 MB</value></entry><entry><key>Character Set</key><value>UTF-8</value></entry><entry><key>Max Number of TCP Connecti
 ons</key><value>2</value></entry><entry><key>Max Batch Size</key><value>1</value></entry><entry><key>Message Delimiter</key><value>\n</value></entry><entry><key>SSL Context Service</key><value>871f7215-56c4-4733-927c-00236e82486e</value></entry><entry><key>Client Auth</key></entry></properties><referenceType>Processor</referenceType><state>STOPPED</state><type>org.apache.nifi.processors.standard.ListenTCP</type><validationErrors>'SSL Context Service' validated against 'StandardSSLContextService' is invalid because Controller Service SSLContextService[id=871f7215-56c4-4733-927c-00236e82486e] is disabled</validationErrors></referencingComponents><state>DISABLED</state><type>org.apache.nifi.ssl.StandardSSLContextService</type></controllerServices><labels><id>52c9606a-a147-4bd1-bdfb-faebee77a6c7</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>1496.0</x><y>69.0</y></position><height>364.0</height><label>Extract from Splunk Enterprise</label><style><ent
 ry><key>background-color</key><value>#d2ff8f</value></entry><entry><key>font-size</key><value>16px</value></entry></style><width>384.0</width></labels><labels><id>18d89174-f53d-4dc0-9f8b-25bf232f2461</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>321.0</x><y>68.0</y></position><height>666.0</height><label>Listen from Splunk Forwarder</label><style><entry><key>font-size</key><value>16px</value></entry></style><width>393.0</width></labels><labels><id>4a2cad8e-47e5-4f1d-ad7d-16f35269aaf6</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>736.4000244140625</x><y>68.9998779296875</y></position><height>663.0</height><label>Send Data to Splunk Enterprise</label><style><entry><key>background-color</key><value>#91f0ff</value></entry><entry><key>font-size</key><value>16px</value></entry></style><width>732.0</width></labels><processors><id>10d65054-5258-4cc4-9589-bd1185b07f85</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6
 998826</parentGroupId><position><x>777.1999267578126</x><y>609.4999755859375</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Delete Attributes Expression</key><value><description>Regular expression for attributes to be deleted from flowfiles.</description><displayName>Delete Attributes Expression</displayName><dynamic>false</dynamic><name>Delete Attributes Expression</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry></descriptors><
 lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Delete Attributes Expression</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>UpdateAttribute</name><relationships><autoTerminate>true</autoTerminate><description>All FlowFiles are routed to this relationship</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.attributes.UpdateAttribute</type></processors><processors><id>78471344-9f3d-4eb5-94f9-e25ee9a35f79</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>359.0</x><y>279.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTask
 Count>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Log Level</key><value><allowableValues><displayName>trace</displayName><value>trace</value></allowableValues><allowableValues><displayName>debug</displayName><value>debug</value></allowableValues><allowableValues><displayName>info</displayName><value>info</value></allowableValues><allowableValues><displayName>warn</displayName><value>warn</value></allowableValues><allowableValues><displayName>error</displayName><value>error</value></allowableValues><defaultValue>info</defaultValue><description>The Log Level to use when logging the Attributes<
 /description><displayName>Log Level</displayName><dynamic>false</dynamic><name>Log Level</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Log Payload</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, the FlowFile's payload will be logged, in addition to its attributes; otherwise, just the Attributes will be logged.</description><displayName>Log Payload</displayName><dynamic>false</dynamic><name>Log Payload</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attributes to Log</key><value><description>A comma-separated list of Attributes to Log. If not specified, all attributes will be logged.</description><displayName>Attributes to Log</displayName><dynamic>false</dy
 namic><name>Attributes to Log</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attributes to Ignore</key><value><description>A comma-separated list of Attributes to ignore. If not specified, no attributes will be ignored.</description><displayName>Attributes to Ignore</displayName><dynamic>false</dynamic><name>Attributes to Ignore</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Log prefix</key><value><description>Log prefix appended to the log lines. It helps to distinguish the output of multiple LogAttribute processors.</description><displayName>Log prefix</displayName><dynamic>false</dynamic><name>Log prefix</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Log Level</key><value>
 info</value></entry><entry><key>Log Payload</key><value>true</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><description>All FlowFiles are routed to this relationship</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.LogAttribute</type></processors><processors><id>8bae21ad-6c89-4c01-9e71-b26340c50052</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>780.7198486328125</x><y>113.0</y></position><config><bulletinLevel>WARN
 </bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>File Size</key><value><description>The size of the file that will be used</description><displayName>File Size</displayName><dynamic>false</dynamic><name>File Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Batch Size</key><value><defaultValue>1</defaultValue><description>The number of FlowFiles to be transferred in each invocation</description><displayName>Batch Size</displayName><dynamic>false</dynamic><n
 ame>Batch Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Data Format</key><value><allowableValues><displayName>Binary</displayName><value>Binary</value></allowableValues><allowableValues><displayName>Text</displayName><value>Text</value></allowableValues><defaultValue>Binary</defaultValue><description>Specifies whether the data should be Text or Binary</description><displayName>Data Format</displayName><dynamic>false</dynamic><name>Data Format</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Unique FlowFiles</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, each FlowFile that is generated will be unique. If false, a random value will be generated and all F
 lowFiles will get the same content but this offers much higher throughput</description><displayName>Unique FlowFiles</displayName><dynamic>false</dynamic><name>Unique FlowFiles</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>File Size</key><value>1 kb</value></entry><entry><key>Batch Size</key><value>1</value></entry><entry><key>Data Format</key><value>Binary</value></entry><entry><key>Unique FlowFiles</key><value>false</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>1 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>GenerateFlowFile</name><relationships><autoTerminate>false</autoTerminate><description></description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>f
 alse</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.GenerateFlowFile</type></processors><processors><id>41eb952d-e8c8-4d9d-85a7-0aabb542ec56</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>1529.0</x><y>112.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Scheme</key><value><allowableValues><displayName>https</displayName><value>https</value></allowableValues><allowableValue
 s><displayName>http</displayName><value>http</value></allowableValues><defaultValue>https</defaultValue><description>The scheme for connecting to Splunk.</description><displayName>Scheme</displayName><dynamic>false</dynamic><name>Scheme</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Hostname</key><value><defaultValue>localhost</defaultValue><description>The ip address or hostname of the Splunk server.</description><displayName>Hostname</displayName><dynamic>false</dynamic><name>Hostname</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Port</key><value><defaultValue>8089</defaultValue><description>The port of the Splunk server.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Query</key><value><defaultVa
 lue>search * | head 100</defaultValue><description>The query to execute. Typically beginning with a &lt;search&gt; command followed by a search clause, such as &lt;search source=&quot;tcp:7689&quot;&gt; to search for messages received on TCP port 7689.</description><displayName>Query</displayName><dynamic>false</dynamic><name>Query</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Time Range Strategy</key><value><allowableValues><description>The processor will manage the date ranges of the query starting from the beginning of time.</description><displayName>Managed from Beginning</displayName><value>Managed from Beginning</value></allowableValues><allowableValues><description>The processor will manage the date ranges of the query starting from the current time.</description><displayName>Managed from Current</displayName><value>Managed from Current</value></allowableValues><allowableValues><description>The the time ra
 nge provided through the Earliest Time and Latest Time properties will be used.</description><displayName>Provided</displayName><value>Provided</value></allowableValues><defaultValue>Provided</defaultValue><description>Indicates how to apply time ranges to each execution of the query. Selecting a managed option allows the processor to apply a time range from the last execution time to the current execution time. When using &lt;Managed from Beginning&gt;, an earliest time will not be applied on the first execution, and thus all records searched. When using &lt;Managed from Current&gt; the earliest time of the first execution will be the initial execution time. When using &lt;Provided&gt;, the time range will come from the Earliest Time and Latest Time properties, or no time range will be applied if these properties are left blank.</description><displayName>Time Range Strategy</displayName><dynamic>false</dynamic><name>Time Range Strategy</name><required>true</required><sensitive>fals
 e</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Earliest Time</key><value><description>The value to use for the earliest time when querying. Only used with a Time Range Strategy of Provided. See Splunk's documentation on Search Time Modifiers for guidance in populating this field.</description><displayName>Earliest Time</displayName><dynamic>false</dynamic><name>Earliest Time</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Latest Time</key><value><description>The value to use for the latest time when querying. Only used with a Time Range Strategy of Provided. See Splunk's documentation on Search Time Modifiers for guidance in populating this field.</description><displayName>Latest Time</displayName><dynamic>false</dynamic><name>Latest Time</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Application</key><value><description
 >The Splunk Application to query.</description><displayName>Application</displayName><dynamic>false</dynamic><name>Application</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Owner</key><value><description>The owner to pass to Splunk.</description><displayName>Owner</displayName><dynamic>false</dynamic><name>Owner</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Token</key><value><description>The token to pass to Splunk.</description><displayName>Token</displayName><dynamic>false</dynamic><name>Token</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Username</key><value><description>The username to authenticate to Splunk.</description><displayName>Username</displayName><dynamic>false</dynamic><name>Username</name><required>false</required><sensitive>false</sensitive><supportsEl>f
 alse</supportsEl></value></entry><entry><key>Password</key><value><description>The password to authenticate to Splunk.</description><displayName>Password</displayName><dynamic>false</dynamic><name>Password</name><required>false</required><sensitive>true</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Security Protocol</key><value><allowableValues><displayName>TLSv1_2</displayName><value>TLSv1_2</value></allowableValues><allowableValues><displayName>TLSv1_1</displayName><value>TLSv1_1</value></allowableValues><allowableValues><displayName>TLSv1</displayName><value>TLSv1</value></allowableValues><allowableValues><displayName>SSLv3</displayName><value>SSLv3</value></allowableValues><defaultValue>TLSv1_2</defaultValue><description>The security protocol to use for communicating with Splunk.</description><displayName>Security Protocol</displayName><dynamic>false</dynamic><name>Security Protocol</name><required>false</required><sensitive>false</sensitive><supportsEl>fa
 lse</supportsEl></value></entry><entry><key>Output Mode</key><value><allowableValues><displayName>ATOM</displayName><value>ATOM</value></allowableValues><allowableValues><displayName>CSV</displayName><value>CSV</value></allowableValues><allowableValues><displayName>JSON</displayName><value>JSON</value></allowableValues><allowableValues><displayName>JSON_COLS</displayName><value>JSON_COLS</value></allowableValues><allowableValues><displayName>JSON_ROWS</displayName><value>JSON_ROWS</value></allowableValues><allowableValues><displayName>RAW</displayName><value>RAW</value></allowableValues><allowableValues><displayName>XML</displayName><value>XML</value></allowableValues><defaultValue>JSON</defaultValue><description>The output mode for the results.</description><displayName>Output Mode</displayName><dynamic>false</dynamic><name>Output Mode</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTole
 rant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Scheme</key><value>https</value></entry><entry><key>Hostname</key><value>localhost</value></entry><entry><key>Port</key><value>8070</value></entry><entry><key>Query</key><value>search host=&quot;localhost&quot;</value></entry><entry><key>Time Range Strategy</key><value>Provided</value></entry><entry><key>Earliest Time</key><value>-5m</value></entry><entry><key>Latest Time</key><value>-1m</value></entry><entry><key>Application</key></entry><entry><key>Owner</key></entry><entry><key>Token</key></entry><entry><key>Username</key><value>admin</value></entry><entry><key>Password</key></entry><entry><key>Security Protocol</key><value>TLSv1_2</value></entry><entry><key>Output Mode</key><value>JSON</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>30 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>Query every 3
 0 seconds</name><relationships><autoTerminate>false</autoTerminate><description>Results retrieved from Splunk are sent out this relationship.</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>false</supportsParallelProcessing><type>org.apache.nifi.processors.splunk.GetSplunk</type></processors><processors><id>73212a32-1340-4423-a302-a884df0231b4</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>1129.0</x><y>112.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry>
 <entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Input Directory</key><value><description>The input directory from which to pull files</description><displayName>Input Directory</displayName><dynamic>false</dynamic><name>Input Directory</name><required>true</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>File Filter</key><value><defaultValue>[^\.].*</defaultValue><description>Only files whose names match the given regular expression will be picked up</description><displayName>File Filter</displayName><dynamic>false</dynamic><name>File Filter</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Path Filter</key><value><description>When Recurse Subdirectories is true, then only subdirectories whose path matches the given regular expression will be scanned</description><displayName>Path Filter</displayName><dynami
 c>false</dynamic><name>Path Filter</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Batch Size</key><value><defaultValue>10</defaultValue><description>The maximum number of files to pull in each iteration</description><displayName>Batch Size</displayName><dynamic>false</dynamic><name>Batch Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Keep Source File</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, the file is not deleted after it has been copied to the Content Repository; this causes the file to be picked up continually and is useful for testing purposes.  If not keeping original NiFi will need write permissions on the directory it is pulling from oth
 erwise it will ignore the file.</description><displayName>Keep Source File</displayName><dynamic>false</dynamic><name>Keep Source File</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Recurse Subdirectories</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>true</defaultValue><description>Indicates whether or not to pull files from subdirectories</description><displayName>Recurse Subdirectories</displayName><dynamic>false</dynamic><name>Recurse Subdirectories</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Polling Interval</key><value><defaultValue>0 sec</defaultValue><description>Indicates how long to wait before performing a directory listing</description><displayName>Polling Interval</displayName><dyn
 amic>false</dynamic><name>Polling Interval</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Ignore Hidden Files</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>true</defaultValue><description>Indicates whether or not hidden files should be ignored</description><displayName>Ignore Hidden Files</displayName><dynamic>false</dynamic><name>Ignore Hidden Files</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Minimum File Age</key><value><defaultValue>0 sec</defaultValue><description>The minimum age that a file must be in order to be pulled; any file younger than this amount of time (according to last modification date) will be ignored</description><displayName>Minimum File Age</displayName><dynamic>false</dy
 namic><name>Minimum File Age</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Maximum File Age</key><value><description>The maximum age that a file must be in order to be pulled; any file older than this amount of time (according to last modification date) will be ignored</description><displayName>Maximum File Age</displayName><dynamic>false</dynamic><name>Maximum File Age</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Minimum File Size</key><value><defaultValue>0 B</defaultValue><description>The minimum size that a file must be in order to be pulled</description><displayName>Minimum File Size</displayName><dynamic>false</dynamic><name>Minimum File Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Maximum File Size</key><value><description>The maximum size that a file can be 
 in order to be pulled</description><displayName>Maximum File Size</displayName><dynamic>false</dynamic><name>Maximum File Size</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Input Directory</key><value>./logs</value></entry><entry><key>File Filter</key><value>[^\.].*</value></entry><entry><key>Path Filter</key></entry><entry><key>Batch Size</key><value>10</value></entry><entry><key>Keep Source File</key><value>true</value></entry><entry><key>Recurse Subdirectories</key><value>true</value></entry><entry><key>Polling Interval</key><value>0 sec</value></entry><entry><key>Ignore Hidden Files</key><value>true</value></entry><entry><key>Minimum File Age</key><value>0 sec</value></entry><entry><key>Maximum File Age</key></entry><entry><key>Minimum File Size</key><value>0 B</value></entry><entry><key>Maximum File Size</ke
 y></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>2 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>GetFile ./data/input</name><relationships><autoTerminate>false</autoTerminate><description>All files are routed to success</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.GetFile</type></processors><processors><id>ff3b49ee-8535-4084-82e2-3aa22a10629d</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>1131.2002685546875</x><y>274.6999267578125</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><e
 ntry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Hostname</key><value><defaultValue>localhost</defaultValue><description>The ip address or hostname of the destination.</description><displayName>Hostname</displayName><dynamic>false</dynamic><name>Hostname</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Port</key><value><description>The port on the destination.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Socket Send Buffer</key><value><defaultValue>1 MB</defaultValue><description>The
  maximum size of the socket send buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><displayName>Max Size of Socket Send Buffer</displayName><dynamic>false</dynamic><name>Max Size of Socket Send Buffer</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Character Set</key><value><defaultValue>UTF-8</defaultValue><description>Specifies the character set of the data being sent.</description><displayName>Character Set</displayName><dynamic>false</dynamic><name>Character Set</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Timeout</key><value><defaultValue>10 seconds</defaultValue><description>The timeout for connecting to and communicating with the destinati
 on. Does not apply to UDP</description><displayName>Timeout</displayName><dynamic>false</dynamic><name>Timeout</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Idle Connection Expiration</key><value><defaultValue>5 seconds</defaultValue><description>The amount of time a connection should be held open without being used before closing the connection.</description><displayName>Idle Connection Expiration</displayName><dynamic>false</dynamic><name>Idle Connection Expiration</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Protocol</key><value><allowableValues><displayName>TCP</displayName><value>TCP</value></allowableValues><allowableValues><displayName>UDP</displayName><value>UDP</value></allowableValues><defaultValue>UDP</defaultValue><description>The protocol for communication.</description><displayName>Protocol</displayName><dynamic>false</dynamic>
 <name>Protocol</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Message Delimiter</key><value><description>Specifies the delimiter to use for splitting apart multiple messages within a single FlowFile. If not specified, the entire content of the FlowFile will be used as a single message. If specified, the contents of the FlowFile will be split on this delimiter and each section sent as a separate message. Note that if messages are delimited and some messages for a given FlowFile are transferred successfully while others are not, the messages will be split into individual FlowFiles, such that those messages that were successfully sent are routed to the 'success' relationship while other messages are sent to the 'failure' relationship.</description><displayName>Message Delimiter</displayName><dynamic>false</dynamic><name>Message Delimiter</name><required>false</required><sensitive>false</sensitive><supportsEl>true</su
 pportsEl></value></entry><entry><key>SSL Context Service</key><value><allowableValues><displayName>StandardSSLContextService</displayName><value>871f7215-56c4-4733-927c-00236e82486e</value></allowableValues><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be sent over a secure connection.</description><displayName>SSL Context Service</displayName><dynamic>false</dynamic><identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService><name>SSL Context Service</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Hostname</key><value>localhost</value></entry><entry><key>Port</key><value>7689</value></entry><entry><key>Max Size of Socket Send Buffer</key><value>1 MB</value></entry><entry><key>Character Set</key><value>UTF-8</
 value></entry><entry><key>Timeout</key><value>10 seconds</value></entry><entry><key>Idle Connection Expiration</key><value>5 seconds</value></entry><entry><key>Protocol</key><value>TCP</value></entry><entry><key>Message Delimiter</key><value>NN</value></entry><entry><key>SSL Context Service</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>PutSplunk Delimited Messages</name><relationships><autoTerminate>false</autoTerminate><description>FlowFiles that failed to send to the destination are sent out this relationship.</description><name>failure</name></relationships><relationships><autoTerminate>true</autoTerminate><description>FlowFiles that are sent successfully to the destination are sent out this relationship.</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</suppor
 tsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.splunk.PutSplunk</type></processors><processors><id>0ac7aebc-7692-4f37-804d-a7f03d2ddd1b</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>778.39990234375</x><y>441.1199035644531</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Hostname</key><value><defaultValue>localhost</defaultValue><description>The ip address or hostname of the destination.</d
 escription><displayName>Hostname</displayName><dynamic>false</dynamic><name>Hostname</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Port</key><value><description>The port on the destination.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Socket Send Buffer</key><value><defaultValue>1 MB</defaultValue><description>The maximum size of the socket send buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><displayName>Max Size of Socket Send Buffer</displayName><dynamic>false</dynamic><name>Max Size of Socket Send Buffer</name><required>true</required><sensitive>fal
 se</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Character Set</key><value><defaultValue>UTF-8</defaultValue><description>Specifies the character set of the data being sent.</description><displayName>Character Set</displayName><dynamic>false</dynamic><name>Character Set</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Timeout</key><value><defaultValue>10 seconds</defaultValue><description>The timeout for connecting to and communicating with the destination. Does not apply to UDP</description><displayName>Timeout</displayName><dynamic>false</dynamic><name>Timeout</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Idle Connection Expiration</key><value><defaultValue>5 seconds</defaultValue><description>The amount of time a connection should be held open without being used before closing the connection.</description><displayName>I
 dle Connection Expiration</displayName><dynamic>false</dynamic><name>Idle Connection Expiration</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Protocol</key><value><allowableValues><displayName>TCP</displayName><value>TCP</value></allowableValues><allowableValues><displayName>UDP</displayName><value>UDP</value></allowableValues><defaultValue>UDP</defaultValue><description>The protocol for communication.</description><displayName>Protocol</displayName><dynamic>false</dynamic><name>Protocol</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Message Delimiter</key><value><description>Specifies the delimiter to use for splitting apart multiple messages within a single FlowFile. If not specified, the entire content of the FlowFile will be used as a single message. If specified, the contents of the FlowFile will be split on this delimiter and each section
  sent as a separate message. Note that if messages are delimited and some messages for a given FlowFile are transferred successfully while others are not, the messages will be split into individual FlowFiles, such that those messages that were successfully sent are routed to the 'success' relationship while other messages are sent to the 'failure' relationship.</description><displayName>Message Delimiter</displayName><dynamic>false</dynamic><name>Message Delimiter</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>SSL Context Service</key><value><allowableValues><displayName>StandardSSLContextService</displayName><value>871f7215-56c4-4733-927c-00236e82486e</value></allowableValues><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be sent over a secure connection.</description><displayName>SSL Context Service</displayName><dynamic>false</dynamic><identi
 fiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService><name>SSL Context Service</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Hostname</key><value>localhost</value></entry><entry><key>Port</key><value>7689</value></entry><entry><key>Max Size of Socket Send Buffer</key><value>1 MB</value></entry><entry><key>Character Set</key><value>UTF-8</value></entry><entry><key>Timeout</key><value>10 seconds</value></entry><entry><key>Idle Connection Expiration</key><value>5 seconds</value></entry><entry><key>Protocol</key><value>TCP</value></entry><entry><key>Message Delimiter</key></entry><entry><key>SSL Context Service</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDurati
 on>1 sec</yieldDuration></config><name>PutSplunk Single Message</name><relationships><autoTerminate>false</autoTerminate><description>FlowFiles that failed to send to the destination are sent out this relationship.</description><name>failure</name></relationships><relationships><autoTerminate>true</autoTerminate><description>FlowFiles that are sent successfully to the destination are sent out this relationship.</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.splunk.PutSplunk</type></processors><processors><id>2ddc92dd-5f5b-4b3e-911d-d0aac1823b71</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>366.0</x><y>440.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTask
 s><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Port</key><value><description>The port to listen on for communication.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Receive Buffer Size</key><value><defaultValue>65507 B</defaultValue><description>The size of each buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.</description><displayName>Receive Buffer Size</displayName><dynamic>false</dynamic><name>Receive Buffer Size</name><required>true
 </required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Message Queue</key><value><defaultValue>10000</defaultValue><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor.</description><displayName>Max Size of Message Queue</displayName><dynamic>false</dynamic><name>Max Size of Message Queue</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Socket Buffer</key><value><defaultValue>1 MB</defaultValue><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill u
 p before the data can be read, and incoming data will be dropped.</description><displayName>Max Size of Socket Buffer</displayName><dynamic>false</dynamic><name>Max Size of Socket Buffer</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Character Set</key><value><defaultValue>UTF-8</defaultValue><description>Specifies the character set of the received data.</description><displayName>Character Set</displayName><dynamic>false</dynamic><name>Character Set</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Number of TCP Connections</key><value><defaultValue>2</defaultValue><description>The maximum number of concurrent TCP connections to accept.</description><displayName>Max Number of TCP Connections</displayName><dynamic>false</dynamic><name>Max Number of TCP Connections</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supp
 ortsEl></value></entry><entry><key>Max Batch Size</key><value><defaultValue>1</defaultValue><description>The maximum number of messages to add to a single FlowFile. If multiple messages are available, they will be concatenated along with the &lt;Message Delimiter&gt; up to this configured maximum number of messages</description><displayName>Max Batch Size</displayName><dynamic>false</dynamic><name>Max Batch Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Message Delimiter</key><value><defaultValue>\n</defaultValue><description>Specifies the delimiter to place between messages when multiple messages are bundled together (see &lt;Max Batch Size&gt; property).</description><displayName>Message Delimiter</displayName><dynamic>false</dynamic><name>Message Delimiter</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>SSL Context Service</key><value><al
 lowableValues><displayName>StandardSSLContextService</displayName><value>871f7215-56c4-4733-927c-00236e82486e</value></allowableValues><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be received over a secure connection.</description><displayName>SSL Context Service</displayName><dynamic>false</dynamic><identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService><name>SSL Context Service</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Client Auth</key><value><allowableValues><displayName>WANT</displayName><value>WANT</value></allowableValues><allowableValues><displayName>REQUIRED</displayName><value>REQUIRED</value></allowableValues><allowableValues><displayName>NONE</displayName><value>NONE</value></allowableValues><defaultValue>REQUIRED</defaultValue><description>The client authentication policy to use for the
  SSL Context. Only used if an SSL Context Service is provided.</description><displayName>Client Auth</displayName><dynamic>false</dynamic><name>Client Auth</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Port</key><value>6589</value></entry><entry><key>Receive Buffer Size</key><value>65507 B</value></entry><entry><key>Max Size of Message Queue</key></entry><entry><key>Max Size of Socket Buffer</key><value>1 MB</value></entry><entry><key>Character Set</key><value>UTF-8</value></entry><entry><key>Max Number of TCP Connections</key><value>2</value></entry><entry><key>Max Batch Size</key><value>1</value></entry><entry><key>Message Delimiter</key><value>\n</value></entry><entry><key>SSL Context Service</key><value>871f7215-56c4-4733-927c-00236e82486e</value></entry><entry><key>Client Auth</key></entry></properties><runD
 urationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>ListenTCP SSL</name><relationships><autoTerminate>false</autoTerminate><description>Messages received successfully will be sent out this relationship.</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.ListenTCP</type></processors><processors><id>792bf873-97f4-4af1-8aa9-0534e79da810</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>363.0</x><y>607.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN<
 /key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Log Level</key><value><allowableValues><displayName>trace</displayName><value>trace</value></allowableValues><allowableValues><displayName>debug</displayName><value>debug</value></allowableValues><allowableValues><displayName>info</displayName><value>info</value></allowableValues><allowableValues><displayName>warn</displayName><value>warn</value></allowableValues><allowableValues><displayName>error</displayName><value>error</value></allowableValues><defaultValue>info</defaultValue><description>The Log Level to use when logging the Attributes</description><displayName>Log Level</displayName><dynamic>false</dynamic><name>Log Level</name><required>true</required><sensitive>false</sensiti
 ve><supportsEl>false</supportsEl></value></entry><entry><key>Log Payload</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, the FlowFile's payload will be logged, in addition to its attributes; otherwise, just the Attributes will be logged.</description><displayName>Log Payload</displayName><dynamic>false</dynamic><name>Log Payload</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attributes to Log</key><value><description>A comma-separated list of Attributes to Log. If not specified, all attributes will be logged.</description><displayName>Attributes to Log</displayName><dynamic>false</dynamic><name>Attributes t
    --- End diff --
    
    @JPercivall not seeing another pre-existing template with ssl service configured, I was trying to have a realistic example.  Think this can be addressed in a README or in the xml and yaml themselves?


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69157552
  
    --- Diff: minifi-commons/minifi-commons-schema/pom.xml ---
    @@ -0,0 +1,46 @@
    +<?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.
    +-->
    +<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">
    +    <modelVersion>4.0.0</modelVersion>
    +    <parent>
    +        <groupId>org.apache.nifi.minifi</groupId>
    +        <artifactId>minifi-commons</artifactId>
    +        <version>0.0.1-SNAPSHOT</version>
    +    </parent>
    +
    +    <artifactId>minifi-commons-schema</artifactId>
    +    <packaging>jar</packaging>
    +
    +    <dependencies>
    +        <dependency>
    +            <groupId>org.yaml</groupId>
    +            <artifactId>snakeyaml</artifactId>
    +            <version>1.17</version>
    +        </dependency>
    +        <dependency>
    +            <groupId>org.apache.nifi</groupId>
    +            <artifactId>nifi-framework-core</artifactId>
    +            <version>0.6.0</version>
    +            <exclusions>
    +                <!-- excluding for IDE purposes, this jar doesn't wind up in the lib/bootstrap folder so isn't safe to use in bootstrap project -->
    --- End diff --
    
    I don't think this is applicable for the new assembly.


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69603973
  
    --- Diff: minifi-bootstrap/src/test/resources/Working_with_Logs.yml ---
    @@ -0,0 +1,253 @@
    +# 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: Working with Logs
    +  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:
    +  key password:
    +  truststore:
    +  truststore type:
    +  truststore password:
    +  ssl protocol:
    +  Sensitive Props:
    +    key:
    +    algorithm: PBEWITHMD5AND256BITAES-CBC-OPENSSL
    +    provider: BC
    +Processors:
    +- name: MergeContent
    +  class: org.apache.nifi.processors.standard.MergeContent
    +  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:
    +  - failure
    +  - original
    +  Properties:
    +    Attribute Strategy: Keep Only Common Attributes
    +    Compression Level: '1'
    +    Correlation Attribute Name: log.type
    +    Delimiter Strategy: Text
    +    Demarcator File: |2+
    +
    +    Footer File:
    +    Header File:
    +    Keep Path: 'false'
    +    Max Bin Age: 5 mins
    +    Maximum Group Size: 128 MB
    +    Maximum Number of Entries:
    +    Maximum number of Bins: '100'
    +    Merge Format: Binary Concatenation
    +    Merge Strategy: Bin-Packing Algorithm
    +    Minimum Group Size: 64 MB
    +    Minimum Number of Entries: '1'
    +- name: PutHDFS
    +  class: org.apache.nifi.processors.hadoop.PutHDFS
    +  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:
    +    Block Size:
    +    Compression codec: NONE
    +    Conflict Resolution Strategy: fail
    +    Directory: /logs/${log.type}/${now():format('yyyy/MM/dd')}
    +    Hadoop Configuration Resources: conf/core-site.xml
    +    IO Buffer Size:
    +    Kerberos Keytab:
    +    Kerberos Principal:
    +    Kerberos Relogin Period: 4 hours
    +    Permissions umask:
    +    Remote Group:
    +    Remote Owner:
    +    Replication:
    +- name: Tail App Log
    +  class: org.apache.nifi.processors.standard.TailFile
    +  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:
    +    File to Tail: logs/nifi-app.log
    +    Initial Start Position: Current Time
    +    Rolling Filename Pattern: nifi-app*
    +    State File: ./conf/state/737672eb-3f71-4ef9-bc86-dbc3645833d9
    +- name: Tail User Log
    +  class: org.apache.nifi.processors.standard.TailFile
    +  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:
    +    File to Tail: logs/nifi-user.log
    +    Initial Start Position: Beginning of File
    +    Rolling Filename Pattern: nifi-user*
    +    State File: ./conf/state/e2bdd4b4-386c-47be-a72c-ce2491df31e6
    +- name: UpdateAttribute
    +  class: org.apache.nifi.processors.attributes.UpdateAttribute
    +  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:
    +    Delete Attributes Expression:
    +    log.type: nifi-user-logs
    +- name: UpdateAttribute
    +  class: org.apache.nifi.processors.attributes.UpdateAttribute
    +  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:
    +    Delete Attributes Expression:
    +    log.type: nifi-app-logs
    +Connections:
    +- name: ''
    +  source name: MergeContent
    +  source relationship name: merged
    +  destination name: PutHDFS
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +- name: ''
    +  source name: app logs
    +  source relationship name:
    +  destination name: UpdateAttribute
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +- name: ''
    +  source name: Tail User Log
    +  source relationship name: success
    +  destination name: user logs
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +- name: ''
    +  source name: UpdateAttribute
    +  source relationship name: success
    +  destination name: MergeContent
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +- name: ''
    +  source name: Tail App Log
    +  source relationship name: success
    +  destination name: app logs
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +- name: ''
    +  source name: UpdateAttribute
    +  source relationship name: success
    +  destination name: MergeContent
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +- name: ''
    +  source name: PutHDFS
    +  source relationship name: failure
    +  destination name: PutHDFS
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +- name: ''
    +  source name: user logs
    +  source relationship name:
    +  destination name: UpdateAttribute
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +Remote Processing Groups:
    +- name: NiFi Flow
    +  url: http://localhost:8080/nifi
    +  comment: ''
    +  timeout: 30 sec
    +  yield period: 10 sec
    +  Input Ports:
    +  - id: f8c66751-0d14-43ea-ac68-1b5491c8f41b
    +    name: user logs
    +    comment: ''
    +    max concurrent tasks: 1
    +    use compression: false
    +  - id: 70f8fe07-ecff-4ed4-b050-5c8e4e419eec
    +    name: app logs
    +    comment: ''
    +    max concurrent tasks: 1
    +    use compression: false
    +Provenance Reporting:
    --- End diff --
    
    Nit pick: this yaml hasn't been updated to have the Provenance reporting section removed (this is currently invalid due to missing fields).


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69178841
  
    --- Diff: minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/BaseSchema.java ---
    @@ -15,13 +15,17 @@
      * limitations under the License.
      */
     
    -package org.apache.nifi.minifi.bootstrap.util.schema.common;
    +package org.apache.nifi.minifi.commons.schema;
     
     import java.lang.reflect.Constructor;
     import java.lang.reflect.InvocationTargetException;
    +import java.util.Collections;
    +import java.util.LinkedHashMap;
     import java.util.LinkedList;
     import java.util.List;
     import java.util.Map;
    +import java.util.Set;
    +import java.util.stream.Collectors;
     
     public class BaseSchema {
    --- End diff --
    
    Right the "Validation Issue helper methods" access the validation issues, which is something every schema will have, so it's good to keep them implemented how they are. 
    
    The "Value Access/Interpretation helper methods" are all methods that do not necessarily rely on the internal representation of each schema but instead are helper methods for accessing/interpreting values. So they can be static.
    
    For toMap I agree that it's good to encourage the use of LinkedHashMap. Maybe a protected method getMap for the schemas to use. Then toMap would be abstract.


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by brosander <gi...@git.apache.org>.
Github user brosander commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69606845
  
    --- Diff: minifi-bootstrap/src/test/resources/Working_with_Logs.yml ---
    @@ -0,0 +1,253 @@
    +# 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: Working with Logs
    +  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:
    +  key password:
    +  truststore:
    +  truststore type:
    +  truststore password:
    +  ssl protocol:
    +  Sensitive Props:
    +    key:
    +    algorithm: PBEWITHMD5AND256BITAES-CBC-OPENSSL
    +    provider: BC
    +Processors:
    +- name: MergeContent
    +  class: org.apache.nifi.processors.standard.MergeContent
    +  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:
    +  - failure
    +  - original
    +  Properties:
    +    Attribute Strategy: Keep Only Common Attributes
    +    Compression Level: '1'
    +    Correlation Attribute Name: log.type
    +    Delimiter Strategy: Text
    +    Demarcator File: |2+
    +
    +    Footer File:
    +    Header File:
    +    Keep Path: 'false'
    +    Max Bin Age: 5 mins
    +    Maximum Group Size: 128 MB
    +    Maximum Number of Entries:
    +    Maximum number of Bins: '100'
    +    Merge Format: Binary Concatenation
    +    Merge Strategy: Bin-Packing Algorithm
    +    Minimum Group Size: 64 MB
    +    Minimum Number of Entries: '1'
    +- name: PutHDFS
    +  class: org.apache.nifi.processors.hadoop.PutHDFS
    +  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:
    +    Block Size:
    +    Compression codec: NONE
    +    Conflict Resolution Strategy: fail
    +    Directory: /logs/${log.type}/${now():format('yyyy/MM/dd')}
    +    Hadoop Configuration Resources: conf/core-site.xml
    +    IO Buffer Size:
    +    Kerberos Keytab:
    +    Kerberos Principal:
    +    Kerberos Relogin Period: 4 hours
    +    Permissions umask:
    +    Remote Group:
    +    Remote Owner:
    +    Replication:
    +- name: Tail App Log
    +  class: org.apache.nifi.processors.standard.TailFile
    +  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:
    +    File to Tail: logs/nifi-app.log
    +    Initial Start Position: Current Time
    +    Rolling Filename Pattern: nifi-app*
    +    State File: ./conf/state/737672eb-3f71-4ef9-bc86-dbc3645833d9
    +- name: Tail User Log
    +  class: org.apache.nifi.processors.standard.TailFile
    +  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:
    +    File to Tail: logs/nifi-user.log
    +    Initial Start Position: Beginning of File
    +    Rolling Filename Pattern: nifi-user*
    +    State File: ./conf/state/e2bdd4b4-386c-47be-a72c-ce2491df31e6
    +- name: UpdateAttribute
    +  class: org.apache.nifi.processors.attributes.UpdateAttribute
    +  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:
    +    Delete Attributes Expression:
    +    log.type: nifi-user-logs
    +- name: UpdateAttribute
    +  class: org.apache.nifi.processors.attributes.UpdateAttribute
    +  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:
    +    Delete Attributes Expression:
    +    log.type: nifi-app-logs
    +Connections:
    +- name: ''
    +  source name: MergeContent
    +  source relationship name: merged
    +  destination name: PutHDFS
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +- name: ''
    +  source name: app logs
    +  source relationship name:
    +  destination name: UpdateAttribute
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +- name: ''
    +  source name: Tail User Log
    +  source relationship name: success
    +  destination name: user logs
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +- name: ''
    +  source name: UpdateAttribute
    +  source relationship name: success
    +  destination name: MergeContent
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +- name: ''
    +  source name: Tail App Log
    +  source relationship name: success
    +  destination name: app logs
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +- name: ''
    +  source name: UpdateAttribute
    +  source relationship name: success
    +  destination name: MergeContent
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +- name: ''
    +  source name: PutHDFS
    +  source relationship name: failure
    +  destination name: PutHDFS
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +- name: ''
    +  source name: user logs
    +  source relationship name:
    +  destination name: UpdateAttribute
    +  max work queue size: 0
    +  max work queue data size: 0 MB
    +  flowfile expiration: 0 sec
    +  queue prioritizer class:
    +Remote Processing Groups:
    +- name: NiFi Flow
    +  url: http://localhost:8080/nifi
    +  comment: ''
    +  timeout: 30 sec
    +  yield period: 10 sec
    +  Input Ports:
    +  - id: f8c66751-0d14-43ea-ac68-1b5491c8f41b
    +    name: user logs
    +    comment: ''
    +    max concurrent tasks: 1
    +    use compression: false
    +  - id: 70f8fe07-ecff-4ed4-b050-5c8e4e419eec
    +    name: app logs
    +    comment: ''
    +    max concurrent tasks: 1
    +    use compression: false
    +Provenance Reporting:
    --- End diff --
    
    It wasn't a great example anyways, using the templates I ran through successfully instead.


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

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


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

[GitHub] nifi-minifi pull request #21: MINIFI-41 - CLI utility for template.xml -> YA...

Posted by JPercivall <gi...@git.apache.org>.
Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/21#discussion_r69352051
  
    --- Diff: minifi-toolkit/minifi-toolkit-configuration/src/test/resources/Splunk_Processors_with_Listen_TCP.xml ---
    @@ -0,0 +1,18 @@
    +<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    +<!--
    +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><description></description><name>Splunk Processors with Listen TCP</name><snippet><connections><id>420ccabf-c795-4a5f-a502-3deead673de3</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>10d65054-5258-4cc4-9589-bd1185b07f85</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>failure</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>0ac7aebc-7692-4f37-804d-a7f03d2ddd1b</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>b171f7c1-c640-4d17-8a4a-9cee8a0c49a6</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshol
 d><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>0ac7aebc-7692-4f37-804d-a7f03d2ddd1b</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>6c7f545e-c272-4f45-893e-0838b75d744e</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>0c10de1c-4917-4bb7-94e3-d346d3a736c2</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>889f8d28-f936-457a-addb-c49ef7eed23b</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><na
 me></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>41eb952d-e8c8-4d9d-85a7-0aabb542ec56</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>c6000652-74be-4bf8-b01f-7fcb1dd0b48c</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>9fafd271-dcbd-4a6c-9625-29f28259fa4a</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>failure</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>ff3b49ee-8535-4084-82e2-3aa22a10629d</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>c6529f3f-b4f5-49cb-9a7a-93b9e52c71
 fa</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>6c7f545e-c272-4f45-893e-0838b75d744e</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>8bae21ad-6c89-4c01-9e71-b26340c50052</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>fdbe0740-4be6-4712-917a-77613bb6089a</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>ff3b49ee-8535
 -4084-82e2-3aa22a10629d</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>73212a32-1340-4423-a302-a884df0231b4</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>67557f37-c2f5-42b0-b2de-e7660ebc8145</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>78471344-9f3d-4eb5-94f9-e25ee9a35f79</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>ed0fa412-fe42-47
 7c-b799-eb3270287221</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>80944451-d3b5-45d8-a23d-ab214f6420b4</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>792bf873-97f4-4af1-8aa9-0534e79da810</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>2ddc92dd-5f5b-4b3e-911d-d0aac1823b71</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><controllerServices><id>871f7215-56c4-4733-927c-00236e82486e</id><comments></comments><descriptors><entry><key>Keystore Filename</key><value><description>The fully-qualified filename of the Keystore
 </description><displayName>Keystore Filename</displayName><dynamic>false</dynamic><name>Keystore Filename</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Keystore Password</key><value><description>The password for the Keystore</description><displayName>Keystore Password</displayName><dynamic>false</dynamic><name>Keystore Password</name><required>false</required><sensitive>true</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Keystore Type</key><value><allowableValues><displayName>JKS</displayName><value>JKS</value></allowableValues><allowableValues><displayName>PKCS12</displayName><value>PKCS12</value></allowableValues><description>The Type of the Keystore</description><displayName>Keystore Type</displayName><dynamic>false</dynamic><name>Keystore Type</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Truststore Filename</key><v
 alue><description>The fully-qualified filename of the Truststore</description><displayName>Truststore Filename</displayName><dynamic>false</dynamic><name>Truststore Filename</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Truststore Password</key><value><description>The password for the Truststore</description><displayName>Truststore Password</displayName><dynamic>false</dynamic><name>Truststore Password</name><required>false</required><sensitive>true</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Truststore Type</key><value><allowableValues><displayName>JKS</displayName><value>JKS</value></allowableValues><allowableValues><displayName>PKCS12</displayName><value>PKCS12</value></allowableValues><description>The Type of the Truststore. Either JKS or PKCS12</description><displayName>Truststore Type</displayName><dynamic>false</dynamic><name>Truststore Type</name><required>false</required><sensit
 ive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>SSL Protocol</key><value><allowableValues><displayName>SSL</displayName><value>SSL</value></allowableValues><allowableValues><displayName>SSLv2Hello</displayName><value>SSLv2Hello</value></allowableValues><allowableValues><displayName>SSLv3</displayName><value>SSLv3</value></allowableValues><allowableValues><displayName>TLS</displayName><value>TLS</value></allowableValues><allowableValues><displayName>TLSv1</displayName><value>TLSv1</value></allowableValues><allowableValues><displayName>TLSv1.1</displayName><value>TLSv1.1</value></allowableValues><allowableValues><displayName>TLSv1.2</displayName><value>TLSv1.2</value></allowableValues><defaultValue>TLS</defaultValue><description>The algorithm to use for this SSL context</description><displayName>SSL Protocol</displayName><dynamic>false</dynamic><name>SSL Protocol</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></
 value></entry></descriptors><name>StandardSSLContextService</name><properties><entry><key>Keystore Filename</key><value>/home/osboxes/Dev/certs/distro-1.p12</value></entry><entry><key>Keystore Password</key></entry><entry><key>Keystore Type</key><value>PKCS12</value></entry><entry><key>Truststore Filename</key><value>/home/osboxes/Dev/certs/truststore.jks</value></entry><entry><key>Truststore Password</key></entry><entry><key>Truststore Type</key><value>JKS</value></entry><entry><key>SSL Protocol</key><value>TLS</value></entry></properties><referencingComponents><activeThreadCount>0</activeThreadCount><descriptors><entry><key>Port</key><value><description>The port to listen on for communication.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Receive Buffer Size</key><value><defaultValue>65507 B</defaultValue><description>The size of eac
 h buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.</description><displayName>Receive Buffer Size</displayName><dynamic>false</dynamic><name>Receive Buffer Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Message Queue</key><value><defaultValue>10000</defaultValue><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor.</description><displayName>Max Size of Message Queue</displayName><dynamic>false</dynamic><name>Max Size of Message Queue</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Socket Buffer</key><value><
 defaultValue>1 MB</defaultValue><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><displayName>Max Size of Socket Buffer</displayName><dynamic>false</dynamic><name>Max Size of Socket Buffer</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Character Set</key><value><defaultValue>UTF-8</defaultValue><description>Specifies the character set of the received data.</description><displayName>Character Set</displayName><dynamic>false</dynamic><name>Character Set</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Number of TCP Connections</key><value><defaultValue>2</defaultValue><description>The maximum number of 
 concurrent TCP connections to accept.</description><displayName>Max Number of TCP Connections</displayName><dynamic>false</dynamic><name>Max Number of TCP Connections</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Batch Size</key><value><defaultValue>1</defaultValue><description>The maximum number of messages to add to a single FlowFile. If multiple messages are available, they will be concatenated along with the &lt;Message Delimiter&gt; up to this configured maximum number of messages</description><displayName>Max Batch Size</displayName><dynamic>false</dynamic><name>Max Batch Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Message Delimiter</key><value><defaultValue>\n</defaultValue><description>Specifies the delimiter to place between messages when multiple messages are bundled together (see &lt;Max Batch Size&gt; property).</descrip
 tion><displayName>Message Delimiter</displayName><dynamic>false</dynamic><name>Message Delimiter</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>SSL Context Service</key><value><allowableValues><displayName>StandardSSLContextService</displayName><value>871f7215-56c4-4733-927c-00236e82486e</value></allowableValues><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be received over a secure connection.</description><displayName>SSL Context Service</displayName><dynamic>false</dynamic><identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService><name>SSL Context Service</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Client Auth</key><value><allowableValues><displayName>WANT</displayName><value>WANT</value></allowableValues><allowableValues><displayN
 ame>REQUIRED</displayName><value>REQUIRED</value></allowableValues><allowableValues><displayName>NONE</displayName><value>NONE</value></allowableValues><defaultValue>REQUIRED</defaultValue><description>The client authentication policy to use for the SSL Context. Only used if an SSL Context Service is provided.</description><displayName>Client Auth</displayName><dynamic>false</dynamic><name>Client Auth</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><groupId>f1bee4e8-470b-41b7-97af-ada9f6998826</groupId><id>2ddc92dd-5f5b-4b3e-911d-d0aac1823b71</id><name>ListenTCP SSL</name><properties><entry><key>Port</key><value>6589</value></entry><entry><key>Receive Buffer Size</key><value>65507 B</value></entry><entry><key>Max Size of Message Queue</key></entry><entry><key>Max Size of Socket Buffer</key><value>1 MB</value></entry><entry><key>Character Set</key><value>UTF-8</value></entry><entry><key>Max Number of TCP Connecti
 ons</key><value>2</value></entry><entry><key>Max Batch Size</key><value>1</value></entry><entry><key>Message Delimiter</key><value>\n</value></entry><entry><key>SSL Context Service</key><value>871f7215-56c4-4733-927c-00236e82486e</value></entry><entry><key>Client Auth</key></entry></properties><referenceType>Processor</referenceType><state>STOPPED</state><type>org.apache.nifi.processors.standard.ListenTCP</type><validationErrors>'SSL Context Service' validated against 'StandardSSLContextService' is invalid because Controller Service SSLContextService[id=871f7215-56c4-4733-927c-00236e82486e] is disabled</validationErrors></referencingComponents><state>DISABLED</state><type>org.apache.nifi.ssl.StandardSSLContextService</type></controllerServices><labels><id>52c9606a-a147-4bd1-bdfb-faebee77a6c7</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>1496.0</x><y>69.0</y></position><height>364.0</height><label>Extract from Splunk Enterprise</label><style><ent
 ry><key>background-color</key><value>#d2ff8f</value></entry><entry><key>font-size</key><value>16px</value></entry></style><width>384.0</width></labels><labels><id>18d89174-f53d-4dc0-9f8b-25bf232f2461</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>321.0</x><y>68.0</y></position><height>666.0</height><label>Listen from Splunk Forwarder</label><style><entry><key>font-size</key><value>16px</value></entry></style><width>393.0</width></labels><labels><id>4a2cad8e-47e5-4f1d-ad7d-16f35269aaf6</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>736.4000244140625</x><y>68.9998779296875</y></position><height>663.0</height><label>Send Data to Splunk Enterprise</label><style><entry><key>background-color</key><value>#91f0ff</value></entry><entry><key>font-size</key><value>16px</value></entry></style><width>732.0</width></labels><processors><id>10d65054-5258-4cc4-9589-bd1185b07f85</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6
 998826</parentGroupId><position><x>777.1999267578126</x><y>609.4999755859375</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Delete Attributes Expression</key><value><description>Regular expression for attributes to be deleted from flowfiles.</description><displayName>Delete Attributes Expression</displayName><dynamic>false</dynamic><name>Delete Attributes Expression</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry></descriptors><
 lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Delete Attributes Expression</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>UpdateAttribute</name><relationships><autoTerminate>true</autoTerminate><description>All FlowFiles are routed to this relationship</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.attributes.UpdateAttribute</type></processors><processors><id>78471344-9f3d-4eb5-94f9-e25ee9a35f79</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>359.0</x><y>279.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTask
 Count>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Log Level</key><value><allowableValues><displayName>trace</displayName><value>trace</value></allowableValues><allowableValues><displayName>debug</displayName><value>debug</value></allowableValues><allowableValues><displayName>info</displayName><value>info</value></allowableValues><allowableValues><displayName>warn</displayName><value>warn</value></allowableValues><allowableValues><displayName>error</displayName><value>error</value></allowableValues><defaultValue>info</defaultValue><description>The Log Level to use when logging the Attributes<
 /description><displayName>Log Level</displayName><dynamic>false</dynamic><name>Log Level</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Log Payload</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, the FlowFile's payload will be logged, in addition to its attributes; otherwise, just the Attributes will be logged.</description><displayName>Log Payload</displayName><dynamic>false</dynamic><name>Log Payload</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attributes to Log</key><value><description>A comma-separated list of Attributes to Log. If not specified, all attributes will be logged.</description><displayName>Attributes to Log</displayName><dynamic>false</dy
 namic><name>Attributes to Log</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attributes to Ignore</key><value><description>A comma-separated list of Attributes to ignore. If not specified, no attributes will be ignored.</description><displayName>Attributes to Ignore</displayName><dynamic>false</dynamic><name>Attributes to Ignore</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Log prefix</key><value><description>Log prefix appended to the log lines. It helps to distinguish the output of multiple LogAttribute processors.</description><displayName>Log prefix</displayName><dynamic>false</dynamic><name>Log prefix</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Log Level</key><value>
 info</value></entry><entry><key>Log Payload</key><value>true</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><description>All FlowFiles are routed to this relationship</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.LogAttribute</type></processors><processors><id>8bae21ad-6c89-4c01-9e71-b26340c50052</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>780.7198486328125</x><y>113.0</y></position><config><bulletinLevel>WARN
 </bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>File Size</key><value><description>The size of the file that will be used</description><displayName>File Size</displayName><dynamic>false</dynamic><name>File Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Batch Size</key><value><defaultValue>1</defaultValue><description>The number of FlowFiles to be transferred in each invocation</description><displayName>Batch Size</displayName><dynamic>false</dynamic><n
 ame>Batch Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Data Format</key><value><allowableValues><displayName>Binary</displayName><value>Binary</value></allowableValues><allowableValues><displayName>Text</displayName><value>Text</value></allowableValues><defaultValue>Binary</defaultValue><description>Specifies whether the data should be Text or Binary</description><displayName>Data Format</displayName><dynamic>false</dynamic><name>Data Format</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Unique FlowFiles</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, each FlowFile that is generated will be unique. If false, a random value will be generated and all F
 lowFiles will get the same content but this offers much higher throughput</description><displayName>Unique FlowFiles</displayName><dynamic>false</dynamic><name>Unique FlowFiles</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>File Size</key><value>1 kb</value></entry><entry><key>Batch Size</key><value>1</value></entry><entry><key>Data Format</key><value>Binary</value></entry><entry><key>Unique FlowFiles</key><value>false</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>1 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>GenerateFlowFile</name><relationships><autoTerminate>false</autoTerminate><description></description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>f
 alse</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.GenerateFlowFile</type></processors><processors><id>41eb952d-e8c8-4d9d-85a7-0aabb542ec56</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>1529.0</x><y>112.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Scheme</key><value><allowableValues><displayName>https</displayName><value>https</value></allowableValues><allowableValue
 s><displayName>http</displayName><value>http</value></allowableValues><defaultValue>https</defaultValue><description>The scheme for connecting to Splunk.</description><displayName>Scheme</displayName><dynamic>false</dynamic><name>Scheme</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Hostname</key><value><defaultValue>localhost</defaultValue><description>The ip address or hostname of the Splunk server.</description><displayName>Hostname</displayName><dynamic>false</dynamic><name>Hostname</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Port</key><value><defaultValue>8089</defaultValue><description>The port of the Splunk server.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Query</key><value><defaultVa
 lue>search * | head 100</defaultValue><description>The query to execute. Typically beginning with a &lt;search&gt; command followed by a search clause, such as &lt;search source=&quot;tcp:7689&quot;&gt; to search for messages received on TCP port 7689.</description><displayName>Query</displayName><dynamic>false</dynamic><name>Query</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Time Range Strategy</key><value><allowableValues><description>The processor will manage the date ranges of the query starting from the beginning of time.</description><displayName>Managed from Beginning</displayName><value>Managed from Beginning</value></allowableValues><allowableValues><description>The processor will manage the date ranges of the query starting from the current time.</description><displayName>Managed from Current</displayName><value>Managed from Current</value></allowableValues><allowableValues><description>The the time ra
 nge provided through the Earliest Time and Latest Time properties will be used.</description><displayName>Provided</displayName><value>Provided</value></allowableValues><defaultValue>Provided</defaultValue><description>Indicates how to apply time ranges to each execution of the query. Selecting a managed option allows the processor to apply a time range from the last execution time to the current execution time. When using &lt;Managed from Beginning&gt;, an earliest time will not be applied on the first execution, and thus all records searched. When using &lt;Managed from Current&gt; the earliest time of the first execution will be the initial execution time. When using &lt;Provided&gt;, the time range will come from the Earliest Time and Latest Time properties, or no time range will be applied if these properties are left blank.</description><displayName>Time Range Strategy</displayName><dynamic>false</dynamic><name>Time Range Strategy</name><required>true</required><sensitive>fals
 e</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Earliest Time</key><value><description>The value to use for the earliest time when querying. Only used with a Time Range Strategy of Provided. See Splunk's documentation on Search Time Modifiers for guidance in populating this field.</description><displayName>Earliest Time</displayName><dynamic>false</dynamic><name>Earliest Time</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Latest Time</key><value><description>The value to use for the latest time when querying. Only used with a Time Range Strategy of Provided. See Splunk's documentation on Search Time Modifiers for guidance in populating this field.</description><displayName>Latest Time</displayName><dynamic>false</dynamic><name>Latest Time</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Application</key><value><description
 >The Splunk Application to query.</description><displayName>Application</displayName><dynamic>false</dynamic><name>Application</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Owner</key><value><description>The owner to pass to Splunk.</description><displayName>Owner</displayName><dynamic>false</dynamic><name>Owner</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Token</key><value><description>The token to pass to Splunk.</description><displayName>Token</displayName><dynamic>false</dynamic><name>Token</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Username</key><value><description>The username to authenticate to Splunk.</description><displayName>Username</displayName><dynamic>false</dynamic><name>Username</name><required>false</required><sensitive>false</sensitive><supportsEl>f
 alse</supportsEl></value></entry><entry><key>Password</key><value><description>The password to authenticate to Splunk.</description><displayName>Password</displayName><dynamic>false</dynamic><name>Password</name><required>false</required><sensitive>true</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Security Protocol</key><value><allowableValues><displayName>TLSv1_2</displayName><value>TLSv1_2</value></allowableValues><allowableValues><displayName>TLSv1_1</displayName><value>TLSv1_1</value></allowableValues><allowableValues><displayName>TLSv1</displayName><value>TLSv1</value></allowableValues><allowableValues><displayName>SSLv3</displayName><value>SSLv3</value></allowableValues><defaultValue>TLSv1_2</defaultValue><description>The security protocol to use for communicating with Splunk.</description><displayName>Security Protocol</displayName><dynamic>false</dynamic><name>Security Protocol</name><required>false</required><sensitive>false</sensitive><supportsEl>fa
 lse</supportsEl></value></entry><entry><key>Output Mode</key><value><allowableValues><displayName>ATOM</displayName><value>ATOM</value></allowableValues><allowableValues><displayName>CSV</displayName><value>CSV</value></allowableValues><allowableValues><displayName>JSON</displayName><value>JSON</value></allowableValues><allowableValues><displayName>JSON_COLS</displayName><value>JSON_COLS</value></allowableValues><allowableValues><displayName>JSON_ROWS</displayName><value>JSON_ROWS</value></allowableValues><allowableValues><displayName>RAW</displayName><value>RAW</value></allowableValues><allowableValues><displayName>XML</displayName><value>XML</value></allowableValues><defaultValue>JSON</defaultValue><description>The output mode for the results.</description><displayName>Output Mode</displayName><dynamic>false</dynamic><name>Output Mode</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTole
 rant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Scheme</key><value>https</value></entry><entry><key>Hostname</key><value>localhost</value></entry><entry><key>Port</key><value>8070</value></entry><entry><key>Query</key><value>search host=&quot;localhost&quot;</value></entry><entry><key>Time Range Strategy</key><value>Provided</value></entry><entry><key>Earliest Time</key><value>-5m</value></entry><entry><key>Latest Time</key><value>-1m</value></entry><entry><key>Application</key></entry><entry><key>Owner</key></entry><entry><key>Token</key></entry><entry><key>Username</key><value>admin</value></entry><entry><key>Password</key></entry><entry><key>Security Protocol</key><value>TLSv1_2</value></entry><entry><key>Output Mode</key><value>JSON</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>30 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>Query every 3
 0 seconds</name><relationships><autoTerminate>false</autoTerminate><description>Results retrieved from Splunk are sent out this relationship.</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>false</supportsParallelProcessing><type>org.apache.nifi.processors.splunk.GetSplunk</type></processors><processors><id>73212a32-1340-4423-a302-a884df0231b4</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>1129.0</x><y>112.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry>
 <entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Input Directory</key><value><description>The input directory from which to pull files</description><displayName>Input Directory</displayName><dynamic>false</dynamic><name>Input Directory</name><required>true</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>File Filter</key><value><defaultValue>[^\.].*</defaultValue><description>Only files whose names match the given regular expression will be picked up</description><displayName>File Filter</displayName><dynamic>false</dynamic><name>File Filter</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Path Filter</key><value><description>When Recurse Subdirectories is true, then only subdirectories whose path matches the given regular expression will be scanned</description><displayName>Path Filter</displayName><dynami
 c>false</dynamic><name>Path Filter</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Batch Size</key><value><defaultValue>10</defaultValue><description>The maximum number of files to pull in each iteration</description><displayName>Batch Size</displayName><dynamic>false</dynamic><name>Batch Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Keep Source File</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, the file is not deleted after it has been copied to the Content Repository; this causes the file to be picked up continually and is useful for testing purposes.  If not keeping original NiFi will need write permissions on the directory it is pulling from oth
 erwise it will ignore the file.</description><displayName>Keep Source File</displayName><dynamic>false</dynamic><name>Keep Source File</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Recurse Subdirectories</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>true</defaultValue><description>Indicates whether or not to pull files from subdirectories</description><displayName>Recurse Subdirectories</displayName><dynamic>false</dynamic><name>Recurse Subdirectories</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Polling Interval</key><value><defaultValue>0 sec</defaultValue><description>Indicates how long to wait before performing a directory listing</description><displayName>Polling Interval</displayName><dyn
 amic>false</dynamic><name>Polling Interval</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Ignore Hidden Files</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>true</defaultValue><description>Indicates whether or not hidden files should be ignored</description><displayName>Ignore Hidden Files</displayName><dynamic>false</dynamic><name>Ignore Hidden Files</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Minimum File Age</key><value><defaultValue>0 sec</defaultValue><description>The minimum age that a file must be in order to be pulled; any file younger than this amount of time (according to last modification date) will be ignored</description><displayName>Minimum File Age</displayName><dynamic>false</dy
 namic><name>Minimum File Age</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Maximum File Age</key><value><description>The maximum age that a file must be in order to be pulled; any file older than this amount of time (according to last modification date) will be ignored</description><displayName>Maximum File Age</displayName><dynamic>false</dynamic><name>Maximum File Age</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Minimum File Size</key><value><defaultValue>0 B</defaultValue><description>The minimum size that a file must be in order to be pulled</description><displayName>Minimum File Size</displayName><dynamic>false</dynamic><name>Minimum File Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Maximum File Size</key><value><description>The maximum size that a file can be 
 in order to be pulled</description><displayName>Maximum File Size</displayName><dynamic>false</dynamic><name>Maximum File Size</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Input Directory</key><value>./logs</value></entry><entry><key>File Filter</key><value>[^\.].*</value></entry><entry><key>Path Filter</key></entry><entry><key>Batch Size</key><value>10</value></entry><entry><key>Keep Source File</key><value>true</value></entry><entry><key>Recurse Subdirectories</key><value>true</value></entry><entry><key>Polling Interval</key><value>0 sec</value></entry><entry><key>Ignore Hidden Files</key><value>true</value></entry><entry><key>Minimum File Age</key><value>0 sec</value></entry><entry><key>Maximum File Age</key></entry><entry><key>Minimum File Size</key><value>0 B</value></entry><entry><key>Maximum File Size</ke
 y></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>2 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>GetFile ./data/input</name><relationships><autoTerminate>false</autoTerminate><description>All files are routed to success</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.GetFile</type></processors><processors><id>ff3b49ee-8535-4084-82e2-3aa22a10629d</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>1131.2002685546875</x><y>274.6999267578125</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><e
 ntry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Hostname</key><value><defaultValue>localhost</defaultValue><description>The ip address or hostname of the destination.</description><displayName>Hostname</displayName><dynamic>false</dynamic><name>Hostname</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Port</key><value><description>The port on the destination.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Socket Send Buffer</key><value><defaultValue>1 MB</defaultValue><description>The
  maximum size of the socket send buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><displayName>Max Size of Socket Send Buffer</displayName><dynamic>false</dynamic><name>Max Size of Socket Send Buffer</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Character Set</key><value><defaultValue>UTF-8</defaultValue><description>Specifies the character set of the data being sent.</description><displayName>Character Set</displayName><dynamic>false</dynamic><name>Character Set</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Timeout</key><value><defaultValue>10 seconds</defaultValue><description>The timeout for connecting to and communicating with the destinati
 on. Does not apply to UDP</description><displayName>Timeout</displayName><dynamic>false</dynamic><name>Timeout</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Idle Connection Expiration</key><value><defaultValue>5 seconds</defaultValue><description>The amount of time a connection should be held open without being used before closing the connection.</description><displayName>Idle Connection Expiration</displayName><dynamic>false</dynamic><name>Idle Connection Expiration</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Protocol</key><value><allowableValues><displayName>TCP</displayName><value>TCP</value></allowableValues><allowableValues><displayName>UDP</displayName><value>UDP</value></allowableValues><defaultValue>UDP</defaultValue><description>The protocol for communication.</description><displayName>Protocol</displayName><dynamic>false</dynamic>
 <name>Protocol</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Message Delimiter</key><value><description>Specifies the delimiter to use for splitting apart multiple messages within a single FlowFile. If not specified, the entire content of the FlowFile will be used as a single message. If specified, the contents of the FlowFile will be split on this delimiter and each section sent as a separate message. Note that if messages are delimited and some messages for a given FlowFile are transferred successfully while others are not, the messages will be split into individual FlowFiles, such that those messages that were successfully sent are routed to the 'success' relationship while other messages are sent to the 'failure' relationship.</description><displayName>Message Delimiter</displayName><dynamic>false</dynamic><name>Message Delimiter</name><required>false</required><sensitive>false</sensitive><supportsEl>true</su
 pportsEl></value></entry><entry><key>SSL Context Service</key><value><allowableValues><displayName>StandardSSLContextService</displayName><value>871f7215-56c4-4733-927c-00236e82486e</value></allowableValues><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be sent over a secure connection.</description><displayName>SSL Context Service</displayName><dynamic>false</dynamic><identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService><name>SSL Context Service</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Hostname</key><value>localhost</value></entry><entry><key>Port</key><value>7689</value></entry><entry><key>Max Size of Socket Send Buffer</key><value>1 MB</value></entry><entry><key>Character Set</key><value>UTF-8</
 value></entry><entry><key>Timeout</key><value>10 seconds</value></entry><entry><key>Idle Connection Expiration</key><value>5 seconds</value></entry><entry><key>Protocol</key><value>TCP</value></entry><entry><key>Message Delimiter</key><value>NN</value></entry><entry><key>SSL Context Service</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>PutSplunk Delimited Messages</name><relationships><autoTerminate>false</autoTerminate><description>FlowFiles that failed to send to the destination are sent out this relationship.</description><name>failure</name></relationships><relationships><autoTerminate>true</autoTerminate><description>FlowFiles that are sent successfully to the destination are sent out this relationship.</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</suppor
 tsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.splunk.PutSplunk</type></processors><processors><id>0ac7aebc-7692-4f37-804d-a7f03d2ddd1b</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>778.39990234375</x><y>441.1199035644531</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Hostname</key><value><defaultValue>localhost</defaultValue><description>The ip address or hostname of the destination.</d
 escription><displayName>Hostname</displayName><dynamic>false</dynamic><name>Hostname</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Port</key><value><description>The port on the destination.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Socket Send Buffer</key><value><defaultValue>1 MB</defaultValue><description>The maximum size of the socket send buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><displayName>Max Size of Socket Send Buffer</displayName><dynamic>false</dynamic><name>Max Size of Socket Send Buffer</name><required>true</required><sensitive>fal
 se</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Character Set</key><value><defaultValue>UTF-8</defaultValue><description>Specifies the character set of the data being sent.</description><displayName>Character Set</displayName><dynamic>false</dynamic><name>Character Set</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Timeout</key><value><defaultValue>10 seconds</defaultValue><description>The timeout for connecting to and communicating with the destination. Does not apply to UDP</description><displayName>Timeout</displayName><dynamic>false</dynamic><name>Timeout</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Idle Connection Expiration</key><value><defaultValue>5 seconds</defaultValue><description>The amount of time a connection should be held open without being used before closing the connection.</description><displayName>I
 dle Connection Expiration</displayName><dynamic>false</dynamic><name>Idle Connection Expiration</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Protocol</key><value><allowableValues><displayName>TCP</displayName><value>TCP</value></allowableValues><allowableValues><displayName>UDP</displayName><value>UDP</value></allowableValues><defaultValue>UDP</defaultValue><description>The protocol for communication.</description><displayName>Protocol</displayName><dynamic>false</dynamic><name>Protocol</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Message Delimiter</key><value><description>Specifies the delimiter to use for splitting apart multiple messages within a single FlowFile. If not specified, the entire content of the FlowFile will be used as a single message. If specified, the contents of the FlowFile will be split on this delimiter and each section
  sent as a separate message. Note that if messages are delimited and some messages for a given FlowFile are transferred successfully while others are not, the messages will be split into individual FlowFiles, such that those messages that were successfully sent are routed to the 'success' relationship while other messages are sent to the 'failure' relationship.</description><displayName>Message Delimiter</displayName><dynamic>false</dynamic><name>Message Delimiter</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>SSL Context Service</key><value><allowableValues><displayName>StandardSSLContextService</displayName><value>871f7215-56c4-4733-927c-00236e82486e</value></allowableValues><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be sent over a secure connection.</description><displayName>SSL Context Service</displayName><dynamic>false</dynamic><identi
 fiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService><name>SSL Context Service</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Hostname</key><value>localhost</value></entry><entry><key>Port</key><value>7689</value></entry><entry><key>Max Size of Socket Send Buffer</key><value>1 MB</value></entry><entry><key>Character Set</key><value>UTF-8</value></entry><entry><key>Timeout</key><value>10 seconds</value></entry><entry><key>Idle Connection Expiration</key><value>5 seconds</value></entry><entry><key>Protocol</key><value>TCP</value></entry><entry><key>Message Delimiter</key></entry><entry><key>SSL Context Service</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDurati
 on>1 sec</yieldDuration></config><name>PutSplunk Single Message</name><relationships><autoTerminate>false</autoTerminate><description>FlowFiles that failed to send to the destination are sent out this relationship.</description><name>failure</name></relationships><relationships><autoTerminate>true</autoTerminate><description>FlowFiles that are sent successfully to the destination are sent out this relationship.</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.splunk.PutSplunk</type></processors><processors><id>2ddc92dd-5f5b-4b3e-911d-d0aac1823b71</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>366.0</x><y>440.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTask
 s><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Port</key><value><description>The port to listen on for communication.</description><displayName>Port</displayName><dynamic>false</dynamic><name>Port</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Receive Buffer Size</key><value><defaultValue>65507 B</defaultValue><description>The size of each buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.</description><displayName>Receive Buffer Size</displayName><dynamic>false</dynamic><name>Receive Buffer Size</name><required>true
 </required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Message Queue</key><value><defaultValue>10000</defaultValue><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor.</description><displayName>Max Size of Message Queue</displayName><dynamic>false</dynamic><name>Max Size of Message Queue</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Size of Socket Buffer</key><value><defaultValue>1 MB</defaultValue><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill u
 p before the data can be read, and incoming data will be dropped.</description><displayName>Max Size of Socket Buffer</displayName><dynamic>false</dynamic><name>Max Size of Socket Buffer</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Character Set</key><value><defaultValue>UTF-8</defaultValue><description>Specifies the character set of the received data.</description><displayName>Character Set</displayName><dynamic>false</dynamic><name>Character Set</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Number of TCP Connections</key><value><defaultValue>2</defaultValue><description>The maximum number of concurrent TCP connections to accept.</description><displayName>Max Number of TCP Connections</displayName><dynamic>false</dynamic><name>Max Number of TCP Connections</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supp
 ortsEl></value></entry><entry><key>Max Batch Size</key><value><defaultValue>1</defaultValue><description>The maximum number of messages to add to a single FlowFile. If multiple messages are available, they will be concatenated along with the &lt;Message Delimiter&gt; up to this configured maximum number of messages</description><displayName>Max Batch Size</displayName><dynamic>false</dynamic><name>Max Batch Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Message Delimiter</key><value><defaultValue>\n</defaultValue><description>Specifies the delimiter to place between messages when multiple messages are bundled together (see &lt;Max Batch Size&gt; property).</description><displayName>Message Delimiter</displayName><dynamic>false</dynamic><name>Message Delimiter</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>SSL Context Service</key><value><al
 lowableValues><displayName>StandardSSLContextService</displayName><value>871f7215-56c4-4733-927c-00236e82486e</value></allowableValues><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be received over a secure connection.</description><displayName>SSL Context Service</displayName><dynamic>false</dynamic><identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService><name>SSL Context Service</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Client Auth</key><value><allowableValues><displayName>WANT</displayName><value>WANT</value></allowableValues><allowableValues><displayName>REQUIRED</displayName><value>REQUIRED</value></allowableValues><allowableValues><displayName>NONE</displayName><value>NONE</value></allowableValues><defaultValue>REQUIRED</defaultValue><description>The client authentication policy to use for the
  SSL Context. Only used if an SSL Context Service is provided.</description><displayName>Client Auth</displayName><dynamic>false</dynamic><name>Client Auth</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Port</key><value>6589</value></entry><entry><key>Receive Buffer Size</key><value>65507 B</value></entry><entry><key>Max Size of Message Queue</key></entry><entry><key>Max Size of Socket Buffer</key><value>1 MB</value></entry><entry><key>Character Set</key><value>UTF-8</value></entry><entry><key>Max Number of TCP Connections</key><value>2</value></entry><entry><key>Max Batch Size</key><value>1</value></entry><entry><key>Message Delimiter</key><value>\n</value></entry><entry><key>SSL Context Service</key><value>871f7215-56c4-4733-927c-00236e82486e</value></entry><entry><key>Client Auth</key></entry></properties><runD
 urationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>ListenTCP SSL</name><relationships><autoTerminate>false</autoTerminate><description>Messages received successfully will be sent out this relationship.</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.ListenTCP</type></processors><processors><id>792bf873-97f4-4af1-8aa9-0534e79da810</id><parentGroupId>f1bee4e8-470b-41b7-97af-ada9f6998826</parentGroupId><position><x>363.0</x><y>607.0</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN<
 /key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Log Level</key><value><allowableValues><displayName>trace</displayName><value>trace</value></allowableValues><allowableValues><displayName>debug</displayName><value>debug</value></allowableValues><allowableValues><displayName>info</displayName><value>info</value></allowableValues><allowableValues><displayName>warn</displayName><value>warn</value></allowableValues><allowableValues><displayName>error</displayName><value>error</value></allowableValues><defaultValue>info</defaultValue><description>The Log Level to use when logging the Attributes</description><displayName>Log Level</displayName><dynamic>false</dynamic><name>Log Level</name><required>true</required><sensitive>false</sensiti
 ve><supportsEl>false</supportsEl></value></entry><entry><key>Log Payload</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, the FlowFile's payload will be logged, in addition to its attributes; otherwise, just the Attributes will be logged.</description><displayName>Log Payload</displayName><dynamic>false</dynamic><name>Log Payload</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attributes to Log</key><value><description>A comma-separated list of Attributes to Log. If not specified, all attributes will be logged.</description><displayName>Attributes to Log</displayName><dynamic>false</dynamic><name>Attributes t
    --- End diff --
    
    I'd rather have a non-realistic testing flow than one that gives the illusion that we bundle processors that we don't. I can create a template to use.


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