org.apache.coyote.tomcat5

Class CoyoteConnector

Implemented Interfaces:
Connector, Lifecycle, MBeanRegistration

public class CoyoteConnector
extends java.lang.Object
implements Connector, Lifecycle, MBeanRegistration

Implementation of a Coyote connector for Tomcat 5.x.

Version:
$Revision: 1.43 $ $Date: 2004/05/27 16:09:48 $

Authors:
Craig R. McClanahan
Remy Maucherat

Field Summary

protected Container
container
The Container used for processing requests received by this Connector.
protected String
domain
protected LifecycleSupport
lifecycle
The lifecycle event support for this component.
protected int
minProcessors
The minimum number of processors to start at initialization time.
protected MBeanServer
mserver
protected ObjectName
oname

Fields inherited from interface org.apache.catalina.Lifecycle

AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, START_EVENT, STOP_EVENT

Method Summary

void
addLifecycleListener(LifecycleListener listener)
Add a lifecycle event listener to this component.
Request
createRequest()
Create (or allocate) and return a Request object suitable for specifying the contents of a Request to the responsible Container.
Response
createResponse()
Create (or allocate) and return a Response object suitable for receiving the contents of a Response from the responsible Container.
void
destroy()
LifecycleListener[]
findLifecycleListeners()
Get the lifecycle listeners associated with this lifecycle.
int
getAcceptCount()
Return the accept count for this Connector.
String
getAddress()
Return the bind IP address for this Connector.
boolean
getAllowTrace()
True if the TRACE method is allowed.
int
getBufferSize()
Return the input buffer size for this Connector.
String
getCiphers()
Gets the list of SSL cipher suites that are to be enabled
String
getClientAuth()
String
getCompression()
Get the value of compression.
int
getConnectionLinger()
Return the connection linger for this Connector.
int
getConnectionTimeout()
Return the connection timeout for this Connector.
int
getConnectionUploadTimeout()
Return the connection upload timeout for this Connector.
Container
getContainer()
Return the Container used for processing requests received by this Connector.
ObjectName
getController()
int
getDebug()
Return the debugging detail level for this component.
boolean
getDisableUploadTimeout()
Return the flag that specifies upload time-out behavior.
String
getDomain()
boolean
getEnableLookups()
Return the "enable DNS lookups" flag.
ServerSocketFactory
getFactory()
Return the server socket factory used by this Container.
String
getInfo()
Return descriptive information about this Connector implementation.
boolean
getKeepAlive()
Return the Keep-Alive policy for the connection.
String
getKeyAlias()
Gets the alias name of the keypair and supporting certificate chain used by this Connector to authenticate itself to SSL clients.
String
getKeystoreFile()
String
getKeystorePass()
Return keystorePass
Mapper
getMapper()
Return the mapper.
int
getMaxHttpHeaderSize()
Return the maximum HTTP header size.
int
getMaxKeepAliveRequests()
Return the maximum number of Keep-Alive requests to honor per connection.
int
getMaxPostSize()
Return the maximum size of a POST which will be automatically parsed by the container.
int
getMaxProcessors()
Return the maximum number of processors allowed, or <0 for unlimited.
int
getMinProcessors()
Return the minimum number of processors to start at initialization.
ObjectName
getObjectName()
int
getPort()
Return the port number on which we listen for requests.
Object
getProperty(String name)
Return a configured property.
String
getProtocol()
Return the Coyote protocol handler in use.
ProtocolHandler
getProtocolHandler()
Return the protocol handler associated with the connector.
String
getProtocolHandlerClassName()
Return the class name of the Coyote protocol handler in use.
String
getProxyName()
Return the proxy server name for this Connector.
int
getProxyPort()
Return the proxy server port for this Connector.
int
getRedirectPort()
Return the port number to which a request should be redirected if it comes in on a non-SSL port and is subject to a security constraint with a transport guarantee that requires SSL.
String
getScheme()
Return the scheme that will be assigned to requests received through this connector.
boolean
getSecure()
Return the secure connection flag that will be assigned to requests received through this connector.
int
getServerSocketTimeout()
Return the server socket timeout for this Connector.
Service
getService()
Return the Service with which we are associated (if any).
String
getSslProtocol()
Gets the SSL protocol variant to be used.
String
getSslProtocols()
Gets the SSL protocol variants to be enabled.
boolean
getTcpNoDelay()
Return the TCP no delay flag value.
int
getThreadPriority()
Return the processor thread priority.
boolean
getTomcatAuthentication()
String
getURIEncoding()
Return the character encoding to be used for the URI.
boolean
getUseBodyEncodingForURI()
Return the true if the entity body encoding should be used for the URI.
void
init()
void
initialize()
Initialize this connector (create ServerSocket here!)
boolean
isAvailable()
Is this connector available for processing requests?
boolean
isXpoweredBy()
Indicates whether the generation of an X-Powered-By response header for servlet-generated responses is enabled or disabled for this Connector.
void
pause()
Pause the connector.
void
postDeregister()
void
postRegister(Boolean registrationDone)
void
preDeregister()
ObjectName
preRegister(MBeanServer server, ObjectName name)
void
removeLifecycleListener(LifecycleListener listener)
Remove a lifecycle event listener from this component.
void
removeProperty(String name)
remove a configured property.
void
resume()
Pause the connector.
void
setAcceptCount(int count)
Set the accept count for this Connector.
void
setAddress(String address)
Set the bind IP address for this Connector.
void
setAllowTrace(boolean allowTrace)
Set the allowTrace flag, to disable or enable the TRACE HTTP method.
void
setBufferSize(int bufferSize)
Set the input buffer size for this Connector.
void
setCiphers(String ciphers)
Sets the SSL cipher suites that are to be enabled.
void
setClientAuth(String clientAuth)
void
setCompression(String compression)
Set the value of compression.
void
setConnectionLinger(int connectionLinger)
Set the connection linger for this Connector.
void
setConnectionTimeout(int connectionTimeout)
Set the connection timeout for this Connector.
void
setConnectionUploadTimeout(int connectionUploadTimeout)
Set the connection upload timeout for this Connector.
void
setContainer(Container container)
Set the Container used for processing requests received by this Connector.
void
setController(ObjectName controller)
void
setDebug(int debug)
Set the debugging detail level for this component.
void
setDisableUploadTimeout(boolean isDisabled)
Set the flag to specify upload time-out behavior.
void
setEnableLookups(boolean enableLookups)
Set the "enable DNS lookups" flag.
void
setFactory(ServerSocketFactory factory)
Set the server socket factory used by this Container.
void
setKeepAlive(boolean keepAlive)
Set the keep-alive policy for this connection.
void
setKeyAlias(String alias)
Sets the alias name of the keypair and supporting certificate chain used by this Connector to authenticate itself to SSL clients.
void
setKeystoreFile(String keystoreFile)
void
setKeystorePass(String keystorePass)
Set keystorePass
void
setMaxHttpHeaderSize(int size)
Set the maximum HTTP header size.
void
setMaxKeepAliveRequests(int mkar)
Set the maximum number of Keep-Alive requests to honor per connection.
void
setMaxPostSize(int maxPostSize)
Set the maximum size of a POST which will be automatically parsed by the container.
void
setMaxProcessors(int maxProcessors)
Set the maximum number of processors allowed, or <0 for unlimited.
void
setMinProcessors(int minProcessors)
Set the minimum number of processors to start at initialization.
void
setPort(int port)
Set the port number on which we listen for requests.
void
setProperty(String name, Object value)
Set a configured property.
void
setProtocol(String protocol)
Set the Coyote protocol which will be used by the connector.
void
setProtocolHandlerClassName(String protocolHandlerClassName)
Set the class name of the Coyote protocol handler which will be used by the connector.
void
setProxyName(String proxyName)
Set the proxy server name for this Connector.
void
setProxyPort(int proxyPort)
Set the proxy server port for this Connector.
void
setRedirectPort(int redirectPort)
Set the redirect port number.
void
setScheme(String scheme)
Set the scheme that will be assigned to requests received through this connector.
void
setSecure(boolean secure)
Set the secure connection flag that will be assigned to requests received through this connector.
void
setServerSocketTimeout(int serverSocketTimeout)
Set the server socket timeout for this Connector.
void
setService(Service service)
Set the Service with which we are associated (if any).
void
setSslProtocol(String sslProtocol)
Sets the SSL protocol variant to be used.
void
setSslProtocols(String sslProtocols)
Sets the SSL protocol variants to be enabled.
void
setTcpNoDelay(boolean tcpNoDelay)
Set the TCP no delay flag which will be set on the socket after accepting a connection.
void
setThreadPriority(int threadPriority)
Sets the processor thread priority.
void
setTomcatAuthentication(boolean tomcatAuthentication)
void
setURIEncoding(String URIEncoding)
Set the URI encoding to be used for the URI.
void
setUseBodyEncodingForURI(boolean useBodyEncodingForURI)
Set if the entity body encoding should be used for the URI.
void
setXpoweredBy(boolean xpoweredBy)
Enables or disables the generation of an X-Powered-By header (with value Servlet/2.4) for all servlet-generated responses returned by this Connector.
void
start()
Begin processing requests via this Connector.
void
stop()
Terminate processing requests via this Connector.

