On Wed, 2002-07-17 at 22:39, Robert wrote: > You are right, and actually the container (ECM in this case) does not > make the component available if it throws a configure exception (which > it will). Let me try this another way :-) > Maybe this isn't 'right', but if one component fails, then I would like > the whole container to not service anything. Basically say that the > container didn't configure because of component XYZ not configuring. I'm > sure that breaks some contract or other, as it makes the container > dependant on the components it is containing. I'm sure I can do a > workaround, but just haven't gotten to it yet.
Actually, sounds like it could be very useful =) If one component is a security manager that gets its configuration from a database component, then if the database component fails the system should stop, right? (not talking about whether this is a smart setup :) That the idea? I can see extending the metainfo to have a property "required" where the container does stuff like try { component.configure() } catch( ConfigurationException ce ) { log.error( "#$@*!@" ); if(componentMetaInfo.getAsBoolean(ComponentMetaInfo.REQUIRED)) { log.fatalError( "required component not functioning properly" ); System.exit( -1 ); } } the question is whether this case is common enough to put it in a container by standard or if it should require extensions. Completely pluggable lifecycle handlers would help (which I mentioned briefly wrt Marcus' extensible lifecycle code for fortress). > I really don't want to make one super component as it would be really > ugly and wouldn't really 'fit'. Besides, I use the Excalibur connection > pooling :-) :-) Didn't get what you were talking about before. What you need is not a callback, just a metainfo extension =) > In any event, I'm by no means complaining about Avalon!! I really love > it actually. Just thinking out loud I guess. > > I appreciate all the thoughts though! cheers! - Leo -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>