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

Benjamin Weidig updated TAP5-2657:
----------------------------------
    Attachment: TAP5-2657-manifest-module-blacklist.patch

> 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
>    Affects Versions: 5.7.0
>            Reporter: Benjamin Weidig
>            Priority: Trivial
>         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)

Reply via email to