Type: New Feature
Affects Version/s: 4.1
Fix Version/s: None
Component/s: Container Architecture
Start Facilitating creation of Blocks through a Factory. Each component can optionally define a factory through which it is loaded. This will allow components to be created from arbitary locations.
For example, it would be valid for the component to be specified using a rmi, corba, soap or other url. ie Something like
The factory would take this implementationKey and construct a component that obeys the avalon lifecycle contract and for all intents and purposes can be treated like a normal Avalon component.
These Factorys must be able to create the blocks themselves and the
BlockBundle. The BlockBundle includes the BlockInfo object aswell as any associated descriptors (MXInfo files, schemas etc).
The factory will look something like
Object createBlock( String implementationKey ) throws Exception;
BlockBundle createBlockBundle( String implementationKey ) throws Exception;
The BlockFactory will pass through all Avalon lifecycle stages except Composable/Serviceable.
The initial implementions will allow at least RMI, AltRMI and Soap (via glue or axis?) objects to be dynamically assembled.