You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/12/19 13:01:00 UTC
[jira] [Commented] (NIFI-4424) org.apache.nifi.NiFi does not allow
programmatic access to the NiFi engine
[ https://issues.apache.org/jira/browse/NIFI-4424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16296756#comment-16296756 ]
ASF GitHub Bot commented on NIFI-4424:
--------------------------------------
Github user peter-gergely-horvath commented on the issue:
https://github.com/apache/nifi/pull/2251
Hi @patricker, please let me know if there is anything that requires clarification or if there is any way I could help the review. I would love to see this pull request being merged.
> 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
>
> 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
(v6.4.14#64029)