> From: Stephen McConnell [mailto:[EMAIL PROTECTED] > > Can we dig into this (its something concrete) - as it raises > something > that is worrying me. In Merlin a component type declares a bunch of > stuff about itself. This includes its dependencies (deployment and > runtime), the logging channels it may ask for, perhaps a > configuration > schema, etc. > > * the component author is expecting the container to honor > the criteria expressed by the type > > * is it reasonable to consider a scenario where a container > that initiates deployment without ensuring a type's constraints > have been fulfilled - I don't believe so
A container should not start up a component if it can prove (based on metadata) that the component will likely fail to start. There's simply no point. However, if no metadata is present, or none in a format that could be loaded, the container should assume that the application developer knows his job and should attempt to start the component. > * is it reasonable for a container to be configured such that > it's responsibilities are scaled back - I think so - but only > if the container has an overriding responsibility not to > attempt component deployment involving a responsibility it > cannot assure A container cannot assure anything. All it can do is use metadata (which may or may not be correct) to attempt to prove that a component will not fail to deploy due to unsatisfied requirements. But the container should err on the side of assuming that the developer knows what's best. I.e. - when in doubt, deploy. This makes sense, because even if all dependencies are satisfied, you may still get a big hearty NullPointerException in the component and a failed deployment. A container should assume that if metadata is present, it is also correct. > In parallel I sure that the notion of aspects > can play a role as well - but I'm not sure where that > is just yet. Me neither. (yet) /LS --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
