Return-Path: Delivered-To: apmail-avalon-dev-archive@avalon.apache.org Received: (qmail 28158 invoked by uid 500); 28 Jun 2003 22:57:03 -0000 Mailing-List: contact dev-help@avalon.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 dev@avalon.apache.org Received: (qmail 28143 invoked from network); 28 Jun 2003 22:57:02 -0000 Received: from post.cnt.ru (212.15.122.243) by daedalus.apache.org with SMTP; 28 Jun 2003 22:57:02 -0000 Received: from ppp9-171.dial-up.cnt.ru (ppp9-171.dial-up.cnt.ru [213.85.121.171]) by post.cnt.ru (8.11.7/8.11.1) with ESMTP id h5SMv8802660 for ; Sun, 29 Jun 2003 02:57:08 +0400 Date: Sun, 29 Jun 2003 02:41:41 +0400 From: Anton Tagunov X-Mailer: The Bat! (v1.60h) X-Priority: 3 (Normal) Message-ID: <27117555245.20030629024141@mail.cnt.ru> To: "Avalon Developers List" Subject: Re: cvs commit: avalon/fortress/container/src/impl/org/apache/avalon/fortress/impl AbstractContainer.java In-Reply-To: <20030623125120.5645.qmail@icarus.apache.org> References: <20030623125120.5645.qmail@icarus.apache.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N Hello, Marcus! cao> Enable logging for component handlers cao> avalon/fortress/container/src/impl/org/apache/avalon/fortress/impl/AbstractContainer.java cao> // do the handler lifecycle cao> + ContainerUtil.enableLogging( targetHandler, getLogger() ); cao> ContainerUtil.contextualize( targetHandler, m_context ); Great you've spotted this! You patch has also made me see that there still is more cleanup to do, look: public abstract class AbstractComponentHandler extends AbstractLogEnabledInstrumentable ... { ... protected LoggerManager m_loggerManager; protected Logger m_logger; public void service( final ServiceManager manager ) ... { m_loggerManager = (LoggerManager) manager.lookup( LoggerManager.ROLE ); ... } ... public void initialize() ... { m_logger = m_loggerManager.getLoggerForCategory( categoryName ); ... } ... } AbstractContainer has final DefaultServiceManager serviceManager = new DefaultServiceManager( getServiceManager() ); serviceManager.put( ObjectFactory.ROLE, factory ); serviceManager.makeReadOnly(); ContainerUtil.service( targetHandler, serviceManager ); What do we see? 1) AbstractComponentHandler both * is AbstractLogEnabledInstrumentable * has it's own m_logger 2) It sort of enables its own logging but as late as in service() method 3) While it expects to find a LoggerManager in service() AbstractContainer fails to push it there There is also one thing I like about this all: to me it makes sense to use a different logging category for the handlers then for the container itself. I'm at doubt what to do, but clearly some cleanup is still pending :) -Anton --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org For additional commands, e-mail: dev-help@avalon.apache.org