Return-Path: Delivered-To: apmail-avalon-cvs-archive@avalon.apache.org Received: (qmail 32286 invoked by uid 500); 11 Apr 2003 20:14:24 -0000 Mailing-List: contact cvs-help@avalon.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Avalon CVS List" Reply-To: "Avalon Developers List" Delivered-To: mailing list cvs@avalon.apache.org Received: (qmail 32236 invoked by uid 500); 11 Apr 2003 20:14:24 -0000 Received: (qmail 32203 invoked from network); 11 Apr 2003 20:14:24 -0000 Received: from icarus.apache.org (208.185.179.13) by daedalus.apache.org with SMTP; 11 Apr 2003 20:14:24 -0000 Received: (qmail 48120 invoked by uid 1291); 11 Apr 2003 20:14:23 -0000 Date: 11 Apr 2003 20:14:23 -0000 Message-ID: <20030411201423.48119.qmail@icarus.apache.org> From: leosimons@apache.org To: avalon-sandbox-cvs@apache.org Subject: cvs commit: avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle AbstractLifestyleHandler.java DefaultLifestyleService.java LifestyleException.java LifestyleHandler.java LifestyleRuntimeException.java LifestyleService.java PooledLifestyleHandler.java SingletonLifestyleHandler.java ThreadLocalLifestyleHandler.java TransientLifestyleHandler.java package.html X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N leosimons 2003/04/11 13:14:23 Modified: merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle AbstractLifestyleHandler.java DefaultLifestyleService.java LifestyleException.java LifestyleHandler.java LifestyleRuntimeException.java LifestyleService.java PooledLifestyleHandler.java SingletonLifestyleHandler.java ThreadLocalLifestyleHandler.java TransientLifestyleHandler.java package.html Log: formatting, imports, style. Revision Changes Path 1.3 +102 -140 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/AbstractLifestyleHandler.java Index: AbstractLifestyleHandler.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/AbstractLifestyleHandler.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- AbstractLifestyleHandler.java 10 Apr 2003 04:36:13 -0000 1.2 +++ AbstractLifestyleHandler.java 11 Apr 2003 20:14:22 -0000 1.3 @@ -50,34 +50,22 @@ package org.apache.avalon.assembly.lifestyle; -import java.util.Map; -import java.util.Hashtable; - +import org.apache.avalon.assembly.appliance.Appliance; +import org.apache.avalon.assembly.lifecycle.DeploymentService; +import org.apache.avalon.assembly.locator.Contextualizable; +import org.apache.avalon.assembly.locator.Locator; +import org.apache.avalon.assembly.locator.LocatorException; import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.framework.activity.Initializable; import org.apache.avalon.framework.context.Context; -import org.apache.avalon.framework.context.DefaultContext; import org.apache.avalon.framework.context.ContextException; -import org.apache.avalon.framework.service.ServiceManager; -import org.apache.avalon.framework.service.ServiceException; -import org.apache.avalon.framework.service.Serviceable; -import org.apache.avalon.framework.logger.Logger; +import org.apache.avalon.framework.context.DefaultContext; import org.apache.avalon.framework.logger.AbstractLogEnabled; -import org.apache.avalon.meta.info.ReferenceDescriptor; -import org.apache.avalon.meta.info.DependencyDescriptor; -import org.apache.avalon.meta.info.ExtensionDescriptor; -import org.apache.avalon.meta.info.StageDescriptor; -import org.apache.avalon.meta.info.Type; -import org.apache.avalon.meta.model.Profile; -import org.apache.avalon.assembly.appliance.Appliance; -import org.apache.avalon.assembly.lifecycle.DeploymentService; -import org.apache.avalon.assembly.locator.Contextualizable; -import org.apache.avalon.assembly.locator.LocatorException; -import org.apache.avalon.assembly.locator.Locator; import org.apache.avalon.lifecycle.Accessor; +import org.apache.avalon.meta.info.StageDescriptor; /** - * The abstract lifestyle handler provides support for object instantiation and + * The abstract lifestyle handler provides support for object instantiation and * lifecycle processing. * * @author Avalon Development Team @@ -89,90 +77,70 @@ // state //============================================================== - /** - * The appliance that this handler is handling. - */ + /** + * The appliance that this handler is handling. + */ private Appliance m_appliance; - /** - * The classloader to use to when instantiating new instances - * of the component implementation class. - */ + /** + * The classloader to use to when instantiating new instances + * of the component implementation class. + */ private ClassLoader m_classloader; - /** - * The deplyment service to handle lifecycle processing of - * component implementations established by this handler. - */ + /** + * The deplyment service to handle lifecycle processing of + * component implementations established by this handler. + */ protected DeploymentService m_deployment; - /** - * The deplyment context. - */ - private Locator m_context; - - /** - * The implementation class. - */ - private Class m_class; - - private Map m_map; - //============================================================== // Contextualizable //============================================================== - /** - *

