You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by do...@apache.org on 2002/05/10 12:47:11 UTC
cvs commit: jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/embeddor DefaultEmbeddor.java
donaldp 02/05/10 03:47:11
Modified: src/java/org/apache/avalon/phoenix/components/embeddor
DefaultEmbeddor.java
Log:
Use LifecycleUtil in the embeddor to help configuring lifecycle of
Kernel components.
Revision Changes Path
1.56 +40 -80 jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/embeddor/DefaultEmbeddor.java
Index: DefaultEmbeddor.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/embeddor/DefaultEmbeddor.java,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- DefaultEmbeddor.java 10 May 2002 09:13:41 -0000 1.55
+++ DefaultEmbeddor.java 10 May 2002 10:47:11 -0000 1.56
@@ -15,9 +15,6 @@
import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.avalon.excalibur.io.ExtensionFileFilter;
import org.apache.avalon.framework.CascadingException;
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.activity.Startable;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
@@ -25,13 +22,14 @@
import org.apache.avalon.framework.context.ContextException;
import org.apache.avalon.framework.context.Contextualizable;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.parameters.ParameterException;
import org.apache.avalon.framework.parameters.Parameterizable;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.framework.service.DefaultServiceManager;
import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.phoenix.Constants;
+import org.apache.avalon.phoenix.components.LifecycleUtil;
import org.apache.avalon.phoenix.interfaces.Deployer;
import org.apache.avalon.phoenix.interfaces.Embeddor;
import org.apache.avalon.phoenix.interfaces.EmbeddorMBean;
@@ -67,7 +65,7 @@
private String m_phoenixHome;
- private EmbeddorEntry[] m_components;
+ private EmbeddorEntry[] m_entrys;
/**
* If true, flag indicates that the Embeddor should continue running
@@ -164,19 +162,19 @@
throws ConfigurationException
{
final Configuration[] children = configuration.getChildren( "component" );
- m_components = new EmbeddorEntry[ children.length ];
+ m_entrys = new EmbeddorEntry[ children.length ];
for( int i = 0; i < children.length; i++ )
{
final String role = children[ i ].getAttribute( "role" );
final String classname = children[ i ].getAttribute( "class" );
final String logger = children[ i ].getAttribute( "logger" );
- final Configuration childConfiguration = children[ i ];
- m_components[ i ] = new EmbeddorEntry();
- m_components[ i ].setRole( role );
- m_components[ i ].setClassName( classname );
- m_components[ i ].setLoggerName( logger );
- m_components[ i ].setConfiguration( childConfiguration );
+ final EmbeddorEntry entry = new EmbeddorEntry();
+ entry.setRole( role );
+ entry.setClassName( classname );
+ entry.setLoggerName( logger );
+ entry.setConfiguration( children[ i ] );
+ m_entrys[ i ] = entry;
}
}
@@ -294,9 +292,9 @@
final String message = REZ.getString( "embeddor.error.shutdown.failed" );
getLogger().fatalError( message, e );
}
- for( int i = 0; i < m_components.length; i++ )
+ for( int i = 0; i < m_entrys.length; i++ )
{
- m_components[ i ].setObject( null );
+ m_entrys[ i ].setObject( null );
}
System.gc(); // make sure resources are released
}
@@ -412,12 +410,12 @@
Object object;
try
{
- for( int i = 0; i < m_components.length; i++ )
+ for( int i = 0; i < m_entrys.length; i++ )
{
- final String className = m_components[ i ].getClassName();
+ final String className = m_entrys[ i ].getClassName();
final Class clazz = Class.forName( className );
object = createComponent( className, clazz );
- m_components[ i ].setObject( object );
+ m_entrys[ i ].setObject( object );
}
}
catch( Exception e )
@@ -487,12 +485,12 @@
private void setupComponents()
throws Exception
{
- for( int i = 0; i < m_components.length; i++ )
+ for( int i = 0; i < m_entrys.length; i++ )
{
- final Object component = m_components[ i ].getObject();
- final String loggerName = m_components[ i ].getLoggerName();
- final Configuration configuration = m_components[ i ].getConfiguration();
- setupComponent( component, loggerName, configuration );
+ final EmbeddorEntry entry = m_entrys[ i ];
+ setupComponent( entry.getObject(),
+ entry.getLoggerName(),
+ entry.getConfiguration() );
}
}
@@ -500,70 +498,32 @@
* Setup a component and run it through al of it's
* setup lifecycle stages.
*
- * @param component the component
+ * @param object the component
* @throws Exception if an error occurs
*/
- private void setupComponent( final Object component,
+ private void setupComponent( final Object object,
final String loggerName,
- Configuration config )
+ final Configuration config )
throws Exception
{
- setupLogger( component, loggerName );
- if( component instanceof Contextualizable )
- {
- ( (Contextualizable)component ).contextualize( m_context );
- }
- if( component instanceof Serviceable )
- {
- final ServiceManager serviceManager = getServiceManager();
- ( (Serviceable)component ).service( serviceManager );
- }
- if( component instanceof Parameterizable )
- {
- ( (Parameterizable)component ).parameterize( m_parameters );
- }
- else if( component instanceof Configurable )
- {
- ( (Configurable)component ).configure( config );
- }
- if( component instanceof Initializable )
- {
- ( (Initializable)component ).initialize();
- }
- if( component instanceof Startable )
- {
- ( (Startable)component ).start();
- }
+ final Logger childLogger = getLogger().getChildLogger( loggerName );
+ LifecycleUtil.logEnable( object, childLogger );
+ LifecycleUtil.contextualize( object, m_context );
+ LifecycleUtil.service( object, getServiceManager() );
+ LifecycleUtil.parameterize( object, m_parameters );
+ LifecycleUtil.configure( object, config );
+ LifecycleUtil.initialize( object );
+ LifecycleUtil.start( object );
}
private void shutdownComponents()
throws Exception
{
- for( int i = 0; i < m_components.length; i++ )
- {
- final EmbeddorEntry entry = m_components[ i ];
- shutdownComponent( entry.getObject() );
- }
- }
-
- /**
- * Shutdown a component and run it through al of it's
- * shutdown lifecycle stages.
- *
- * @param component the component
- * @throws Exception if an error occurs
- */
- private void shutdownComponent( final Object component )
- throws Exception
- {
- if( null == component ) return;
- if( component instanceof Startable )
- {
- ( (Startable)component ).stop();
- }
- if( component instanceof Disposable )
+ for( int i = 0; i < m_entrys.length; i++ )
{
- ( (Disposable)component ).dispose();
+ final Object object = m_entrys[ i ].getObject();
+ if( null == object ) continue;
+ LifecycleUtil.shutdown( object );
}
}
@@ -609,9 +569,9 @@
{
final DefaultServiceManager serviceManager = new DefaultServiceManager();
serviceManager.put( Embeddor.ROLE, this );
- for( int i = 0; i < m_components.length; i++ )
+ for( int i = 0; i < m_entrys.length; i++ )
{
- final String role = m_components[ i ].getRole();
+ final String role = m_entrys[ i ].getRole();
final Object component = getEmbeddorComponent( role );
serviceManager.put( role, component );
}
@@ -640,12 +600,12 @@
private Object getEmbeddorComponent( final String role )
{
- for( int i = 0; i < m_components.length; i++ )
+ for( int i = 0; i < m_entrys.length; i++ )
{
- final EmbeddorEntry entry = m_components[ i ];
+ final EmbeddorEntry entry = m_entrys[ i ];
if( entry.getRole().equals( role ) )
{
- return m_components[ i ].getObject();
+ return m_entrys[ i ].getObject();
}
}
// Should never happen
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>