[ 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)