|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.avalon.framework.logger.AbstractLogEnabled
org.apache.excalibur.instrument.AbstractLogEnabledInstrumentable
org.apache.excalibur.instrument.manager.http.server.AbstractLogEnabledInstrumentableStartable
org.apache.excalibur.instrument.manager.http.server.AbstractSocketServer
org.apache.excalibur.instrument.manager.http.server.HTTPServer
public class HTTPServer
Field Summary | |
---|---|
private java.lang.String |
m_accessLogFile
Access log file name. |
private java.io.File |
m_currentLogFile
The currently open log file. |
private java.io.PrintWriter |
m_currentLogWriter
The currently open log PrintWriter. |
private java.text.SimpleDateFormat |
m_dayFormat
DateFormat used when generating log file names. |
private HTTPURLHandler[] |
m_handlerArray
Optimized array of the handler list that lets us avoid synchronization |
private java.util.List |
m_handlers
List of registered HTTPURLHandlers. |
private org.apache.excalibur.instrument.CounterInstrument |
m_instrumentRequestBytes
Number of request bytes received from the client. |
private org.apache.excalibur.instrument.CounterInstrument |
m_instrumentRequests
Number of requests. |
private org.apache.excalibur.instrument.CounterInstrument |
m_instrumentResponseBytes
Number of response bytes sent to the client. |
private java.text.SimpleDateFormat |
m_logTimeFormat
DateFormat used when generating log entries. |
Fields inherited from interface org.apache.excalibur.instrument.Instrumentable |
---|
EMPTY_INSTRUMENT_ARRAY, EMPTY_INSTRUMENTABLE_ARRAY |
Constructor Summary | |
---|---|
HTTPServer(int port,
java.net.InetAddress bindAddress)
Creates a new HTTPServer. |
Method Summary | |
---|---|
private void |
decodeParameter(java.util.Map params,
java.lang.String pair,
java.lang.String encoding)
|
private void |
decodeQuery(java.util.Map params,
java.lang.String query,
java.lang.String encoding)
|
private HTTPURLHandler[] |
getHandlers()
|
private boolean |
handleRequest(java.io.InputStream is,
java.io.OutputStream os,
java.lang.String ip)
|
protected void |
handleSocket(java.net.Socket socket)
Handle a newly connected socket. |
private void |
logAccessEvent(java.lang.String ip,
java.lang.String method,
java.lang.String url,
int errorCode,
int contentLength,
java.lang.String referrer,
java.lang.String userAgent)
|
void |
registerHandler(HTTPURLHandler handler)
Registers a new HTTP URL Handler with the server. |
void |
setAccessLogFile(java.lang.String accessLogFile)
Access log file name. |
void |
setParameter(java.util.Map params,
java.lang.String param,
java.lang.String value)
|
void |
stop()
Stops the server. |
Methods inherited from class org.apache.excalibur.instrument.manager.http.server.AbstractSocketServer |
---|
getSoTimeout, runner, start, stopRunner |
Methods inherited from class org.apache.excalibur.instrument.manager.http.server.AbstractLogEnabledInstrumentableStartable |
---|
isStopping, run |
Methods inherited from class org.apache.excalibur.instrument.AbstractLogEnabledInstrumentable |
---|
addChildInstrumentable, addInstrument, getChildInstrumentables, getInstrumentableName, getInstruments, setInstrumentableName |
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled |
---|
enableLogging, getLogger, setupLogger, setupLogger, setupLogger |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private java.util.List m_handlers
private HTTPURLHandler[] m_handlerArray
private java.lang.String m_accessLogFile
private java.io.File m_currentLogFile
private java.io.PrintWriter m_currentLogWriter
private java.text.SimpleDateFormat m_dayFormat
private java.text.SimpleDateFormat m_logTimeFormat
private org.apache.excalibur.instrument.CounterInstrument m_instrumentRequests
private org.apache.excalibur.instrument.CounterInstrument m_instrumentResponseBytes
private org.apache.excalibur.instrument.CounterInstrument m_instrumentRequestBytes
Constructor Detail |
---|
public HTTPServer(int port, java.net.InetAddress bindAddress)
port
- The port on which the server will listen.bindAddress
- The address on which the server will listen for
connections.Method Detail |
---|
public void stop() throws java.lang.Exception
stop
in interface org.apache.avalon.framework.activity.Startable
stop
in class AbstractLogEnabledInstrumentableStartable
java.lang.Exception
- If there are any problems stopping the component.protected void handleSocket(java.net.Socket socket)
handleSocket
in class AbstractSocketServer
socket
- Newly connected Socket to be handled.public void setAccessLogFile(java.lang.String accessLogFile)
accessLogFile
- Name of the log file or null if disabled.public void registerHandler(HTTPURLHandler handler)
handler
- The handler to register.private void logAccessEvent(java.lang.String ip, java.lang.String method, java.lang.String url, int errorCode, int contentLength, java.lang.String referrer, java.lang.String userAgent)
private boolean handleRequest(java.io.InputStream is, java.io.OutputStream os, java.lang.String ip) throws java.io.IOException
java.io.IOException
public void setParameter(java.util.Map params, java.lang.String param, java.lang.String value)
private void decodeParameter(java.util.Map params, java.lang.String pair, java.lang.String encoding)
private void decodeQuery(java.util.Map params, java.lang.String query, java.lang.String encoding)
private HTTPURLHandler[] getHandlers()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |