From 8aacad75e1e3214c2abbe1402c2d0299ba09818b Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Tue, 11 May 2010 08:32:56 +0000
Subject: [PATCH] [LMS-1495] moved PropertyParametersUtil to common

SVN: 15890
---
 .../utilities}/PropertyParametersUtil.java    | 27 +---------
 .../ch/systemsx/cisd/etlserver/ETLDaemon.java |  4 +-
 .../systemsx/cisd/etlserver/Parameters.java   |  7 +--
 .../etlserver/plugins/AutoArchiverTask.java   |  4 +-
 .../plugins/HierarchicalStorageUpdater.java   |  4 +-
 .../validation/AbstractValidatorFactory.java  |  2 +-
 .../validation/DataSetValidator.java          | 14 ++---
 .../validation/DataSetValidatorForTSV.java    | 40 ++++++++------
 .../HeaderBasedValueValidatorFactory.java     | 25 +++++----
 .../UniqueGroupValidatorFactory.java          |  2 +-
 .../dss/generic/server/ConfigParameters.java  |  4 +-
 .../dss/generic/server/DataStoreServer.java   |  4 +-
 .../standard/HighWaterMarkChecker.java        |  4 +-
 .../tasks/AbstractPluginTaskFactory.java      |  7 +--
 .../plugins/tasks/ArchiverTaskFactory.java    |  2 +-
 .../plugins/tasks/PluginTaskProviders.java    |  9 ++--
 .../tasks/ProcessingPluginTaskFactory.java    |  2 +-
 .../tasks/ReportingPluginTaskFactory.java     |  2 +-
 .../generic/shared/DataSourceProvider.java    |  7 +--
 .../utils/DssPropertyParametersUtil.java      | 54 +++++++++++++++++++
 .../generic/shared/utils/PluginUtilTest.java  |  4 +-
 21 files changed, 138 insertions(+), 90 deletions(-)
 rename {datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils => common/source/java/ch/systemsx/cisd/common/utilities}/PropertyParametersUtil.java (88%)
 create mode 100644 datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/PropertyParametersUtil.java b/common/source/java/ch/systemsx/cisd/common/utilities/PropertyParametersUtil.java
similarity index 88%
rename from datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/PropertyParametersUtil.java
rename to common/source/java/ch/systemsx/cisd/common/utilities/PropertyParametersUtil.java
index 06fa1bd15eb..332d62eaa67 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/PropertyParametersUtil.java
+++ b/common/source/java/ch/systemsx/cisd/common/utilities/PropertyParametersUtil.java
@@ -14,16 +14,13 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.dss.generic.shared.utils;
+package ch.systemsx.cisd.common.utilities;
 
 import java.util.HashSet;
 import java.util.Properties;
 import java.util.Set;
 
-import ch.rinn.restrictions.Private;
 import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
