From 6e116a1de85e5bc6788b24810305cfcb7558ff27 Mon Sep 17 00:00:00 2001
From: gakin <gakin>
Date: Thu, 30 Mar 2017 13:56:36 +0000
Subject: [PATCH] SSDM-4584 : New optional flag
 translate-using-data-source-alias in harvester-config file

SVN: 38007
---
 .../sync/harvester/config/ConfigReader.java        | 14 ++++++++++++++
 .../plugins/sync/harvester/config/SyncConfig.java  | 13 +++++++++++++
 .../config/SynchronizationConfigReader.java        |  3 +++
 3 files changed, 30 insertions(+)

diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/config/ConfigReader.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/config/ConfigReader.java
index eb969e940d4..fdbcaa9708f 100644
--- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/config/ConfigReader.java
+++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/config/ConfigReader.java
@@ -191,4 +191,18 @@ public class ConfigReader
         }
         return Double.parseDouble(val);
     }
+
+    public boolean getBoolean(String section, String key, boolean mandatory)
+    {
+        String val = getValue(section, key);
+        if (val == null)
+        {
+            if (mandatory)
+            {
+                throw new ConfigurationFailureException("Property '" + key + "' in section '" + section + "'  is mandatory.");
+            }
+            return false;
+        }
+        return Boolean.parseBoolean(val);
+    }
 }
\ No newline at end of file
diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/config/SyncConfig.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/config/SyncConfig.java
index 7b974790af7..844f76d2958 100644
--- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/config/SyncConfig.java
+++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/config/SyncConfig.java
@@ -199,6 +199,8 @@ public class SyncConfig
 
     private String dataSourceAlias;
 
+    private Boolean translateUsingDataSourceAlias = false;
+
     private List<String> dataSourceSpaces = new ArrayList<>();
 
     private List<String> harvesterSpaces = new ArrayList<>();
@@ -260,4 +262,15 @@ public class SyncConfig
     {
         return this.authCredentials.getPassword();
     }
+
+    public Boolean isTranslateUsingDataSourceAlias()
+    {
+        return translateUsingDataSourceAlias;
+    }
+
+    public void setTranslateUsingDataSourceAlias(Boolean translateUsingDataSourceAlias)
+    {
+        this.translateUsingDataSourceAlias = translateUsingDataSourceAlias;
+    }
+
 }
diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/config/SynchronizationConfigReader.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/config/SynchronizationConfigReader.java
index a3ef7edc568..f68ddfd440c 100644
--- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/config/SynchronizationConfigReader.java
+++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/config/SynchronizationConfigReader.java
@@ -72,6 +72,8 @@ public class SynchronizationConfigReader
 
     private static final String EMAIL_ADDRESSES_PROPERTY_NAME = "email-addresses";
 
+    private static final String TRANSLATE_USING_DATA_SOURCE_ALIAS = "translate-using-data-source-alias";
+
     private String defaultLastSyncTimestampFileName = "last-sync-timestamp-file_{alias}.txt";
 
     private String defaultNotSyncedEntitiesFileName = "not-synced-entities_{alias}.txt";
@@ -123,6 +125,7 @@ public class SynchronizationConfigReader
             }
 
             config.setHarvesterTempDir(reader.getString(section, HARVESTER_TEMP_DIR_PROPERTY_NAME, DEFAULT_HARVESTER_TEMP_DIR, false));
+            config.setTranslateUsingDataSourceAlias(reader.getBoolean(section, TRANSLATE_USING_DATA_SOURCE_ALIAS, false));
 
             defaultLastSyncTimestampFileName = defaultLastSyncTimestampFileName.replaceFirst(Pattern.quote("{alias}"), config.getDataSourceAlias());
             config.setLastSyncTimestampFileName(
-- 
GitLab