org.apache.hivemind.impl.servicemodel
Class AbstractServiceModelImpl

java.lang.Object
  extended by org.apache.hivemind.impl.servicemodel.AbstractServiceModelImpl
All Implemented Interfaces:
ServiceModel
Direct Known Subclasses:
PooledServiceModel, PrimitiveServiceModel, SingletonServiceModel, ThreadedServiceModel

public abstract class AbstractServiceModelImpl
extends java.lang.Object
implements ServiceModel

Base class for implementing ServiceModel.

Author:
Howard Lewis Ship

Field Summary
protected  org.apache.commons.logging.Log _log
          This log is created from the log's service id, which is the appropriate place to log any messages related to creating (or managing) the service implementation, proxy, etc.
 
Constructor Summary
AbstractServiceModelImpl(ConstructableServicePoint servicePoint)
           
 
Method Summary
protected  java.lang.Object addInterceptors(java.lang.Object core)
           
protected  java.lang.Object constructBridgeProxy(java.lang.Object service)
          Need to bridge from the service interface to the actual type.
protected  java.lang.Object constructCoreServiceImplementation()
          Constructs the core service implementation (by invoking the ServiceImplementationConstructor), and checks that the result is non-null and assignable to the service interface.
protected  java.lang.Object constructNewServiceImplementation()
          Constructs a new implementation of the service, starting with a core implementation, then adding any interceptors.
protected  java.lang.Object constructServiceImplementation()
          Constructs the service implementation; this is invoked from ServicePoint.getService(Class) (for singletons), or from the generated deferrable proxy (for most service models).
 ConstructableServicePoint getServicePoint()
           
protected  void registerWithShutdownCoordinator(java.lang.Object service)
          Invoked after creating a service implementation object; if the object implements RegistryShutdownListener, then the object is added as a listener.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.hivemind.internal.ServiceModel
getService, instantiateService
 

Field Detail

_log

protected final org.apache.commons.logging.Log _log
This log is created from the log's service id, which is the appropriate place to log any messages related to creating (or managing) the service implementation, proxy, etc. Subclasses should make use of this Log as well.

Constructor Detail

AbstractServiceModelImpl

public AbstractServiceModelImpl(ConstructableServicePoint servicePoint)
Method Detail

addInterceptors

protected java.lang.Object addInterceptors(java.lang.Object core)

constructCoreServiceImplementation

protected java.lang.Object constructCoreServiceImplementation()
Constructs the core service implementation (by invoking the ServiceImplementationConstructor), and checks that the result is non-null and assignable to the service interface.


constructServiceImplementation

protected java.lang.Object constructServiceImplementation()
Constructs the service implementation; this is invoked from ServicePoint.getService(Class) (for singletons), or from the generated deferrable proxy (for most service models). Primarily, invokes constructNewServiceImplementation() from within a block that checks for recursive builds.


constructNewServiceImplementation

protected java.lang.Object constructNewServiceImplementation()
Constructs a new implementation of the service, starting with a core implementation, then adding any interceptors.


getServicePoint

public ConstructableServicePoint getServicePoint()

constructBridgeProxy

protected java.lang.Object constructBridgeProxy(java.lang.Object service)
Need to bridge from the service interface to the actual type.

Since:
1.1

registerWithShutdownCoordinator

protected void registerWithShutdownCoordinator(java.lang.Object service)
Invoked after creating a service implementation object; if the object implements RegistryShutdownListener, then the object is added as a listener.

Parameters:
service - the service implementation
Since:
1.2
See Also:
ShutdownCoordinator