Field Details

container

protected Container container
The Container used for processing requests received by this Connector.


domain

protected String domain


lifecycle

protected LifecycleSupport lifecycle
The lifecycle event support for this component.


minProcessors

protected int minProcessors
The minimum number of processors to start at initialization time.


mserver

protected MBeanServer mserver


oname

protected ObjectName oname

Method Details

addLifecycleListener

public void addLifecycleListener(LifecycleListener listener)
Add a lifecycle event listener to this component.
Specified by:
addLifecycleListener in interface Lifecycle

Parameters:
listener - The listener to add


createRequest

public Request createRequest()
Create (or allocate) and return a Request object suitable for specifying the contents of a Request to the responsible Container.
Specified by:
createRequest in interface Connector


createResponse

public Response createResponse()
Create (or allocate) and return a Response object suitable for receiving the contents of a Response from the responsible Container.
Specified by:
createResponse in interface Connector


destroy

public void destroy()
            throws Exception


findLifecycleListeners

public LifecycleListener[] findLifecycleListeners()
Get the lifecycle listeners associated with this lifecycle. If this Lifecycle has no listeners registered, a zero-length array is returned.
Specified by:
findLifecycleListeners in interface Lifecycle


getAcceptCount

public int getAcceptCount()
Return the accept count for this Connector.