Application of a runtime context to this component. - * Context entries that may be supplied to a lifestyle handler - * are detailed in the following table.

- * - * - * - * - * - * - * - * - * - *
keytypedescription
urn:assembly:appliance.target{@link org.apache.avalon.assembly.appliance.Appliance}The appliance that this manager is managing.
- * @param context the runtime context - */ + /** + *

Application of a runtime context to this component. + * Context entries that may be supplied to a lifestyle handler + * are detailed in the following table.

+ * + * + * + * + * + * + * + * + * + *
keytypedescription
urn:assembly:appliance.target{@link org.apache.avalon.assembly.appliance.Appliance}The appliance that this manager is managing.
+ * @param context the runtime context + */ public void contextualize( Locator context ) throws ContextException { m_classloader = (ClassLoader) context.get( "urn:avalon:classloader" ); m_appliance = (Appliance) context.get( "urn:assembly:appliance.target" ); m_deployment = (DeploymentService) context.get( "urn:assembly:lifecycle.deployment" ); - try - { - m_context = (Locator) context.get( "urn:assembly:deployment.context" ); - } - catch( ContextException ce ) - { - m_context = null; - } } //============================================================== // Initializable //============================================================== - /** - * Initialization of the lifestyle manager. The implementation verifies - * initial state followed by establishment of a lifestyle handler based on - * the policy declared within the profile underlying the appliance. - * - * @exception Exception if a invalid state is encounter - */ - public void initialize() throws Exception + /** + * Initialization of the lifestyle manager. The implementation verifies + * initial state followed by establishment of a lifestyle handler based on + * the policy declared within the profile underlying the appliance. + * + * @exception Exception if a invalid state is encounter + */ + public void initialize() throws Exception { if( getLogger() == null ) { - throw new LifestyleException("logger"); + throw new LifestyleException( "logger" ); } if( m_appliance == null ) { - throw new LifestyleException("context"); + throw new LifestyleException( "context" ); } } @@ -181,34 +149,34 @@ //============================================================== /** - * Resolve a object to a value qualified by a supplied service + * Resolve a object to a value qualified by a supplied service * reference. * * @param partition the context within the the resolution is applied * @param ref the reference descriptor * @return the resolved object * @throws ContextException if an error occurs - * @todo build a proxy that isolates the service described by the + * @todo build a proxy that isolates the service described by the * ref argument */ public Object resolve( Object partition, String ref ) - throws LocatorException + throws LocatorException { return resolve( partition ); } - /** - * Activate a service provided by the appliance. - * @param appliance the appliance to deploy - */ - public abstract Object resolve( Object partition ) - throws LocatorException; - - /** - * Release an a service or handler established by the appliance. The - * default implementation irreversably decommissions the supplied object. - * @param object the service to be released - */ + /** + * Activate a service provided by the appliance. + * @param appliance the appliance to deploy + */ + public abstract Object resolve( Object partition ) + throws LocatorException; + + /** + * Release an a service or handler established by the appliance. The + * default implementation irreversably decommissions the supplied object. + * @param object the service to be released + */ public void release( Object object, Object partition ) { if( getLogger().isDebugEnabled() ) @@ -225,49 +193,47 @@ //============================================================== /** - * Request for disposal of the handler. + * Request for disposal of the handler. */ public void dispose() { m_appliance = null; m_classloader = null; m_deployment = null; - m_context = null; } //============================================================== // utilities //============================================================== - /** - * Return the appliance that this handler is handling. - * @return the appliance - */ + /** + * Return the appliance that this handler is handling. + * @return the appliance + */ protected Appliance getAppliance() { if( m_appliance == null ) { - throw new IllegalStateException("appliance"); + throw new IllegalStateException( "appliance" ); } return m_appliance; } - /** - * Creation of a new intance of the class declared by the profile backing the - * appliance assigned to this handler. - * @return Object a new instance of the component class - */ + /** + * Creation of a new intance of the class declared by the profile backing the + * appliance assigned to this handler. + * @return Object a new instance of the component class + */ protected Object newInstance() throws LifestyleException { try { return m_deployment.deploy( m_appliance, m_classloader ); - } - catch( Throwable e ) + } catch( Throwable e ) { - final String error = - "Unable to create new instance for appliance: " - + m_appliance; + final String error = + "Unable to create new instance for appliance: " + + m_appliance; throw new LifestyleException( error, e ); } } @@ -282,7 +248,7 @@ StageDescriptor[] phases = getAppliance().getType().getStages(); for( int i = 0; i < phases.length; i++ ) { - StageDescriptor stage = phases[ i ]; + StageDescriptor stage = phases[i]; processExtension( stage, object, true ); } } @@ -294,19 +260,18 @@ protected void processReleaseStage( Object object ) { StageDescriptor[] phases = getAppliance().getType().getStages(); - for( int i = ( phases.length - 1 ); i > -1; i-- ) + for( int i = (phases.length - 1); i > -1; i-- ) { - StageDescriptor stage = phases[ i ]; + StageDescriptor stage = phases[i]; try { processExtension( stage, object, false ); - } - catch( Throwable e ) + } catch( Throwable e ) { if( getLogger().isWarnEnabled() ) { final String warning = - "Ignoring release exception."; + "Ignoring release exception."; getLogger().warn( warning, e ); } } @@ -323,21 +288,21 @@ * @exception Exception if an error occurs during stage execution */ private void processExtension( - StageDescriptor stage, - Object object, - boolean access ) - throws LifestyleException, ContextException + StageDescriptor stage, + Object object, + boolean access ) + throws LifestyleException, ContextException { Appliance provider = m_appliance.getExtensionProvider( stage ); if( provider == null ) { - final String error = - "Null provider returned from appliance: " + m_appliance - + " stage: " + stage; + final String error = + "Null provider returned from appliance: " + m_appliance + + " stage: " + stage; throw new IllegalStateException( error ); } - if( Accessor.class.isAssignableFrom( getImplementationClass( provider ) ) ) + if( Accessor.class.isAssignableFrom( getImplementationClass() ) ) { Accessor extension = (Accessor) provider.resolve( this ); try @@ -346,43 +311,40 @@ if( access ) { extension.access( object, context ); - } - else + } else { extension.release( object, context ); } provider.release( extension, this ); - } - catch( Throwable e ) + } catch( Throwable e ) { final String error = - "Extension provider appliance: " + provider - + " raised a execution exception while processing an inner stage: " + stage - + " in appliance: " + m_appliance; + "Extension provider appliance: " + provider + + " raised a execution exception while processing an inner stage: " + stage + + " in appliance: " + m_appliance; throw new LifestyleException( error, e ); } } } - private Class getImplementationClass( Appliance appliance ) + private Class getImplementationClass() { try { String classname = m_appliance.getType().getInfo().getClassname(); return m_classloader.loadClass( classname ); - } - catch( Throwable e ) + } catch( Throwable e ) { - final String error = - "Internal error while attempting to load the implementation class for an appliance: " - + m_appliance; + final String error = + "Internal error while attempting to load the implementation class for an appliance: " + + m_appliance; throw new LifestyleRuntimeException( error, e ); } } - /** - * Terminate the appliance. - */ + /** + * Terminate the appliance. + */ public void terminate() { dispose(); 1.2 +44 -65 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/DefaultLifestyleService.java Index: DefaultLifestyleService.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/DefaultLifestyleService.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DefaultLifestyleService.java 13 Mar 2003 01:04:15 -0000 1.1 +++ DefaultLifestyleService.java 11 Apr 2003 20:14:22 -0000 1.2 @@ -50,28 +50,18 @@ package org.apache.avalon.assembly.lifestyle; -import java.util.Hashtable; - -import org.apache.avalon.framework.activity.Initializable; -import org.apache.avalon.framework.logger.Logger; -import org.apache.avalon.framework.logger.AbstractLogEnabled; -import org.apache.avalon.framework.configuration.Configuration; -import org.apache.avalon.framework.configuration.ConfigurationException; -import org.apache.avalon.framework.configuration.Configurable; -import org.apache.avalon.framework.context.Context; -import org.apache.avalon.framework.context.ContextException; -import org.apache.avalon.framework.service.Serviceable; import org.apache.avalon.assembly.appliance.Appliance; import org.apache.avalon.assembly.appliance.ApplianceHolder; -import org.apache.avalon.assembly.engine.Engine; import org.apache.avalon.assembly.lifecycle.DeploymentService; -import org.apache.avalon.assembly.lifecycle.DefaultDeploymentService; import org.apache.avalon.assembly.locator.Contextualizable; import org.apache.avalon.assembly.locator.DefaultLocator; import org.apache.avalon.assembly.locator.Locator; +import org.apache.avalon.framework.activity.Initializable; +import org.apache.avalon.framework.context.ContextException; +import org.apache.avalon.framework.logger.AbstractLogEnabled; /** - * A lifestyle service provides support for the creation of a lifestyle + * A lifestyle service provides support for the creation of a lifestyle * handlers. * * @author Avalon Development Team @@ -84,34 +74,29 @@ //============================================================== /** - * The context containing the deployment service to assign + * The context containing the deployment service to assign * to the lifestyle handler. */ private Locator m_context; /** - * The system context. + * Flag holding the initialized state of the service. */ - private Locator m_system; - - /** - * Flag holding the initialized state of the service. - */ private boolean m_initialized = false; - /** - * The supplied static configuration. - */ + /** + * The supplied static configuration. + */ private DeploymentService m_deployment; //============================================================== // Contextualizable //============================================================== - /** - * Supply of supporting services to this componet by its manager. - * This includes a deployment service. - */ + /** + * Supply of supporting services to this componet by its manager. + * This includes a deployment service. + */ public void contextualize( Locator context ) throws ContextException { if( context == null ) @@ -127,8 +112,8 @@ m_context = context; - m_deployment = - (DeploymentService) context.get( "urn:assembly:lifecycle.deployment" ); + m_deployment = + (DeploymentService) context.get( "urn:assembly:lifecycle.deployment" ); } @@ -140,11 +125,11 @@ { if( getLogger() == null ) { - throw new IllegalStateException("logger"); + throw new IllegalStateException( "logger" ); } if( m_context == null ) { - throw new IllegalStateException("context"); + throw new IllegalStateException( "context" ); } m_initialized = true; } @@ -153,27 +138,27 @@ // LifestyleService //============================================================== - /** - * Creation of a new lifestyle handler. - * @param appliance the appliance that the handler will manage - * @param classloader the classloader to assign to the handler - * @param context a deployment context - */ - public LifestyleHandler createHandler( - Appliance appliance, ClassLoader classloader, Locator deploymentContext ) + /** + * Creation of a new lifestyle handler. + * @param appliance the appliance that the handler will manage + * @param classloader the classloader to assign to the handler + * @param context a deployment context + */ + public LifestyleHandler createHandler( + Appliance appliance, ClassLoader classloader, Locator deploymentContext ) { if( !m_initialized ) { - throw new IllegalStateException("initialization"); + throw new IllegalStateException( "initialization" ); } if( appliance == null ) { - throw new NullPointerException("appliance"); + throw new NullPointerException( "appliance" ); } if( classloader == null ) { - throw new NullPointerException("classloader"); + throw new NullPointerException( "classloader" ); } // @@ -187,7 +172,7 @@ } context.put( "urn:assembly:appliance.target", new ApplianceHolder( appliance ) ); context.put( "urn:avalon:classloader", classloader ); - context.put( "urn:assembly:lifecycle.deployment", m_deployment ); + context.put( "urn:assembly:lifecycle.deployment", m_deployment ); context.makeReadOnly(); // @@ -196,8 +181,8 @@ // final String policy = - appliance.getType().getInfo().getAttribute( - "urn:avalon:lifestyle", "singleton" ); + appliance.getType().getInfo().getAttribute( + "urn:avalon:lifestyle", "singleton" ); if( policy.equalsIgnoreCase( "singleton" ) ) { @@ -208,15 +193,13 @@ singleton.contextualize( context ); singleton.initialize(); return singleton; - } - catch( Throwable e ) + } catch( Throwable e ) { final String error = - "Internal error while attempting to establish the singleton lifestyle handler."; + "Internal error while attempting to establish the singleton lifestyle handler."; throw new LifestyleRuntimeException( error, e ); } - } - else if( policy.equals( "transient" ) ) + } else if( policy.equals( "transient" ) ) { try { @@ -225,15 +208,13 @@ transientHandler.contextualize( context ); transientHandler.initialize(); return transientHandler; - } - catch( Throwable e ) + } catch( Throwable e ) { final String error = - "Internal error while attempting to establish the transient lifestyle handler."; + "Internal error while attempting to establish the transient lifestyle handler."; throw new LifestyleRuntimeException( error, e ); } - } - else if( policy.equals( "thread" ) ) + } else if( policy.equals( "thread" ) ) { try { @@ -242,19 +223,17 @@ thread.contextualize( context ); thread.initialize(); return thread; - } - catch( Throwable e ) + } catch( Throwable e ) { final String error = - "Internal error while attempting to establish the transient lifestyle handler."; + "Internal error while attempting to establish the transient lifestyle handler."; throw new LifestyleRuntimeException( error, e ); } - } - else + } else { - final String error = - "Lifestyle policy argument '" + policy + "' within appliance: " - + appliance + "' is not recognized."; + final String error = + "Lifestyle policy argument '" + policy + "' within appliance: " + + appliance + "' is not recognized."; throw new LifestyleRuntimeException( error ); } } 1.2 +2 -2 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/LifestyleException.java Index: LifestyleException.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/LifestyleException.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LifestyleException.java 13 Mar 2003 01:04:15 -0000 1.1 +++ LifestyleException.java 11 Apr 2003 20:14:22 -0000 1.2 @@ -59,7 +59,7 @@ * @version $Revision$ $Date$ */ public class LifestyleException - extends CascadingException + extends CascadingException { /** 1.3 +4 -6 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/LifestyleHandler.java Index: LifestyleHandler.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/LifestyleHandler.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- LifestyleHandler.java 10 Apr 2003 04:36:13 -0000 1.2 +++ LifestyleHandler.java 11 Apr 2003 20:14:22 -0000 1.3 @@ -50,8 +50,6 @@ package org.apache.avalon.assembly.lifestyle; -import org.apache.avalon.meta.info.DependencyDescriptor; -import org.apache.avalon.meta.info.StageDescriptor; import org.apache.avalon.assembly.locator.Reclaimable; /** @@ -62,9 +60,9 @@ */ public interface LifestyleHandler extends Reclaimable { - /** - * Terminate the handler. - */ + /** + * Terminate the handler. + */ void terminate(); } 1.2 +2 -2 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/LifestyleRuntimeException.java Index: LifestyleRuntimeException.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/LifestyleRuntimeException.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LifestyleRuntimeException.java 13 Mar 2003 01:04:16 -0000 1.1 +++ LifestyleRuntimeException.java 11 Apr 2003 20:14:22 -0000 1.2 @@ -59,7 +59,7 @@ * @version $Revision$ $Date$ */ public class LifestyleRuntimeException - extends CascadingRuntimeException + extends CascadingRuntimeException { /** 1.2 +11 -13 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/LifestyleService.java Index: LifestyleService.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/LifestyleService.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LifestyleService.java 13 Mar 2003 01:04:17 -0000 1.1 +++ LifestyleService.java 11 Apr 2003 20:14:22 -0000 1.2 @@ -50,13 +50,11 @@ package org.apache.avalon.assembly.lifestyle; -import org.apache.avalon.framework.logger.Logger; -import org.apache.avalon.framework.context.Context; import org.apache.avalon.assembly.appliance.Appliance; import org.apache.avalon.assembly.locator.Locator; /** - * A lifestyle service provides support for the creation of a lifestyle + * A lifestyle service provides support for the creation of a lifestyle * handlers. * * @author Avalon Development Team @@ -64,13 +62,13 @@ */ public interface LifestyleService { - /** - * Creation of a new lifestyle handler. - * @param appliance the appliance that the handler will manage - * @param classloader the classloader to assign to the handler - * @param system the logging channel for the handler - * @param context a deployment context - */ - LifestyleHandler createHandler( - Appliance appliance, ClassLoader classloader, Locator context ); + /** + * Creation of a new lifestyle handler. + * @param appliance the appliance that the handler will manage + * @param classloader the classloader to assign to the handler + * @param system the logging channel for the handler + * @param context a deployment context + */ + LifestyleHandler createHandler( + Appliance appliance, ClassLoader classloader, Locator context ); } 1.2 +73 -87 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/PooledLifestyleHandler.java Index: PooledLifestyleHandler.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/PooledLifestyleHandler.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- PooledLifestyleHandler.java 13 Mar 2003 01:04:17 -0000 1.1 +++ PooledLifestyleHandler.java 11 Apr 2003 20:14:22 -0000 1.2 @@ -1,14 +1,14 @@ -/* ==================================================================== - * The Apache Software License, Version 1.1 - * - * Copyright (c) 2002 The Apache Software Foundation. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2002 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright @@ -20,13 +20,13 @@ * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." - * Alternately, this acknowledgment may appear in the software - * itself, if and wherever such third-party acknowledgments + * Alternately, this acknowledgment may appear in the software + * itself, if and wherever such third-party acknowledgments * normally appear. * - * 4. The names "Jakarta", "Avalon", and "Apache Software Foundation" + * 4. The names "Jakarta", "Avalon", and "Apache Software Foundation" * must not be used to endorse or promote products derived from this - * software without prior written permission. For written + * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", @@ -49,30 +49,25 @@ * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more - * information on the Apache Software Foundation, please see + * information on the Apache Software Foundation, please see * . - */ + */ package org.apache.avalon.assembly.lifestyle; +import org.apache.avalon.assembly.appliance.Appliance; +import org.apache.avalon.assembly.locator.Contextualizable; +import org.apache.avalon.assembly.locator.Locator; +import org.apache.avalon.assembly.locator.LocatorException; import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.framework.activity.Initializable; -import org.apache.avalon.framework.context.Context; -import org.apache.avalon.framework.context.ContextException; import org.apache.avalon.framework.configuration.Configurable; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; -import org.apache.avalon.framework.context.Context; -import org.apache.avalon.assembly.appliance.Appliance; -import org.apache.avalon.assembly.lifecycle.DeploymentService; -import org.apache.avalon.meta.info.DependencyDescriptor; -import org.apache.avalon.meta.info.StageDescriptor; +import org.apache.avalon.framework.context.ContextException; +import org.apache.excalibur.mpool.ObjectFactory; import org.apache.excalibur.mpool.Pool; import org.apache.excalibur.mpool.PoolManager; -import org.apache.excalibur.mpool.ObjectFactory; -import org.apache.avalon.assembly.locator.Contextualizable; -import org.apache.avalon.assembly.locator.Locator; -import org.apache.avalon.assembly.locator.LocatorException; /** * Lifestyle implementation that provides suppport for the pooled @@ -88,40 +83,34 @@ // state //============================================================== - /** - * The appliance that this handler is handling. - */ + /** + * The appliance that this handler is handling. + */ private Appliance m_appliance; - /** - * The runtime context. - */ + /** + * The runtime context. + */ private Locator m_context; - /** - * The deplyment service to handle lifecycle processing of - * component implementations established by this handler. - */ - private DeploymentService m_deployment; - - /** - * The pool manager. - */ + /** + * The pool manager. + */ private PoolManager m_poolManager; - /** - * The object pool. - */ + /** + * The object pool. + */ private Pool m_pool; - /** - * The object pool size. - */ + /** + * The object pool size. + */ private int m_size; - /** - * The class of object managed by the pool. - */ + /** + * The class of object managed by the pool. + */ private Class m_class; @@ -129,10 +118,10 @@ // Configurable //============================================================== - /** - * Supply of the static configuration for the deployment service. - * @param config the static configuration - */ + /** + * Supply of the static configuration for the deployment service. + * @param config the static configuration + */ public void configure( Configuration config ) throws ConfigurationException { if( config == null ) @@ -146,12 +135,12 @@ // Contextualizable //============================================================== - /** - *

