org.outerj.xreporter.http
Class HttpConnectorImpl

java.lang.Object
  extended byorg.apache.avalon.framework.logger.AbstractLogEnabled
      extended byorg.outerj.xreporter.http.HttpConnectorImpl
All Implemented Interfaces:
org.apache.avalon.framework.component.Composable, org.apache.avalon.framework.configuration.Configurable, HttpConnector, org.apache.avalon.framework.activity.Initializable, org.apache.avalon.framework.logger.LogEnabled, org.apache.avalon.framework.activity.Startable, org.apache.avalon.framework.thread.ThreadSafe

public class HttpConnectorImpl
extends org.apache.avalon.framework.logger.AbstractLogEnabled
implements HttpConnector, org.apache.avalon.framework.activity.Startable, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.thread.ThreadSafe, org.apache.avalon.framework.activity.Initializable, org.apache.avalon.framework.component.Composable

Implementation of HttpConnector based on Jetty. The port to which this server listens is configurable.

This block implements the xReporter HTTP interface as described in xReporter's documentation.

Errors that occur during the processing of requests are logged to a subcategory "request-errors". Messages from the http stack itself are logged to a subcategory "httpstack-messages".


Nested Class Summary
 class HttpConnectorImpl.AccessLogHandler
          A handler which will log all incoming HTTP requests.
 class HttpConnectorImpl.AdminHandler
           
protected  class HttpConnectorImpl.DataSourcesHandler
          Handles all URL's starting with '/datasources'
 class HttpConnectorImpl.ReportCatalogHandler
           
 class HttpConnectorImpl.ReportDefinitionHandler
           
protected  class HttpConnectorImpl.ReportsHandler
           
 class HttpConnectorImpl.SavedReportsHandler
           
protected  class HttpConnectorImpl.UserAndLangHandler
          Handler that checks for the presence of a user-parameter.
protected  class HttpConnectorImpl.XReporterLogSink
          Implementation of a Jetty LogSink that outputs the logs to an Avalon Logger.
 
Field Summary
protected  org.apache.avalon.framework.logger.Logger accessLogger
           
protected  org.mortbay.util.InetAddrPort bindAddress
           
protected  org.outerj.xreporter.blocktester.BlockTester blockTester
           
protected  ConnectionProviderManager connectionProviderManager
           
protected  DataSourceManager dataSourceManager
           
protected  org.apache.avalon.framework.logger.Logger errorLogger
           
protected  org.apache.avalon.framework.logger.Logger jettyLogger
           
protected  ReportManager reportManager
           
protected  ReportStore reportStore
           
protected static java.lang.String RES_BUNDLE
           
protected  ResourceManager resourceManager
           
protected  org.mortbay.http.HttpServer server
           
protected  UserManager userManager
           
protected static java.lang.String XREPORTER_LANG_REQATT
           
protected static java.lang.String XREPORTER_USER_REQATT
           
 
Constructor Summary
HttpConnectorImpl()
           
 
Method Summary
 void compose(org.apache.avalon.framework.component.ComponentManager componentManager)
           
 void configure(org.apache.avalon.framework.configuration.Configuration configuration)
           
 javax.xml.transform.sax.TransformerHandler createXmlSerializer(java.io.OutputStream os)
           
protected  void errorResponse(java.lang.String message, int code, org.mortbay.http.HttpResponse response)
           
protected  java.lang.String escapeSpecialXmlChars(java.lang.String text)
           
 void initialize()
           
protected  void logError(ResourceHandle resourceHandle, User user, java.lang.String path, java.lang.String notes, java.lang.Exception exc)
           
protected  int parseInt(java.lang.String supposedInt, int defaultValue)
           
protected  void sendLink(java.lang.String link, org.mortbay.http.HttpResponse response)
           
 void start()
           
 void stop()
           
protected  java.util.Map stringArrayMapToStringMap(java.util.Map map)
          Converts a map containing string arrays to a map containing strings.
 
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

bindAddress

protected org.mortbay.util.InetAddrPort bindAddress

server

protected org.mortbay.http.HttpServer server

dataSourceManager

protected DataSourceManager dataSourceManager

reportManager

protected ReportManager reportManager

userManager

protected UserManager userManager

resourceManager

protected ResourceManager resourceManager

connectionProviderManager

protected ConnectionProviderManager connectionProviderManager

reportStore

protected ReportStore reportStore

blockTester

protected org.outerj.xreporter.blocktester.BlockTester blockTester

accessLogger

protected org.apache.avalon.framework.logger.Logger accessLogger

errorLogger

protected org.apache.avalon.framework.logger.Logger errorLogger

jettyLogger

protected org.apache.avalon.framework.logger.Logger jettyLogger

XREPORTER_USER_REQATT

protected static final java.lang.String XREPORTER_USER_REQATT
See Also:
Constant Field Values

XREPORTER_LANG_REQATT

protected static final java.lang.String XREPORTER_LANG_REQATT
See Also:
Constant Field Values

RES_BUNDLE

protected static final java.lang.String RES_BUNDLE
See Also:
Constant Field Values
Constructor Detail

HttpConnectorImpl

public HttpConnectorImpl()
Method Detail

configure

public void configure(org.apache.avalon.framework.configuration.Configuration configuration)
               throws org.apache.avalon.framework.configuration.ConfigurationException
Specified by:
configure in interface org.apache.avalon.framework.configuration.Configurable
Throws:
org.apache.avalon.framework.configuration.ConfigurationException

compose

public void compose(org.apache.avalon.framework.component.ComponentManager componentManager)
             throws org.apache.avalon.framework.component.ComponentException
Specified by:
compose in interface org.apache.avalon.framework.component.Composable
Throws:
org.apache.avalon.framework.component.ComponentException

initialize

public void initialize()
                throws java.lang.Exception
Specified by:
initialize in interface org.apache.avalon.framework.activity.Initializable
Throws:
java.lang.Exception

start

public void start()
           throws java.lang.Exception
Specified by:
start in interface org.apache.avalon.framework.activity.Startable
Throws:
java.lang.Exception

stop

public void stop()
          throws java.lang.Exception
Specified by:
stop in interface org.apache.avalon.framework.activity.Startable
Throws:
java.lang.Exception

createXmlSerializer

public javax.xml.transform.sax.TransformerHandler createXmlSerializer(java.io.OutputStream os)
                                                               throws javax.xml.transform.TransformerConfigurationException
Throws:
javax.xml.transform.TransformerConfigurationException

sendLink

protected void sendLink(java.lang.String link,
                        org.mortbay.http.HttpResponse response)
                 throws java.io.IOException
Throws:
java.io.IOException

errorResponse

protected void errorResponse(java.lang.String message,
                             int code,
                             org.mortbay.http.HttpResponse response)
                      throws java.io.IOException
Throws:
java.io.IOException

escapeSpecialXmlChars

protected java.lang.String escapeSpecialXmlChars(java.lang.String text)

logError

protected void logError(ResourceHandle resourceHandle,
                        User user,
                        java.lang.String path,
                        java.lang.String notes,
                        java.lang.Exception exc)

stringArrayMapToStringMap

protected java.util.Map stringArrayMapToStringMap(java.util.Map map)
Converts a map containing string arrays to a map containing strings. Only the first value of the array is retained. The keys should be strings.


parseInt

protected int parseInt(java.lang.String supposedInt,
                       int defaultValue)