diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/config/SyncConfig.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/config/SyncConfig.java index 4674ffb679e886e55adb9daba95e1beb1b45c17b..aca5cb770e8b75998cf8028aa38e77a6f2b2b042 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/config/SyncConfig.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/config/SyncConfig.java @@ -72,14 +72,14 @@ public class SyncConfig this.lastSyncTimestampFileName = lastSyncTimestampFileName; } - public String getDataSourcePrefix() + public String getDataSourceAlias() { - return dataSourcePrefix; + return dataSourceAlias; } - public void setDataSourcePrefix(String dataSourcePrefix) + public void setDataSourceAlias(String dataSourceAlias) { - this.dataSourcePrefix = dataSourcePrefix; + this.dataSourceAlias = dataSourceAlias; } public List<String> getDataSourceSpaces() @@ -157,7 +157,7 @@ public class SyncConfig private String lastSyncTimestampFileName; - private String dataSourcePrefix; + private String dataSourceAlias; private List<String> dataSourceSpaces = new ArrayList<>(); diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/config/SynchronizationConfigReader.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/config/SynchronizationConfigReader.java index 85960387f213418d45e680c5a55403009bd2477f..7c7fd321af1b467eade69f716a0534d720491866 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/config/SynchronizationConfigReader.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/config/SynchronizationConfigReader.java @@ -20,6 +20,7 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.regex.Pattern; import org.apache.log4j.DailyRollingFileAppender; import org.apache.log4j.Logger; @@ -37,6 +38,8 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier; */ public class SynchronizationConfigReader { + private static final String DEFAULT_HARVESTER_TEMP_DIR = "targets/store"; + private static final String DATA_SOURCE_URL_PROPERTY_NAME = "resource-list-url"; private static final String DATA_SOURCE_OPENBIS_URL_PROPERTY_NAME = "data-source-openbis-url"; @@ -45,7 +48,7 @@ public class SynchronizationConfigReader private static final String DATA_SOURCE_SPACES_PROPERTY_NAME = "data-source-spaces"; - private static final String DATA_SOURCE_PREFIX_PROPERTY_NAME = "data-source-prefix"; + private static final String DATA_SOURCE_ALIAS_PROPERTY_NAME = "data-source-alias"; private static final String DATA_SOURCE_AUTH_REALM_PROPERTY_NAME = "data-source-auth-realm"; @@ -57,14 +60,14 @@ public class SynchronizationConfigReader private static final String HARVESTER_TEMP_DIR_PROPERTY_NAME = "harvester-tmp-dir"; - private static final String DEFAULT_LAST_SYNC_TIMESTAMP_FILE = "last-sync-timestamp-file.txt"; - private static final String DEFAULT_LOG_FILE_NAME = "../../syncronization.log"; private static final String HARVESTER_LAST_SYNC_TIMESTAMP_FILE_PROPERTY_NAME = "last-sync-timestamp-file"; private static final String EMAIL_ADDRESSES_PROPERTY_NAME = "email-addresses"; + private String defaultLastSyncTimestampFileName = "last-sync-timestamp-file_{alias}.txt"; + private static final String LOG_FILE_PROPERTY_NAME = "log-file"; List<SyncConfig> configs = new ArrayList<>(); @@ -84,6 +87,7 @@ public class SynchronizationConfigReader configureFileAppender(config, logger); } + config.setDataSourceAlias(reader.getString(section, DATA_SOURCE_ALIAS_PROPERTY_NAME, null, true)); config.setDataSourceURI(reader.getString(section, DATA_SOURCE_URL_PROPERTY_NAME, null, true)); config.setDataSourceOpenbisURL(reader.getString(section, DATA_SOURCE_OPENBIS_URL_PROPERTY_NAME, null, true)); config.setDataSourceDSSURL(reader.getString(section, DATA_SOURCE_DSS_URL_PROPERTY_NAME, null, true)); @@ -107,15 +111,20 @@ public class SynchronizationConfigReader createDataSourceToHarvesterSpaceMappings(config); } - config.setDataSourcePrefix(reader.getString(section, DATA_SOURCE_PREFIX_PROPERTY_NAME, null, false)); - config.setHarvesterTempDir(reader.getString(section, HARVESTER_TEMP_DIR_PROPERTY_NAME, "targets/store", false)); + setDefaultLastSyncTimestampFileName(config); + config.setHarvesterTempDir(reader.getString(section, HARVESTER_TEMP_DIR_PROPERTY_NAME, DEFAULT_HARVESTER_TEMP_DIR, false)); config.setLastSyncTimestampFileName(reader.getString(section, HARVESTER_LAST_SYNC_TIMESTAMP_FILE_PROPERTY_NAME, - DEFAULT_LAST_SYNC_TIMESTAMP_FILE, false)); + defaultLastSyncTimestampFileName, false)); configs.add(config); } return configs; } + private void setDefaultLastSyncTimestampFileName(SyncConfig config) + { + this.defaultLastSyncTimestampFileName = defaultLastSyncTimestampFileName.replaceFirst(Pattern.quote("{alias}"), config.getDataSourceAlias()); + } + private void configureFileAppender(SyncConfig config, Logger logger) { DailyRollingFileAppender console = new DailyRollingFileAppender(); // create appender diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/synchronizer/EntitySynchronizer.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/synchronizer/EntitySynchronizer.java index 0bc54137aceb610f261b0690b97a68af7fd2847d..1ee706588b1eb96e22a6e61e36dd298037cd21f5 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/synchronizer/EntitySynchronizer.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/synchronizer/EntitySynchronizer.java @@ -170,7 +170,7 @@ public class EntitySynchronizer // Parse the resource list: This sends back all projects, // experiments, samples and data sets contained in the XML together with their last modification date to be used for filtering operationLog.info("parsing the resource list xml document"); - String dataSourcePrefix = config.getDataSourcePrefix(); + String dataSourcePrefix = config.getDataSourceAlias(); INameTranslator nameTranslator = null; if (dataSourcePrefix != null && dataSourcePrefix.trim().equals("") == false) { @@ -211,11 +211,8 @@ public class EntitySynchronizer private void processDataSetRelationships(Map<String, DataSetWithConnections> dataSetsToProcess, Map<String, DataSetWithConnections> physicalDSMap) { - AtomicEntityOperationDetailsBuilder builder; - AtomicEntityOperationResult operationResult; - builder = new AtomicEntityOperationDetailsBuilder(); + AtomicEntityOperationDetailsBuilder builder = new AtomicEntityOperationDetailsBuilder(); - builder.user(config.getUser()); Map<String, NewExternalData> datasetsToUpdate = new HashMap<String, NewExternalData>(); // set parent and container data set codes before everything else @@ -321,7 +318,7 @@ public class EntitySynchronizer builder.dataSetUpdate(dsBatchUpdatesDTO); } - operationResult = service.performEntityOperations(builder.getDetails()); + AtomicEntityOperationResult operationResult = service.performEntityOperations(builder.getDetails()); operationLog.info("entity operation result: " + operationResult); } diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/synchronizer/ResourceListParser.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/synchronizer/ResourceListParser.java index a474f978c20643c05d3d467734804acd1b2f1c70..87ac5028e6d4aff5df64fa43445a8456e551254e 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/synchronizer/ResourceListParser.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/synchronizer/ResourceListParser.java @@ -144,7 +144,6 @@ public class ResourceListParser List<String> uris = getResourceLocations(doc, xpath); for (String uri : uris) { - parseUriMetaData(doc, xpath, uri); } @@ -276,7 +275,7 @@ public class ResourceListParser { String code = extractCode(xdNode); String sample = extractAttribute(xdNode, "sample"); - String experiment = extractAttribute(xdNode, "experimente"); + String experiment = extractAttribute(xdNode, "experiment"); String type = extractType(xdNode); String dsKind = extractAttribute(xdNode, "dsKind"); NewExternalData ds = new NewExternalData(); diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/synchronizer/translator/PrefixBasedNameTranslator.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/synchronizer/translator/PrefixBasedNameTranslator.java index c46c0f34e64a1143c101ad6b174330dffa692973..58fe522a79d3036aea9ec20e1c5f99b7be6af5fd 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/synchronizer/translator/PrefixBasedNameTranslator.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/synchronizer/translator/PrefixBasedNameTranslator.java @@ -33,7 +33,7 @@ public class PrefixBasedNameTranslator implements INameTranslator @Override public String translate(String name) { - return prefix + "-" + name; + return prefix + "_" + name; } }