From cdbc404706f76bfa6bd0dc3d441029424bd2bbd3 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Mon, 9 Nov 2009 14:49:59 +0000 Subject: [PATCH] LMS-1249 configuration improved SVN: 13278 --- datastore_server/dist/etc/service.properties | 27 ++++++++++++++----- datastore_server/etc/service.properties | 23 +++++++++++++++- .../validation/ColumnDefinition.java | 4 +-- .../validation/DataSetValidator.java | 7 ++++- .../validation/DataSetValidatorForTSV.java | 2 +- 5 files changed, 52 insertions(+), 11 deletions(-) diff --git a/datastore_server/dist/etc/service.properties b/datastore_server/dist/etc/service.properties index 2ebaa4dfb48..9ae459fbbba 100644 --- a/datastore_server/dist/etc/service.properties +++ b/datastore_server/dist/etc/service.properties @@ -77,12 +77,27 @@ failure-interval = 10 # Globally used separator character which separates entities in a data set file name data-set-file-name-entity-separator = _ -# Specifies what should happen if an error occurs during dataset processing. -# By default this flag is set to false and user has to modify the 'faulty paths file' -# each time the faulty dataset should be processed again. -# Set this flag to true if the processing should be repeated after some time without manual intervention. -# Note that this can increase the server load. -# reprocess-faulty-datasets = false +# Data set validators used to accept or reject data sets to be registered. +# Comma separated list of validator definitions. +data-set-validators = validator + +# Definition of data set validator 'validator' +validator.data-set-type = HCS_IMAGE +validator.path-patterns = **/*.txt +validator.columns = id, description, size +validator.id.header-pattern = ID +validator.id.mandatory = true +validator.id.order = 1 +validator.id.value-type = unique +validator.description.header-pattern = Description +validator.description.value-type = string +validator.description.value-pattern = .{0,100} +validator.size.header-pattern = A[0-9]+ +validator.size.can-define-multiple-columns = true +validator.size.allow-empty-values = true +validator.size.value-type = numeric +validator.site.value-range = [0,Infinity) + # Comma separated names of processing threads. Each thread should have configuration properties prefixed with its name. # E.g. 'code-extractor' property for the thread 'my-etl' should be specified as 'my-etl.code-extractor' diff --git a/datastore_server/etc/service.properties b/datastore_server/etc/service.properties index 67eeb001aee..4358b46d500 100644 --- a/datastore_server/etc/service.properties +++ b/datastore_server/etc/service.properties @@ -41,7 +41,7 @@ highwater-mark = 1048576 notify-successful-registration = false # The URL of the openBIS server -server-url = http://localhost:8080/openbis +server-url = http://localhost:8888/openbis # The username to use when contacting the openBIS server username = etlserver @@ -97,6 +97,27 @@ demo-processor.dataset-types = UNKNOWN demo-processor.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.demo.DemoProcessingPlugin demo-processor.properties-file = +# Data set validators used to accept or reject data sets to be registered. +# Comma separated list of validator definitions. +data-set-validators = validator + +# Definition of data set validator 'validator' +validator.data-set-type = HCS_IMAGE +validator.path-patterns = **/*.txt +validator.columns = id, description, size +validator.id.header-pattern = ID +validator.id.mandatory = true +validator.id.order = 1 +validator.id.value-type = unique +validator.description.header-pattern = Description +validator.description.value-type = string +validator.description.value-pattern = .{0,100} +validator.size.header-pattern = A[0-9]+ +validator.size.can-define-multiple-columns = true +validator.size.allow-empty-values = true +validator.size.value-type = numeric +validator.site.value-range = [0,Infinity) + # --------------------------------------------------------------------------- # Comma separated names of processing threads. Each thread should have configuration properties prefixed with its name. diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/ColumnDefinition.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/ColumnDefinition.java index fa6a47bcbf4..111e88c106b 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/ColumnDefinition.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/ColumnDefinition.java @@ -48,7 +48,7 @@ class ColumnDefinition { boolean mandatory = PropertyUtils.getBoolean(properties, MANDATORY_KEY, false); Integer order = null; - boolean canDefineMultipleColumns; + boolean canDefineMultipleColumns = false; if (properties.getProperty(ORDER_KEY) != null) { order = PropertyUtils.getInt(properties, ORDER_KEY, 0); @@ -57,7 +57,7 @@ class ColumnDefinition throw new ConfigurationFailureException("Order value has to be positive: " + order); } canDefineMultipleColumns = false; - } else + } else if (mandatory == false) { canDefineMultipleColumns = PropertyUtils.getBoolean(properties, CAN_DEFINE_MULTIPLE_COLUMNS_KEY, false); diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/DataSetValidator.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/DataSetValidator.java index 7d33f2b9762..14ed3338e18 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/DataSetValidator.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/DataSetValidator.java @@ -65,7 +65,12 @@ public class DataSetValidator implements IDataSetValidator try { IDataSetValidator validator = createValidator(validatorProperties); - validators.put(dataSetType, validator); + IDataSetValidator previous = validators.put(dataSetType, validator); + if (previous == null) + { + new ConfigurationFailureException( + "There is already a validator for data set type '" + dataSetType + "'."); + } if (operationLog.isInfoEnabled()) { operationLog.info("Validator for data set type '" + dataSetType + "' defined."); diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/DataSetValidatorForTSV.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/DataSetValidatorForTSV.java index b6927b51128..705a20a401c 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/DataSetValidatorForTSV.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/DataSetValidatorForTSV.java @@ -64,7 +64,7 @@ class DataSetValidatorForTSV implements IDataSetValidator DataSetValidatorForTSV(Properties properties) { fileScanners = new ArrayList<FileScanner>(); - String pathPatterns = properties.getProperty(PATH_PATTERNS_KEY); + String pathPatterns = properties.getProperty(PATH_PATTERNS_KEY, "*"); if (pathPatterns != null) { StringTokenizer tokenizer = new StringTokenizer(pathPatterns, ","); -- GitLab