[ 
https://issues.apache.org/jira/browse/NIFI-5121?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Thomsen updated NIFI-5121:
-------------------------------
    Resolution: Fixed
        Status: Resolved  (was: Patch Available)

> DBCPService should support passing in an attribute map when obtaining a 
> connection
> ----------------------------------------------------------------------------------
>
>                 Key: NIFI-5121
>                 URL: https://issues.apache.org/jira/browse/NIFI-5121
>             Project: Apache NiFi
>          Issue Type: Improvement
>            Reporter: Bryan Bende
>            Assignee: Matt Burgess
>            Priority: Minor
>
> Many users have asked for a way to obtain dynamic database connections. 
> Essentially being able to use the existing SQL processors like PutSQL, etc, 
> and be able to pass in flow file attributes to the DBCPService to obtain a 
> connection based on the attributes.
> The current DBCPService interface has a single method:
> {code:java}
> Connection getConnection(){code}
> Since there is no way for a processor to pass in any information, we can add 
> an additional method to this interface and make the interface like this:
> {code:java}
> Connection getConnection(Map<String,String> attributes)
> default Connection getConnection() {
>   return getConnection(Collections.emptyMap());
> }{code}
> This would leave it up to the implementations of DBCPService interface to 
> decide if they want to use the attributes map for anything.
> The DBCPConnectionPool would not use the attributes map and would continue to 
> provide a fixed connection pool against a single data source.
> A new implementation can then be created that somehow maintains multiple 
> connection pools, or creates connections on the fly.
> The PropertyDescriptors in each implementation should indicate how they use 
> expression language.
> For example, since DBCPConnectionPool will not use the attribute map, it's 
> property descriptors will indicate expression language scope as variable 
> registry only:
> {code:java}
> .expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY){code}
> The dynamic implementations should indicate:
> {code:java}
> .expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBURES){code}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to