donaldp 2002/11/06 22:57:53
Modified: fortress/src/java/org/apache/excalibur/fortress/util
ContextManager.java
Log:
Use ServiceManager internally.
Revision Changes Path
1.45 +99 -109
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/util/ContextManager.java
Index: ContextManager.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/util/ContextManager.java,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- ContextManager.java 24 Oct 2002 11:25:10 -0000 1.44
+++ ContextManager.java 7 Nov 2002 06:57:53 -0000 1.45
@@ -54,13 +54,9 @@
import org.apache.avalon.excalibur.logger.LogKitLoggerManager;
import org.apache.avalon.excalibur.logger.LoggerManager;
import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.DefaultComponentManager;
-import org.apache.avalon.framework.component.DefaultComponentSelector;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.DefaultConfiguration;
import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
-import org.apache.avalon.framework.configuration.DefaultConfigurationSerializer;
import org.apache.avalon.framework.container.ContainerUtil;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.ContextException;
@@ -70,6 +66,7 @@
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.framework.service.DefaultServiceManager;
+import org.apache.avalon.framework.service.DefaultServiceSelector;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.excalibur.event.Sink;
import org.apache.excalibur.event.command.CommandManager;
@@ -94,19 +91,19 @@
* further operations will be possible on it.</p>
*
* <p>You can get two different contexts from the ContextManager: the child
- * context and the container manager context. The former contains all
- * managers, such as the pool manager etc. necessary for a child container to
- * create additional child containers. The container manager context contains
+ * context and the container m_manager context. The former contains all
+ * managers, such as the pool m_manager etc. necessary for a child container to
+ * create additional child containers. The container m_manager context contains
* all of the child context, but also initialization parameters for the
* container, such as a Configuration object, a ComponentLocator, etc., that
* the container wants, but does not want to pass on to its children.</p>
*
- * <p>You would typically use the container manager context to initialize
- * the container manager, and let it pass the child context on to the
+ * <p>You would typically use the container m_manager context to initialize
+ * the container m_manager, and let it pass the child context on to the
* container.</p>
*
* <p>The ContextManager will sometimes create new components, such as a
- * component manager, a pool manager, etc. It will manage these components
+ * component m_manager, a pool m_manager, etc. It will manage these components
* and dispose of them properly when it itself is disposed .</p>
*
* @author <a href="mailto:bloritsch@;apache.org">Berin Loritsch</a>
@@ -119,7 +116,6 @@
public class ContextManager
implements ContextManagerConstants, Initializable
{
-
private static final Configuration EMPTY_CONFIG;
static
@@ -133,21 +129,21 @@
/**
* The root context.
*/
- private final Context rootContext;
+ private final Context m_rootContext;
/**
* The context of the new container. This context has the rootContext
* as its parent. Put everything here that you want the new container
* to have in its own context.
*/
- private final DefaultContext childContext;
+ private final DefaultContext m_childContext;
/**
- * Container manager's context. This context has the child context
- * as parent. Put things here that you want the container manager
+ * Container m_manager's context. This context has the child context
+ * as parent. Put things here that you want the container m_manager
* to see, but do not wish to expose to the container.
*/
- private final DefaultContext containerManagerContext;
+ private final DefaultContext m_containerManagerContext;
/**
* New context passed in, maybe from a ContextBuilder.
@@ -155,13 +151,13 @@
* other pointers. The ContextManager inspects it for
* elements it can use to create component managers etc.
*/
- private Logger logger;
- private final Logger primordialLogger;
- private ComponentManager manager;
+ private Logger m_logger;
+ private final Logger m_primordialLogger;
+ private ServiceManager m_manager;
/**
* The components that are "owned" by this context and should
- * be disposed by it. Any manager that is created as a result
+ * be disposed by it. Any m_manager that is created as a result
* of it not being in the rootContext, or having been created
* by the ContextManager should go in here.
*/
@@ -173,9 +169,6 @@
*/
private DefaultConfigurationBuilder configBuilder;
- private final DefaultConfigurationSerializer configSerializer =
- new DefaultConfigurationSerializer();
-
/**
* Create a new ContextManager.
*
@@ -184,26 +177,26 @@
*/
public ContextManager( Context rootContext, Logger logger )
{
- this.rootContext = rootContext;
- this.childContext = new OverridableContext( this.rootContext );
- this.containerManagerContext = new OverridableContext( childContext );
- this.logger = logger;
+ this.m_rootContext = rootContext;
+ this.m_childContext = new OverridableContext( this.m_rootContext );
+ this.m_containerManagerContext = new OverridableContext( m_childContext );
+ this.m_logger = logger;
// The primordial logger is used for all output up until the point where
- // the logger manager has been initialized. However it is set into
+ // the logger m_manager has been initialized. However it is set into
// two objects used to load the configuration resource files within
// the ContextManager. Any problems loading these files will result in
// warning or error messages. However in most cases, the debug
// information should not be displayed, so turn it off by default.
// Unfortunately, there is not a very good place to make this settable.
- this.primordialLogger = new ConsoleLogger( ConsoleLogger.LEVEL_INFO );
+ this.m_primordialLogger = new ConsoleLogger( ConsoleLogger.LEVEL_INFO );
}
/**
* Method to assume ownership of one of the managers the
* <code>ContextManager</code> created. Ownership means that the
* <code>ContextManager</code> is responsible for destroying the
- * manager when the <code>ContextManager</code> is destroyed.
+ * m_manager when the <code>ContextManager</code> is destroyed.
*
* FIXME: We should throw a NullPointerException instead.
*
@@ -239,8 +232,8 @@
initializeInstrumentManager();
initializeConfiguration();
- childContext.makeReadOnly();
- containerManagerContext.makeReadOnly();
+ m_childContext.makeReadOnly();
+ m_containerManagerContext.makeReadOnly();
}
/**
@@ -252,7 +245,7 @@
{
try
{
- containerManagerContext.put( CONFIGURATION, rootContext.get(
CONFIGURATION ) );
+ m_containerManagerContext.put( CONFIGURATION, m_rootContext.get(
CONFIGURATION ) );
}
catch( ContextException ce )
{
@@ -260,10 +253,10 @@
if( containerConfig == null )
{
// No config.
- // Does the parent supply a logger manager?
+ // Does the parent supply a logger m_manager?
try
{
- containerManagerContext.get( CONFIGURATION );
+ m_containerManagerContext.get( CONFIGURATION );
// OK, done.
return;
@@ -276,7 +269,7 @@
}
else
{
- containerManagerContext.put( CONFIGURATION, containerConfig );
+ m_containerManagerContext.put( CONFIGURATION, containerConfig );
}
}
}
@@ -307,7 +300,7 @@
*/
protected void copyEntry( String key ) throws ContextException
{
- containerManagerContext.put( key, rootContext.get( key ) );
+ m_containerManagerContext.put( key, m_rootContext.get( key ) );
}
/**
@@ -360,7 +353,7 @@
*
* <p>The postcondition is that
* <code>childContext.get( Container.SERVICE_MANAGER )</code> should
- * return a valid logger manager.</p>
+ * return a valid logger m_manager.</p>
*
* @throws Exception if the ServiceManager could not be instantiated.
*/
@@ -368,7 +361,7 @@
{
try
{
- childContext.put( SERVICE_MANAGER, rootContext.get( SERVICE_MANAGER ) );
+ m_childContext.put( SERVICE_MANAGER, m_rootContext.get( SERVICE_MANAGER
) );
return;
}
catch( ContextException ce )
@@ -378,7 +371,7 @@
// See if we can inherit from the parent...
try
{
- childContext.get( SERVICE_MANAGER );
+ m_childContext.get( SERVICE_MANAGER );
// OK, done.
return;
@@ -388,13 +381,13 @@
// No ComponentLocator available anywhere. (Set one up.)
}
- final ServiceManager parent = (ServiceManager)get( rootContext,
SERVICE_MANAGER_PARENT, null );
+ final ServiceManager parent = (ServiceManager)get( m_rootContext,
SERVICE_MANAGER_PARENT, null );
if( null != parent )
{
ServiceManager sm = new DefaultServiceManager( parent );
assumeOwnership( sm );
- containerManagerContext.put( SERVICE_MANAGER, sm );
+ m_containerManagerContext.put( SERVICE_MANAGER, sm );
}
}
@@ -408,7 +401,7 @@
{
try
{
- childContext.put( COMMAND_QUEUE, rootContext.get( COMMAND_QUEUE ) );
+ m_childContext.put( COMMAND_QUEUE, m_rootContext.get( COMMAND_QUEUE ) );
return;
}
catch( ContextException ce )
@@ -417,7 +410,7 @@
try
{
- childContext.get( COMMAND_QUEUE );
+ m_childContext.get( COMMAND_QUEUE );
return;
}
catch( ContextException ce )
@@ -425,7 +418,7 @@
}
// No CommandQueue specified, create a default one
- childContext.put( COMMAND_QUEUE, createCommandSink() );
+ m_childContext.put( COMMAND_QUEUE, createCommandSink() );
}
/**
@@ -443,9 +436,9 @@
assumeOwnership( tm );
// Get the context Logger Manager
- LoggerManager loggerManager = (LoggerManager)childContext.get(
LOGGER_MANAGER );
+ LoggerManager loggerManager = (LoggerManager)m_childContext.get(
LOGGER_MANAGER );
- // Get the logger for the thread manager
+ // Get the logger for the thread m_manager
Logger tmLogger = loggerManager.getLoggerForCategory( "system.threadmgr" );
ContainerUtil.enableLogging( tm, tmLogger );
@@ -471,7 +464,7 @@
try
{
- Integer processors = (Integer)rootContext.get( "processors" );
+ Integer processors = (Integer)m_rootContext.get( "processors" );
p.setParameter( "processors", processors.toString() );
}
catch( ContextException e )
@@ -480,7 +473,7 @@
try
{
- threadsPerProcessor = (Integer)rootContext.get( THREADS_CPU );
+ threadsPerProcessor = (Integer)m_rootContext.get( THREADS_CPU );
}
catch( ContextException e )
{
@@ -491,7 +484,7 @@
try
{
- threadBlockTimeout = (Long)rootContext.get( THREAD_TIMEOUT );
+ threadBlockTimeout = (Long)m_rootContext.get( THREAD_TIMEOUT );
}
catch( ContextException e )
{
@@ -512,16 +505,16 @@
{
try
{
- childContext.put( POOL_MANAGER, rootContext.get( POOL_MANAGER ) );
+ m_childContext.put( POOL_MANAGER, m_rootContext.get( POOL_MANAGER ) );
return;
}
catch( ContextException ce )
{
}
- PoolManager pm = new DefaultPoolManager( (Sink)childContext.get(
COMMAND_QUEUE ) );
+ PoolManager pm = new DefaultPoolManager( (Sink)m_childContext.get(
COMMAND_QUEUE ) );
assumeOwnership( pm );
- childContext.put( POOL_MANAGER, pm );
+ m_childContext.put( POOL_MANAGER, pm );
}
/**
@@ -533,7 +526,7 @@
{
try
{
- childContext.put( ROLE_MANAGER, rootContext.get( ROLE_MANAGER ) );
+ m_childContext.put( ROLE_MANAGER, m_rootContext.get( ROLE_MANAGER ) );
return;
}
catch( ContextException ce )
@@ -548,7 +541,7 @@
// See if we can inherit from the parent...
try
{
- childContext.get( ROLE_MANAGER );
+ m_childContext.get( ROLE_MANAGER );
// OK, done.
return;
@@ -561,27 +554,27 @@
}
// Get the context Logger Manager
- LoggerManager loggerManager = (LoggerManager)childContext.get(
LOGGER_MANAGER );
+ LoggerManager loggerManager = (LoggerManager)m_childContext.get(
LOGGER_MANAGER );
- // Create a logger for the role manager
+ // Create a logger for the role m_manager
Logger rmLogger = loggerManager.getLoggerForCategory(
roleConfig.getAttribute( "logger", "system.roles" ) );
// Lookup the context class loader
- ClassLoader classLoader = (ClassLoader)containerManagerContext.get(
CONTEXT_CLASSLOADER );
+ ClassLoader classLoader = (ClassLoader)m_containerManagerContext.get(
CONTEXT_CLASSLOADER );
- // Create a parent role manager with all the default roles
+ // Create a parent role m_manager with all the default roles
ExcaliburRoleManager erm = new ExcaliburRoleManager( null, classLoader );
erm.enableLogging( rmLogger.getChildLogger( "defaults" ) );
erm.initialize();
- // Create a role manager with the configured roles
+ // Create a role m_manager with the configured roles
ConfigurableRoleManager rm = new ConfigurableRoleManager( erm, classLoader
);
rm.enableLogging( rmLogger );
rm.configure( roleConfig );
assumeOwnership( rm );
- childContext.put( ROLE_MANAGER, rm );
+ m_childContext.put( ROLE_MANAGER, rm );
}
/**
@@ -593,19 +586,18 @@
*/
protected void initializeOwnComponentManager() throws Exception
{
- DefaultComponentManager manager = new DefaultComponentManager();
-
- DefaultComponentSelector selector = new DefaultComponentSelector();
- ResourceSourceFactory resource = new ResourceSourceFactory();
+ final DefaultServiceManager manager = new DefaultServiceManager();
+ final DefaultServiceSelector selector = new DefaultServiceSelector();
+ final ResourceSourceFactory resource = new ResourceSourceFactory();
resource.enableLogging( getLogger() );
selector.put( "resource", resource );
manager.put( resource.ROLE + "Selector", selector );
- SourceResolverImpl resolver = new SourceResolverImpl();
- resolver.enableLogging( getLogger() );
- resolver.contextualize( this.childContext );
- resolver.compose( manager );
+ final SourceResolverImpl resolver = new SourceResolverImpl();
+ ContainerUtil.enableLogging( resolver, getLogger() );
+ ContainerUtil.contextualize( resolver, m_childContext );
+ ContainerUtil.service( resolver, manager );
manager.put( resolver.ROLE, resolver );
@@ -613,7 +605,7 @@
assumeOwnership( manager );
- this.manager = manager;
+ m_manager = manager;
}
/**
@@ -625,13 +617,9 @@
*/
protected Configuration getConfiguration( String configKey, String uriKey )
{
- Configuration config = null;
- SourceResolver resolver = null;
- Source src = null;
-
try
{
- return (Configuration)rootContext.get( configKey );
+ return (Configuration)m_rootContext.get( configKey );
}
catch( ContextException ce )
{
@@ -640,16 +628,18 @@
String configUri = null;
try
{
- configUri = (String)rootContext.get( uriKey );
+ configUri = (String)m_rootContext.get( uriKey );
}
catch( ContextException ce )
{
return null;
}
+ SourceResolver resolver = null;
+ Source src = null;
try
{
- resolver = (SourceResolver)manager.lookup( SourceResolver.ROLE );
+ resolver = (SourceResolver)m_manager.lookup( SourceResolver.ROLE );
src = resolver.resolveURI( configUri );
if( configBuilder == null )
{
@@ -666,7 +656,7 @@
finally
{
resolver.release( src );
- manager.release( resolver );
+ m_manager.release( resolver );
}
}
@@ -677,7 +667,7 @@
*/
public Context getContainerManagerContext()
{
- return containerManagerContext;
+ return m_containerManagerContext;
}
/**
@@ -687,7 +677,7 @@
*/
public Context getChildContext()
{
- return childContext;
+ return m_childContext;
}
/**
@@ -697,13 +687,13 @@
*/
protected Logger getLogger()
{
- if( logger == null )
+ if( m_logger == null )
{
- return primordialLogger;
+ return m_primordialLogger;
}
else
{
- return logger;
+ return m_logger;
}
}
@@ -713,7 +703,7 @@
*
* <p>The postcondition is that
* <code>childContext.get( Container.LOGGER_MANAGER )</code> should
- * return a valid logger manager.</p>
+ * return a valid logger m_manager.</p>
*
* @throws Exception if it cannot instantiate the LoggerManager
*/
@@ -721,9 +711,9 @@
{
try
{
- // Try copying an already existing logger manager from the override
context.
+ // Try copying an already existing logger m_manager from the override
context.
- childContext.put( LOGGER_MANAGER, rootContext.get( LOGGER_MANAGER ) );
+ m_childContext.put( LOGGER_MANAGER, m_rootContext.get( LOGGER_MANAGER )
);
}
catch( ContextException ce )
{
@@ -735,10 +725,10 @@
{
// No config specified.
- // Does the parent supply a logger manager?
+ // Does the parent supply a logger m_manager?
try
{
- childContext.get( LOGGER_MANAGER );
+ m_childContext.get( LOGGER_MANAGER );
// OK, done.
return;
@@ -752,8 +742,8 @@
}
// Resolve the prefix to use for this Logger Manager
- String logPrefix = (String)get( rootContext, LOG_CATEGORY,
- get( childContext, LOG_CATEGORY, null )
);
+ String logPrefix = (String)get( m_rootContext, LOG_CATEGORY,
+ get( m_childContext, LOG_CATEGORY, null
) );
// Resolve a name for the logger, taking the logPrefix into account
String lmDefaultLoggerName;
@@ -787,23 +777,23 @@
LogKitLoggerManager logManager = new LogKitLoggerManager(
logPrefix, Hierarchy.getDefaultHierarchy(),
new LogKitLogger( lmDefaultLogger ), new LogKitLogger( lmLogger ) );
- logManager.contextualize( rootContext );
+ logManager.contextualize( m_rootContext );
logManager.configure( loggerManagerConfig );
assumeOwnership( logManager );
- childContext.put( LOGGER_MANAGER, logManager );
+ m_childContext.put( LOGGER_MANAGER, logManager );
}
// Since we now have a LoggerManager, we can update the this.logger field
// if it is null and start logging to the "right" logger.
- if( this.logger == null )
+ if( this.m_logger == null )
{
getLogger().debug( "Switching to default Logger provided by
LoggerManager." );
- LoggerManager loggerManager = (LoggerManager)childContext.get(
LOGGER_MANAGER );
- this.logger = loggerManager.getDefaultLogger();
+ LoggerManager loggerManager = (LoggerManager)m_childContext.get(
LOGGER_MANAGER );
+ this.m_logger = loggerManager.getDefaultLogger();
}
}
@@ -813,7 +803,7 @@
*
* <p>The postcondition is that
* <code>childContext.get( Container.LOGGER_MANAGER )</code> should
- * return a valid logger manager.</p>
+ * return a valid logger m_manager.</p>
*
* @throws Exception if it cannot instantiate the LoggerManager
*/
@@ -821,9 +811,9 @@
{
try
{
- // Try copying an already existing instrument manager from the override
context.
+ // Try copying an already existing instrument m_manager from the
override context.
- childContext.put( INSTRUMENT_MANAGER, rootContext.get(
INSTRUMENT_MANAGER ) );
+ m_childContext.put( INSTRUMENT_MANAGER, m_rootContext.get(
INSTRUMENT_MANAGER ) );
}
catch( ContextException ce )
{
@@ -833,10 +823,10 @@
if( instrumentConfig == null )
{
// No config.
- // Does the parent supply a logger manager?
+ // Does the parent supply a logger m_manager?
try
{
- childContext.get( INSTRUMENT_MANAGER );
+ m_childContext.get( INSTRUMENT_MANAGER );
// OK, done.
return;
@@ -849,9 +839,9 @@
}
// Get the context Logger Manager
- LoggerManager loggerManager = (LoggerManager)childContext.get(
LOGGER_MANAGER );
+ LoggerManager loggerManager = (LoggerManager)m_childContext.get(
LOGGER_MANAGER );
- // Get the logger for the instrument manager
+ // Get the logger for the instrument m_manager
Logger imLogger = loggerManager.getLoggerForCategory(
instrumentConfig.getAttribute( "logger", "system.instrument" ) );
@@ -863,7 +853,7 @@
assumeOwnership( instrumentManager );
- childContext.put( INSTRUMENT_MANAGER, instrumentManager );
+ m_childContext.put( INSTRUMENT_MANAGER, instrumentManager );
}
}
@@ -872,7 +862,7 @@
*
* <p>The postcondition is that
* <code>childContext.get( Container.LOGGER_MANAGER )</code> should
- * return a valid logger manager.</p>
+ * return a valid logger m_manager.</p>
*
* @throws Exception if it cannot instantiate the LoggerManager
*/
@@ -880,7 +870,7 @@
{
try
{
- containerManagerContext.put( ASSEMBLY_CONFIGURATION, rootContext.get(
ASSEMBLY_CONFIGURATION ) );
+ m_containerManagerContext.put( ASSEMBLY_CONFIGURATION,
m_rootContext.get( ASSEMBLY_CONFIGURATION ) );
}
catch( ContextException ce )
{
@@ -888,10 +878,10 @@
if( containerConfig == null )
{
// No config.
- // Does the parent supply a logger manager?
+ // Does the parent supply a logger m_manager?
try
{
- containerManagerContext.get( ASSEMBLY_CONFIGURATION );
+ m_containerManagerContext.get( ASSEMBLY_CONFIGURATION );
// OK, done.
return;
@@ -904,7 +894,7 @@
}
else
{
- containerManagerContext.put( ASSEMBLY_CONFIGURATION,
containerConfig );
+ m_containerManagerContext.put( ASSEMBLY_CONFIGURATION,
containerConfig );
}
}
}
--
To unsubscribe, e-mail: <mailto:avalon-cvs-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-cvs-help@;jakarta.apache.org>