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

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

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

    https://github.com/apache/nifi/pull/1156#discussion_r86226932
  
    --- Diff: 
nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/classloader/ClassLoaderUtils.java
 ---
    @@ -52,23 +86,29 @@ public static ClassLoader getCustomClassLoader(String 
modulePath, ClassLoader pa
                         isUrl = false;
                     }
                     if (!isUrl) {
    -                    File modulePath = new File(modulePathString);
    +                    try {
    +                        File modulePath = new File(modulePathString);
     
    -                    if (modulePath.exists()) {
    +                        if (modulePath.exists()) {
     
    -                        
additionalClasspath.add(modulePath.toURI().toURL());
    +                            
additionalClasspath.add(modulePath.toURI().toURL());
     
    -                        if (modulePath.isDirectory()) {
    -                            File[] files = 
modulePath.listFiles(filenameFilter);
    +                            if (modulePath.isDirectory()) {
    +                                File[] files = 
modulePath.listFiles(filenameFilter);
     
    -                            if (files != null) {
    -                                for (File jarFile : files) {
    -                                    
additionalClasspath.add(jarFile.toURI().toURL());
    +                                if (files != null) {
    +                                    for (File jarFile : files) {
    +                                        
additionalClasspath.add(jarFile.toURI().toURL());
    --- End diff --
    
    I see what you mean, I'll add that check to see if it is a directory or 
file and handle accordingly


> Provide a framework mechanism for loading additional classpath resources
> ------------------------------------------------------------------------
>
>                 Key: NIFI-2909
>                 URL: https://issues.apache.org/jira/browse/NIFI-2909
>             Project: Apache NiFi
>          Issue Type: Improvement
>            Reporter: Bryan Bende
>            Assignee: Bryan Bende
>             Fix For: 1.1.0
>
>
> We currently have several components with a property for specifying 
> additional classpath resources (DBCP connection pool, scripting processors, 
> JMS). Each of these components is responsible for handling this in its own 
> way. 
> The framework should provide a more integrated solution to make it easier for 
> component developers to deal with this scenario. Some requirements that need 
> to be met by this solution:
> - Multiple instances of the same component with different resources added to 
> the classpath and not interfering with each other (i.e. two DBCP connection 
> pools using different drivers)
> - Ability to modify the actual ClassLoader of the component to deal with 
> frameworks that use Class.forName() without passing in a ClassLoader, meaning 
> if a processor loads class A and class A calls Class.forName(classBName), 
> then class B needs to be available in the ClassLoader that loaded the 
> processor's class which in turn loaded class A
> - A component developer should be able to indicate that a given 
> PropertyDescriptor represents a classpath resource and the framework should 
> take care of the ClassLoader manipulation



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

Reply via email to