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)