[
https://issues.apache.org/jira/browse/NIFI-4424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16334810#comment-16334810
]
ASF subversion and git services commented on NIFI-4424:
-------------------------------------------------------
Commit 3ebfcd5ae5132e29482d571e767142c806e30469 in nifi's branch
refs/heads/master from [[email protected]]
[ https://git-wip-us.apache.org/repos/asf?p=nifi.git;h=3ebfcd5 ]
NIFI-4424 Added functionality to allow NiFi to run in "embedded" mode for
eventual integration test access.
This closes #2251.
Signed-off-by: Andy LoPresto <[email protected]>
> org.apache.nifi.NiFi does not allow programmatic access to the NiFi engine
> --------------------------------------------------------------------------
>
> Key: NIFI-4424
> URL: https://issues.apache.org/jira/browse/NIFI-4424
> Project: Apache NiFi
> Issue Type: Improvement
> Components: Core Framework
> Affects Versions: 1.3.0
> Reporter: Peter Horvath
> Priority: Major
>
> Class {{org.apache.nifi.NiFi}} was not designed with extensibility or
> programmatic access in mind.
> This class is the entry point of the engine, however, the current
> implementation does not allow
> a potential caller (e.g. an integration test harness) to bootstrap the engine
> and then shut it down properly:
> The main method {{org.apache.nifi.NiFi#main}} simply logs any exception,
> which is fine
> when started from the command line, however prevents programmatic usage and
> detecting error conditions (Exceptions) that would be essential to
> programatically access
> it from an integration test.
> The constructor {{org.apache.nifi.NiFi#NiFi}} registers an
> {{UncaughtExceptionHandler}},
> a JVM {{Shutdown Hook}} and changes logging framework settings.
> *Please change this behaviour:*
> Expose *two* methods, one of which accepts the command line argument one
> would pass
> to the NiFi process and another one, which allows the NiFiProperties object
> to be passed.
> This method should return the {{NiFi}} object instance for further
> programmatic access.
> The logic used to register {{UncaughtExceptionHandler}}, a JVM Shutdown Hook
> and
> changing logging framework settings should be extracted to a {{protected}}
> *instance*
> method so that a client can override their behaviour with a NO-OP.
> A second class called e.g. {{org.apache.nifi.EmbeddedNiFi}} could be
> introduced as
> a base class for this use-case, where the engine is started through the Java
> API.
> *Please note these changes are baby-steps towards the implementation of a
> NiFi integration test harness.*
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)