mondrian.xmla.impl
Class DynamicDatasourceXmlaServlet

java.lang.Object
  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by mondrian.xmla.XmlaServlet
              extended by mondrian.xmla.impl.DefaultXmlaServlet
                  extended by mondrian.xmla.impl.DynamicDatasourceXmlaServlet
All Implemented Interfaces:
Serializable, Servlet, ServletConfig, XmlaConstants
Direct Known Subclasses:
DynamicDatasourceXmlaServletTest.MockDynamicDatasourceXmlaServlet

public class DynamicDatasourceXmlaServlet
extends DefaultXmlaServlet

Extends DefaultXmlaServlet to add dynamic datasource loading capability. Limitations : Catalog name should be unique across the datasources

Author:
Thiyagu, Ajit
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class mondrian.xmla.XmlaServlet
XmlaServlet.Phase
 
Field Summary
protected  URL dataSourcesConfigUrl
           
protected  String lastDataSourcesConfigString
           
 
Fields inherited from class mondrian.xmla.impl.DefaultXmlaServlet
nl
 
Fields inherited from class mondrian.xmla.XmlaServlet
catalogLocator, charEncoding, dataSources, DEFAULT_DATASOURCE_FILE, PARAM_CALLBACKS, PARAM_CHAR_ENCODING, PARAM_DATASOURCES_CONFIG, PARAM_OPTIONAL_DATASOURCE_CONFIG, xmlaHandler
 
Fields inherited from interface mondrian.xmla.XmlaConstants
CHH_AUTHORIZATION_CODE, CHH_AUTHORIZATION_FAULT_FS, CHH_CODE, CHH_FAULT_FS, CLIENT_FAULT_FC, CONTENT_DEFAULT, CONTEXT_ROLE, CONTEXT_ROLE_NAME, CONTEXT_XMLA_SESSION_ID, CONTEXT_XMLA_SESSION_STATE, CONTEXT_XMLA_SESSION_STATE_BEGIN, CONTEXT_XMLA_SESSION_STATE_END, CONTEXT_XMLA_SESSION_STATE_WITHIN, CPOSTA_CODE, CPOSTA_FAULT_FS, CPREA_CODE, CPREA_FAULT_FS, FAULT_ACTOR, FAULT_FC_PREFIX, FAULT_FS_PREFIX, FAULT_NS_PREFIX, HSB_ACCESS_DENIED_CODE, HSB_ACCESS_DENIED_FAULT_FS, HSB_BAD_COMMAND_CODE, HSB_BAD_COMMAND_FAULT_FS, HSB_BAD_METHOD_CODE, HSB_BAD_METHOD_FAULT_FS, HSB_BAD_METHOD_NS_CODE, HSB_BAD_METHOD_NS_FAULT_FS, HSB_BAD_NON_NULLABLE_COLUMN_CODE, HSB_BAD_NON_NULLABLE_COLUMN_FAULT_FS, HSB_BAD_PROPERTIES_CODE, HSB_BAD_PROPERTIES_FAULT_FS, HSB_BAD_PROPERTIES_LIST_CODE, HSB_BAD_PROPERTIES_LIST_FAULT_FS, HSB_BAD_REQUEST_TYPE_CODE, HSB_BAD_REQUEST_TYPE_FAULT_FS, HSB_BAD_RESTRICTION_LIST_CODE, HSB_BAD_RESTRICTION_LIST_FAULT_FS, HSB_BAD_RESTRICTION_TYPE_CODE, HSB_BAD_RESTRICTION_TYPE_FAULT_FS, HSB_BAD_RESTRICTION_VALUE_CODE, HSB_BAD_RESTRICTION_VALUE_FAULT_FS, HSB_BAD_RESTRICTIONS_CODE, HSB_BAD_RESTRICTIONS_FAULT_FS, HSB_BAD_SOAP_BODY_CODE, HSB_BAD_SOAP_BODY_FAULT_FS, HSB_BAD_STATEMENT_CODE, HSB_BAD_STATEMENT_FAULT_FS, HSB_CONNECTION_DATA_SOURCE_CODE, HSB_CONNECTION_DATA_SOURCE_FAULT_FS, HSB_DISCOVER_FORMAT_CODE, HSB_DISCOVER_FORMAT_FAULT_FS, HSB_DISCOVER_UNPARSE_CODE, HSB_DISCOVER_UNPARSE_FAULT_FS, HSB_DRILL_THROUGH_FORMAT_CODE, HSB_DRILL_THROUGH_FORMAT_FAULT_FS, HSB_DRILL_THROUGH_NOT_ALLOWED_CODE, HSB_DRILL_THROUGH_NOT_ALLOWED_FAULT_FS, HSB_DRILL_THROUGH_SQL_CODE, HSB_DRILL_THROUGH_SQL_FAULT_FS, HSB_DRILLDOWN_BAD_FIRST_ROWSET_CODE, HSB_DRILLDOWN_BAD_FIRST_ROWSET_FAULT_FS, HSB_DRILLDOWN_BAD_MAXROWS_CODE, HSB_DRILLDOWN_BAD_MAXROWS_FAULT_FS, HSB_DRILLDOWN_ERROR_CODE, HSB_DRILLDOWN_ERROR_FAULT_FS, HSB_EXECUTE_QUERY_CODE, HSB_EXECUTE_QUERY_FAULT_FS, HSB_EXECUTE_UNPARSE_CODE, HSB_EXECUTE_UNPARSE_FAULT_FS, HSB_PARSE_QUERY_CODE, HSB_PARSE_QUERY_FAULT_FS, HSB_PROCESS_CODE, HSB_PROCESS_FAULT_FS, HSB_UNKNOWN_CODE, HSB_UNKNOWN_FAULT_FS, HSB_UNSUPPORTED_OPERATION_CODE, HSB_UNSUPPORTED_OPERATION_FAULT_FS, HSH_BAD_SESSION_ID_CODE, HSH_BAD_SESSION_ID_FAULT_FS, HSH_MUST_UNDERSTAND_CODE, HSH_MUST_UNDERSTAND_FAULT_FS, HSH_UNKNOWN_CODE, HSH_UNKNOWN_FAULT_FS, METHOD_DISCOVER, METHOD_EXECUTE, MONDRIAN_NAMESPACE, MSM_UNKNOWN_CODE, MSM_UNKNOWN_FAULT_FS, MUST_UNDERSTAND_FAULT_FC, NS_SOAP_ENC_1_1, NS_SOAP_ENC_1_2, NS_SOAP_ENV_1_1, NS_SOAP_ENV_1_2, NS_SQL, NS_XMLA, NS_XMLA_EMPTY, NS_XMLA_EX, NS_XMLA_MDDATASET, NS_XMLA_ROWSET, NS_XSD, NS_XSI, SERVER_FAULT_FC, SOAP_MUST_UNDERSTAND_ATTR, SOAP_PREFIX, UNKNOWN_ERROR_CODE, UNKNOWN_ERROR_FAULT_FS, USM_DOM_FACTORY_CODE, USM_DOM_FACTORY_FAULT_FS, USM_DOM_PARSE_CODE, USM_DOM_PARSE_FAULT_FS, USM_DOM_PARSE_IO_CODE, USM_DOM_PARSE_IO_FAULT_FS, USM_REQUEST_INPUT_CODE, USM_REQUEST_INPUT_FAULT_FS, USM_REQUEST_STATE_CODE, USM_REQUEST_STATE_FAULT_FS, USM_UNKNOWN_CODE, USM_UNKNOWN_FAULT_FS, VERSION_MISSMATCH_FAULT_FC, XMLA_BEGIN_SESSION, XMLA_END_SESSION, XMLA_SESSION, XMLA_SESSION_ID
 