-import ch.systemsx.cisd.common.utilities.ExtendedProperties;
-import ch.systemsx.cisd.common.utilities.PropertyUtils;
 
 /**
  * Utility class to parse properties.
@@ -36,30 +33,8 @@ import ch.systemsx.cisd.common.utilities.PropertyUtils;
  */
 public class PropertyParametersUtil
 {
-    @Private
-    static final String DSS_CODE_KEY = "data-store-server-code";
-
-    private static final String SERVICE_PROPERTIES_FILE = "etc/service.properties";
-
     public static final String ITEMS_DELIMITER = ",";
 
-    /** loads server configuration */
-    public static ExtendedProperties loadServiceProperties()
-    {
-        return loadProperties(SERVICE_PROPERTIES_FILE);
-    }
-
-    public static ExtendedProperties loadProperties(String filePath)
-    {
-        Properties properties = PropertyUtils.loadProperties(filePath);
-        return ExtendedProperties.createWith(properties);
-    }
-
-    public static String getDataStoreCode(Properties serviceProperties)
-    {
-        return PropertyUtils.getMandatoryProperty(serviceProperties, DSS_CODE_KEY);
-    }
-
     // a section is a set of properties which start with the common prefix
     public static class SectionProperties
     {
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java
index 8cee248982b..1cb6399620c 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java
@@ -65,7 +65,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.QueueingDataSetStatusUpdaterService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetCodesWithStatus;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
+import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil;
 import ch.systemsx.cisd.openbis.generic.shared.IServer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance;
 
@@ -309,7 +309,7 @@ public final class ETLDaemon
         migrateStoreRootDir(storeRootDir, openBISService.getHomeDatabaseInstance());
         plugin.getStorageProcessor().setStoreRootDirectory(storeRootDir);
         final Properties mailProperties = Parameters.createMailProperties(properties);
-        String dssCode = PropertyParametersUtil.getDataStoreCode(properties);
+        String dssCode = DssPropertyParametersUtil.getDataStoreCode(properties);
         boolean deleteUnidentified = threadParameters.deleteUnidentified();
         return new TransferredDataSetHandler(dssCode, plugin, openBISService, mailProperties,
                 dataSetValidator, notifySuccessfulRegistration, threadParameters
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/Parameters.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/Parameters.java
index 87e0682de09..fb06039c47f 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/Parameters.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/Parameters.java
@@ -33,11 +33,12 @@ import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.common.mail.JavaMailProperties;
 import ch.systemsx.cisd.common.utilities.ExtendedProperties;
 import ch.systemsx.cisd.common.utilities.IExitHandler;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil;
 import ch.systemsx.cisd.common.utilities.PropertyUtils;
 import ch.systemsx.cisd.common.utilities.SystemExit;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil.SectionProperties;
 import ch.systemsx.cisd.openbis.dss.BuildAndEnvironmentInfo;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil.SectionProperties;
+import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil;
 
 /**
  * The class to process the command line parameters and service properties.
@@ -161,7 +162,7 @@ public class Parameters
     {
         try
         {
-            this.serviceProperties = PropertyParametersUtil.loadServiceProperties();
+            this.serviceProperties = DssPropertyParametersUtil.loadServiceProperties();
             PropertyUtils.trimProperties(serviceProperties);
             this.threads = createThreadParameters(serviceProperties);
             this.timingParameters = TimingParameters.create(serviceProperties);
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/AutoArchiverTask.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/AutoArchiverTask.java
index 0a9c34093d4..18793b8a819 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/AutoArchiverTask.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/AutoArchiverTask.java
@@ -27,13 +27,13 @@ import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.common.utilities.ClassUtils;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil;
 import ch.systemsx.cisd.common.utilities.PropertyUtils;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil.SectionProperties;
 import ch.systemsx.cisd.etlserver.IAutoArchiverPolicy;
 import ch.systemsx.cisd.etlserver.IMaintenanceTask;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil.SectionProperties;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ArchiverDataSetCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Code;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/HierarchicalStorageUpdater.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/HierarchicalStorageUpdater.java
index b3aba6f5f97..df3f9088aee 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/HierarchicalStorageUpdater.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/HierarchicalStorageUpdater.java
@@ -34,7 +34,7 @@ import ch.systemsx.cisd.common.utilities.PropertyUtils;
 import ch.systemsx.cisd.etlserver.IMaintenanceTask;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
+import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO;
 
 /**
@@ -64,7 +64,7 @@ public class HierarchicalStorageUpdater implements IMaintenanceTask
         LogInitializer.init();
         // TODO 2010-03-23, Piotr Buczek: pluginProperties contain all needed properties
         // There is no need to load service properties once again.
-        Properties properties = PropertyParametersUtil.loadServiceProperties();
+        Properties properties = DssPropertyParametersUtil.loadServiceProperties();
         storeRoot = PropertyUtils.getMandatoryProperty(properties, STOREROOT_DIR_KEY);
         hierarchyRoot =
                 PropertyUtils.getMandatoryProperty(properties, pluginName + "."
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/AbstractValidatorFactory.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/AbstractValidatorFactory.java
index 6a6cd98b407..b0fb17109a0 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/AbstractValidatorFactory.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/AbstractValidatorFactory.java
@@ -22,8 +22,8 @@ import java.util.LinkedHashSet;
 import java.util.Properties;
 import java.util.Set;
 
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil;
 import ch.systemsx.cisd.common.utilities.PropertyUtils;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
 
 /**
  * @author Franz-Josef Elmer
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 5536e5ec0cd..3b10f29a5b4 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
@@ -27,23 +27,25 @@ import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.common.utilities.ClassUtils;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil.SectionProperties;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil.SectionProperties;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
 
 /**
  * Default implementation of a data set validator.
- *
+ * 
  * @author Franz-Josef Elmer
  */
 public class DataSetValidator implements IDataSetValidator
 {
     static final String DATA_SET_VALIDATORS_KEY = "data-set-validators";
+
     static final String DATA_SET_TYPE_KEY = "data-set-type";
+
     static final String VALIDATOR_KEY = "validator";
-    
+
     private static final Logger operationLog =
-        LogFactory.getLogger(LogCategory.OPERATION, DataSetValidator.class);
+            LogFactory.getLogger(LogCategory.OPERATION, DataSetValidator.class);
 
     private final Map<String, IDataSetValidator> validators;
 
@@ -93,7 +95,7 @@ public class DataSetValidator implements IDataSetValidator
         }
         return ClassUtils.create(IDataSetValidator.class, validatorClass, validatorProperties);
     }
-    
+
     public void assertValidDataSet(DataSetType dataSetType, File incomingDataSetFileOrFolder)
     {
         IDataSetValidator validator = validators.get(dataSetType.getCode());
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 952126f31a6..208f6f8dc0c 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
@@ -35,11 +35,11 @@ import org.apache.commons.lang.StringUtils;
 import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
 import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil;
 import ch.systemsx.cisd.common.utilities.PropertyUtils;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil.SectionProperties;
 import ch.systemsx.cisd.etlserver.utils.FileScanner;
 import ch.systemsx.cisd.etlserver.utils.TabSeparatedValueTable;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil.SectionProperties;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
 
 /**
@@ -56,14 +56,21 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
 class DataSetValidatorForTSV implements IDataSetValidator
 {
     static final String PATH_PATTERNS_KEY = "path-patterns";
+
     static final String EXCLUDE_PATH_PATTERNS_KEY = "exclude-path-patterns";
+
     static final String IGNORE_EMPTY_LINES_KEY = "ignore-empty-lines";
+
     static final String COLUMNS_KEY = "columns";
-    
+
     private final List<FileScanner> fileScanners;
+
     private final List<FileScanner> excludeFileScanners;
+
     private final List<ColumnDefinition> unorderedDefinitions;
+
     private final Map<Integer, ColumnDefinition> orderedDefinitions;
+
     private final boolean ignoreEmptyLines;
 
     DataSetValidatorForTSV(Properties properties)
@@ -120,15 +127,15 @@ class DataSetValidatorForTSV implements IDataSetValidator
             }
         }
     }
-    
+
     public void assertValidDataSet(DataSetType dataSetType, File incomingDataSetFileOrFolder)
     {
-        Set<File> excludedFiles = new HashSet<File>(); 
+        Set<File> excludedFiles = new HashSet<File>();
         for (FileScanner fileScanner : excludeFileScanners)
         {
             excludedFiles.addAll(fileScanner.scan(incomingDataSetFileOrFolder));
         }
-        
+
         for (FileScanner fileScanner : fileScanners)
         {
             List<File> files = fileScanner.scan(incomingDataSetFileOrFolder);
@@ -141,7 +148,7 @@ class DataSetValidatorForTSV implements IDataSetValidator
             }
         }
     }
-    
+
     private void assertValidFile(File file)
     {
         if (file.isFile() == false)
@@ -173,8 +180,9 @@ class DataSetValidatorForTSV implements IDataSetValidator
                     {
                         if (StringUtils.isNotBlank(row.get(i)))
                         {
-                            throw new UserFailureException("The row in line " + lineNumber + " has "
-                                    + row.size() + " cells instead of " + definitions.length);
+                            throw new UserFailureException("The row in line " + lineNumber
+                                    + " has " + row.size() + " cells instead of "
+                                    + definitions.length);
                         }
                     }
                 }
@@ -214,7 +222,7 @@ class DataSetValidatorForTSV implements IDataSetValidator
             headerSet.add(header);
         }
     }
-    
+
     private ColumnDefinition[] findColumnDefinitions(List<String> columnHeaders)
     {
         ColumnDefinition[] definitions = findOrderedColumnDefinitions(columnHeaders);
@@ -225,7 +233,9 @@ class DataSetValidatorForTSV implements IDataSetValidator
             if (definitions[i] == null)
             {
                 ColumnDefinition orderedColumDefinitionOrNull = orderedDefinitions.get(i + 1);
-                definitions[i] = getDefinition(remainingDefinitions, orderedColumDefinitionOrNull, columnHeaders, i);
+                definitions[i] =
+                        getDefinition(remainingDefinitions, orderedColumDefinitionOrNull,
+                                columnHeaders, i);
             }
         }
         String list = createListOfMissingColumns(remainingDefinitions);
@@ -277,12 +287,12 @@ class DataSetValidatorForTSV implements IDataSetValidator
                 if (result.isValid())
                 {
                     definitions[orderIndex] = columnDefinition;
-                    
+
                 } else if (mandatory)
                 {
-                    throw new UserFailureException("According to column definition '" + columnDefinition.getName()
-                            + "' the header '" + header + "' is invalid because of the following reason: "
-                            + result);
+                    throw new UserFailureException("According to column definition '"
+                            + columnDefinition.getName() + "' the header '" + header
+                            + "' is invalid because of the following reason: " + result);
                 }
 
             }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/HeaderBasedValueValidatorFactory.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/HeaderBasedValueValidatorFactory.java
index 492fa28d306..f6774f0d71c 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/HeaderBasedValueValidatorFactory.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/HeaderBasedValueValidatorFactory.java
@@ -23,23 +23,24 @@ import java.util.regex.Pattern;
 
 import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil;
 import ch.systemsx.cisd.common.utilities.PropertyUtils;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil.SectionProperties;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil.SectionProperties;
 
 /**
  * Collection of {@link IValidatorFactory} instances. Which one is used will be selected by a
  * regular expression the column header matches.
- *
+ * 
  * @author Franz-Josef Elmer
  */
 public class HeaderBasedValueValidatorFactory implements IValidatorFactory
 {
-    private static final class HeaderPatternAndFactory 
+    private static final class HeaderPatternAndFactory
     {
         private final Pattern pattern;
+
         private final IValidatorFactory factory;
-        
+
         HeaderPatternAndFactory(Pattern pattern, IValidatorFactory factory)
         {
             super();
@@ -49,16 +50,19 @@ public class HeaderBasedValueValidatorFactory implements IValidatorFactory
     }
 
     static final String HEADER_PATTERN_KEY = "header-pattern";
-    
+
     static final String HEADER_TYPES_KEY = "header-types";
-    
-    private final List<HeaderPatternAndFactory> factories = new ArrayList<HeaderPatternAndFactory>();
+
+    private final List<HeaderPatternAndFactory> factories =
+            new ArrayList<HeaderPatternAndFactory>();
+
     private final String headerMessage;
 
     public HeaderBasedValueValidatorFactory(Properties properties)
     {
         SectionProperties[] columnsProperties =
-            PropertyParametersUtil.extractSectionProperties(properties, HEADER_TYPES_KEY, false);
+                PropertyParametersUtil
+                        .extractSectionProperties(properties, HEADER_TYPES_KEY, false);
         StringBuilder builder = new StringBuilder();
         for (SectionProperties sectionProperties : columnsProperties)
         {
@@ -79,7 +83,7 @@ public class HeaderBasedValueValidatorFactory implements IValidatorFactory
         }
         headerMessage = builder.toString();
     }
-    
+
     public IValidator createValidator(String columnHeader)
     {
         for (HeaderPatternAndFactory factory : factories)
@@ -93,5 +97,4 @@ public class HeaderBasedValueValidatorFactory implements IValidatorFactory
                 + "': " + headerMessage);
     }
 
-
 }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/UniqueGroupValidatorFactory.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/UniqueGroupValidatorFactory.java
index ab9193d7a36..9562b1d34b2 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/UniqueGroupValidatorFactory.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/validation/UniqueGroupValidatorFactory.java
@@ -20,8 +20,8 @@ import java.util.ArrayList;
 import java.util.Properties;
 
 import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil;
 import ch.systemsx.cisd.common.utilities.PropertyUtils;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
 
 /**
  * Creates {@link UniqueGroupValidator}.
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ConfigParameters.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ConfigParameters.java
index 0dfae8b47be..165963b1b8f 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ConfigParameters.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ConfigParameters.java
@@ -26,9 +26,9 @@ import org.apache.log4j.Logger;
 import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil;
 import ch.systemsx.cisd.common.utilities.PropertyUtils;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil.SectionProperties;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil.SectionProperties;
 
 /**
  * Configuration parameters for the Data Set Download Server.
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java
index 4b55434070b..9b9ef96de4b 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java
@@ -55,7 +55,7 @@ import ch.systemsx.cisd.common.utilities.ExtendedProperties;
 import ch.systemsx.cisd.openbis.dss.generic.server.ConfigParameters.PluginServlet;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
+import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil;
 import ch.systemsx.cisd.openbis.dss.rpc.shared.IDssServiceRpcGeneric;
 import ch.systemsx.cisd.openbis.generic.shared.IServer;
 
@@ -315,7 +315,7 @@ public class DataStoreServer
         Properties properties;
         try
         {
-            properties = PropertyParametersUtil.loadServiceProperties();
+            properties = DssPropertyParametersUtil.loadServiceProperties();
         } catch (ConfigurationFailureException ex)
         {
             properties = new Properties();
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/HighWaterMarkChecker.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/HighWaterMarkChecker.java
index 6b3502ad504..383177430a1 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/HighWaterMarkChecker.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/HighWaterMarkChecker.java
@@ -9,7 +9,7 @@ import ch.systemsx.cisd.common.highwatermark.HostAwareFile;
 import ch.systemsx.cisd.common.highwatermark.HostAwareFileWithHighwaterMark;
 import ch.systemsx.cisd.common.highwatermark.HighwaterMarkWatcher.HighwaterMarkState;
 import ch.systemsx.cisd.common.utilities.PropertyUtils;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
+import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil;
 
 /**
  * Checks if the space available is larger than specified value.
@@ -30,7 +30,7 @@ public class HighWaterMarkChecker implements IStatusChecker, Serializable
      */
     public HighWaterMarkChecker(File path)
     {
-        this(PropertyUtils.getLong(PropertyParametersUtil.loadServiceProperties(),
+        this(PropertyUtils.getLong(DssPropertyParametersUtil.loadServiceProperties(),
                 HostAwareFileWithHighwaterMark.HIGHWATER_MARK_PROPERTY_KEY, -1L), path);
     }
 
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/AbstractPluginTaskFactory.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/AbstractPluginTaskFactory.java
index c314fccbe30..fb9d7a0cefa 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/AbstractPluginTaskFactory.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/AbstractPluginTaskFactory.java
@@ -35,9 +35,10 @@ import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.common.utilities.ClassUtils;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil;
 import ch.systemsx.cisd.common.utilities.PropertyUtils;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil.SectionProperties;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil.SectionProperties;
+import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatastoreServiceDescription;
 
 /**
@@ -124,7 +125,7 @@ public abstract class AbstractPluginTaskFactory<T>
         if (StringUtils.isBlank(parametersFilePath) == false)
         {
             Properties propertiesFromFile =
-                    PropertyParametersUtil.loadProperties(parametersFilePath);
+                    DssPropertyParametersUtil.loadProperties(parametersFilePath);
             addAll(properties, propertiesFromFile);
         }
         return properties;
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/ArchiverTaskFactory.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/ArchiverTaskFactory.java
index e25e53f34db..50a53559952 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/ArchiverTaskFactory.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/ArchiverTaskFactory.java
@@ -27,7 +27,7 @@ import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.common.utilities.ClassUtils;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil.SectionProperties;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil.SectionProperties;
 
 /**
  * Factory of Archiver Tasks.
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/PluginTaskProviders.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/PluginTaskProviders.java
index b86119161de..d1950105fc2 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/PluginTaskProviders.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/PluginTaskProviders.java
@@ -20,8 +20,9 @@ import java.io.File;
 import java.util.Properties;
 
 import ch.rinn.restrictions.Private;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil.SectionProperties;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil.SectionProperties;
+import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatastoreServiceDescriptions;
 
 /**
@@ -50,7 +51,7 @@ public class PluginTaskProviders
     /** for external injections */
     public static PluginTaskProviders create(File storeRoot)
     {
-        Properties properties = PropertyParametersUtil.loadServiceProperties();
+        Properties properties = DssPropertyParametersUtil.loadServiceProperties();
         PluginTaskProviders providers = new PluginTaskProviders(properties, storeRoot);
         providers.check();
         providers.logConfigurations();
@@ -61,7 +62,7 @@ public class PluginTaskProviders
     // public only for tests
     public PluginTaskProviders(Properties serviceProperties, File storeRoot)
     {
-        String datastoreCode = PropertyParametersUtil.getDataStoreCode(serviceProperties);
+        String datastoreCode = DssPropertyParametersUtil.getDataStoreCode(serviceProperties);
         this.reportingPlugins =
                 createReportingPluginsFactories(serviceProperties, datastoreCode, storeRoot);
         this.processingPlugins =
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/ProcessingPluginTaskFactory.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/ProcessingPluginTaskFactory.java
index 3a570b3d211..2d0965ccaee 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/ProcessingPluginTaskFactory.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/ProcessingPluginTaskFactory.java
@@ -22,7 +22,7 @@ import org.apache.log4j.Logger;
 
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil.SectionProperties;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil.SectionProperties;
 
 /**
  * Factory of Processing Plugin Tasks.
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/ReportingPluginTaskFactory.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/ReportingPluginTaskFactory.java
index 468e541fe3c..a14dc84b0b7 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/ReportingPluginTaskFactory.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/ReportingPluginTaskFactory.java
@@ -22,7 +22,7 @@ import org.apache.log4j.Logger;
 
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil.SectionProperties;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil.SectionProperties;
 
 /**
  * Factory of Reporting Plugin Tasks.
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/DataSourceProvider.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/DataSourceProvider.java
index ac339087a62..a16dddf9c7d 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/DataSourceProvider.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/DataSourceProvider.java
@@ -28,9 +28,10 @@ import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.common.utilities.ClassUtils;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil;
 import ch.systemsx.cisd.common.utilities.PropertyUtils;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil.SectionProperties;
+import ch.systemsx.cisd.common.utilities.PropertyParametersUtil.SectionProperties;
+import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil;
 
 /**
  * Stores and provides access to data sources defined in properties file.
@@ -82,7 +83,7 @@ public class DataSourceProvider
 
     private DataSourceProvider()
     {
-        Properties properties = PropertyParametersUtil.loadServiceProperties();
+        Properties properties = DssPropertyParametersUtil.loadServiceProperties();
         dataSources = new HashMap<String, DataSource>();
         SectionProperties[] props =
                 PropertyParametersUtil
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java
new file mode 100644
index 00000000000..f4c51f51bc8
--- /dev/null
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009 ETH Zuerich, CISD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ch.systemsx.cisd.openbis.dss.generic.shared.utils;
+
+import java.util.Properties;
+
+import ch.rinn.restrictions.Private;
+import ch.systemsx.cisd.common.utilities.ExtendedProperties;
+import ch.systemsx.cisd.common.utilities.PropertyUtils;
+
+/**
+ * Utility class to load properties.
+ * 
+ * @author Tomasz Pylak
+ */
+public class DssPropertyParametersUtil
+{
+    @Private
+    static final String DSS_CODE_KEY = "data-store-server-code";
+
+    private static final String SERVICE_PROPERTIES_FILE = "etc/service.properties";
+
+    /** loads server configuration */
+    public static ExtendedProperties loadServiceProperties()
+    {
+        return loadProperties(SERVICE_PROPERTIES_FILE);
+    }
+
+    public static ExtendedProperties loadProperties(String filePath)
+    {
+        Properties properties = PropertyUtils.loadProperties(filePath);
+        return ExtendedProperties.createWith(properties);
+    }
+
+    public static String getDataStoreCode(Properties serviceProperties)
+    {
+        return PropertyUtils.getMandatoryProperty(serviceProperties, DSS_CODE_KEY);
+    }
+
+}
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/PluginUtilTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/PluginUtilTest.java
index 7d7e69df91f..baab27ff943 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/PluginUtilTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/PluginUtilTest.java
@@ -25,13 +25,13 @@ import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.PluginTaskProvi
 /**
  * @author Tomasz Pylak
  */
-@Friend(toClasses = PropertyParametersUtil.class)
+@Friend(toClasses = DssPropertyParametersUtil.class)
 public class PluginUtilTest
 {
     public static PluginTaskProviders createPluginTaskProviders(File storeRoot)
     {
         Properties serviceProperties = new Properties();
-        serviceProperties.put(PropertyParametersUtil.DSS_CODE_KEY, "dss");
+        serviceProperties.put(DssPropertyParametersUtil.DSS_CODE_KEY, "dss");
         return new PluginTaskProviders(serviceProperties, storeRoot);
     }
 }
-- 
GitLab