getAddress

public String getAddress()
Return the bind IP address for this Connector.


getAllowTrace

public boolean getAllowTrace()
True if the TRACE method is allowed. Default value is "false".


getBufferSize

public int getBufferSize()
Return the input buffer size for this Connector.


getCiphers

public String getCiphers()
Gets the list of SSL cipher suites that are to be enabled

Returns:
Comma-separated list of SSL cipher suites, or null if all cipher suites supported by the underlying SSL implementation are being enabled


getClientAuth

public String getClientAuth()


getCompression

public String getCompression()
Get the value of compression.


getConnectionLinger

public int getConnectionLinger()
Return the connection linger for this Connector.


getConnectionTimeout

public int getConnectionTimeout()
Return the connection timeout for this Connector.


getConnectionUploadTimeout

public int getConnectionUploadTimeout()
Return the connection upload timeout for this Connector.


getContainer

public Container getContainer()
Return the Container used for processing requests received by this Connector.
Specified by:
getContainer in interface Connector


getController

public ObjectName getController()


getDebug

public int getDebug()
Return the debugging detail level for this component.


getDisableUploadTimeout

public boolean getDisableUploadTimeout()
Return the flag that specifies upload time-out behavior.


getDomain

public String getDomain()


getEnableLookups

public boolean getEnableLookups()
Return the "enable DNS lookups" flag.
Specified by:
getEnableLookups in interface Connector


getFactory

public ServerSocketFactory getFactory()
Return the server socket factory used by this Container.
Specified by:
getFactory in interface Connector


getInfo

