[
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)