Constructor Summary
DynamicDatasourceXmlaServlet()
           
 
Method Summary
(package private)  boolean areCatalogsEqual(DataSourcesConfig.Catalog catalog1, DataSourcesConfig.Catalog catalog2)
           
protected  void doPost(HttpServletRequest request, HttpServletResponse response)
          Main entry for HTTP post method
(package private)  void flushCatalog(String catalogName)
           
(package private)  void flushObsoleteCatalogs(DataSourcesConfig.DataSources newDataSources)
           
protected  boolean hasDataSourcesContentChanged(String dataSourcesConfigString)
           
protected  DataSourcesConfig.DataSources parseDataSourcesUrl(URL dataSourcesConfigUrl)
          Overides XmlaServlet.parseDataSourcesUrl to store dataSorucesConfigUrl, Datasoruces Configuration content
(package private)  void reloadDataSources()
          Checks for updates to datasources content, flushes obsolete catalogs
 
Methods inherited from class mondrian.xmla.impl.DefaultXmlaServlet
generateSessionId, getDocumentBuilderFactory, getSessionId, handleFault, handleSoapBody, handleSoapHeader, init, marshallSoapMessage, unmarshallSoapMessage
 
Methods inherited from class mondrian.xmla.XmlaServlet
addCallback, addToDataSources, getBooleanInitParameter, getCallbacks, getParameter, getXmlaHandler, initCallbacks, initCharEncodingHandler, makeCatalogLocator, makeDataSources, parseDataSources, readDataSourcesContent
 
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPut, doTrace, getLastModified, service, service
 
Methods inherited from class javax.servlet.GenericServlet
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

dataSourcesConfigUrl

protected URL dataSourcesConfigUrl

lastDataSourcesConfigString

protected String lastDataSourcesConfigString
Constructor Detail

DynamicDatasourceXmlaServlet

public DynamicDatasourceXmlaServlet()
Method Detail

doPost

protected void doPost(HttpServletRequest request,
                      HttpServletResponse response)
               throws ServletException,
                      IOException
Description copied from class: XmlaServlet
Main entry for HTTP post method

Overrides:
doPost in class XmlaServlet
Throws:
ServletException
IOException

reloadDataSources

void reloadDataSources()
Checks for updates to datasources content, flushes obsolete catalogs


hasDataSourcesContentChanged

protected boolean hasDataSourcesContentChanged(String dataSourcesConfigString)

parseDataSourcesUrl

protected DataSourcesConfig.DataSources parseDataSourcesUrl(URL dataSourcesConfigUrl)
Overides XmlaServlet.parseDataSourcesUrl to store dataSorucesConfigUrl, Datasoruces Configuration content

Overrides:
parseDataSourcesUrl in class XmlaServlet
Parameters:
dataSourcesConfigUrl -

flushObsoleteCatalogs

void flushObsoleteCatalogs(DataSourcesConfig.DataSources newDataSources)

flushCatalog

void flushCatalog(String catalogName)

areCatalogsEqual

boolean areCatalogsEqual(DataSourcesConfig.Catalog catalog1,
                         DataSourcesConfig.Catalog catalog2)

SourceForge.net_Logo