public String getInfo()
Return descriptive information about this Connector implementation.
Specified by:
getInfo in interface Connector


getKeepAlive

public boolean getKeepAlive()
Return the Keep-Alive policy for the connection.


getKeyAlias

public String getKeyAlias()
Gets the alias name of the keypair and supporting certificate chain used by this Connector to authenticate itself to SSL clients.

Returns:
The alias name of the keypair and supporting certificate chain


getKeystoreFile

public String getKeystoreFile()


getKeystorePass

public String getKeystorePass()
Return keystorePass


getMapper

public Mapper getMapper()
Return the mapper.


getMaxHttpHeaderSize

public int getMaxHttpHeaderSize()
Return the maximum HTTP header size.


getMaxKeepAliveRequests

public int getMaxKeepAliveRequests()
Return the maximum number of Keep-Alive requests to honor per connection.


getMaxPostSize

public int getMaxPostSize()
Return the maximum size of a POST which will be automatically parsed by the container.


getMaxProcessors

public int getMaxProcessors()
Return the maximum number of processors allowed, or <0 for unlimited.


getMinProcessors

public int getMinProcessors()
Return the minimum number of processors to start at initialization.


getObjectName

public ObjectName getObjectName()


getPort

public int getPort()
Return the port number on which we listen for requests.


getProperty

public Object getProperty(String name)
Return a configured property.


getProtocol

public String getProtocol()
Return the Coyote protocol handler in use.


getProtocolHandler

public ProtocolHandler getProtocolHandler()
Return the protocol handler associated with the connector.


getProtocolHandlerClassName

public String getProtocolHandlerClassName()
Return the class name of the Coyote protocol handler in use.


getProxyName

public String getProxyName()
Return the proxy server name for this Connector.


getProxyPort

public int getProxyPort()
Return the proxy server port for this Connector.


getRedirectPort

public int getRedirectPort()
Return the port number to which a request should be redirected if it comes in on a non-SSL port and is subject to a security constraint with a transport guarantee that requires SSL.
Specified by:
getRedirectPort in interface Connector


getScheme

public String getScheme()
Return the scheme that will be assigned to requests received through this connector. Default value is "http".
Specified by:
getScheme in interface Connector


getSecure

public boolean getSecure()
Return the secure connection flag that will be assigned to requests received through this connector. Default value is "false".
Specified by:
getSecure in interface Connector


getServerSocketTimeout

public int getServerSocketTimeout()
Return the server socket timeout for this Connector.


getService

public Service getService()
Return the Service with which we are associated (if any).
Specified by:
getService in interface Connector


getSslProtocol

public String getSslProtocol()
Gets the SSL protocol variant to be used.

Returns:
SSL protocol variant


getSslProtocols

public String getSslProtocols()
Gets the SSL protocol variants to be enabled.

Returns:
Comma-separated list of SSL protocol variants


getTcpNoDelay

public boolean getTcpNoDelay()
Return the TCP no delay flag value.


getThreadPriority

public int getThreadPriority()
Return the processor thread priority.

Returns:
int


getTomcatAuthentication

public boolean getTomcatAuthentication()


getURIEncoding

public String getURIEncoding()
Return the character encoding to be used for the URI.


getUseBodyEncodingForURI

public boolean getUseBodyEncodingForURI()
Return the true if the entity body encoding should be used for the URI.


init

public void init()
            throws Exception


initialize

public void initialize()
            throws LifecycleException
Initialize this connector (create ServerSocket here!)
Specified by:
initialize in interface Connector


isAvailable

public boolean isAvailable()
Is this connector available for processing requests?


isXpoweredBy

public boolean isXpoweredBy()
Indicates whether the generation of an X-Powered-By response header for servlet-generated responses is enabled or disabled for this Connector.

Returns:
true if generation of X-Powered-By response header is enabled, false otherwise


pause

public void pause()
            throws LifecycleException
Pause the connector.
Specified by:
pause in interface Connector


postDeregister

public void postDeregister()


postRegister

public void postRegister(Boolean registrationDone)


preDeregister

public void preDeregister()
            throws Exception


