You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Sorin Florea (JIRA)" <ji...@apache.org> on 2017/12/09 02:04:00 UTC
[jira] [Created] (NIFI-4685) Hardcoded path when creating Bootstrap
ClassLoader in Nifi
Sorin Florea created NIFI-4685:
----------------------------------
Summary: Hardcoded path when creating Bootstrap ClassLoader in Nifi
Key: NIFI-4685
URL: https://issues.apache.org/jira/browse/NIFI-4685
Project: Apache NiFi
Issue Type: Bug
Components: Configuration, Core Framework
Affects Versions: 1.4.0
Environment: Windows 7, JRE 1.8.0_144
Reporter: Sorin Florea
Priority: Minor
Found a hardcoded path to {{"lib/bootstrap"}} in [link {{org.apache.nifi.NiFi}}|https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFi.java#L3] class when calling {{createBootstrapClassLoader()}} :
{code:java}
private static ClassLoader createBootstrapClassLoader() throws IOException {
//Get list of files in bootstrap folder
final List<URL> urls = new ArrayList<>();
Files.list(Paths.get({color:red}_"lib/bootstrap"_{color})).forEach(p -> {
try {
urls.add(p.toUri().toURL());
} catch (final MalformedURLException mef) {
LOGGER.warn("Unable to load " + p.getFileName() + " due to " + mef, mef);
}
});
//Create the bootstrap classloader
return new URLClassLoader(urls.toArray(new URL[0]), Thread.currentThread().getContextClassLoader());
}
{code}
There are multiple places where the {{.\lib}} directory is defined:
* {{BOOTSTRAP_LIBS}} or {{%LIB_DIR%}} environment variables in {{nifi.sh}} or {{run-nifi.bat}}
* {{lib.dir}} in {{bootstrap.conf}} is most likely it
* {{nifi.nar.library.directory}} or {{nifi.web.war.directory}} identify the library folder but don't quite refer to the bootstrap
Perhaps using {{lib.dir}} in {{bootstrap.conf}} or create a new {{lib.bootstrap.dir}} property.
Using different library folders would allow configuring multiple instances of Nifi using the same resource. I managed changing the properties and environment variables above to point to a common {{lib}} directory but this harcoded prevented {{run-nifi.bat}} to run successfully. {{dump-nifi.bat}} and {{status-nifi.bat}} ran without issue.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)