Uploaded image for project: 'Apache NiFi'
  1. Apache NiFi
  2. NIFI-12266

Add Standard Shared NAR for Common Dependencies

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.0.0-M1, 1.24.0
    • Extensions
    • None

    Description

      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

      Attachments

        Issue Links

          Activity

            People

              exceptionfactory David Handermann
              exceptionfactory David Handermann
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h
                  1h