Uploaded image for project: 'Tapestry 5'
  1. Tapestry 5
  2. TAP5-2657

Blacklist modules autoloaded via manifests

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Trivial
    • Resolution: Fixed
    • None
    • 5.6.2, 5.7.0
    • tapestry-ioc
    • None

    Description

      Summary

      Add blacklist for auto-loaded modules via JAR manifests.

      Motivation / Goals

      Right now, we can specify a list of modules to be auto-loaded with the property "Tapestry-Module-Classes" in a MANIFEST.mf of a JAR.
      This is great from a "batteries included" perspective because we just need to add a dependency to our project, and it "just works".

      Even though Tapestry is immensely flexible, we now have to use the Module "as provided" with maybe no chance for customization.
      This might lead to us forking the dependency and removing the module from the manifest, to gain back more control.

      As discussed earlier on the mailing list, this could mean that any changes/bugfixes of a forked dependency won't benefit the original.
      And of course, we have to maintain our fork.

      To mitigate these issues, I suggest the possibility to blacklist modules loaded from MANIFEST.mf.
      The blacklist only affects MANIFEST.mf related modules.
      Non-available but blacklisted Modules should be ignored.

      Risks and Assumptions

      No risk is assumed.

      The blacklist is an additional feature, not changing any previous behavior if not present.

      Alternatives

      Forking a dependency and removing the module(s) from the manifest.

      Details of Proposed Changes

      Adding a new system property "tapestry.manifest-modules-blacklist" is CSV like "tapestry.modules".

      All changes are restricted to org.apache.tapestry5.ioc.IOCUtilities.

      IOCUtilities.addDefaultModules(...) would load and prepare the blacklist and passes it on to IOCUtilities.addModulesInManifest(...).

      Attachments

        Activity

          People

            ben-ng Ben Weidig
            ben-ng Ben Weidig
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: