You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by bl...@apache.org on 2002/06/25 15:39:37 UTC
cvs commit: jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/util ContextBuilder.java ContextManagerConstants.java
bloritsch 2002/06/25 06:39:37
Modified: fortress/src/java/org/apache/excalibur/fortress
AbstractContainer.java
ContainerManagerConstants.java
DefaultContainerManager.java
fortress/src/java/org/apache/excalibur/fortress/lookup
FortressComponentManager.java
fortress/src/java/org/apache/excalibur/fortress/util
ContextBuilder.java ContextManagerConstants.java
Added: fortress/src/java/org/apache/excalibur/fortress/lookup
ServiceComponentManager.java
Log:
Add support for ServiceManager in the container
Revision Changes Path
1.42 +6 -5 jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/AbstractContainer.java
Index: AbstractContainer.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/AbstractContainer.java,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- AbstractContainer.java 23 Jun 2002 03:32:40 -0000 1.41
+++ AbstractContainer.java 25 Jun 2002 13:39:37 -0000 1.42
@@ -32,6 +32,7 @@
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
import org.apache.excalibur.event.Queue;
import org.apache.excalibur.event.command.Command;
import org.apache.excalibur.fortress.handler.ComponentHandler;
@@ -53,10 +54,10 @@
*/
public abstract class AbstractContainer
extends AbstractLogEnabled
- implements Contextualizable, Composable, Configurable, Initializable, Disposable, Container
+ implements Contextualizable, Serviceable, Configurable, Initializable, Disposable, Container
{
protected Context m_context;
- private ComponentManager m_manager;
+ private ServiceManager m_manager;
protected LoggerManager m_logManager;
protected PoolManager m_poolManager;
protected Queue m_commandQueue;
@@ -390,8 +391,8 @@
* Root ComponentLocator. The Container may choose to have it's ComponentLocator
* delegate to the root manager, or it may choose to be entirely self contained.
*/
- public void compose( ComponentManager manager )
- throws ComponentException
+ public void service( ServiceManager manager )
+ throws ServiceException
{
m_manager = manager;
}
1.7 +6 -1 jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/ContainerManagerConstants.java
Index: ContainerManagerConstants.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/ContainerManagerConstants.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ContainerManagerConstants.java 13 Jun 2002 17:24:51 -0000 1.6
+++ ContainerManagerConstants.java 25 Jun 2002 13:39:37 -0000 1.7
@@ -28,6 +28,11 @@
String COMPONENT_MANAGER = "container.componentManager";
/**
+ * ComponentLocator: The component manager to give to the container.
+ */
+ String SERVICE_MANAGER = "container.serviceManager";
+
+ /**
* Configuration: The configuration to give to the container.
*/
String CONFIGURATION = "container.configuration";
1.10 +9 -1 jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/DefaultContainerManager.java
Index: DefaultContainerManager.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/DefaultContainerManager.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- DefaultContainerManager.java 13 May 2002 12:17:39 -0000 1.9
+++ DefaultContainerManager.java 25 Jun 2002 13:39:37 -0000 1.10
@@ -23,6 +23,8 @@
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.parameters.Parameterizable;
import org.apache.avalon.framework.parameters.Parameters;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
import org.apache.excalibur.fortress.util.ContextManager;
import org.apache.excalibur.util.ComponentStateValidator;
@@ -143,6 +145,12 @@
{
validator.checkComposed();
( (Composable)instance ).compose( (ComponentManager)initParameters.get( COMPONENT_MANAGER ) );
+ }
+
+ if( instance instanceof Serviceable )
+ {
+ validator.checkComposed();
+ ( (Serviceable)instance ).service( (ServiceManager)initParameters.get( SERVICE_MANAGER ) );
}
if( instance instanceof Configurable )
1.2 +10 -2 jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/lookup/FortressComponentManager.java
Index: FortressComponentManager.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/lookup/FortressComponentManager.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- FortressComponentManager.java 18 Jun 2002 18:45:36 -0000 1.1
+++ FortressComponentManager.java 25 Jun 2002 13:39:37 -0000 1.2
@@ -13,6 +13,7 @@
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.ComponentSelector;
import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
import org.apache.excalibur.fortress.Container;
import org.apache.excalibur.fortress.handler.ComponentHandler;
@@ -36,7 +37,14 @@
*/
public FortressComponentManager( final Container container )
{
- this( container, null );
+ this( container,(ComponentManager)null );
+ }
+
+ /**
+ */
+ public FortressComponentManager( final Container container, final ServiceManager parent )
+ {
+ this( container, new ServiceComponentManager(parent));
}
/**
1.1 jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/lookup/ServiceComponentManager.java
Index: ServiceComponentManager.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.excalibur.fortress.lookup;
import org.apache.avalon.framework.component.Component;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
/**
* This is the Default ServiceManager for the Container. It provides
* a very simple abstraction, and makes it easy for the Container to manage
* the references.
*
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
* @version CVS $Revision: 1.1 $ $Date: 2002/06/25 13:39:37 $
*/
public class ServiceComponentManager implements ComponentManager
{
private final ServiceManager m_manager;
/**
* This constructor is a constructor for a ComponentServiceManager
*/
public ServiceComponentManager( final ServiceManager wrapped )
{
m_manager = wrapped;
}
public Component lookup( String role )
throws ComponentException
{
Component temp = null;
try
{
temp = (Component) m_manager.lookup( role );
}
catch( ServiceException ce )
{
throw new ComponentException( role, "Could not return a reference to the Component", ce );
}
catch( ClassCastException cce )
{
throw new ComponentException( role, "The requested component does not implement Component", cce );
}
return temp;
}
public boolean hasComponent( String role )
{
return m_manager.hasService( role );
}
public void release( Component component )
{
m_manager.release(component);
}
}
1.12 +11 -0 jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/util/ContextBuilder.java
Index: ContextBuilder.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/util/ContextBuilder.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ContextBuilder.java 13 May 2002 12:17:39 -0000 1.11
+++ ContextBuilder.java 25 Jun 2002 13:39:37 -0000 1.12
@@ -8,6 +8,7 @@
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.ContextException;
import org.apache.avalon.framework.context.DefaultContext;
+import org.apache.avalon.framework.service.ServiceManager;
import org.apache.excalibur.event.Queue;
import org.apache.excalibur.mpool.PoolManager;
@@ -95,6 +96,16 @@
public void setComponentManager( ComponentManager componentManager )
{
context.put( COMPONENT_MANAGER, componentManager );
+ }
+
+ public void setServiceManagerParent( ServiceManager componentManager )
+ {
+ context.put( SERVICE_MANAGER_PARENT, componentManager );
+ }
+
+ public void setServiceManager( ServiceManager componentManager )
+ {
+ context.put( SERVICE_MANAGER, componentManager );
}
public void setContainerClass( String containerClass )
1.7 +2 -1 jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/util/ContextManagerConstants.java
Index: ContextManagerConstants.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/util/ContextManagerConstants.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ContextManagerConstants.java 13 Apr 2002 01:39:57 -0000 1.6
+++ ContextManagerConstants.java 25 Jun 2002 13:39:37 -0000 1.7
@@ -34,5 +34,6 @@
String COMPONENT_MANAGER_CLASS = "container.componentManager.config";
String COMPONENT_MANAGER_CONFIGURATION = "container.componentManager.config";
String COMPONENT_MANAGER_PARENT = "container.componentManager.parent";
+ String SERVICE_MANAGER_PARENT = "container.serviceManager.parent";
String COMPONENT_MANAGER_CONFIGURATION_URI = "container.componentManager.config.uri";
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>