We need to decide if we want this only in 2.1M1 or also in 2.0 final  
or 2.0.x.

Reminder: This is needed to allow wiki macros to be able to be written  
in multiwiki environments.

Note: The code I have so far for it doesn't seem too dangerous.

WDYT?

Thanks
-Vincent

On Sep 8, 2009, at 9:28 AM, Vincent Massol wrote:

> Hi,
>
> We have the need to isolate groups of components. For ex a wiki  
> macro created in a subwiki should only be visible in that subwiki by  
> default.
>
> Here's an implementation proposal that I'm planning to implement:
>
> * There's a Root Component Manager (the current CM)
> * There are 3 components which implement the ComponentManager role  
> and with 3 hints: "wiki", "user" and "all". There's a  
> CompositeComponentManager class that allows chaining CM and the  
> "all" CM chains the "default" (root CM), "wiki" CM and "user" CM.  
> This works the same as with the configuration module.
> * Other components can have CMs injected as they want (if not  
> specified then it's the default, etc). For ex:
>
> @Requirement("all")
> private ComponentManager cm
>
> * Creation process. As for now the user creates the root CM and then  
> the annotation loader will create the descriptors for the other CMs  
> and register them against the root CM. They'll get instantiated once  
> (singleton) the first time they're looked up.
> * In order to register a component for, say, a given "enterprise"  
> wiki, we need to add a new property to the ComponentDescriptor: get/ 
> setAdditionalData(Object data). For example:  
> wikiCM.registerComponent(CD mycd) where  
> cd.setAdditionalData("enterprise").
> * Last, Guice uses Modules to isolate component definitions so it  
> should be possible and relatively easy to port the implementation to  
> Guice (even though Guice uses static Modules we can make them  
> dynamic).
>
> WDYT?
>
> Thanks
> -Vincent
>

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to