Application of a runtime context to the lifestyle service. - * The context value will be passed directly to lifestyle handlers - * established by this service. - * @param context the runtime context - */ + /** + *

Application of a runtime context to the lifestyle service. + * The context value will be passed directly to lifestyle handlers + * established by this service. + * @param context the runtime context + */ public void contextualize( Locator context ) throws ContextException { super.contextualize( context ); @@ -181,20 +170,20 @@ // LifestyleHandler //============================================================== - /** - * Activate a service provided by the appliance. - * @param appliance the appliance to deploy - */ + /** + * Activate a service provided by the appliance. + * @param appliance the appliance to deploy + */ //public Object access( DependencyDescriptor dependency ) throws LifestyleException public Object resolve( Object partition ) throws LocatorException { return access(); } - /** - * Activate an extension handler provided by the appliance. - * @param appliance the appliance to deploy - */ + /** + * Activate an extension handler provided by the appliance. + * @param appliance the appliance to deploy + */ //public Object access( StageDescriptor stage ) throws LifestyleException //{ // return access(); @@ -215,19 +204,18 @@ Object object = m_pool.acquire(); super.processAccessStage( object ); return object; - } - catch( Throwable e ) + } catch( Throwable e ) { - final String error = - "Pooled object creation error."; + final String error = + "Pooled object creation error."; throw new LocatorException( error, e ); } } - /** - * Release an a service or handler established by the appliance. - * @param object the service to be released - */ + /** + * Release an a service or handler established by the appliance. + * @param object the service to be released + */ //public void release( Object object ) public void release( Object object, Object partition ) { @@ -240,13 +228,12 @@ { super.processReleaseStage( object ); m_pool.release( object ); - } - catch( Throwable e ) + } catch( Throwable e ) { if( getLogger().isWarnEnabled() ) { - final String warning = - "Unexpected error occured while releasing a pooled object."; + final String warning = + "Unexpected error occured while releasing a pooled object."; getLogger().warn( warning ); } } @@ -285,7 +272,7 @@ //============================================================== /** - * Disposal of the handler. + * Disposal of the handler. */ public void dispose() { @@ -293,9 +280,8 @@ { try { - ((Disposable)m_pool ).dispose(); - } - catch( Throwable e ) + ((Disposable) m_pool).dispose(); + } catch( Throwable e ) { // ignore } 1.2 +30 -41 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/SingletonLifestyleHandler.java Index: SingletonLifestyleHandler.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/SingletonLifestyleHandler.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- SingletonLifestyleHandler.java 13 Mar 2003 01:04:18 -0000 1.1 +++ SingletonLifestyleHandler.java 11 Apr 2003 20:14:22 -0000 1.2 @@ -50,20 +50,10 @@ package org.apache.avalon.assembly.lifestyle; -import org.apache.avalon.framework.activity.Initializable; -import org.apache.avalon.framework.context.Context; -import org.apache.avalon.framework.context.ContextException; -import org.apache.avalon.framework.logger.Logger; -import org.apache.avalon.framework.logger.AbstractLogEnabled; -import org.apache.avalon.meta.info.DependencyDescriptor; -import org.apache.avalon.meta.info.StageDescriptor; -import org.apache.avalon.assembly.appliance.Appliance; -import org.apache.avalon.assembly.locator.Contextualizable; -import org.apache.avalon.assembly.locator.Locator; import org.apache.avalon.assembly.locator.LocatorException; /** - * The singleton lifestyle handler provides support for object instantiation and + * The singleton lifestyle handler provides support for object instantiation and * lifecycle processing. * * @author Avalon Development Team @@ -75,43 +65,43 @@ // state //============================================================== - /** - * The singleton instance. - */ + /** + * The singleton instance. + */ private Object m_instance; //============================================================== // LifestyleHandler //============================================================== - /** - * Activate a service provided by the appliance. - * @param appliance the appliance to deploy - */ + /** + * Activate a service provided by the appliance. + * @param appliance the appliance to deploy + */ public Object resolve( Object partition ) throws LocatorException { return access(); } - /** - * Activate an extension handler provided by the appliance. - * @param appliance the appliance to deploy - */ + /** + * Activate an extension handler provided by the appliance. + * @param appliance the appliance to deploy + */ //public Object access( StageDescriptor stage ) throws LifestyleException //{ // return access(); //} - /** - * Activate the implementation. - * @param appliance the appliance to deploy - */ + /** + * Activate the implementation. + * @param appliance the appliance to deploy + */ private Object access() throws LocatorException { if( getLogger().isDebugEnabled() ) { final String debug = - "access in appliance: " + getAppliance(); + "access in appliance: " + getAppliance(); getLogger().debug( debug ); } @@ -120,18 +110,17 @@ Object object = newInstance(); super.processAccessStage( object ); return object; - } - catch( Throwable e ) + } catch( Throwable e ) { final String error = "Singleton object access failure."; throw new LocatorException( error, e ); } } - /** - * Release an a service or handler established by the appliance. - * @param object the service to be released - */ + /** + * Release an a service or handler established by the appliance. + * @param object the service to be released + */ //public void release( Object object ) public void release( Object object, Object partition ) { @@ -143,7 +132,7 @@ //============================================================== /** - * Request for disposal of the handler. + * Request for disposal of the handler. */ public void dispose() { @@ -159,11 +148,11 @@ // utilities //============================================================== - /** - * Creation of a new intance of the class declared by the profile backing the - * appliance assigned to this handler. - * @return Object a new instance of the component class - */ + /** + * Creation of a new intance of the class declared by the profile backing the + * appliance assigned to this handler. + * @return Object a new instance of the component class + */ protected Object newInstance() throws LifestyleException { if( m_instance == null ) @@ -171,7 +160,7 @@ if( getLogger().isDebugEnabled() ) { final String debug = - "new instance in appliance: " + getAppliance(); + "new instance in appliance: " + getAppliance(); getLogger().debug( debug ); } 1.2 +32 -38 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/ThreadLocalLifestyleHandler.java Index: ThreadLocalLifestyleHandler.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/ThreadLocalLifestyleHandler.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ThreadLocalLifestyleHandler.java 13 Mar 2003 01:04:18 -0000 1.1 +++ ThreadLocalLifestyleHandler.java 11 Apr 2003 20:14:22 -0000 1.2 @@ -1,14 +1,14 @@ -/* ==================================================================== - * The Apache Software License, Version 1.1 - * - * Copyright (c) 2002 The Apache Software Foundation. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2002 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright @@ -20,13 +20,13 @@ * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." - * Alternately, this acknowledgment may appear in the software - * itself, if and wherever such third-party acknowledgments + * Alternately, this acknowledgment may appear in the software + * itself, if and wherever such third-party acknowledgments * normally appear. * - * 4. The names "Jakarta", "Avalon", and "Apache Software Foundation" + * 4. The names "Jakarta", "Avalon", and "Apache Software Foundation" * must not be used to endorse or promote products derived from this - * software without prior written permission. For written + * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", @@ -49,16 +49,12 @@ * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more - * information on the Apache Software Foundation, please see + * information on the Apache Software Foundation, please see * . - */ + */ package org.apache.avalon.assembly.lifestyle; -import org.apache.avalon.framework.context.Context; -import org.apache.avalon.meta.model.Profile; -import org.apache.avalon.meta.info.DependencyDescriptor; -import org.apache.avalon.meta.info.StageDescriptor; import org.apache.avalon.assembly.locator.LocatorException; /** @@ -71,10 +67,10 @@ private ThreadLocalComponent m_instance; - /** - * Activate a service provided by the appliance. - * @param appliance the appliance to deploy - */ + /** + * Activate a service provided by the appliance. + * @param appliance the appliance to deploy + */ public Object resolve( Object partition ) throws LocatorException { return access(); @@ -90,9 +86,9 @@ public Object access() throws LocatorException { if( getLogger().isDebugEnabled() ) - { + { final String message = - "access using thread local policy on appliance: " + getAppliance(); + "access using thread local policy on appliance: " + getAppliance(); getLogger().debug( message ); } @@ -106,18 +102,17 @@ Object object = m_instance.get(); super.processAccessStage( object ); return object; - } - catch( Throwable e ) + } catch( Throwable e ) { final String error = "Access stage error."; throw new LocatorException( error, e ); } } - /** - * Release an a service or handler established by the appliance. - * @param object the service to be released - */ + /** + * Release an a service or handler established by the appliance. + * @param object the service to be released + */ public void release( Object object, Object partition ) { if( object == null ) @@ -131,9 +126,9 @@ } } - /** - * Internal utility class to hold the thread local instance. - */ + /** + * Internal utility class to hold the thread local instance. + */ private static final class ThreadLocalComponent extends ThreadLocal { private final ThreadLocalLifestyleHandler m_handler; @@ -148,8 +143,7 @@ try { return m_handler.newInstance(); - } - catch( Exception e ) + } catch( Exception e ) { return null; } 1.2 +23 -32 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/TransientLifestyleHandler.java Index: TransientLifestyleHandler.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/TransientLifestyleHandler.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- TransientLifestyleHandler.java 13 Mar 2003 01:04:18 -0000 1.1 +++ TransientLifestyleHandler.java 11 Apr 2003 20:14:22 -0000 1.2 @@ -50,55 +50,47 @@ package org.apache.avalon.assembly.lifestyle; -import java.util.List; import java.util.ArrayList; import java.util.Iterator; +import java.util.List; -import org.apache.avalon.framework.activity.Initializable; -import org.apache.avalon.framework.context.Context; -import org.apache.avalon.framework.context.ContextException; -import org.apache.avalon.framework.logger.Logger; -import org.apache.avalon.framework.logger.AbstractLogEnabled; -import org.apache.avalon.meta.info.DependencyDescriptor; -import org.apache.avalon.meta.info.StageDescriptor; -import org.apache.avalon.assembly.appliance.Appliance; import org.apache.avalon.assembly.locator.LocatorException; /** - * The abstract lifestyle handler provides support for object instantiation and + * The abstract lifestyle handler provides support for object instantiation and * lifecycle processing. * * @author Avalon Development Team * @version $Revision$ $Date$ */ -public class TransientLifestyleHandler extends AbstractLifestyleHandler +public class TransientLifestyleHandler extends AbstractLifestyleHandler { //============================================================== // state //============================================================== - /** - * The set of transient objects created by the handler. - */ + /** + * The set of transient objects created by the handler. + */ private List m_instances = new ArrayList(); //============================================================== // LifestyleHandler //============================================================== - /** - * Activate a service provided by the appliance. - * @param appliance the appliance to deploy - */ + /** + * Activate a service provided by the appliance. + * @param appliance the appliance to deploy + */ public Object resolve( Object partition ) throws LocatorException { return access(); } - /** - * Activate the implementation. - * @param appliance the appliance to deploy - */ + /** + * Activate the implementation. + * @param appliance the appliance to deploy + */ private Object access() throws LocatorException { try @@ -107,22 +99,21 @@ synchronized( m_instances ) { m_instances.add( object ); - } + } super.processAccessStage( object ); return object; - } - catch( Throwable e ) + } catch( Throwable e ) { final String error = - "Transient object establishment error."; + "Transient object establishment error."; throw new LocatorException( error, e ); } } - /** - * Release an a service or handler established by the appliance. - * @param object the service to be released - */ + /** + * Release an a service or handler established by the appliance. + * @param object the service to be released + */ public void release( Object object, Object partition ) { processReleaseStage( object ); @@ -138,7 +129,7 @@ //============================================================== /** - * Request for disposal of the handler. + * Request for disposal of the handler. */ public void dispose() { 1.2 +3 -6 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/package.html Index: package.html =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/package.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- package.html 13 Mar 2003 01:04:17 -0000 1.1 +++ package.html 11 Apr 2003 20:14:22 -0000 1.2 @@ -1,6 +1,3 @@ - - -

-The lifestyle package includes interfaces and classes supporting the four standard lifestyle policies - singleton, thread, pooled and transient. -

- +

The lifestyle package includes interfaces and classes +supporting the four standard lifestyle policies - singleton, thread, +pooled and transient.

--------------------------------------------------------------------- To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org For additional commands, e-mail: cvs-help@avalon.apache.org