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 SymbolSource which 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.Map getConfigurationAsMap(java.lang.String configurationId)
          Returns the elements of the given configuration point as an unmodifiable Map.
 java.util.Locale getLocale()
          Returns the locale for which the registry was created.
 Messages getModuleMessages(java.lang.String moduleId)
          Returns the Messages object for the specified module.
 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.
 java.util.List getServiceIds(java.lang.Class serviceInterface)
          Returns a list of service ids for service points which implement the desired service interface.
 boolean isConfigurationMappable(java.lang.String configurationId)
          Returns true if the elements contributed to the given configuration point can be retrieved as a Map.
 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

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

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

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

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.

isConfigurationMappable

boolean isConfigurationMappable(java.lang.String configurationId)
Returns true if the elements contributed to the given configuration point can be retrieved as a Map.

Parameters:
configurationId - the fully qualified id of the configuration
Throws:
ApplicationRuntimeException - if the configuration does not exist, etc.
Since:
1.1
See Also:
Module.isConfigurationMappable(String)

getConfigurationAsMap

java.util.Map getConfigurationAsMap(java.lang.String configurationId)
Returns the elements of the given configuration point as an unmodifiable Map. It may be empty, but not null.

Parameters:
configurationId - the fully qualified id of the configuration
Throws:
ApplicationRuntimeException - if no public configuration point with the given id exists or if the elements can't be mapped.
Since:
1.1
See Also:
Module.getConfigurationAsMap(String), isConfigurationMappable(String)

expandSymbols

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

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

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

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


shutdown

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

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:
1.1
See Also:
ServiceSerializationHelper, ServiceSerializationSupport

cleanupThread

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


getServiceIds

java.util.List getServiceIds(java.lang.Class serviceInterface)
Returns a list of service ids for service points which implement the desired service interface.

Returns:
Returns an empty List if no matching service points exist.
Since:
1.1

getModuleMessages

Messages getModuleMessages(java.lang.String moduleId)
Returns the Messages object for the specified module.

Parameters:
moduleId - the module id
Returns:
the Messages object for the specified module.