Package org.apache.catalina.core
Class StandardService
- java.lang.Object
-
- org.apache.catalina.util.LifecycleBase
-
- org.apache.catalina.util.LifecycleMBeanBase
-
- org.apache.catalina.core.StandardService
-
- All Implemented Interfaces:
javax.management.MBeanRegistration
,JmxEnabled
,Lifecycle
,Service
public class StandardService extends LifecycleMBeanBase implements Service
Standard implementation of theService
interface. The associated Container is generally an instance of Engine, but this is not required.- Author:
- Craig R. McClanahan
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle
Lifecycle.SingleUse
-
-
Field Summary
Fields Modifier and Type Field Description protected Connector[]
connectors
The set of Connectors associated with this Service.protected java.util.ArrayList<Executor>
executors
The list of executors held by the service.protected Mapper
mapper
Mapper.protected MapperListener
mapperListener
Mapper listener.protected java.beans.PropertyChangeSupport
support
The property change support for this component.-
Fields inherited from interface org.apache.catalina.Lifecycle
AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT
-
-
Constructor Summary
Constructors Constructor Description StandardService()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addConnector(Connector connector)
Add a new Connector to the set of defined Connectors, and associate it with this Service's Container.void
addExecutor(Executor ex)
Adds a named executor to the servicevoid
addPropertyChangeListener(java.beans.PropertyChangeListener listener)
Add a property change listener to this component.protected void
destroyInternal()
Sub-classes wishing to perform additional clean-up should override this method, ensuring that super.destroyInternal() is the last call in the overriding method.Connector[]
findConnectors()
Find and return the set of Connectors associated with this Service.Executor[]
findExecutors()
Retrieves all executorsjavax.management.ObjectName[]
getConnectorNames()
Engine
getContainer()
protected java.lang.String
getDomainInternal()
Method implemented by sub-classes to identify the domain in which MBeans should be registered.Executor
getExecutor(java.lang.String executorName)
Retrieves executor by name, null if not foundlong
getGracefulStopAwaitMillis()
Mapper
getMapper()
java.lang.String
getName()
Return the name of this Service.java.lang.String
getObjectNameKeyProperties()
Allow sub-classes to specify the key properties component of theObjectName
that will be used to register this component.java.lang.ClassLoader
getParentClassLoader()
Return the parent class loader for this component.Server
getServer()
Return theServer
with which we are associated (if any).protected void
initInternal()
Invoke a pre-startup initialization.void
removeConnector(Connector connector)
Remove the specified Connector from the set associated from this Service.void
removeExecutor(Executor ex)
Removes an executor from the servicevoid
removePropertyChangeListener(java.beans.PropertyChangeListener listener)
Remove a property change listener from this component.void
setContainer(Engine engine)
Set theEngine
that handles requests for allConnectors
associated with this Service.void
setGracefulStopAwaitMillis(long gracefulStopAwaitMillis)
void
setName(java.lang.String name)
Set the name of this Service.void
setParentClassLoader(java.lang.ClassLoader parent)
Set the parent class loader for this server.void
setServer(Server server)
Set theServer
with which we are associated (if any).protected void
startInternal()
Start nested components (Executor
s,Connector
s andContainer
s) and implement the requirements ofLifecycleBase.startInternal()
.protected void
stopInternal()
Stop nested components (Executor
s,Connector
s andContainer
s) and implement the requirements ofLifecycleBase.stopInternal()
.java.lang.String
toString()
Return a String representation of this component.-
Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase
getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregister
-
Methods inherited from class org.apache.catalina.util.LifecycleBase
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.catalina.Lifecycle
addLifecycleListener, destroy, findLifecycleListeners, getState, getStateName, init, removeLifecycleListener, start, stop
-
-
-
-
Field Detail
-
support
protected final java.beans.PropertyChangeSupport support
The property change support for this component.
-
connectors
protected Connector[] connectors
The set of Connectors associated with this Service.
-
executors
protected final java.util.ArrayList<Executor> executors
The list of executors held by the service.
-
mapper
protected final Mapper mapper
Mapper.
-
mapperListener
protected final MapperListener mapperListener
Mapper listener.
-
-
Method Detail
-
getGracefulStopAwaitMillis
public long getGracefulStopAwaitMillis()
-
setGracefulStopAwaitMillis
public void setGracefulStopAwaitMillis(long gracefulStopAwaitMillis)
-
getMapper
public Mapper getMapper()
-
getContainer
public Engine getContainer()
- Specified by:
getContainer
in interfaceService
- Returns:
- the
Engine
that handles requests for allConnectors
associated with this Service.
-
setContainer
public void setContainer(Engine engine)
Description copied from interface:Service
Set theEngine
that handles requests for allConnectors
associated with this Service.- Specified by:
setContainer
in interfaceService
- Parameters:
engine
- The new Engine
-
getName
public java.lang.String getName()
Return the name of this Service.
-
setName
public void setName(java.lang.String name)
Set the name of this Service.
-
getServer
public Server getServer()
Return theServer
with which we are associated (if any).
-
setServer
public void setServer(Server server)
Set theServer
with which we are associated (if any).
-
addConnector
public void addConnector(Connector connector)
Add a new Connector to the set of defined Connectors, and associate it with this Service's Container.- Specified by:
addConnector
in interfaceService
- Parameters:
connector
- The Connector to be added
-
getConnectorNames
public javax.management.ObjectName[] getConnectorNames()
-
addPropertyChangeListener
public void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
Add a property change listener to this component.- Parameters:
listener
- The listener to add
-
findConnectors
public Connector[] findConnectors()
Find and return the set of Connectors associated with this Service.- Specified by:
findConnectors
in interfaceService
- Returns:
- the set of associated Connectors
-
removeConnector
public void removeConnector(Connector connector)
Remove the specified Connector from the set associated from this Service. The removed Connector will also be disassociated from our Container.- Specified by:
removeConnector
in interfaceService
- Parameters:
connector
- The Connector to be removed
-
removePropertyChangeListener
public void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
Remove a property change listener from this component.- Parameters:
listener
- The listener to remove
-
toString
public java.lang.String toString()
Return a String representation of this component.- Overrides:
toString
in classjava.lang.Object
-
addExecutor
public void addExecutor(Executor ex)
Adds a named executor to the service- Specified by:
addExecutor
in interfaceService
- Parameters:
ex
- Executor
-
findExecutors
public Executor[] findExecutors()
Retrieves all executors- Specified by:
findExecutors
in interfaceService
- Returns:
- Executor[]
-
getExecutor
public Executor getExecutor(java.lang.String executorName)
Retrieves executor by name, null if not found- Specified by:
getExecutor
in interfaceService
- Parameters:
executorName
- String- Returns:
- Executor
-
removeExecutor
public void removeExecutor(Executor ex)
Removes an executor from the service- Specified by:
removeExecutor
in interfaceService
- Parameters:
ex
- Executor
-
startInternal
protected void startInternal() throws LifecycleException
Start nested components (Executor
s,Connector
s andContainer
s) and implement the requirements ofLifecycleBase.startInternal()
.- Specified by:
startInternal
in classLifecycleBase
- Throws:
LifecycleException
- if this component detects a fatal error that prevents this component from being used
-
stopInternal
protected void stopInternal() throws LifecycleException
Stop nested components (Executor
s,Connector
s andContainer
s) and implement the requirements ofLifecycleBase.stopInternal()
.- Specified by:
stopInternal
in classLifecycleBase
- Throws:
LifecycleException
- if this component detects a fatal error that needs to be reported
-
initInternal
protected void initInternal() throws LifecycleException
Invoke a pre-startup initialization. This is used to allow connectors to bind to restricted ports under Unix operating environments.- Overrides:
initInternal
in classLifecycleMBeanBase
- Throws:
LifecycleException
- If the initialisation fails
-
destroyInternal
protected void destroyInternal() throws LifecycleException
Description copied from class:LifecycleMBeanBase
Sub-classes wishing to perform additional clean-up should override this method, ensuring that super.destroyInternal() is the last call in the overriding method.- Overrides:
destroyInternal
in classLifecycleMBeanBase
- Throws:
LifecycleException
- If the destruction fails
-
getParentClassLoader
public java.lang.ClassLoader getParentClassLoader()
Return the parent class loader for this component.- Specified by:
getParentClassLoader
in interfaceService
- Returns:
- the parent class loader for this component. If not set, return
Service.getServer()
Server.getParentClassLoader()
. If no server has been set, return the system class loader.
-
setParentClassLoader
public void setParentClassLoader(java.lang.ClassLoader parent)
Set the parent class loader for this server.- Specified by:
setParentClassLoader
in interfaceService
- Parameters:
parent
- The new parent class loader
-
getDomainInternal
protected java.lang.String getDomainInternal()
Description copied from class:LifecycleMBeanBase
Method implemented by sub-classes to identify the domain in which MBeans should be registered.- Specified by:
getDomainInternal
in classLifecycleMBeanBase
- Returns:
- The name of the domain to use to register MBeans.
-
getObjectNameKeyProperties
public final java.lang.String getObjectNameKeyProperties()
Description copied from class:LifecycleMBeanBase
Allow sub-classes to specify the key properties component of theObjectName
that will be used to register this component.- Specified by:
getObjectNameKeyProperties
in classLifecycleMBeanBase
- Returns:
- The string representation of the key properties component of the
desired
ObjectName
-
-