You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "David Handermann (Jira)" <ji...@apache.org> on 2023/10/24 03:04:00 UTC

[jira] [Created] (NIFI-12266) Add Standard Shared NAR for Common Dependencies

David Handermann created NIFI-12266:
---------------------------------------

             Summary: Add Standard Shared NAR for Common Dependencies
                 Key: NIFI-12266
                 URL: https://issues.apache.org/jira/browse/NIFI-12266
             Project: Apache NiFi
          Issue Type: Improvement
          Components: Extensions
            Reporter: David Handermann
            Assignee: David Handermann
             Fix For: 2.latest


Numerous extension components share a small number of similar libraries. With selective version management in the root Maven configuration, these common dependencies have the same version when bundled into various NAR files. The current packaging structure has most extension NAR files depending on {{{}nifi-standard-services-api-nar{}}}, which is scoped to common service API modules that do not have additional dependencies.

Introducing a new intermediate NAR to package common versions of several shared dependencies would provide a notable size reduction for binary builds. A new standard shared NAR should contain a limited set a dependencies that are broadly applicable to extension components, which will allow these components to set shared dependencies with the {{provided}} scope, avoiding direct inclusion in the extension NAR.

The standard shared NAR should depend on {{{}nifi-standard-services-api-nar{}}}, allowing components to opt out of the standard shared dependency version if absolutely necessary.

The following libraries are good candidates for inclusion in a standard shared NAR based on the number of references and the sizes of the dependencies:
 * Apache Commons libraries such as commons-lang3 and commons-io
 * Jackson JSON
 * Bouncy Castle
 * Netty 4
 * OkHttp with Kotlin



--
This message was sent by Atlassian Jira
(v8.20.10#820010)