+1 On Tue, Sep 8, 2009 at 09:28, Vincent Massol<[email protected]> 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 >
-- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

