|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.hivemind.impl.BaseLocatable | +--org.apache.hivemind.impl.AbstractExtensionPoint | +--org.apache.hivemind.impl.ServicePointImpl
Abstract implementation of ServicePoint
.
Provides some of the machinery for creating new service instances, delegating
most of it to the ServiceModel
instace
for the service.
Constructor Summary | |
ServicePointImpl()
|
Method Summary | |
void |
addInterceptorContribution(ServiceInterceptorContribution contribution)
|
void |
clearConstructorInformation()
Invoked by the ServiceModel when constuction information (the builder and interceptors) is no longer needed. |
protected void |
extendDescription(ToStringBuilder builder)
Implemented in subclasses to provide details about subclass properties. |
void |
forceServiceInstantiation()
Forces the service into existence. |
java.util.List |
getOrderedInterceptorContributions()
Returns a list of org.apache.hivemind.ServiceInterceptorContribution s,
ordered according to their dependencies. |
Schema |
getParametersSchema()
Returns the Schema used to process any parameters
passed to the service. |
java.lang.Object |
getService(java.lang.Class serviceInterface)
Obtains the full service implementation for this service extension point, an object that implements the service interface. |
ServiceImplementationConstructor |
getServiceConstructor()
Returns the constructor that can create the core service implementation. |
java.lang.Class |
getServiceInterface()
Returns the type of the service, the interface the service implements. |
org.apache.commons.logging.Log |
getServiceLog()
Returns the Log instance for this service point. |
java.lang.String |
getServiceModel()
|
ShutdownCoordinator |
getShutdownCoordinator()
Returns the ShutdownCooordinator , used by
the service model to inform proxies that the service
has shutdown. |
void |
setParametersSchema(Schema schema)
|
void |
setServiceConstructor(ServiceImplementationConstructor contribution)
|
void |
setServiceInterfaceName(java.lang.String string)
|
void |
setServiceModel(java.lang.String model)
|
void |
setShutdownCoordinator(ShutdownCoordinator coordinator)
|
Methods inherited from class org.apache.hivemind.impl.AbstractExtensionPoint |
getExtensionPointId, getModule, setExtensionPointId, setModule, toString |
Methods inherited from class org.apache.hivemind.impl.BaseLocatable |
getLocation, setLocation |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.apache.hivemind.internal.ExtensionPoint |
getExtensionPointId, getModule |
Methods inherited from interface org.apache.hivemind.Locatable |
getLocation |
Constructor Detail |
public ServicePointImpl()
Method Detail |
protected void extendDescription(ToStringBuilder builder)
AbstractExtensionPoint
extendDescription
in class AbstractExtensionPoint
public void addInterceptorContribution(ServiceInterceptorContribution contribution)
public java.lang.Class getServiceInterface()
ServicePoint
getServiceInterface
in interface ServicePoint
public void setServiceConstructor(ServiceImplementationConstructor contribution)
public void setServiceInterfaceName(java.lang.String string)
public void setParametersSchema(Schema schema)
public Schema getParametersSchema()
ServicePoint
Schema
used to process any parameters
passed to the service. Service implementation factories
and service interceptor factories allow parameters.
getParametersSchema
in interface ServicePoint
public ServiceImplementationConstructor getServiceConstructor()
ConstructableServicePoint
getServiceConstructor
in interface ConstructableServicePoint
public java.lang.Object getService(java.lang.Class serviceInterface)
ServicePoint
getService
in interface ServicePoint
serviceInterface
- the class that the service will be cast to;
a check is made that the service is assignable to
the indicated interface. It does not have to, necessarily,
match the service interface (it could be a super-interface, for example).
public java.lang.String getServiceModel()
public void setServiceModel(java.lang.String model)
public void clearConstructorInformation()
ConstructableServicePoint
clearConstructorInformation
in interface ConstructableServicePoint
public java.util.List getOrderedInterceptorContributions()
ConstructableServicePoint
org.apache.hivemind.ServiceInterceptorContribution
s,
ordered according to their dependencies. May return null or an empty list.
Note that the order is tricky! To keep any error messages while ordering the interceptors understandable, they are ordered according into runtime execution order. Example: If we want a logging interceptor to operate before a security-check interceptor, we'll write the following in the descriptor:
<interceptor service-id="hivemind.LoggingInterceptor" before="*"/> <interceptor service-id="somepackage.SecurityInterceptor"/>The
before
value for the first interceptor contribution
will be assigned to the contribution's
followingInterceptorIds
property, because all other interceptors (including the security interceptor)
should have their behavior follow the logging interceptor.
To get this behavior, the logging interceptor will delegate to the security interceptor, and the security interceptor will delegate to the core service implementation.
The trick is that interceptors are applied in reverse order: we start with core service implementation, wrap it with the security interceptor, then wrap that with the logging interceptor ... but that's an issue that applies when building the interceptor stack around the core service implementation.
getOrderedInterceptorContributions
in interface ConstructableServicePoint
public ShutdownCoordinator getShutdownCoordinator()
ConstructableServicePoint
ShutdownCooordinator
, used by
the service model to inform proxies that the service
has shutdown.
getShutdownCoordinator
in interface ConstructableServicePoint
public void setShutdownCoordinator(ShutdownCoordinator coordinator)
public void forceServiceInstantiation()
forceServiceInstantiation
in interface ServicePoint
public org.apache.commons.logging.Log getServiceLog()
ServicePoint
getServiceLog
in interface ServicePoint
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |