[ 
https://issues.apache.org/jira/browse/NIFI-2604?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15437800#comment-15437800
 ] 

ASF GitHub Bot commented on NIFI-2604:
--------------------------------------

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

    https://github.com/apache/nifi/pull/912#discussion_r76333878
  
    --- Diff: 
nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/StandardValidators.java
 ---
    @@ -379,6 +381,68 @@ public ValidationResult validate(final String subject, 
final String input, final
             };
         }
     
    +    public static Validator createURLorFileValidator() {
    +        return (subject, input, context) -> {
    +            if (context.isExpressionLanguageSupported(subject) && 
context.isExpressionLanguagePresent(input)) {
    +                return new 
ValidationResult.Builder().subject(subject).input(input).explanation("Expression
 Language Present").valid(true).build();
    +            }
    +
    +            try {
    +                PropertyValue propertyValue = 
context.newPropertyValue(input);
    +                String evaluatedInput = (propertyValue == null) ? input : 
propertyValue.evaluateAttributeExpressions().getValue();
    +
    +                boolean validUrl = true;
    +
    +                // First check to see if it is a valid URL
    +                try {
    +                    new URL(evaluatedInput);
    +                } catch (MalformedURLException mue) {
    +                    validUrl = false;
    +                }
    +
    +                boolean validFile = true;
    +                if (!validUrl) {
    +                    // Check to see if it is a file and it exists
    +                    final File file = new File(evaluatedInput);
    +                    validFile = file.exists();
    +                }
    +
    +                final boolean valid = validUrl || validFile;
    +                final String reason = valid ? "Valid URL or file" : "Not a 
valid URL or file";
    +                return new 
ValidationResult.Builder().subject(subject).input(input).explanation(reason).valid(valid).build();
    +
    +            } catch (final Exception e) {
    +                return new 
ValidationResult.Builder().subject(subject).input(input).explanation("Not a 
valid URL or file").valid(false).build();
    +            }
    +        };
    +    }
    +
    +    public static Validator createListValidator(boolean trimEntries, 
boolean excludeEmptyEntries, Validator validator) {
    +        return (subject, input, context) -> {
    +            if (context.isExpressionLanguageSupported(subject) && 
context.isExpressionLanguagePresent(input)) {
    +                return new 
ValidationResult.Builder().subject(subject).input(input).explanation("Expression
 Language Present").valid(true).build();
    +            }
    +            try {
    +                if (input == null) {
    +                    return new 
ValidationResult.Builder().subject(subject).input(null).explanation("List must 
have at least one non-empty element").valid(false).build();
    +                }
    +                final String[] list = input.split(",");
    +                for (String item : list) {
    +                    String itemToValidate = (StringUtils.isBlank(item) && 
trimEntries) ? item.trim() : item;
    --- End diff --
    
    Good catch, will fix


> JDBC Connection Pool support for lib directory and expression language
> ----------------------------------------------------------------------
>
>                 Key: NIFI-2604
>                 URL: https://issues.apache.org/jira/browse/NIFI-2604
>             Project: Apache NiFi
>          Issue Type: Improvement
>            Reporter: Joseph Witt
>            Assignee: Matt Burgess
>
> It would be ideal if the JDBC Connection Service supported specifying a 
> directory instead of particular driver jars.  It would also be helpful if it 
> accepted expression language statements so that it could refer to a location 
> that is based on variable registry values so it is more portable between 
> environments.
> This stems from a user list thread titled "adding dependencies like jdbc 
> drivers to the build" on Aug 18 2016



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to