[
https://issues.apache.org/jira/browse/NIFI-5673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16670678#comment-16670678
]
ASF GitHub Bot commented on NIFI-5673:
--------------------------------------
GitHub user bbende opened a pull request:
https://github.com/apache/nifi/pull/3119
NIFI-5673 Support auto loading of new NARs
This PR introduces a new property in nifi.properties where you can specify
a directory that will be watched for new NARs (defaults ./extensions), and upon
finding them will make any extensions in those NARs available to the running
application without requiring a restart.
In addition, this PR includes a refactoring of the ExtensionManager to
remove it's static use and make it an instance that is injected everywhere.
This will help make the framework code more testable going forward.
NOTE: Currently the UI retrieves the available types during initial load of
the UI and never retrieves them again because they couldn't change, so this
will have to be changed in a follow on PR.
Some scenarios to consider when testing...
- Dependencies across NARs - handled by keeping track of skipped NARs until
the a new NAR is available matching the required dependency
- NARs still being written - handled by only consider the NAR once the last
modified time is at least 5 seconds old
- Custom UIs - make sure the custom UI is available for a component that
was auto-loaded
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/bbende/nifi NIFI-5673
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/nifi/pull/3119.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #3119
----
commit d7561ffa5601e4afd708fdbf8198f696bf3b2bbd
Author: Bryan Bende <bbende@...>
Date: 2018-10-12T15:15:30Z
NIFI-5673 Set up property/assembly for new auto-load directory
- Set up NarAutoLoader to watch directory for new files
- Move NarAutoLoader to JettyServer since it will need access to
ExtensionManager
- Created NarLoader to shared between NarAutoLoader and the framework
- Created nifi-framework-nar-loading-utils so we can use nifi-documentation
to call DocGenerator
- Add additional bundles to overall map in NarClassLoaders as they are
loaded
- Added handling of skipped NARs to include them in next iteration
- Added check of last modified timestamp on NARs
- Refactored JettyServer so we can load additional web contexts while the
application is running
- Setting up unit tests
commit 81ed267f68c69566851d75b4a99b15e1a05f503c
Author: Bryan Bende <bbende@...>
Date: 2018-10-29T20:19:57Z
NIFI-5673 Remove static use of ExtensionManager
commit e126bfca87c79272836c7c281d6d80f09d9721e4
Author: Bryan Bende <bbende@...>
Date: 2018-10-30T19:51:37Z
NIFI-5673 Adding unit tests for NarLoader
commit 01a7feb9bdd02ef3407a3b3acd5f05c0938e2e49
Author: Bryan Bende <bbende@...>
Date: 2018-10-31T15:36:49Z
NIFI-5673 Extracting interface for ExtensionManager and splitting discovery
into it's own interface
----
> Support auto loading of new NARs
> --------------------------------
>
> Key: NIFI-5673
> URL: https://issues.apache.org/jira/browse/NIFI-5673
> Project: Apache NiFi
> Issue Type: Improvement
> Reporter: Bryan Bende
> Assignee: Bryan Bende
> Priority: Minor
>
> We should be able to detect when new NARs have been added to any of the NAR
> directories and automatically load them and make the components available for
> use without restarting the whole NiFi instance.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)