org.apache.hivemind
Interface Registry

All Superinterfaces:
SymbolSource
All Known Implementing Classes:
RegistryImpl

public interface Registry
extends SymbolSource

The HiveMind registry; primarily this is used to gain access to services.

In addition, Registry implements SymbolSourcewhich allows programatic access to substitution symbols.

Author:
Howard Lewis Ship

Method Summary
 void cleanupThread()
          Convienience for invoking ThreadEventNotifier.fireThreadCleanup().
 boolean containsConfiguration(java.lang.String configurationId)
          Returns true if a configuration for the specified id exists.
 boolean containsService(java.lang.Class serviceInterface)
          Returns true if a single service for the specified service interface class exists.
 boolean containsService(java.lang.String serviceId, java.lang.Class serviceInterface)
          Returns true if a service for the specified service id and service interface exists.
 java.lang.String expandSymbols(java.lang.String input, Location location)
          Expands any substitution symbols in the input string, replacing each symbol with the symbols value (if known).
 java.util.List getConfiguration(java.lang.String configurationId)
          Returns a configuration as a List of elements (as defined by the schema for the configuration point, or as Elements if no configuration point does not define a schema.
 java.util.Locale getLocale()
          Returns the locale for which the registry was created.
 java.lang.Object getService(java.lang.Class serviceInterface)
          Convenience method to obtain a service with a single implementation from the registry.
 java.lang.Object getService(java.lang.String serviceId, java.lang.Class serviceInterface)
          Obtains a service from the registry.
 void setupThread()
          To be invoked at the start of each request in a multi-threaded environment.
 void shutdown()
          Shuts down the registry; this notifies all RegistryShutdownListener services and objects.
 
Methods inherited from interface org.apache.hivemind.SymbolSource
valueForSymbol
 

Method Detail

containsConfiguration

public boolean containsConfiguration(java.lang.String configurationId)
Returns true if a configuration for the specified id exists.

Parameters:
configurationId -
Returns:
true if a configuration for the specified id exists

containsService

public boolean containsService(java.lang.Class serviceInterface)
Returns true if a single service for the specified service interface class exists.

Parameters:
serviceInterface -
Returns:
true if a single service for the specified service interface exists

containsService

public boolean containsService(java.lang.String serviceId,
                               java.lang.Class serviceInterface)
Returns true if a service for the specified service id and service interface exists.

Parameters:
serviceId -
serviceInterface -
Returns:
true if a service for the specified service id and service interface exists

getConfiguration

public java.util.List getConfiguration(java.lang.String configurationId)
Returns a configuration as a List of elements (as defined by the schema for the configuration point, or as Elements if no configuration point does not define a schema.

Parameters:
configurationId - the fully qualified id of the configuration to obtain
Returns:
the configuration as an immutable List
Throws:
ApplicationRuntimeException - if the configuration does not exist, etc.

expandSymbols

public java.lang.String expandSymbols(java.lang.String input,
                                      Location location)
Expands any substitution symbols in the input string, replacing each symbol with the symbols value (if known). If a symbol is unknown, then the symbol is passed through unchanged (complete with the ${ and } delimiters) and an error is logged.

Parameters:
input - input string to be converted, which may (or may not) contain any symbols.
location - the location from which the string was obtained, used if an error is logged.

getService

public java.lang.Object getService(java.lang.String serviceId,
                                   java.lang.Class serviceInterface)
Obtains a service from the registry. Typically, what's returned is a proxy, but that's irrelevant to the caller, which simply will invoke methods of the service interface.

Parameters:
serviceId - the fully qualified id of the service to obtain
serviceInterface - the class to which the service will be cast
Returns:
the service
Throws:
ApplicationRuntimeException - if the service does not exist, or if it can't be cast to the specified service interface

getService

public java.lang.Object getService(java.lang.Class serviceInterface)
Convenience method to obtain a service with a single implementation from the registry. Exactly one service point must implement the service.

Parameters:
serviceInterface - the class to which the service will be cast.
Returns:
the service implementing the given interface.
Throws:
ApplicationRuntimeException - if there are no service extension points implementing the given interface, or if there multiple service points implementing it.
See Also:
getService(String, Class)

getLocale

public java.util.Locale getLocale()
Returns the locale for which the registry was created.


shutdown

public void shutdown()
Shuts down the registry; this notifies all RegistryShutdownListener services and objects. Once the registry is shutdown, it is no longer valid to obtain new services or configurations, or even use existing services and configurations.


setupThread

public void setupThread()
To be invoked at the start of each request in a multi-threaded environment. Ensures that the receiving Registry will be used if any service proxies are de-serialized.

Since:
3.1
See Also:
ServiceSerializationHelper, ServiceSerializationSupport

cleanupThread

public void cleanupThread()
Convienience for invoking ThreadEventNotifier.fireThreadCleanup().