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. 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

Reply via email to