[
https://issues.apache.org/jira/browse/NIFI-9754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17501304#comment-17501304
]
ASF subversion and git services commented on NIFI-9754:
-------------------------------------------------------
Commit 8959226b50cb2f3fc46722f32810ec06037985e4 in nifi's branch
refs/heads/main from Mark Payne
[ https://gitbox.apache.org/repos/asf?p=nifi.git;h=8959226 ]
NIFI-9754: Introduced VersionedExternalFlow
- Updated stateless and StandardProcessGroup, etc. to make use of
VersionedExternalFlow
- Updated StatelessDataflowDefinition to use ExternalVersionedFlow instead of
generic type
- Updated Stateless Bootstrap to avoid loading stateless engine libs from root
class path but instead use a NarClassLoader to load the statelss nar
Signed-off-by: Joe Gresock <[email protected]>
This closes #5832.
> Introduce new class to nifi-api that provides the fields necessary from
> VersionedFlowSnapshot for NiFi's use
> ------------------------------------------------------------------------------------------------------------
>
> Key: NIFI-9754
> URL: https://issues.apache.org/jira/browse/NIFI-9754
> Project: Apache NiFi
> Issue Type: Improvement
> Components: Core Framework, NiFi Stateless
> Reporter: Mark Payne
> Assignee: Mark Payne
> Priority: Major
> Time Spent: 1h
> Remaining Estimate: 0h
>
> The VersionedFlowSnapshot class provides several getters/setters for things
> like the flow contents, storage location, name, and version. NiFi makes use
> of many of these fields (but not all). Also, the Stateless Bootstrap requires
> that a VersionedFlowSnapshot be provided to create a Stateless flow.
> However, the VersionedFlowSnapshot is located within the
> nifi-registry-data-model module, and not the nifi-api. Unfortunately, it
> cannot be brought over into the nifi-api module because it has a dependency
> on the jax-rs {{Link}} class, and perhaps other dependencies, that we cannot
> introduce into nifi-api.
> However, we need a class in nifi-api that provides the same types of
> elements: the flow contents, parameter contexts, external controller
> services, and metadata.
> This should be used for the Stateless Bootstrap instead of
> VersionedFlowSnapshot. Currently, the dependency on VersionedFlowSnapshot
> means that we must create the stateless engine's ClassLoader in such a way
> that it loads VersionedFlowSnapshot and other classes from the enclosing
> application's ClassLoader, which causes our Classloader isolation not to work
> properly for the stateless engine (though extensions still have proper
> classloader isolation). If we introduce a new class into nifi-api, we have
> the ability to provide better classloader isolation, since only the nifi-api
> jar and other jars on the nifi lib/ directory must be shared between the
> stateless engine and the caller.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)