At 04:04 AM 6/28/2002 +0200, you wrote: >>>Keeping in mind that that the compoent in question can provide service >>>information based on static declarations in an assembly file - I need to >>>figure out how this information can be made available to another >>>container without supplying a .xinfo file. >> >> >>I am not sure it is possible unless we start defining Factorys for Avalon >>components. For a factory you pass in a implementation key (usually >>classname) and aquire an instance of type. The factory would also expose >>the MetaInfo associated with type. > > >No - I'm still at meta-land, no component instantiation.
Read above again - no need to instantiate type to instantiate types metadata. > The action of ComponentInfo (dependecies, services, etc.) creation is > the point I want to intercept as part of a "standard" containerkit meta > loading/validation process. This is needed to be able to plug the > component into something like SimpleServiceKernel and everything will > just work fine because the .xinfo for my component will declare the > ComponentInfo handler - using this information the kernel can delegate > the ComponentInfo creation to the handler. The kernel just gets back the > ComponentInfo and continues on as normal. > >E.g. > > interface InfoProvider > { > ComponentInfo getComponentInfo( Class class ); > } > >And in the .xinfo: > > <component-info factory="MyInfoProvider"/> What I prposed was more along the lines of interface ComponentFactory { Object createComponent(String implKey); ComponentInfo createComponentInfo(String implKey); } When "registering" a type into the system you register a coresponding factory and all is good. You can do what you want and plenty more. Cheers, Peter Donald ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "Faced with the choice between changing one's mind, and proving that there is no need to do so - almost everyone gets busy on the proof." - John Kenneth Galbraith ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>