public abstract class AbstractServiceScheme<D extends ServiceDependencies> extends AbstractScheme implements ServiceBuilder, ServiceScheme
AbstractServiceScheme
provides functionality common to all
schemes that use services. Some properties, such as listeners, are optional
and may not apply to every scheme.Modifier and Type | Field and Description |
---|---|
protected D |
m_serviceDependencies
The
ServiceDependencies to be used to configure the services
produced by this scheme. |
DELIM_APPLICATION_SCOPE, DELIM_DOMAIN_PARTITION
Constructor and Description |
---|
AbstractServiceScheme() |
Modifier and Type | Method and Description |
---|---|
protected String |
getDefaultServiceName()
DefaultServiceName to use if none configured.
|
List<NamedEventInterceptorBuilder> |
getEventInterceptorBuilders()
|
String |
getScopedServiceName()
Return the service name with any scoping applied.
|
String |
getScopeName()
Return the scope name.
|
ServiceBuilder |
getServiceBuilder()
Return the
ServiceBuilder that is needed to build a service. |
D |
getServiceDependencies()
Obtains the
ServiceDependencies that will be used to configure
Service produced by this scheme. |
String |
getServiceName()
Return the service name.
|
XmlElement |
getXml()
Deprecated.
|
protected void |
injectScopeNameIntoService(Service service)
|
boolean |
isAutoStart()
Return true if the service has auto-start enabled.
|
abstract boolean |
isRunningClusterNeeded()
Return true if a running cluster is needed before using a service.
|
Service |
realizeService(com.tangosol.config.expression.ParameterResolver resolver,
ClassLoader loader,
Cluster cluster)
Realize (ensure) a Service.
|
void |
setAutoStart(boolean fEnabled)
Set the auto-start enabled flag.
|
void |
setScopeName(String sName)
Set the scope name.
|
void |
setServiceDependencies(D dependencies)
Set the
ServiceDependencies to be used by this scheme
when configuring a newly realized Service . |
void |
setServiceName(String sName)
Set the service name.
|
void |
setXml(XmlElement element)
Deprecated.
|
getSchemeName, isAnonymous, setSchemeName, validate
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getServiceType
getSchemeName, isAnonymous
protected D extends ServiceDependencies m_serviceDependencies
ServiceDependencies
to be used to configure the services
produced by this scheme.public Service realizeService(com.tangosol.config.expression.ParameterResolver resolver, ClassLoader loader, Cluster cluster)
realizeService
in interface ServiceBuilder
resolver
- the ParameterResolverloader
- the ClassLoadercluster
- the Cluster which will already be running if necessarypublic abstract boolean isRunningClusterNeeded()
isRunningClusterNeeded
in interface ServiceBuilder
true
if a running cluster is needed before using a servicepublic String getScopeName()
getScopeName
in interface ServiceBuilder
@Injectable public void setScopeName(String sName)
sName
- the scope name@Deprecated public void setXml(XmlElement element)
setXml
in interface ServiceBuilder
element
- the distributed-scheme XML@Deprecated public XmlElement getXml()
getXml
in interface ServiceBuilder
public boolean isAutoStart()
isAutoStart
in interface ServiceScheme
@Injectable(value="autostart") public void setAutoStart(boolean fEnabled)
fEnabled
- the auto-start enabled flagpublic ServiceBuilder getServiceBuilder()
ServiceBuilder
that is needed to build a service.getServiceBuilder
in interface ServiceScheme
ServiceBuilder
or null if the scheme does not support
services.@Injectable public void setServiceName(String sName)
sName
- the service name.public String getServiceName()
getServiceName
in interface ServiceScheme
public String getScopedServiceName()
[<domain-partition-name>'/'] [<application-scope>':'] <service-name>
getScopedServiceName
in interface ServiceScheme
public List<NamedEventInterceptorBuilder> getEventInterceptorBuilders()
List
of NamedEventInterceptorBuilder
s that have been
defined for the ServiceScheme
.
Note: For those ServiceScheme
s don't support event interceptors,
the returned value must be an empty list.
getEventInterceptorBuilders
in interface ServiceScheme
List
over NamedEventInterceptorBuilder
sprotected void injectScopeNameIntoService(Service service)
service
- The safe service@Injectable(value=".") public D getServiceDependencies()
ServiceDependencies
that will be used to configure
Service
produced by this scheme.ServiceDependencies
public void setServiceDependencies(D dependencies)
ServiceDependencies
to be used by this scheme
when configuring a newly realized Service
.dependencies
- the ServiceDependencies
objectprotected String getDefaultServiceName()