
tim@935: \section{General Settings}
tim@935: \subsection{Structure of Configurationfile}
tim@936: The Configuration of the Artifact-Server will generally be done in one single
tim@936: File. This file is called conf.xml and is stored in the folder conf of the 
tim@936: Artifact-Server.
tim@936: Some additional Configurations will be done using Systemproperties. This 
tim@936: Properties will be listed in the last Section of this chapter.
tim@936: 
tim@936: The Configuration is modelled using XML.
tim@936: The main Structure of the XML-Document now will be explained:
tim@936: 
tim@936: \begin{verbatim}
tim@936: artifact-database
tim@936: |--artifact-factories
tim@936: |--artifacts
tim@936: |--gnv
tim@936: |  |--charttemplate
tim@936: |  |--palettes
tim@936: |  |--horizontal-cross-section-profile
tim@936: |  |--horizontal-cross-section
tim@936: |  |--vertical-cross-section
tim@936: |  |--shapefile-directory
tim@936: |  `--map-generator
tim@936: |--mapserver
tim@936: |--velocity
tim@936: |--ehcache
tim@936: |--geo-backend
tim@936: |--rest-server
tim@936: |--cleaner
tim@936: `--database
tim@936: \end{verbatim}
tim@936: 
tim@936: \subsubsection{artifact-factories}
tim@937: 
tim@937: These Section configures the Factories for Artifacts which can be used.
tim@937: The meaning of artifact-factories are explained in Section TODO: LINK to Model of Transition
tim@937: 
tim@936: \subsubsection{artifacts}
tim@937: 
tim@937: These Section configures the Artifacts which could be reached using the Artifact-Server.
tim@937: The meaning of artifacts are explained in Section TODO: LINK to Model of Transition
tim@937: 
tim@936: \subsubsection{gnv}
tim@937: 
tim@937: This Section configures all GNV-specific settings of the Artifact-Server.
tim@937: //TODO add paragraphs and explain the child-elements.
tim@937: 
tim@936: \subsubsection{mapserver}
tim@937: 
tim@937: The Section Mapserver is introduced to be able to configure all Settings which 
tim@937: are required to setup the WMS-Export of the GNV-Artifacts.
tim@937: 
tim@937: It is possible to Configure the following settings:
tim@937: 
tim@937: \begin{itemize}
tim@937:     \item server: The URL the WMS of the GNV-Artifacts will be reached from
tim@937:                   Clients.
tim@937: \end{itemize}
tim@937: 
tim@936: \subsubsection{velocity}
tim@937: 
tim@937: Velocity is an Library which is used in this Project.
tim@937: Velocity has it's own Logging, so that it is necessary to configure
tim@937: this to get Loginformations.
tim@937: 
tim@937: \begin{itemize}
tim@937:     \item logfile: The absolute Path to the Logfile of Velocity.
tim@937: \end{itemize}
tim@937: 
tim@936: \subsubsection{ehcache}
tim@937: 
tim@937: The Ehcache is used to implement an Cache storing the Thematic-Data of the
tim@937: different Sessions.
tim@937: 
tim@937: It is possible to configure this Cache in many ways. To realize this it is
tim@937: possible to configure the following settings:
tim@937: 
tim@937: \begin{itemize}
tim@937:     \item configuration: The absolute Path to the Configuration-File.
tim@937:                          It is possible to start with \$\{artifacts.config.dir\}
tim@937:                          to reference the file from the Directory which includes
tim@937:                          the Configuration
tim@937: \end{itemize}
tim@937: 
tim@937: 
tim@936: \subsubsection{geo-backend}
tim@936: 
tim@937: The geo-backend is an separate Module of this Project. It encapsulate the logic
tim@937: which is required to provide the Access to the Databasebackend.
tim@937: At this Time only the Access to the ArcSDE is implemented.
tim@937: 
tim@937: To setup the geo-backend the following settings are required:
tim@937: 
tim@937: \begin{itemize}
tim@937:     \item backend-configuration: The absolute Path to the File which contains the
tim@937:                                  properties to establish the Connection to the 
tim@937:                                  Databasebackend.
tim@937:     \item query-configuration: The absolute Path to the File which contains all
tim@937:                                SQL-Statements which are required to fetch the
tim@937:                                Thematic-Data
tim@937: \end{itemize}
tim@937: 
tim@937: Both Path can start with \$\{artifacts.config.dir\} to reference the file from 
tim@937: the Directory which includes the Configuration.
tim@937: \paragraph{Backend-Configuration (arcsdeconnectionpool.properties)}
tim@937: 
tim@937: \paragraph{Query-configuration (queries.properties)}
tim@937: 
tim@937: This File contains Key-Value-Pairs to define SQL-Statements.
tim@937: All Queries will be handle using the Prepared-Statement-Syntax using "?"
tim@937: to define an Place where an dynamic Value should be placed into the Statement.
tim@937: 
tim@937: There is one special Implementation to support spatial access to the ArcSDE,
tim@937: because the ArcSDE does not support the Access to spatial Objects using the
tim@937: definition of the Simple Feature Specification for SQL of the OGC.
tim@937: 
tim@937: It was necessary to implement this mechanism to simulate the Access.
tim@937: 
tim@937: All Queries which contains the following Literals will be handle separate
tim@937: using the ArcSDE-API.
tim@937: 
tim@937: \begin{itemize}
tim@937:     \item ST\_ASTEXT(SHAPE): Will return the Geometry as an WellKnowText (WKT)
tim@937:     \item ST\_ASTEXT(RASTER): Will return the Raster in an readable Way.
tim@937:     \item INTERSECTS(SHAPE,"?"): Will only return the Elements which Geometry
tim@937:                                  intersects the given Geometry ("?" will be 
tim@937:                                  replace with an WKT) 
tim@937: \end{itemize}
tim@936: 
tim@936: \subsubsection{rest-server}
tim@936: \subsubsection{cleaner}
tim@936: \subsubsection{database}
tim@936: 
tim@936: 
tim@935: \subsection{Set the Communicationport}
tim@935: \subsection{Logging}
tim@936: \subsection{Configure ArtifactServer using Systemproperties}
tim@936: \begin{itemize}
tim@936:     \item artifact.database.dir The folder where the Configuration is located-
tim@937:     \item query.executor.factory: The absolute  Classname which QueryExecutorfactory should be used
tim@936:     \begin{itemize}
tim@936:         \item de.intevation.gnv.geobackend.base.query.QueryExecutorFactory :
tim@936:               Standardfactory without any Addons.
tim@936:         \item de.intevation.gnv.geobackend.base.query.CachingQueryExecutorFactory: 
tim@936:               Factory with Cache for SQL-Query-Results
tim@936:     \end{itemize}
tim@936:     \item caching.query.executor.config: The absolute Path to the Configurationfile 
tim@936:                                          for the Cache which stores the SQL-Query-
tim@936:                                          Results. This only take effect if the
tim@936:                                          query.executor.factory-Property is set
tim@936:                                          to de.intevation.gnv.geobackend.base.query.CachingQueryExecutorFactory.
tim@936:     \item caching.cleaner.interval: The Interval in seconds the Caches should be cleaned using the Cachecleaner
tim@936: \end{itemize}
tim@935: 




