diff --git a/src/tap/config/tap_configuration_file.html b/src/tap/config/tap_configuration_file.html index 45260547cba1c564b807211db18f928e762952c9..122097d893de8a1d6871c3edab5bbcfb9e7400dd 100644 --- a/src/tap/config/tap_configuration_file.html +++ b/src/tap/config/tap_configuration_file.html @@ -542,13 +542,27 @@ <td> <p>Comma separated list of output formats for query results.</p> <p>Allowed values are: votable (or 'vot'), fits, text, csv, tsv, json and html.</p> - <p>The special value "ALL" will select all formats provided by the library.</p> - <p>The VOTable format may be more detailed with the following syntax: (<code>serialization</code>,<code>version</code>):<code>mime_type</code>:<code>short_mime_type</code>. - The MIME type part and the parameters part may be omitted (e.g. votable:application/xml:votable , votable(td,1.3)]). - Empty string values are allowed for each values (e.g. votable():: , votable(td)::votable).</p> - <p>It is also possible to define a custom Separated Value format, different from CSV and TSV, thanks to the following syntax: sv(<code>separator</code>):<code>mime_type</code>:<code>short_mime_type</code>. - On the contrary to the VOTable syntax, the parameter (i.e. separator) MUST BE provided. The MIME type part may be omitted ; then the MIME type will be set by default to text/plain.</p> - <p>There is finally a last possible value: a class name of a class implementing OutputFormat and having at least one constructor with exactly one parameter of type tap.ServiceConnection.</p> + <p>The VOTable format may be more detailed with the following syntax: + (<code>serialization</code>,<code>version</code>):<code>mime_type</code>:<code>short_mime_type</code>. + The MIME type part and the parameters part may be omitted + (e.g. votable:application/xml:votable , votable(td,1.3)]). + Empty string values are allowed for each values (e.g. votable():: , + votable(td)::votable).</p> + <p>The default VOTable format (i.e. serialization and version) is the one defined + with the short form `votable`. It is be default set to + `vot(binary,1.3)::votable` (see the special value `ALL` below). To change it + just define a VOTable format with the short form `votable`.</p> + <p>It is also possible to define a custom Separated Value format, different from + CSV and TSV, thanks to the following syntax: + sv(<code>separator</code>):<code>mime_type</code>:<code>short_mime_type</code>. On the contrary to the VOTable + syntax, the parameter (i.e. separator) MUST BE provided. The MIME type part + may be omitted ; then the MIME type will be set by default to text/plain.</p> + <p>There is finally a last possible value: a class name of a class implementing + OutputFormat and having at least one constructor with exactly one parameter of + type tap.ServiceConnection.</p> + <p>The special value <code>ALL</code> will select all formats provided by the library. It is + equivalent to the following:</p> + <pre>output_formats = vot(binary,1.3)::votable, vot(td,1.3)::votable/td, vot(binary,1.3)::votable/b, vot(binary2,1.3)::votable/b2, vot(fits,1.3)::votable/fits, fits, csv, tsv, text, html,json</pre> <p><em>Default: <code>ALL</code></em></p> </td> <td><ul><li>votable</li><li>vot</li><li>vot(td,1.2)::votable</li><li>json,html ,csv, text</li><li>sv(|):text/psv:psv</li><li>sv([])</li><li>{apackage.FooOutputFormat}</li></ul></td> @@ -669,14 +683,14 @@ values. A list of values must be indicated between parenthesis and values must be separated by a pipe. </p> <p>Allowed values for <code>Frame</code> are: <code>ICRS</code>, <code>FK4</code>, - <code>FK5</code>, <code>ECLIPTIC</code>, <code>GALACTIC</code> and <code>UNKNOWNFRAME</code>.</p> + <code>FK5</code>, <code>J2000</code>, <code>ECLIPTIC</code>, <code>GALACTIC</code> and <code>UNKNOWNFRAME</code>.</p> <p>Allowed values for <code>RefPos</code> are: <code>BARYCENTER</code>, <code>GEOCENTER</code>, <code>HELIOCENTER</code>, <code>LSR</code>, <code>TOPOCENTER</code>, <code>RELOCATABLE</code> and <code>UNKNOWNREFPOS</code>.</p> <p>Allowed values for <code>Flavor</code> are: <code>CARTESIAN2</code>, <code>CARTESIAN3</code> and <code>SPHERICAL2</code>.</p> <p> - If the special value <em>NONE</em> is given instead of a list of allowed coordinate systems, + If the special value <code>NONE</code> is given instead of a list of allowed coordinate systems, no coordinate system will be allowed. And if the list is empty, any coordinate system will be allowed. </p> <p><em>By default, any coordinate system is allowed.</em></p> @@ -691,7 +705,7 @@ <p>Comma-separated list of all allowed geometries.</p> <p> Each item of the list must be the name (whatever is the case) of an ADQL geometrical function (e.g. INTERSECTS, COORDSYS, POINT) to allow. - If the list is empty (no item), all functions are allowed. And if the special value <em>NONE</em> is given, no ADQL function will be allowed. + If the list is empty (no item), all functions are allowed. And if the special value <code>NONE</code> is given, no ADQL function will be allowed. </p> <p><em>By default, all ADQL geometrical functions are allowed.</em></p> </td> @@ -711,7 +725,7 @@ (and more particularly a name) different in ADQL and in SQL. </p> <p> - If the list is empty (no item), all unknown functions are forbidden. And if the special value <em>ANY</em> is given, any unknown function is allowed ; + If the list is empty (no item), all unknown functions are forbidden. And if the special value <code>ANY</code> is given, any unknown function is allowed ; consequently the unknown ADQL functions will be translated into SQL as they are in ADQL. </p> <p><em>By default, no unknown function is allowed.</em></p> @@ -821,4 +835,4 @@ document.getElementById("nbTotal").textContent = nb; </script> </body> -</html> \ No newline at end of file +</html> diff --git a/src/tap/config/tap_full.properties b/src/tap/config/tap_full.properties index 42e445510db384cc33a9dff63ce1be089902e1aa..0fbf1deafe7867ce2bdee67fc08be79ef8323b9a 100644 --- a/src/tap/config/tap_full.properties +++ b/src/tap/config/tap_full.properties @@ -1,11 +1,11 @@ -########################################################## -# FULL TAP CONFIGURATION FILE # -# # -# TAP Version: 2.1 # -# Date: 24 Jan. 2018 # -# Author: Gregory Mantelet (ARI) # -# # -########################################################## +################################################################################ +# FULL TAP CONFIGURATION FILE # +# # +# TAP Version: 2.1 # +# Date: 11 Feb. 2018 # +# Author: Gregory Mantelet (ARI) # +# # +################################################################################ ########### # GENERAL # @@ -15,18 +15,29 @@ # This property lets set a custom home page. # # 4 different kinds of value are accepted: -# * nothing (default): the default home page provided by the library (just a simple HTML page displaying a list of all available TAP resources). -# * name or relative path of a file: this method MUST be chosen if the new home page is a JSP file. This file MUST be inside the directory WebContent of your web application. -# * a URI starting with file://: in this method the local file pointed by the URI will be merely returned when the home page will be requested. -# * a URL: here, a redirection toward this URL will be made at each request on the home page -# * a class name: the class name of an extension of tap.resource.HomePage which must replace the default home page resource. -# This class MUST have at least one constructor with exactly one parameter not NULL of type tap.resource.TAP. +# * nothing (default): the default home page provided by the library (just +# a simple HTML page displaying a list of all available +# TAP resources). +# * name or relative path of a file: this method MUST be chosen if the new +# home page is a JSP file. This file MUST +# be inside the directory WebContent of +# your web application. +# * a URI starting with file://: in this method the local file pointed by +# the URI will be merely returned when the +# home page will be requested. +# * a URL: here, a redirection toward this URL will be made at each request +# on the home page +# * a class name: the class name of an extension of tap.resource.HomePage +# which must replace the default home page resource. This +# class MUST have at least one constructor with exactly one +# parameter not NULL of type tap.resource.TAP. home_page = # [OPTIONAL] # MIME type of the service home page. # -# This property is used only if the specified "home_page" is a local file path (i.e. if "home_page=file://..."). +# This property is used only if the specified "home_page" is a local file path +# (i.e. if "home_page=file://..."). # # If no value is provided "text/html" will be set by default. # @@ -53,45 +64,59 @@ service_description = My TAP Service is so amazing! You should use it with your # Method to use in order to create database connections. # # Only two values are supported: -# * jndi: database connections will be supplied by a Datasource whose the JNDI name must be given. This method may propose connection pooling in function of the datasource configuration. -# * jdbc: the library will create itself connections when they will be needed thanks to the below JDBC parameters. This method does not propose any connection pooling. +# * jndi: database connections will be supplied by a Datasource whose the +# JNDI name must be given. This method may propose connection +# pooling in function of the datasource configuration. +# * jdbc: the library will create itself connections when they will be +# needed thanks to the below JDBC parameters. This method does not +# propose any connection pooling. # # Allowed values: jndi, jdbc. database_access = # [MANDATORY] -# The translator to use in order to translate ADQL to a SQL compatible with the used DBMS and its spatial extension. +# The translator to use in order to translate ADQL to a SQL compatible with the +# used DBMS and its spatial extension. # -# The TAP library supports only Postgresql (no spatial extension), PostgreSQL+PgSphere, SQLServer (no spatial extension) and MySQL (no spatial extension) for the moment. But you can provide your own SQL translator -# (even if it does not have spatial features), by providing the name of a class (within brackets: {...}) that implements ADQLTranslator (for instance: {apackage.MyADQLTranslator}) -# and which have at least an empty constructor. +# The TAP library supports only Postgresql (no spatial extension), +# PostgreSQL+PgSphere, SQLServer (no spatial extension) and MySQL (no spatial +# extension) for the moment. But you can provide your own SQL translator (even +# if it does not have spatial features), by providing the name of a class +# (within brackets: {...}) that implements ADQLTranslator (for instance: +# {apackage.MyADQLTranslator}) and which have at least an empty constructor. # # Allowed values: postgres, pgsphere, sqlserver, mysql, a class name sql_translator = postgres # [OPTIONAL] -# Size of result blocks to fetch from the database when a ADQL query is executed in Synchronous mode. +# Size of result blocks to fetch from the database when a ADQL query is executed +# in Synchronous mode. # -# Rather than fetching a query result in a whole, it may be possible to specify to the database that -# results may be retrieved by blocks whose the size can be specified with this property. If supported by -# the DBMS and the JDBC driver, this feature may help sparing memory and avoid too much waiting time from -# the TAP /sync users (and thus, avoiding some HTTP client timeouts). +# Rather than fetching a query result in a whole, it may be possible to specify +# to the database that results may be retrieved by blocks whose the size can be +# specified with this property. If supported by the DBMS and the JDBC driver, +# this feature may help sparing memory and avoid too much waiting time from the +# TAP /sync users (and thus, avoiding some HTTP client timeouts). # -# A negative or null value means that the default value of the JDBC driver will be used. Generally, it means -# that the database must wait to have collected all data before sending them to the library. +# A negative or null value means that the default value of the JDBC driver will +# be used. Generally, it means that the database must wait to have collected all +# data before sending them to the library. # # Default: sync_fetch_size=10000 sync_fetch_size = 10000 # [OPTIONAL] -# Size of result blocks to fetch from the database when an ADQL query is executed in Asynchronous mode. +# Size of result blocks to fetch from the database when an ADQL query is +# executed in Asynchronous mode. # -# Rather than fetching a query result in a whole, it may be possible to specify to the database that -# results may be retrieved by blocks whose the size can be specified with this property. If supported by -# the DBMS and the JDBC driver, this feature may help sparing memory. +# Rather than fetching a query result in a whole, it may be possible to specify +# to the database that results may be retrieved by blocks whose the size can be +# specified with this property. If supported by the DBMS and the JDBC driver, +# this feature may help sparing memory. # -# A negative or null value means that the default value of the JDBC driver will be used. Generally, it means -# that the database must wait to have collected all data before sending them to the library. +# A negative or null value means that the default value of the JDBC driver will +# be used. Generally, it means that the database must wait to have collected all +# data before sending them to the library. # # Default: async_fetch_size=100000 async_fetch_size=100000 @@ -102,7 +127,8 @@ async_fetch_size=100000 # [MANDATORY] # JNDI name of the datasource pointing toward the database to use. -# It should be defined in the web application (e.g. in the META-INF/context.xml file in tomcat). +# It should be defined in the web application (e.g. in the META-INF/context.xml +# file in tomcat). datasource_jndi_name = ############################# @@ -112,13 +138,17 @@ datasource_jndi_name = # [MANDATORY] # JDBC driver URL pointing toward the database to use. # -# Note: The username, password or other parameters may be included in it, but in this case, the corresponding properties should leave empty or not provided at all. +# Note: The username, password or other parameters may be included in it, but +# in this case, the corresponding properties should leave empty or not +# provided at all. jdbc_url = # [OPTIONAL] # JDBC driver path. # -# By default, it is guessed in function of the database name provided in the jdbc_url property. It MUST be provided if another DBMS is used or if the JDBC driver path does not match the following ones: +# By default, it is guessed in function of the database name provided in the +# jdbc_url property. It MUST be provided if another DBMS is used or if the +# JDBC driver path does not match the following ones: # * Oracle : oracle.jdbc.OracleDriver # * PostgreSQL: org.postgresql.Driver # * MySQL : com.mysql.jdbc.Driver @@ -127,15 +157,18 @@ jdbc_url = #jdbc_driver = # [MANDATORY] -# Mandatory if the username is not already provided in jdbc_url +# [Mandatory if the username is not already provided in jdbc_url] +# # Username used to access to the database. db_username = # [MANDATORY] -# Mandatory if the password is not already provided in jdbc_url +# [Mandatory if the password is not already provided in jdbc_url] +# # Password used by db_username to access to the database. # -# Note: No password encryption can be done in this configuration file for the moment. +# Note: No password encryption can be done in this configuration file for the +# moment. db_password = ############ @@ -145,27 +178,43 @@ db_password = # [MANDATORY] # Metadata fetching method. # -# The value of this key defines the way the library will get the list of all schemas, tables and columns to publish and all their metadata (e.g. utype, description, type, ...). +# The value of this key defines the way the library will get the list of all +# schemas, tables and columns to publish and all their metadata (e.g. utype, +# description, type, ...). # # In its current state, the library proposes three methods: -# 1/ Parse a TableSet XML document and load its content into the database schema TAP_SCHEMA (note: this schema is first erased and rebuilt by the library). +# 1/ Parse a TableSet XML document and load its content into the database +# schema TAP_SCHEMA (note: this schema is first erased and rebuilt by the +# library). # 2/ Get all metadata from the database schema TAP_SCHEMA. -# 3/ Build yourself the metadata of your service by creating an extension of tap.metadata.TAPMetadata. This extension must have either an empty constructor -# or a constructor with exactly 3 parameters of type UWSFileManager, TAPFactory and TAPLog ; if both constructor are provided, only the one with parameters will be used. -# -# For the two first methods, it is also possible to specify an extension of tap.metadata.TAPMetadata which will wrap a default TAPMetadata objects created using the specified -# methods (i.e. XML tableset or TAP_SCHEMA). In this way, it is possible to get the "default" metadata from an XML file or the database -# and then add/remove/modify some of them, or to change the output of the 'tables' resource. The extension of tap.metadata.TAPMetadata must have at least -# one constructor with the following parameters: (TAPMetadata) or (TAPMetadata, UWSFileManager, TAPFactory, TAPLog). +# 3/ Build yourself the metadata of your service by creating an extension of +# tap.metadata.TAPMetadata. This extension must have either an empty +# constructor or a constructor with exactly 3 parameters of type +# UWSFileManager, TAPFactory and TAPLog ; if both constructor are +# provided, only the one with parameters will be used. +# +# For the two first methods, it is also possible to specify an extension of +# tap.metadata.TAPMetadata which will wrap a default TAPMetadata objects created +# using the specified methods (i.e. XML tableset or TAP_SCHEMA). In this way, it +# is possible to get the "default" metadata from an XML file or the database +# and then add/remove/modify some of them, or to change the output of the +# 'tables' resource. The extension of tap.metadata.TAPMetadata must have at +# least one constructor with the following parameters: (TAPMetadata) or +# (TAPMetadata, UWSFileManager, TAPFactory, TAPLog). # -# Allowed values: xml, xml {myTAPMetadata}, db, db {myTAPMetadata} or a full class name (between {}). +# Allowed values: xml, xml {myTAPMetadata}, db, db {myTAPMetadata} +# or a full class name (between {}). metadata = # [MANDATORY] -# Mandatory if the value of "metadata" is "xml". +# [Mandatory if the value of "metadata" is "xml".] +# # Local file path to the TableSet XML document. +# # The XML document must implement the schema TableSet defined by VODataService. -# The file path must be either an absolute local file path or a file path relative to WebContent (i.e. the web application directory in which there are WEB-INF and META-INF). +# The file path must be either an absolute local file path or a file path +# relative to WebContent (i.e. the web application directory in which there are +# WEB-INF and META-INF). metadata_file = # [OPTIONAL] @@ -173,10 +222,11 @@ metadata_file = # # Mapping between TAP_SCHEMA ADQL names and their names in the database. # -# Any property named exactly (case sensitive) like TAP_SCHEMA items will be considered -# as a mapping between its ADQL name and its DB name. +# Any property named exactly (case sensitive) like TAP_SCHEMA items will be +# considered as a mapping between its ADQL name and its DB name. # -# Examples: "TAP_SCHEMA = TAP_SCHEMA2" or "TAP_SCHEMA.columns.column_name = name" +# Examples: "TAP_SCHEMA = TAP_SCHEMA2" +# or "TAP_SCHEMA.columns.column_name = name" # # The property value MUST be NOT qualified. Just the item name is required. # The value will be used as provided (with the same case). @@ -190,22 +240,29 @@ metadata_file = # [MANDATORY] # Type of the file manager. # -# Accepted values are: local (to manage files on the local system). You can also add another way to manage files by providing -# the name (within brackets: {...}) of a class implementing TAPFileManager and having at least one constructor with only a -# java.util.Properties parameter. +# Accepted values are: local (to manage files on the local system). You can also +# add another way to manage files by providing the name (within brackets: {...}) +# of a class implementing TAPFileManager and having at least one constructor +# with only a java.util.Properties parameter. # # Allowed values: local, a class name. file_manager = local # [MANDATORY] -# Local file path of the directory in which all TAP files (logs, errors, job results, backup, ...) must be. -# The file path must be either an absolute local directory path or a directory path relative to WebContent (i.e. the web application directory in which there are WEB-INF and META-INF). +# Local file path of the directory in which all TAP files (logs, errors, job +# results, backup, ...) must be. +# +# The file path must be either an absolute local directory path or a directory +# path relative to WebContent (i.e. the web application directory in which there +# are WEB-INF and META-INF). file_root_path = # [OPTIONAL] # Tells whether a directory should be created for each user. # -# If yes, the user directory will be named with the user ID. In this directory, there will be error files, job results and it may be the backup file of the user. +# If yes, the user directory will be named with the user ID. In this directory, +# there will be error files, job results and it may be the backup file of the +# user. # # Allowed values: true (default), false. directory_per_user = true @@ -221,12 +278,16 @@ group_user_dir = true # [OPTIONAL] # The default period (in seconds) to keep query results. # -# The prefix "default" means here that this value is put by default by the TAP Service if the client does not provide a value for it. +# The prefix "default" means here that this value is put by default by the TAP +# Service if the client does not provide a value for it. # -# The default period MUST be less or equals to the maximum retention period. If this rule is not respected, the default retention period is set -# immediately to the maximum retention period. +# The default period MUST be less or equals to the maximum retention period. If +# this rule is not respected, the default retention period is set immediately to +# the maximum retention period. # -# A negative or null value means there is no restriction on the default retention period: job results will be kept forever. Float values are not allowed. +# A negative or null value means there is no restriction on the default +# retention period: job results will be kept forever. Float values are not +# allowed. # # Default: 0 (results kept forever). default_retention_period = 0 @@ -234,12 +295,16 @@ default_retention_period = 0 # [OPTIONAL] # The maximum period (in seconds) to keep query results. # -# The prefix "max" means here that the client can not set a retention period greater than this one. +# The prefix "max" means here that the client can not set a retention period +# greater than this one. # -# The maximum period MUST be greater or equals to the default retention period. If this rule is not respected, the default retention period is set -# immediately to the maximum retention period. +# The maximum period MUST be greater or equals to the default retention period. +# If this rule is not respected, the default retention period is set immediately +# to the maximum retention period. # -# A negative or null value means there is no restriction on the maximum retention period: the job results will be kept forever. Float values are not allowed. +# A negative or null value means there is no restriction on the maximum +# retention period: the job results will be kept forever. Float values are not +# allowed. # # Default: 0 (results kept forever). max_retention_period = 0 @@ -278,20 +343,30 @@ logger = min_log_level = # [OPTIONAL] -# Frequency of the log file rotation. That's to say, logs will be written in a new file after this period. This avoid having too big log files. -# Old log files are renamed so that highlighting its logging period. +# Frequency of the log file rotation. That's to say, logs will be written in a +# new file after this period. This avoid having too big log files. Old log files +# are renamed so that highlighting its logging period. # # The frequency string must respect the following syntax: # 'D' hh mm: daily schedule at hh:mm -# 'W' dd hh mm: weekly schedule at the given day of the week (1:sunday, 2:monday, ..., 7:saturday) at hh:mm +# 'W' dd hh mm: weekly schedule at the given day of the week +# (1:sunday, 2:monday, ..., 7:saturday) at hh:mm # 'M' dd hh mm: monthly schedule at the given day of the month at hh:mm # 'h' mm: hourly schedule at the given minute # 'm': scheduled every minute (for completness :-)) -# Where: hh = integer between 0 and 23, mm = integer between 0 and 59, dd (for 'W') = integer between 1 and 7 (1:sunday, 2:monday, ..., 7:saturday), dd (for 'M') = integer between 1 and 31. # -# Warning: The frequency type is case sensitive! Then you should particularly pay attention at the case when using the frequency types 'M' (monthly) and 'm' (every minute). +# Where: hh = integer between 0 and 23, +# mm = integer between 0 and 59, +# dd (for 'W') = integer between 1 and 7 +# (1:sunday, 2:monday, ..., 7:saturday), +# dd (for 'M') = integer between 1 and 31. # -# Note: this property is ignored if the file manager is not any more an extension of uws.service.file.LocalUWSFileManager. +# Warning: The frequency type is case sensitive! Then you should particularly +# pay attention at the case when using the frequency types 'M' +# (monthly) and 'm' (every minute). +# +# Note: this property is ignored if the file manager is not any more an +# extension of uws.service.file.LocalUWSFileManager. # # Default: D 0 0 (daily at midnight) log_rotation = @@ -301,10 +376,13 @@ log_rotation = ############## # [OPTIONAL] -# Frequency at which the UWS service (that's to say, all its users and jobs) must be backuped. +# Frequency at which the UWS service (that's to say, all its users and jobs) +# must be backuped. # -# Allowed values: never (no backup will never be done ; default), user_action (each time a user does a writing action, like creating or execution a job), -# a time (must be positive and not null) in milliseconds. +# Allowed values: never (no backup will never be done ; default), user_action +# (each time a user does a writing action, like creating or +# execution a job), a time (must be positive and not null) in +# milliseconds. # # The value user_action can be used ONLY IF backup_by_user=true. # @@ -312,11 +390,13 @@ log_rotation = backup_frequency = never # [OPTIONAL] -# Tells whether the backup must be one file for every user (false), or one file for each user (true). -# This second option should be chosen if your TAP Service is organizing its files by user directories ; -# see the property directory_per_user. +# Tells whether the backup must be one file for every user (false), or one file +# for each user (true). This second option should be chosen if your TAP Service +# is organizing its files by user directories ; see the property +# directory_per_user. # -# This option can be enabled ONLY IF a user identification method is provided ; see property user_identifier. +# This option can be enabled ONLY IF a user identification method is provided ; +# see property user_identifier. # # Default: false backup_by_user = false @@ -328,7 +408,8 @@ backup_by_user = false # [OPTIONAL] # Maximum number of asynchronous jobs that can run simultaneously. # -# A negative or null value means there is no restriction on the number of running asynchronous jobs. +# A negative or null value means there is no restriction on the number of +# running asynchronous jobs. # # Default: there is no restriction => max_async_jobs=0. max_async_jobs = 0 @@ -340,12 +421,16 @@ max_async_jobs = 0 # [OPTIONAL] # Default time (in milliseconds) for query execution. # -# The prefix "default" means here that the execution duration will be this one if the client does not set one. +# The prefix "default" means here that the execution duration will be this one +# if the client does not set one. # -# The default duration MUST be less or equals to the maximum execution duration. If this rule is not respected, the default execution duration is set +# The default duration MUST be less or equals to the maximum execution duration. +# If this rule is not respected, the default execution duration is set # immediately to the maximum execution duration. # -# A negative or null value means there is no restriction on the default execution duration: the execution could never end. Float values are not allowed. +# A negative or null value means there is no restriction on the default +# execution duration: the execution could never end. Float values are not +# allowed. # # Default: there is no restriction => default_execution_duration=0. default_execution_duration = 0 @@ -353,12 +438,16 @@ default_execution_duration = 0 # [OPTIONAL] # Maximum time (in milliseconds) for query execution. # -# The prefix "max" means here that the client can not set a time greater than this one. +# The prefix "max" means here that the client can not set a time greater than +# this one. # -# The maximum duration MUST be greater or equals to the default execution duration. If this rule is not respected, the default execution duration is set +# The maximum duration MUST be greater or equals to the default execution +# duration. If this rule is not respected, the default execution duration is set # immediately to the maximum execution duration. # -# A negative or null value means there is no restriction on the maximum execution duration: the execution could never end. Float values are not allowed. +# A negative or null value means there is no restriction on the maximum +# execution duration: the execution could never end. Float values are not +# allowed. # # Default: there is no restriction => max_execution_duration=0. max_execution_duration = 0 @@ -372,18 +461,34 @@ max_execution_duration = 0 # # Allowed values are: votable (or 'vot'), fits, text, csv, tsv, json and html. # -# The special value "ALL" will select all formats provided by the library. -# -# The VOTable format may be more detailed with the following syntax: (serialization,version):mime_type:short_mime_type. -# The MIME type part and the parameters part may be omitted (e.g. votable:application/xml:votable , votable(td,1.3)]). -# Empty string values are allowed for each values (e.g. votable():: , votable(td)::votable). -# -# It is also possible to define a custom Separated Value format, different from CSV and TSV, thanks to the following syntax: sv(separator):mime_type:short_mime_type. -# On the contrary to the VOTable syntax, the parameter (i.e. separator) MUST BE provided. -# The MIME type part may be omitted ; then the MIME type will be set by default to text/plain. -# -# There is finally a last possible value: a class name of a class implementing OutputFormat and having at least one constructor with exactly one parameter of type -# tap.ServiceConnection. +# The VOTable format may be more detailed with the following syntax: +# (serialization,version):mime_type:short_mime_type. +# The MIME type part and the parameters part may be omitted +# (e.g. votable:application/xml:votable , votable(td,1.3)]). +# Empty string values are allowed for each values (e.g. votable():: , +# votable(td)::votable). +# +# The default VOTable format (i.e. serialization and version) is the one defined +# with the short form `votable`. It is be default set to +# `vot(binary,1.3)::votable` (see the special value `ALL` below). To change it +# just define a VOTable format with the short form `votable`. +# +# It is also possible to define a custom Separated Value format, different from +# CSV and TSV, thanks to the following syntax: +# sv(separator):mime_type:short_mime_type. On the contrary to the VOTable +# syntax, the parameter (i.e. separator) MUST BE provided. The MIME type part +# may be omitted ; then the MIME type will be set by default to text/plain. +# +# There is finally a last possible value: a class name of a class implementing +# OutputFormat and having at least one constructor with exactly one parameter of +# type tap.ServiceConnection. +# +# The special value "ALL" will select all formats provided by the library. It is +# equivalent to the following: +# output_formats = vot(binary,1.3)::votable, vot(td,1.3)::votable/td, +# vot(binary,1.3)::votable/b, vot(binary2,1.3)::votable/b2, +# vot(fits,1.3)::votable/fits, fits, csv, tsv, text, html, +# json # # Default: ALL output_formats = ALL @@ -391,11 +496,13 @@ output_formats = ALL # [OPTIONAL] # Default limit for the result output. # -# The prefix "default" means here that this value will be set if the client does not provide one. +# The prefix "default" means here that this value will be set if the client does +# not provide one. # # This limit can be expressed in only one unit: rows. # -# A negative value means there is no restriction on this limit. Float values are not allowed. +# A negative value means there is no restriction on this limit. Float values are +# not allowed. # # Obviously this limit MUST be less or equal than output_max_limit. # @@ -403,11 +510,13 @@ output_formats = ALL output_default_limit = -1 # [OPTIONAL] -# Maximum limit for the result output. The prefix "max" means here that the client can not set a limit greater than this one. +# Maximum limit for the result output. The prefix "max" means here that the +# client can not set a limit greater than this one. # # This limit can be expressed in only one unit: rows. # -# A negative value means there is no restriction on this limit. Float values are not allowed. +# A negative value means there is no restriction on this limit. Float values are +# not allowed. # # Obviously this limit MUST be greater or equal than output_default_limit. # @@ -421,22 +530,28 @@ output_max_limit = -1 # [OPTIONAL] # Tells whether the Upload must be enabled. # -# If enabled, files can be uploaded in the file_root_path, the corresponding tables can be added inside the UPLOAD_SCHEMA -# of the database, queried and then deleted. +# If enabled, files can be uploaded in the file_root_path, the corresponding +# tables can be added inside the UPLOAD_SCHEMA of the database, queried and then +# deleted. # # Allowed values: true, false (default). upload_enabled = false # [OPTIONAL] -# Default limit for the number of uploaded records that can be inserted inside the database. +# Default limit for the number of uploaded records that can be inserted inside +# the database. # -# The prefix "default" means here that this value will be set if the client does not provide one. +# The prefix "default" means here that this value will be set if the client does +# not provide one. # -# This limit can be expressed with 2 types: rows or bytes. For rows, you just have to suffix the value by a "r" (upper- or lower-case), -# with nothing (by default, nothing will mean "rows"). For bytes, you have to suffix the numeric value by "b", "kb", "Mb" or "Gb". Here, -# unit is case sensitive (except for the last character: "b"). No other storage unit is allowed. +# This limit can be expressed with 2 types: rows or bytes. For rows, you just +# have to suffix the value by a "r" (upper- or lower-case), with nothing (by +# default, nothing will mean "rows"). For bytes, you have to suffix the numeric +# value by "b", "kb", "Mb" or "Gb". Here, unit is case sensitive (except for the +# last character: "b"). No other storage unit is allowed. # -# A negative value means there is no restriction on this limit. Float values are not allowed. +# A negative value means there is no restriction on this limit. Float values are +# not allowed. # # Obviously this limit MUST be less or equal than upload_max_db_limit. # @@ -444,15 +559,20 @@ upload_enabled = false upload_default_db_limit = -1 # [OPTIONAL] -# Maximum limit for the number of uploaded records that can be inserted inside the database. +# Maximum limit for the number of uploaded records that can be inserted inside +# the database. # -# The prefix "max" means here that the client can not set a limit greater than this one. +# The prefix "max" means here that the client can not set a limit greater than +# this one. # -# This limit can be expressed with 2 types: rows or bytes. For rows, you just have to suffix the value by a "r" (upper- or lower-case), -# with nothing (by default, nothing will mean "rows"). For bytes, you have to suffix the numeric value by "b", "kb", "Mb" or "Gb". Here, -# unit is case sensitive (except for the last character: "b"). No other storage unit is allowed. +# This limit can be expressed with 2 types: rows or bytes. For rows, you just +# have to suffix the value by a "r" (upper- or lower-case), with nothing (by +# default, nothing will mean "rows"). For bytes, you have to suffix the numeric +# value by "b", "kb", "Mb" or "Gb". Here, unit is case sensitive (except for the +# last character: "b"). No other storage unit is allowed. # -# A negative value means there is no restriction on this limit. Float values are not allowed. +# A negative value means there is no restriction on this limit. Float values are +# not allowed. # # Obviously this limit MUST be greater or equal than upload_default_db_limit. # @@ -462,11 +582,17 @@ upload_max_db_limit = -1 # [OPTIONAL] # Maximum allowed size for the uploaded file. # -# This limit MUST be expressed in bytes. Thus, you have to suffix the numeric value by "B", "kB", "MB" or "GB". Here, unit is case sensitive. No other storage unit is allowed. +# This limit MUST be expressed in bytes. Thus, you have to suffix the numeric +# value by "B", "kB", "MB" or "GB". Here, unit is case sensitive. No other +# storage unit is allowed. # -# Warning! When the upload is enabled, there must be a maximum file size. Here, no "unlimited" value is possible ; 0 and any negative value are not allowed. +# Warning: When the upload is enabled, there must be a maximum file size. Here, +# no "unlimited" value is possible ; 0 and any negative value are not +# allowed. # -# Warning! In function of the chosen upload_max_db_limit type, upload_max_file_size MUST be greater in order to figure out the file metadata part. +# Warning: In function of the chosen upload_max_db_limit type, +# upload_max_file_size MUST be greater in order to figure out the file +# metadata part. # # Default: upload_max_file_size=2147483647B (~2GB ; maximum possible value) upload_max_file_size = 2147483647B @@ -478,12 +604,15 @@ upload_max_file_size = 2147483647B # [OPTIONAL] # Class to use in order to identify a user of the TAP service. # -# The same instance of this class will be used for every request sent to the service. +# The same instance of this class will be used for every request sent to the +# service. # -# The value of this property MUST be a class name (with brackets: {...}) of a class implementing the interface uws.service.UserIdentifier. -# This class MUST have one of its constructors with no parameter. +# The value of this property MUST be a class name (with brackets: {...}) of a +# class implementing the interface uws.service.UserIdentifier. This class MUST +# have one of its constructors with no parameter. # -# Default: no identification is performed => all users are then anonymous and their jobs can be seen by everybody. +# Default: no identification is performed => all users are then anonymous and +# their jobs can be seen by everybody. user_identifier = ###################### @@ -493,13 +622,21 @@ user_identifier = # [OPTIONAL] # Comma-separated list of all allowed coordinate systems. # -# Each item of the list be a kind of regular expression respecting the following syntax: Frame RefPos Flavor. In other words, it must be a string of exactly 3 parts. Each of this part is a single value, a list of allowed values or a * meaning all values. A list of values must be indicated between parenthesis and values must be separated by a pipe. +# Each item of the list be a kind of regular expression respecting the following +# syntax: Frame RefPos Flavor. In other words, it must be a string of exactly 3 +# parts. Each of this part is a single value, a list of allowed values +# or a * meaning all values. A list of values must be indicated between +# parenthesis and values must be separated by a pipe. # -# Allowed values for Frame are: ICRS, FK4, FK5, ECLIPTIC, GALACTIC and UNKNOWNFRAME. -# Allowed values for RefPos are: BARYCENTER, GEOCENTER, HELIOCENTER, LSR, TOPOCENTER, RELOCATABLE and UNKNOWNREFPOS. +# Allowed values for Frame are: ICRS, FK4, FK5, J2000, ECLIPTIC, GALACTIC +# and UNKNOWNFRAME. +# Allowed values for RefPos are: BARYCENTER, GEOCENTER, HELIOCENTER, LSR, +# TOPOCENTER, RELOCATABLE and UNKNOWNREFPOS. # Allowed values for Flavor are: CARTESIAN2, CARTESIAN3 and SPHERICAL2. # -# If the special value NONE is given instead of a list of allowed coordinate systems, no coordinate system will be allowed. And if the list is empty, any coordinate system will be allowed. +# If the special value NONE is given instead of a list of allowed coordinate +# systems, no coordinate system will be allowed. And if the list is empty, any +# coordinate system will be allowed. # # By default, any coordinate system is allowed. coordinate_systems = @@ -511,8 +648,10 @@ coordinate_systems = # [OPTIONAL] # Comma-separated list of all allowed geometries. # -# Each item of the list must be the name (whatever is the case) of an ADQL geometrical function (e.g. INTERSECTS, COORDSYS, POINT) to allow. -# If the list is empty (no item), all functions are allowed. And if the special value NONE is given, no ADQL function will be allowed. +# Each item of the list must be the name (whatever is the case) of an ADQL +# geometrical function (e.g. INTERSECTS, COORDSYS, POINT) to allow. +# If the list is empty (no item), all functions are allowed. And if the special +# value NONE is given, no ADQL function will be allowed. # # Default: all ADQL geometrical functions are allowed. geometries = @@ -524,13 +663,17 @@ geometries = # [OPTIONAL] # Comma-separated list of all allowed UDFs (User Defined Functions). # -# Each item of the list must have the following syntax: [fct_signature] or [fct_signature, className]. fct_function is the function signature. -# Its syntax is the same as in TAPRegExt. className is the name of a class extending UserDefinedFunction. An instance of this class will replace -# any reference of a UDF written in an ADQL function with the associated signature. A class name must be specified if the function to represent -# has a signature (and more particularly a name) different in ADQL and in SQL. +# Each item of the list must have the following syntax: [fct_signature] or +# [fct_signature, className]. fct_function is the function signature. Its syntax +# is the same as in TAPRegExt. className is the name of a class extending +# UserDefinedFunction. An instance of this class will replace any reference of a +# UDF written in an ADQL function with the associated signature. A class name +# must be specified if the function to represent has a signature (and more +# particularly a name) different in ADQL and in SQL. # -# If the list is empty (no item), all unknown functions are forbidden. And if the special value ANY is given, any unknown function is allowed ; -# consequently the unknown ADQL functions will be translated into SQL as they are in ADQL. +# If the list is empty (no item), all unknown functions are forbidden. And if +# the special value ANY is given, any unknown function is allowed ; consequently +# the unknown ADQL functions will be translated into SQL as they are in ADQL. # # Default: no unknown function is allowed. udfs = @@ -552,20 +695,25 @@ capabilities_stylesheet = tables_stylesheet = # [OPTIONAL] -# This property lets add an <code>/examples</code> endpoint by specifying an XHTML-RDFa -# document listing TAP query examples using the syntax specified by TAPNotes 1.0 DALI 1.0. +# This property lets add an <code>/examples</code> endpoint by specifying an +# XHTML-RDFa document listing TAP query examples using the syntax specified by +# TAPNotes 1.0 DALI 1.0. # # 3 different kinds of value are accepted: # * nothing (default): no /examples endpoint. -# * name or relative path of a file: this method MUST be chosen if the endpoint content is a JSP file. This file MUST be inside the directory WebContent of your web application. -# * URI starting with file://: in this method the local file pointed by the URI will be merely returned when the endpoint will be requested. -# * a URL: here, a redirection toward this URL will be made at each request on the endpoint +# * name or relative path of a file: this method MUST be chosen if the +# endpoint content is a JSP file. This file MUST be inside the directory +# WebContent of your web application. +# * URI starting with file://: in this method the local file pointed by the +# URI will be merely returned when the endpoint will be requested. +# * a URL: here, a redirection toward this URL will be made at each request +# on the endpoint # # If you want a custom /examples endpoint (i.e. you do not) -# want to forward/redirect to a file/URL), you can create a class which implements -# TAPResource AND VOSIResource. The function getName() must return -# "examples". Then, just append the classpath to the property "additional_resources" -# of the TAP configuration file. +# want to forward/redirect to a file/URL), you can create a class which +# implements TAPResource AND VOSIResource. The function getName() must return +# "examples". Then, just append the classpath to the property +# "additional_resources" of the TAP configuration file. # # By default, the TAP service does not have any <code>/examples</code> endpoint. examples = @@ -573,15 +721,20 @@ examples = # [OPTIONAL] # Comma-separated list of additional TAP resources/end-point. # -# By default, the following standard TAP resources are already existing: /sync, /async, /tables, /capabilities and /availability. -# With this property, you can add a custom resource to your TAP service (e.g. /adqlValidator, /admin). +# By default, the following standard TAP resources are already existing: /sync, +# /async, /tables, /capabilities and /availability. With this property, you can +# add a custom resource to your TAP service (e.g. /adqlValidator, /admin). # -# Each item of the list MUST be the name of a class implementing tap.resource.TAPResource. This class MUST have at least one constructor with +# Each item of the list MUST be the name of a class implementing +# tap.resource.TAPResource. This class MUST have at least one constructor with # exactly one parameter of type tap.resource.TAP. # -# The string returned by tap.resource.TAPResource.getName() will be the resource name, following the root TAP service URL (e.g. if getName() -# returns "foo", then its access URL will "{tapRoot}/foo"). Then, it is possible to replace TAP resources already existing by using the same -# name (e.g. if getName() returns "sync", the /sync resource won't be anymore the default Sync resource of this library but your new resource). +# The string returned by tap.resource.TAPResource.getName() will be the +# resource name, following the root TAP service URL (e.g. if getName() returns +# "foo", then its access URL will "{tapRoot}/foo"). Then, it is possible to +# replace TAP resources already existing by using the same name (e.g. if +# getName() returns "sync", the /sync resource won't be anymore the default Sync +# resource of this library but your new resource). # # By default, this list is empty ; only the standard TAP resources exist. additional_resources = @@ -593,12 +746,14 @@ additional_resources = # [OPTIONAL] # Class to use in replacement of the default TAPFactory. # -# This property must be a class name (given between {...}). It must reference an implementation of TAPFactory. -# This implementation must have at least one constructor with exactly one parameter of type ServiceConnection. +# This property must be a class name (given between {...}). It must reference an +# implementation of TAPFactory. This implementation must have at least one +# constructor with exactly one parameter of type ServiceConnection. # # It is recommended to extend an existing implementation such as: # tap.AbstractTAPFactory or tap.config.ConfigurableTAPFactory. # -# By default, the default TAPFactory (tap.config.ConfigurableTAPFactory) is used and may use all properties related to the backup management, -# the database access, the TAP_SCHEMA mapping and the ADQL translation. +# By default, the default TAPFactory (tap.config.ConfigurableTAPFactory) is used +# and may use all properties related to the backup management, the database +# access, the TAP_SCHEMA mapping and the ADQL translation. tap_factory = diff --git a/src/tap/config/tap_min.properties b/src/tap/config/tap_min.properties index 1785ae71fe3d03067c78682dc0eb1106ff5dabc1..26d4d6a244b37fe190afc458773dbe1bf28da59b 100644 --- a/src/tap/config/tap_min.properties +++ b/src/tap/config/tap_min.properties @@ -1,11 +1,11 @@ -########################################################## -# MINIMUM TAP CONFIGURATION FILE # -# # -# TAP Version: 2.1 # -# Date: 02 Aug. 2017 # -# Author: Gregory Mantelet (ARI) # -# # -########################################################## +################################################################################ +# MINIMUM TAP CONFIGURATION FILE # +# # +# TAP Version: 2.1 # +# Date: 22 Feb. 2018 # +# Author: Gregory Mantelet (ARI) # +# # +################################################################################ ############ # DATABASE # @@ -14,17 +14,25 @@ # Method to use in order to create database connections. # # Only two values are supported: -# * jndi: database connections will be supplied by a Datasource whose the JNDI name must be given. This method may propose connection pooling in function of the datasource configuration. -# * jdbc: the library will create itself connections when they will be needed thanks to the below JDBC parameters. This method does not propose any connection pooling. +# * jndi: database connections will be supplied by a Datasource whose the +# JNDI name must be given. This method may propose connection +# pooling in function of the datasource configuration. +# * jdbc: the library will create itself connections when they will be +# needed thanks to the below JDBC parameters. This method does not +# propose any connection pooling. # # Allowed values: jndi, jdbc. database_access = -# The translator to use in order to translate ADQL to a SQL compatible with the used DBMS and its spatial extension. +# The translator to use in order to translate ADQL to a SQL compatible with the +# used DBMS and its spatial extension. # -# The TAP library supports only Postgresql (no spatial extension), PostgreSQL+PgSphere, SQLServer (no spatial extension) and MySQL (no spatial extension) for the moment. But you can provide your own SQL translator -# (even if it does not have spatial features), by providing the name of a class (within brackets: {...}) that implements ADQLTranslator (for instance: {apackage.MyADQLTranslator}) -# and which have at least an empty constructor. +# The TAP library supports only Postgresql (no spatial extension), +# PostgreSQL+PgSphere, SQLServer (no spatial extension) and MySQL (no spatial +# extension) for the moment. But you can provide your own SQL translator (even +# if it does not have spatial features), by providing the name of a class +# (within brackets: {...}) that implements ADQLTranslator (for instance: +# {apackage.MyADQLTranslator}) and which have at least an empty constructor. # # Allowed values: postgres, pgsphere, sqlserver, mysql, a class name sql_translator = postgres @@ -33,23 +41,27 @@ sql_translator = postgres # IF DATABASE ACCESS = JNDI # ############################# -# JNDI name of the datasource. -# -# It should be defined in the web application (e.g. in the META-INF/context.xml file in tomcat). +# JNDI name of the datasource pointing toward the database to use. +# It should be defined in the web application (e.g. in the META-INF/context.xml +# file in tomcat). datasource_jndi_name = ############################# # IF DATABASE ACCESS = JDBC # ############################# -# It must be a JDBC driver URL. +# JDBC driver URL pointing toward the database to use. # -# Note: The username, password or other parameters may be included in it, but in this case, the corresponding properties should leave empty or not provided at all. +# Note: The username, password or other parameters may be included in it, but +# in this case, the corresponding properties should leave empty or not +# provided at all. jdbc_url = # JDBC driver path. # -# By default, it is guessed in function of the database name provided in the jdbc_url property. It MUST be provided if another DBMS is used or if the JDBC driver path does not match the following ones: +# By default, it is guessed in function of the database name provided in the +# jdbc_url property. It MUST be provided if another DBMS is used or if the +# JDBC driver path does not match the following ones: # * Oracle : oracle.jdbc.OracleDriver # * PostgreSQL: org.postgresql.Driver # * MySQL : com.mysql.jdbc.Driver @@ -57,14 +69,17 @@ jdbc_url = # * H2 : org.h2.Driver jdbc_driver = -# Mandatory if the username is not already provided in jdbc_url +# [Mandatory if the username is not already provided in jdbc_url] +# # Username used to access to the database. db_user = -# Mandatory if the password is not already provided in jdbc_url +# [Mandatory if the password is not already provided in jdbc_url] +# # Password used by db_username to access to the database. # -# Note: No password encryption can be done in this configuration file for the moment. +# Note: No password encryption can be done in this configuration file for the +# moment. db_password = ############ @@ -73,26 +88,42 @@ db_password = # Metadata fetching method. # -# The value of this key defines the way the library will get the list of all schemas, tables and columns to publish and all their metadata (e.g. utype, description, type, ...). +# The value of this key defines the way the library will get the list of all +# schemas, tables and columns to publish and all their metadata (e.g. utype, +# description, type, ...). # # In its current state, the library proposes three methods: -# 1/ Parse a TableSet XML document and load its content into the database schema TAP_SCHEMA (note: this schema is first erased and rebuilt by the library). +# 1/ Parse a TableSet XML document and load its content into the database +# schema TAP_SCHEMA (note: this schema is first erased and rebuilt by the +# library). # 2/ Get all metadata from the database schema TAP_SCHEMA. -# 3/ Build yourself the metadata of your service by creating an extension of tap.metadata.TAPMetadata. This extension must have either an empty constructor -# or a constructor with exactly 3 parameters of type UWSFileManager, TAPFactory and TAPLog ; if both constructor are provided, only the one with parameters will be used. +# 3/ Build yourself the metadata of your service by creating an extension of +# tap.metadata.TAPMetadata. This extension must have either an empty +# constructor or a constructor with exactly 3 parameters of type +# UWSFileManager, TAPFactory and TAPLog ; if both constructor are +# provided, only the one with parameters will be used. # -# For the two first methods, it is also possible to specify an extension of tap.metadata.TAPMetadata which will wrap a default TAPMetadata objects created using the specified -# methods (i.e. XML tableset or TAP_SCHEMA). In this way, it is possible to get the "default" metadata from an XML file or the database -# and then add/remove/modify some of them, or to change the output of the 'tables' resource. The extension of tap.metadata.TAPMetadata must have at least -# one constructor with the following parameters: (TAPMetadata) or (TAPMetadata, UWSFileManager, TAPFactory, TAPLog). +# For the two first methods, it is also possible to specify an extension of +# tap.metadata.TAPMetadata which will wrap a default TAPMetadata objects created +# using the specified methods (i.e. XML tableset or TAP_SCHEMA). In this way, it +# is possible to get the "default" metadata from an XML file or the database +# and then add/remove/modify some of them, or to change the output of the +# 'tables' resource. The extension of tap.metadata.TAPMetadata must have at +# least one constructor with the following parameters: (TAPMetadata) or +# (TAPMetadata, UWSFileManager, TAPFactory, TAPLog). # -# Allowed values: xml, xml {myTAPMetadata}, db, db {myTAPMetadata} or a full class name (between {}). +# Allowed values: xml, xml {myTAPMetadata}, db, db {myTAPMetadata} +# or a full class name (between {}). metadata = -# Mandatory if the value of "metadata" is "xml". +# [Mandatory if the value of "metadata" is "xml".] +# # Local file path to the TableSet XML document. +# # The XML document must implement the schema TableSet defined by VODataService. -# The file path must be either an absolute local file path or a file path relative to WebContent (i.e. the web application directory in which there are WEB-INF and META-INF). +# The file path must be either an absolute local file path or a file path +# relative to WebContent (i.e. the web application directory in which there are +# WEB-INF and META-INF). metadata_file = ######### @@ -100,14 +131,19 @@ metadata_file = ######### # Type of the file manager. -# -# Accepted values are: local (to manage files on the local system). You can also add another way to manage files by providing -# the name (within brackets: {...}) of a class implementing TAPFileManager and having at least one constructor with only a -# java.util.Properties parameter. -# +# +# Accepted values are: local (to manage files on the local system). You can also +# add another way to manage files by providing the name (within brackets: {...}) +# of a class implementing TAPFileManager and having at least one constructor +# with only a java.util.Properties parameter. +# # Allowed values: local, a class name. file_manager = local -# Local file path of the directory in which all TAP files (logs, errors, job results, backup, ...) must be. -# The file path must be either an absolute local directory path or a directory path relative to WebContent (i.e. the web application directory in which there are WEB-INF and META-INF). +# Local file path of the directory in which all TAP files (logs, errors, job +# results, backup, ...) must be. +# +# The file path must be either an absolute local directory path or a directory +# path relative to WebContent (i.e. the web application directory in which there +# are WEB-INF and META-INF). file_root_path =