preRegister

public ObjectName preRegister(MBeanServer server,
                              ObjectName name)
            throws Exception


removeLifecycleListener

public void removeLifecycleListener(LifecycleListener listener)
Remove a lifecycle event listener from this component.
Specified by:
removeLifecycleListener in interface Lifecycle

Parameters:
listener - The listener to add


removeProperty

public void removeProperty(String name)
remove a configured property.


resume

public void resume()
            throws LifecycleException
Pause the connector.
Specified by:
resume in interface Connector


setAcceptCount

public void setAcceptCount(int count)
Set the accept count for this Connector.

Parameters:
count - The new accept count


setAddress

public void setAddress(String address)
Set the bind IP address for this Connector.

Parameters:
address - The bind IP address


setAllowTrace

public void setAllowTrace(boolean allowTrace)
Set the allowTrace flag, to disable or enable the TRACE HTTP method.

Parameters:
allowTrace - The new allowTrace flag


setBufferSize

public void setBufferSize(int bufferSize)
Set the input buffer size for this Connector.

Parameters:
bufferSize - The new input buffer size.


setCiphers

public void setCiphers(String ciphers)
Sets the SSL cipher suites that are to be enabled. Only those SSL cipher suites that are actually supported by the underlying SSL implementation will be enabled.

Parameters:
ciphers - Comma-separated list of SSL cipher suites


setClientAuth

public void setClientAuth(String clientAuth)


setCompression

public void setCompression(String compression)
Set the value of compression.

Parameters:
compression - The new compression value, which can be "on", "off" or "force"


setConnectionLinger

public void setConnectionLinger(int connectionLinger)
Set the connection linger for this Connector.

Parameters:


setConnectionTimeout

public void setConnectionTimeout(int connectionTimeout)
Set the connection timeout for this Connector.

Parameters:


setConnectionUploadTimeout

public void setConnectionUploadTimeout(int connectionUploadTimeout)
Set the connection upload timeout for this Connector.

Parameters:
connectionUploadTimeout - The new connection upload timeout


setContainer

public void setContainer(Container container)
Set the Container used for processing requests received by this Connector.
Specified by:
setContainer in interface Connector

Parameters:
container - The new Container to use


setController

public void setController(ObjectName controller)


setDebug

public void setDebug(int debug)
Set the debugging detail level for this component.

Parameters:
debug - The new debugging detail level


setDisableUploadTimeout

public void setDisableUploadTimeout(boolean isDisabled)
Set the flag to specify upload time-out behavior.

Parameters:
isDisabled - If true, then the timeout parameter is ignored. If false, then the timeout parameter is used to control uploads.


setEnableLookups

public void setEnableLookups(boolean enableLookups)
Set the "enable DNS lookups" flag.
Specified by:
setEnableLookups in interface Connector

Parameters:
enableLookups - The new "enable DNS lookups" flag value


setFactory

public void setFactory(ServerSocketFactory factory)
Set the server socket factory used by this Container.
Specified by:
setFactory in interface Connector

Parameters:
factory - The new server socket factory


setKeepAlive

public void setKeepAlive(boolean keepAlive)
Set the keep-alive policy for this connection.


setKeyAlias

public void setKeyAlias(String alias)
Sets the alias name of the keypair and supporting certificate chain used by this Connector to authenticate itself to SSL clients.

Parameters:
alias - The alias name of the keypair and supporting certificate chain


setKeystoreFile

public void setKeystoreFile(String keystoreFile)


setKeystorePass

public void setKeystorePass(String keystorePass)
Set keystorePass


setMaxHttpHeaderSize

public void setMaxHttpHeaderSize(int size)
Set the maximum HTTP header size.


setMaxKeepAliveRequests

public void setMaxKeepAliveRequests(int mkar)
Set the maximum number of Keep-Alive requests to honor per connection.


setMaxPostSize

public void setMaxPostSize(int maxPostSize)
Set the maximum size of a POST which will be automatically parsed by the container.

Parameters:
maxPostSize - The new maximum size in bytes of a POST which will be automatically parsed by the container


