Return-Path: Delivered-To: apmail-jakarta-avalon-dev-archive@apache.org Received: (qmail 43395 invoked from network); 18 Dec 2002 03:57:58 -0000 Received: from exchange.sun.com (HELO nagoya.betaversion.org) (192.18.33.10) by daedalus.apache.org with SMTP; 18 Dec 2002 03:57:58 -0000 Received: (qmail 2562 invoked by uid 97); 18 Dec 2002 03:59:15 -0000 Delivered-To: qmlist-jakarta-archive-avalon-dev@jakarta.apache.org Received: (qmail 2541 invoked by uid 97); 18 Dec 2002 03:59:14 -0000 Mailing-List: contact avalon-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Avalon Developers List" Reply-To: "Avalon Developers List" Delivered-To: mailing list avalon-dev@jakarta.apache.org Received: (qmail 2518 invoked by uid 98); 18 Dec 2002 03:59:13 -0000 X-Antivirus: nagoya (v4218 created Aug 14 2002) Message-ID: <3DFFF202.2030301@yahoo.com> Date: Wed, 18 Dec 2002 03:56:50 +0000 From: Paul Hammant User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.2.1) Gecko/20021130 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Avalon Developers List Subject: Re: [RT:A5] What are the _real_ concern areas? References: <3DFFE918.9090701@apache.org> In-Reply-To: <3DFFE918.9090701@apache.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N Berin, > There are two major differences. There is a new overall phase > (Transition), Transition. Neat. However, I'd like to see a another interface in that phase (not withstanding lifecyle extension), to think it was worth a name on its own. > which means the component can claim or release any > runtime resources that it will need for processing. This brings clarity > to the difference between Initializable/Disposable and Startable. > The second difference is that the Re* interfaces are now handled by > a ServiceListener class. It will receive ServiceEvents if the container > has new configuration information available for it, or a different > set of services available. > > It is also important to note that Initializable/Disposable can only be > called once (each), and Startable can be called any number of times. > Startable.start() brings the component from Transition to Active Use, > and Startable.stop() brings the component from Active Use to Transition. > Once the component has been disposed, can never be brought back to > life. That is stated already I think (website) > interface ServiceManager > { > Configuration getConfiguration(); > void writeConfiguration(Configuration config) > throws ServiceUnavailableException; > > Object lookup( String urn ); // context and service combined > > Session getSession(); > } > > interface Session > { > Object get( Object key ); > void put( Object key, Object value ); > } > > Any thoughts or inputs? I don't like, sorry. When I look at a class and peer at its 'implements' declaration I learn a lot. If I see Startable I guess it probably has daemon functionality or some sort. When I see Contextualizable I reckon it has some configuration somewhere. Declared lifecycle methods tell me a lot. Just because we can 'simplify' interfaces to a smaller set, does not mean we should. Having said that you raise the issue of updating configuration again. Leo Sutic did a great definition of our stance on Context, that he might want to step up to a similar role for this? Also, Session as you have it here has clashing method namespace with Map. Not good. I'd prefer Sessionable passing in a Session (which has getters and setters). I'd also like to allow bespoke containers have castable Session interface. Lasty, Can we wind down for seasonal festivities please? No votes for the next 10 days? Regards, - Paul -- To unsubscribe, e-mail: For additional commands, e-mail: