Hi Stephen-

Well, I'm not sure I understand what it means to be "correctly integrated"- 
we're creating Restlet subclasses and adding them to Routers, VirtualHosts, 
Filters, etc.  Is there something else we need to do to "register" them somehow?

Looking at the source code in Router, Filter, Application, VirtualHosts (this 
is in 1.2M1), I don't find any code which propagates calls to "stop()" to the 
"children" of the restlets.  Could this be because there isn't a strict 
parent-child relationship in restlet?  I suppose a single restlet instance 
could be attached to multiple "parent" Routers, which I suppose might make it 
unclear specifically whose responsibility it is to call stop() on the Restlet.  

Still, it seems to me that if the Restlet API is going to have these lifecycle 
methods on what is effectively the base class for all request-routing entities, 
that there should be some specific contract as to when these methods get 
called.  Otherwise maybe they belong in a separate interface?

As an aside, I'm also not a big fan of having the Restlet.handle() method 
lazily call "start()" on itself.  This provides a very unreliable lifecycle for 
a component.  I think it might make more sense to have the "parent" of the 
restlet call start() on it, either when it itself is started, or when the child 
is attached/added/set, etc.  But this too has its own drawbacks.

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=1234518

Reply via email to