setMaxProcessors

public void setMaxProcessors(int maxProcessors)
Set the maximum number of processors allowed, or <0 for unlimited.

Parameters:
maxProcessors - The new maximum processors


setMinProcessors

public void setMinProcessors(int minProcessors)
Set the minimum number of processors to start at initialization.

Parameters:
minProcessors - The new minimum processors


setPort

public void setPort(int port)
Set the port number on which we listen for requests.

Parameters:
port - The new port number


setProperty

public void setProperty(String name,
                        Object value)
Set a configured property.


setProtocol

public void setProtocol(String protocol)
Set the Coyote protocol which will be used by the connector.

Parameters:
protocol - The Coyote protocol name


setProtocolHandlerClassName

public void setProtocolHandlerClassName(String protocolHandlerClassName)
Set the class name of the Coyote protocol handler which will be used by the connector.

Parameters:
protocolHandlerClassName - The new class name


setProxyName

public void setProxyName(String proxyName)
Set the proxy server name for this Connector.

Parameters:
proxyName - The new proxy server name


setProxyPort

public void setProxyPort(int proxyPort)
Set the proxy server port for this Connector.

Parameters:
proxyPort - The new proxy server port


setRedirectPort

public void setRedirectPort(int redirectPort)
Set the redirect port number.
Specified by:
setRedirectPort in interface Connector

Parameters:
redirectPort - The redirect port number (non-SSL to SSL)


setScheme

public void setScheme(String scheme)
Set the scheme that will be assigned to requests received through this connector.
Specified by:
setScheme in interface Connector

Parameters:
scheme - The new scheme


setSecure

public void setSecure(boolean secure)
Set the secure connection flag that will be assigned to requests received through this connector.
Specified by:
setSecure in interface Connector

Parameters:
secure - The new secure connection flag


setServerSocketTimeout

public void setServerSocketTimeout(int serverSocketTimeout)
Set the server socket timeout for this Connector.

Parameters:


setService

public void setService(Service service)
Set the Service with which we are associated (if any).
Specified by:
setService in interface Connector

Parameters:
service - The service that owns this Engine


setSslProtocol

public void setSslProtocol(String sslProtocol)
Sets the SSL protocol variant to be used.

Parameters:
sslProtocol - SSL protocol variant


setSslProtocols

public void setSslProtocols(String sslProtocols)
Sets the SSL protocol variants to be enabled.

Parameters:
sslProtocols - Comma-separated list of SSL protocol variants


setTcpNoDelay

public void setTcpNoDelay(boolean tcpNoDelay)
Set the TCP no delay flag which will be set on the socket after accepting a connection.

Parameters:
tcpNoDelay - The new TCP no delay flag


setThreadPriority

public void setThreadPriority(int threadPriority)
Sets the processor thread priority.

Parameters:
threadPriority - The new priority level


setTomcatAuthentication

public void setTomcatAuthentication(boolean tomcatAuthentication)


setURIEncoding

public void setURIEncoding(String URIEncoding)
Set the URI encoding to be used for the URI.

Parameters:
URIEncoding - The new URI character encoding.


setUseBodyEncodingForURI

public void setUseBodyEncodingForURI(boolean useBodyEncodingForURI)
Set if the entity body encoding should be used for the URI.

Parameters:
useBodyEncodingForURI - The new value for the flag.


setXpoweredBy

public void setXpoweredBy(boolean xpoweredBy)
Enables or disables the generation of an X-Powered-By header (with value Servlet/2.4) for all servlet-generated responses returned by this Connector.

Parameters:
xpoweredBy - true if generation of X-Powered-By response header is to be enabled, false otherwise


start

public void start()
            throws LifecycleException
Begin processing requests via this Connector.
Specified by:
start in interface Lifecycle

Throws:
LifecycleException - if a fatal startup error occurs


stop

public void stop()
            throws LifecycleException
Terminate processing requests via this Connector.
Specified by:
stop in interface Lifecycle

Throws:
LifecycleException - if a fatal shutdown error occurs


Copyright B) 2000-2003 Apache Software Foundation. All Rights Reserved.