Github user mattyb149 commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2956#discussion_r222758854
  
    --- Diff: 
nifi-nar-bundles/nifi-neo4j-bundle/nifi-neo4j-processors/src/main/java/org/apache/nifi/processors/neo4j/AbstractNeo4JCypherExecutor.java
 ---
    @@ -0,0 +1,281 @@
    +/*
    + * 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.processors.neo4j;
    +
    +import java.io.File;
    +import java.util.concurrent.TimeUnit;
    +
    +import org.apache.commons.lang3.StringUtils;
    +import org.apache.nifi.annotation.lifecycle.OnScheduled;
    +import org.apache.nifi.annotation.lifecycle.OnStopped;
    +import org.apache.nifi.components.AllowableValue;
    +import org.apache.nifi.components.PropertyDescriptor;
    +import org.apache.nifi.components.PropertyValue;
    +import org.apache.nifi.expression.ExpressionLanguageScope;
    +import org.apache.nifi.processor.AbstractProcessor;
    +import org.apache.nifi.processor.ProcessContext;
    +import org.apache.nifi.processor.Relationship;
    +import org.apache.nifi.processor.exception.ProcessException;
    +import org.apache.nifi.processor.util.StandardValidators;
    +import org.neo4j.driver.v1.AuthTokens;
    +import org.neo4j.driver.v1.Config;
    +import org.neo4j.driver.v1.Config.ConfigBuilder;
    +import org.neo4j.driver.v1.Config.LoadBalancingStrategy;
    +import org.neo4j.driver.v1.Config.TrustStrategy;
    +import org.neo4j.driver.v1.Driver;
    +import org.neo4j.driver.v1.GraphDatabase;
    +
    +/**
    + * Abstract base class for Neo4JCypherExecutor processors
    + */
    +abstract class AbstractNeo4JCypherExecutor extends AbstractProcessor {
    +
    +    protected static final PropertyDescriptor QUERY = new 
PropertyDescriptor.Builder()
    +            .name("neo4J-query")
    +            .displayName("Neo4J Query")
    +            .description("Specifies the Neo4j Query.")
    +            .required(true)
    +            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
    +            .addValidator(StandardValidators.NON_BLANK_VALIDATOR)
    +            .build();
    +
    +    public static final PropertyDescriptor CONNECTION_URL = new 
PropertyDescriptor.Builder()
    +            .name("neo4j-connection-url")
    +            .displayName("Neo4j Connection URL")
    +            .description("Neo4J endpoing to connect to.")
    +            .required(true)
    +            .defaultValue("bolt://localhost:7687")
    +            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
    +            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
    +            .build();
    +
    +    public static final PropertyDescriptor USERNAME = new 
PropertyDescriptor.Builder()
    +            .name("neo4j-username")
    +            .displayName("Username")
    +            .description("Username for accessing Neo4J")
    +            .required(true)
    +            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
    +            .addValidator(StandardValidators.NON_BLANK_VALIDATOR)
    +            .build();
    +
    +    public static final PropertyDescriptor PASSWORD = new 
PropertyDescriptor.Builder()
    --- End diff --
    
    For user-friendliness, couldn't we remove the onus from the user and just 
pick a dummy non-blank password if none was supplied in the property? Then it 
wouldn't need to be a required property.


---

Reply via email to