Class ServiceContainerImpl

java.lang.Object
org.apache.fulcrum.yaafi.framework.container.ServiceContainerImpl
All Implemented Interfaces:
org.apache.avalon.framework.activity.Disposable, org.apache.avalon.framework.activity.Initializable, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.configuration.Reconfigurable, org.apache.avalon.framework.context.Contextualizable, org.apache.avalon.framework.logger.LogEnabled, org.apache.avalon.framework.parameters.Parameterizable, org.apache.avalon.framework.service.Serviceable, org.apache.avalon.framework.service.ServiceManager, AvalonYaafiConstants, ServiceConstants, ServiceContainer, ServiceLifecycleManager

public class ServiceContainerImpl extends Object implements ServiceContainer, ServiceConstants
Yet another avalon framework implementation (YAAFI).
Author:
Siegfried Goeschl
  • Constructor Details

    • ServiceContainerImpl

      public ServiceContainerImpl()
      Constructor using sensible defaults.
  • Method Details

    • enableLogging

      public void enableLogging(org.apache.avalon.framework.logger.Logger logger)
      Specified by:
      enableLogging in interface org.apache.avalon.framework.logger.LogEnabled
      See Also:
      • LogEnabled.enableLogging(org.apache.avalon.framework.logger.Logger)
    • contextualize

      public void contextualize(org.apache.avalon.framework.context.Context context) throws org.apache.avalon.framework.context.ContextException
      Specified by:
      contextualize in interface org.apache.avalon.framework.context.Contextualizable
      Throws:
      org.apache.avalon.framework.context.ContextException
      See Also:
      • Contextualizable.contextualize(org.apache.avalon.framework.context.Context)
    • service

      public void service(org.apache.avalon.framework.service.ServiceManager serviceManager) throws org.apache.avalon.framework.service.ServiceException
      Specified by:
      service in interface org.apache.avalon.framework.service.Serviceable
      Throws:
      org.apache.avalon.framework.service.ServiceException
      See Also:
      • Serviceable.service(org.apache.avalon.framework.service.ServiceManager)
    • configure

      public void configure(org.apache.avalon.framework.configuration.Configuration configuration) throws org.apache.avalon.framework.configuration.ConfigurationException
      Specified by:
      configure in interface org.apache.avalon.framework.configuration.Configurable
      Throws:
      org.apache.avalon.framework.configuration.ConfigurationException
      See Also:
      • Configurable.configure(org.apache.avalon.framework.configuration.Configuration)
    • parameterize

      public void parameterize(org.apache.avalon.framework.parameters.Parameters parameters) throws org.apache.avalon.framework.parameters.ParameterException
      Specified by:
      parameterize in interface org.apache.avalon.framework.parameters.Parameterizable
      Throws:
      org.apache.avalon.framework.parameters.ParameterException
      See Also:
      • Parameterizable.parameterize(org.apache.avalon.framework.parameters.Parameters)
    • initialize

      public void initialize() throws Exception
      Specified by:
      initialize in interface org.apache.avalon.framework.activity.Initializable
      Throws:
      Exception
      See Also:
      • Initializable.initialize()
    • dispose

      public void dispose()
      Disposes the service container implementation.
      Specified by:
      dispose in interface org.apache.avalon.framework.activity.Disposable
      See Also:
      • Disposable.dispose()
    • reconfigure

      public void reconfigure(org.apache.avalon.framework.configuration.Configuration configuration) throws org.apache.avalon.framework.configuration.ConfigurationException
      Reconfiguring the services. I'm not sure how to implement this properly since the Avalon docs is vague on this subject. For now we suspend, reconfigure and resume the services in the correct order.
      Specified by:
      reconfigure in interface org.apache.avalon.framework.configuration.Reconfigurable
      Throws:
      org.apache.avalon.framework.configuration.ConfigurationException
      See Also:
      • Reconfigurable.reconfigure(org.apache.avalon.framework.configuration.Configuration)
    • getRoleEntry

      public RoleEntry getRoleEntry(String name) throws org.apache.avalon.framework.service.ServiceException
      Description copied from interface: ServiceLifecycleManager
      Get a RoleEntryImpl for a given service
      Specified by:
      getRoleEntry in interface ServiceLifecycleManager
      Parameters:
      name - the name of the service component
      Returns:
      the RoleEntryImpl
      Throws:
      org.apache.avalon.framework.service.ServiceException - the service was not found
      See Also:
    • getRoleEntries

      public RoleEntry[] getRoleEntries()
      Description copied from interface: ServiceLifecycleManager
      Get a list of all RoleEntries.
      Specified by:
      getRoleEntries in interface ServiceLifecycleManager
      Returns:
      a list of RoleEntries
      See Also:
    • reconfigure

      public void reconfigure(String[] names) throws org.apache.avalon.framework.service.ServiceException, org.apache.avalon.framework.configuration.ConfigurationException
      Description copied from interface: ServiceLifecycleManager
      Reconfigures a set of services by calling Suspendable.suspend(), Reconfigurable.reconfigure() and Suspendable.resume().
      Specified by:
      reconfigure in interface ServiceLifecycleManager
      Parameters:
      names - the set of services to be reconfigured
      Throws:
      org.apache.avalon.framework.service.ServiceException - one of the service was not found
      org.apache.avalon.framework.configuration.ConfigurationException - the reconfiguration failed
      See Also:
    • hasService

      public boolean hasService(String name)
      Specified by:
      hasService in interface org.apache.avalon.framework.service.ServiceManager
      See Also:
      • ServiceManager.hasService(java.lang.String)
    • lookup

      public Object lookup(String name) throws org.apache.avalon.framework.service.ServiceException
      Lookup a service instance. The implementation uses the following mechanism
      • look for a matching local service
      • use the fallback service manager as they might know the service
      • ask the parent service manager
      Specified by:
      lookup in interface org.apache.avalon.framework.service.ServiceManager
      Throws:
      org.apache.avalon.framework.service.ServiceException
      See Also:
      • ServiceManager.lookup(java.lang.String)
    • release

      public void release(Object object)
      Specified by:
      release in interface org.apache.avalon.framework.service.ServiceManager
    • decommission

      public void decommission(String name) throws org.apache.avalon.framework.service.ServiceException
      Description copied from interface: ServiceLifecycleManager
      Decommision the given service by calling Startable.stop() and Disposable.dispose(). The state of the service component is the same as using lazy initialization. Therefore a new service instance will be created if the service is reused again. If you are keeping an instance of the service you are out of luck.
      Specified by:
      decommission in interface ServiceLifecycleManager
      Parameters:
      name - the name of the service
      Throws:
      org.apache.avalon.framework.service.ServiceException - the service was not found
      See Also:
    • getParameters

      public org.apache.avalon.framework.parameters.Parameters getParameters()
      Description copied from interface: ServiceContainer
      Return the Avalon parameters loaded by the Avalon service container
      Specified by:
      getParameters in interface ServiceContainer
      Returns:
      the Avalon parameters
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object
      See Also: