You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Thiago Henrique De Paula Figueiredo (Jira)" <ji...@apache.org> on 2021/02/11 21:41:00 UTC

[jira] [Closed] (TAP5-2657) Blacklist modules autoloaded via manifests

     [ https://issues.apache.org/jira/browse/TAP5-2657?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thiago Henrique De Paula Figueiredo closed TAP5-2657.
-----------------------------------------------------
    Resolution: Fixed

> Blacklist modules autoloaded via manifests
> ------------------------------------------
>
>                 Key: TAP5-2657
>                 URL: https://issues.apache.org/jira/browse/TAP5-2657
>             Project: Tapestry 5
>          Issue Type: New Feature
>          Components: tapestry-ioc
>            Reporter: Benjamin Weidig
>            Assignee: Benjamin Weidig
>            Priority: Trivial
>             Fix For: 5.6.2, 5.7.0
>
>         Attachments: TAP5-2657-manifest-module-blacklist.patch
>
>
> h1. Summary
> Add blacklist for auto-loaded modules via JAR manifests.
> h1. 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.
> h1. Risks and Assumptions
> No risk is assumed.
> The blacklist is an additional feature, not changing any previous behavior if not present.
> h1. Alternatives
> Forking a dependency and removing the module(s) from the manifest.
>  h1. 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(...).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)