On Fri, Oct 14, 2011 at 10:13 AM, Vincent Massol <[email protected]> wrote: > > On Oct 14, 2011, at 10:03 AM, Thomas Mortagne wrote: > >> On Fri, Oct 14, 2011 at 9:53 AM, Vincent Massol <[email protected]> wrote: >>> Hi devs, >>> >>> I'd like to propose to improve the Component Override mechanism (currently >>> based on component-overrides.txt, see >>> http://extensions.xwiki.org/xwiki/bin/view/Extension/Component+Module#HOverrides). >>> We have a limitation right now in that we can only have one level of >>> override. The issue is that we need more levels even right now since we >>> have component impls in xwiki-commons or xwiki-rendering that are >>> overridden in xwiki-platform (thus using component-overrides.txt). This >>> means that users cannot provide their own implementations. >>> >>> Thus I'd like to propose the following: >>> >>> * Deprecate the component-overrides.txt file >> >> We could maybe keep this system to allow an admin to choose an >> implementation he wants whatever the priority setup of each impl. So >> it would only be used in WEB-INF/classes basically. > > Yes but I think it's better to be the simplest possible. What they can do > easily is put a component.txt in WEB-INF/classes for ex and override whatever > component impl for there.
I tough about that but I'm was not 100% sure it was going to work but I tough more about it in detail and it should be OK actually. But I would not call that the simplest for users ;) > All they need to do is ensure that they provide their own component.txt first > in the classloader, so IMO it's enough (especially since I doubt it's going > to happen and it would be a bug for someone to release a library based on our > component and using a priority of 1 for ex). > > Thanks > -Vincent > >>> * Add an optional priority level number that you can specify in the >>> components.txt >>> * I propose the following format in components.txt: <priority level>:<full >>> package path to implementation as it is now>. Ex: >>> 1000:org.xwiki.rendering.internal.macro.DefaultMacroManager >>> * Use a default priority of 1000 when not specified (same as for our Macro) >>> * Guarantee in the documentation that all components that the XWiki project >>> provides never have priorities under, say, 100. This is so that users who >>> want to override know that if they use a priority under 100 their impls >>> will always win. >>> * Use a priority of 500 in platform when overriding components found in >>> commons or rendering. >>> >>> Here's my +1 >> >> +1 >> >>> >>> Thanks >>> -Vincent >>> >>> _______________________________________________ >>> devs mailing list >>> [email protected] >>> http://lists.xwiki.org/mailman/listinfo/devs >>> >> >> >> >> -- >> Thomas Mortagne >> _______________________________________________ >> devs mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/devs > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > -- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

