View System Documentation - System Configuration
This page provides an overview on how to configure the application. Since this application is data driven and Spring pluggable the options can be anywhere from very simple (using standard deployments) to extremely complex (changing file locations, URL patterns, error handling, integration with other sites etc.). Both options are briefly discussed below with the basic configuration being described in detail and the complex configuration simply being outlined.
Basic ConfigurationThe basic configuration is based on the standard application deployments with files remaining in their current directories etc. There are only four settings that might need to be changed - depending on the desired features and where/how the other applications are deployed. They are:
Site Specific "QueryApplication.URL" PropertyIf the real time query capability is desired then the IBIS-Q CGI app's URL needs to be set. The default, system wide setting, is contained within the IBIS-PH View System's "site_specfic.properties" file which is located in the deployed app's webapp "WEB-INF/config" directory. This property's name is "QueryApplication.URL" and its value is the complete URL to the backend IBIS-Q CGI query system executable. Below is an example for the IBIS-Q CGI app installed and configured on the same MS-Windows based machine.
- This value is the *BASE* URL - not the complete URL. Its value should be inclusive up to the CGI executable name/path. The view system will use this value then append all of the user specified filter criteria to the end of this value to issue the HTTP GET to the IBIS-Q CGI application.
- If the property name does not match identically and/or this value is not set to the correct URL the query system will not work with the query result page giving a connection type error.
- This property value can also be set in the Spring query.xml config file or overridden in the Query Module XML file.
Site Specific "AdminSystem.BaseSaveResponse.URL" PropertyIf the User Survey page is used then the system needs to know where to save that data to. The save survey feature is implemented in the IBIS-PH Data Administration application. Thus this URL needs to point to the handler for this. This value is also contained within the "WEB-INF/config/site_specific.properties" file. Shown below is an example using the typical admin app deployed as "ibisph-admin" which is on the same server using port 80.
The address needs to be a complete URL with protocol, ports etc. It can be the machine's IP address or name and request that points to an admin servlet/controller that takes the data and saves it to the db. Note that the URL is the base. The view system's controllers will auto add the specific request parameter to the request so it should NOT be added here. One option is to have the HTML form itself contain a hidden element that is named correctly and has the appropriate request value. This name/value pair would then be passed to the admin system where the correct save request could me made.
"Publish.AdminVerification.Filter" Parameter ValueIf the indicator profile reports are being used then the IBIS-PH Data Administration system must also be used as this enables the creation and publishing of those indicator profile reports. A basic security mechanism was put in place to make sure that "publish" requests were accepted only from one machine. That machine's IP address is specified as a Java filter init param. This value is located within the "WEB-INF/web.xml" file under the "Publish.AdminVerification.Filter" filter's "param-name" or "IPAddress".
The "value" is an IP address segment (left to right significance) which is used to identify/allow publishing requests to only come from certain addresses. Localhost should be "127.0.0.1", If null/blank then ANY computer on the net is allowed to make a publishing request (if it responds with the correct XML data). The address does NOT have to match exactly. A value of "254.67" means that any address that starts with 254.67 is valid (e.g. 254.67.*.* or 254.67.255.255 in networking terms). Shown below is an example using the typical admin app deployed on the same server.
<filter> <filter-name>Publish.AdminVerification.Filter</filter-name> <filter-class> org.ibisph.filter.RequestFromSecurityFilter </filter-class> <init-param> <param-name>IPAddress</param-name> <param-value>127.0.0</param-value> </init-param> </filter>Note that this MUST be an IP address and not a name. 127.0.0.1=localhost. IMPORTANT: Since the controlling filter is not controlled in a Spring/ACEGI environment, this property value is not read from the site_specific.properties files. It needs to be set in the web.xml file. It is left in the property file so that it is documented and for future Spring versions that implement the ACEGI filter type proxy.
Site Specific Application Logging PropertiesTo control the logging the "WEB-INF/config/site_specific.properties" file contains the following properties which control the types of content placed in the "appX.log" file and the system log file ("tomcat/logs/catalina.out" in the case of Tomcat).
Logger.SysOutLogLevel =255 Logger.FileLogLevel =255 Logger.NumberOfLogFiles =1 Logger.MaxFileSize =100000Log levels correspond to a bit map mask which is used to control which items should be logged. This is an 8 bit mask so the values are 0=nothing to 255=everything. There are two log levels - one is the system output console and the other is an optional log file. A general safe log level is to turn off debug and info messages (value=252). To only show major errors use 240. To turn off the log file all together simply remove the filename (or set the log level to 0).
See the "WEB-INF/config/spring/common.xml" file for specifying the log filename and the date format to be used.
Complex ConfigurationThe complex configuration consists of anything that is possible to do with a Java application server and a pluggable Spring bean MVC type environment. Listed below (in very little detail) are some things that might be configured:
web.xmlWeb application file which contains filter URL mapping and definitions, servlet URL mapping and definitions, error page handling, default index/welcome page, app session timeout, app's mime types returned, etc. See the Servlet Filters documentation page for a description on each filter that the app can utilize.
Spring bean configuration filesServlet controller URL mappings, XML and XSLT file path base locations, XSLT and XML system ID property settings for the various pages, any customized code controller configurations, .html path to XML/XSLT transformation mappings, and more.
Java Application Server's server.xml and web.xml (in the case of Tomcat)Allows setting of ports, contexts, default time outs, and much more - see the appropriate application server documentation.