ServiceManager (Avalon Framework 4.1.5 API)
Keywords: org.apache.avalon.framework.service.ServiceManager interface

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.avalon.framework.service
Interface ServiceManager

All Known Implementing Classes:
  DefaultServiceManager, WrapperServiceManager

public interface ServiceManager

A `ServiceManager` selects `Object`s based on a role. The contract is that all the `Object`s implement the differing roles and there is one `Object` per role. If you need to select on of many `Object`s that implement the same role, then you need to use a `ServiceSelector`. Roles are usually the full interface name. A role is better understood by the analogy of a play. There are many different roles in a script. Any actor or actress can play any given part and you get the same results (phrases said, movements made, etc.). The exact nuances of the performance is different. Below is a list of things that might be considered the different roles:

- InputAdapter and OutputAdapter
- Store and Spool

The `ServiceManager` does not specify the methodology of getting the `Object`, merely the interface used to get it. Therefore the `ServiceManager` can be implemented with a factory pattern, an object pool, or a simple Hashtable.

Version:
  CVS $Revision: 1.14 $ $Date: 2003/02/11 15:58:42 $
Author:
  Avalon Development Team
See Also:
  `Serviceable`, `ServiceSelector`

Method Summary
`boolean` | `hasService(String key)` Check to see if a `Object` exists for a key.
`Object` | `lookup(String key)` Get the `Object` associated with the given key.
`void` | `release(Object object)` Return the `Object` when you are finished with it.

Method Detail

### lookup

    public Object lookup(String key)
                  throws ServiceException

  Get the `Object` associated with the given key. For instance, If the `ServiceManager` had a `LoggerComponent` stored and referenced by key, the following could be used:

       try
       {
           LoggerComponent log;
           myComponent = (LoggerComponent) manager.lookup( LoggerComponent.ROLE );
       }
       catch (...)
       {
           ...
       }

  Parameters:
    `key` - The lookup key of the `Object` to retrieve.
  Returns:
    an `Object` value
  Throws:
    `ServiceException` - if an error occurs

### hasService

    public boolean hasService(String key)

  Check to see if a `Object` exists for a key.

  Parameters:
    `key` - a string identifying the key to check.
  Returns:
    True if the object exists, False if it does not.

### release

    public void release(Object object)

  Return the `Object` when you are finished with it. This allows the `ServiceManager` to handle the End-Of-Life Lifecycle events associated with the `Object`. Please note, that no Exception should be thrown at this point. This is to allow easy use of the ServiceManager system without having to trap Exceptions on a release.

  Parameters:
    `object` - The `Object` we are releasing.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © Apache Software Foundation. All Rights Reserved.