diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/DataSetRegistrationTask.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/DataSetRegistrationTask.java index 926a7cd3cb73c333ae3b09ab093ff3ae269b5b16..5a9e34c0e75348fb59c0c619a9fc27dbbe27fafe 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/DataSetRegistrationTask.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/harvester/DataSetRegistrationTask.java @@ -31,7 +31,6 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Properties; @@ -54,6 +53,7 @@ import ch.systemsx.cisd.common.mail.IMailClient; import ch.systemsx.cisd.common.maintenance.IMaintenanceTask; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.PluginTaskInfoProvider; import ch.systemsx.cisd.openbis.dss.generic.shared.DataSetProcessingContext; +import ch.systemsx.cisd.openbis.dss.generic.shared.IConfigProvider; 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.dto.DataSetInformation; @@ -67,17 +67,12 @@ public class DataSetRegistrationTask<T extends DataSetInformation> implements IM protected static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION, DataSetRegistrationTask.class); - // private static final String DATA_SOURCE_URI = "https://bs-mbpr121.d.ethz.ch:8444/datastore_server/re-sync"; // - // "http://localhost:8889/datastore_server/re-sync"; - final DateFormat formater = new SimpleDateFormat("dd-MM-yy HH-mm-ss", Locale.ENGLISH); private static final String HARVESTER_CONFIG_FILE_PROPERTY_NAME = "harvester-config-file"; private static final String DEFAULT_HARVESTER_CONFIG_FILE_NAME = "../../harvester-config.txt"; - private HashMap<String, String> spaceMappings = new HashMap<String, String>(); - private File storeRoot; private IEncapsulatedOpenBISService service; @@ -94,25 +89,34 @@ public class DataSetRegistrationTask<T extends DataSetInformation> implements IM File newLastSyncTimeStampFile; + private String dataStoreCode; + @Override public void setUp(String pluginName, Properties properties) { - storeRoot = new File(DssPropertyParametersUtil.loadServiceProperties().getProperty(PluginTaskInfoProvider.STOREROOT_DIR_KEY)); service = ServiceProvider.getOpenBISService(); context = new DataSetProcessingContext(null, null, null, null, null, null); + dataStoreCode = getConfigProvider().getDataStoreCode(); + storeRoot = new File(DssPropertyParametersUtil.loadServiceProperties().getProperty(PluginTaskInfoProvider.STOREROOT_DIR_KEY)); mailClient = ServiceProvider.getDataStoreService().createEMailClient(); + String configFileProperty = properties.getProperty(HARVESTER_CONFIG_FILE_PROPERTY_NAME); if (configFileProperty == null) { harvesterConfigFile = - new File(ServiceProvider.getConfigProvider().getStoreRoot(), DEFAULT_HARVESTER_CONFIG_FILE_NAME); + new File(getConfigProvider().getStoreRoot(), DEFAULT_HARVESTER_CONFIG_FILE_NAME); } else { harvesterConfigFile = new File(configFileProperty); } } + private IConfigProvider getConfigProvider() + { + return ServiceProvider.getConfigProvider(); + } + @Override public void execute() { @@ -159,7 +163,8 @@ public class DataSetRegistrationTask<T extends DataSetInformation> implements IM // save the current time into a temp file as last sync time FileUtilities.writeToFile(newLastSyncTimeStampFile, formater.format(new Date())); - EntitySynchronizer synchronizer = new EntitySynchronizer(service, storeRoot, lastSyncTimestamp, context, config, operationLog); + EntitySynchronizer synchronizer = + new EntitySynchronizer(service, dataStoreCode, storeRoot, lastSyncTimestamp, context, config, operationLog); synchronizer.syncronizeEntities(); operationLog.info("Saving the timestamp of sync start to file"); 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 100bddbcbd1e53bef007c4ecc4a0bbbf87d88b17..ccfa05bcbe3ac687872d66ace7672e954f532fe7 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 @@ -130,6 +130,8 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier; */ public class EntitySynchronizer { + private final String dataStoreCode; + private final File storeRoot; private final IEncapsulatedOpenBISService service; @@ -142,10 +144,12 @@ public class EntitySynchronizer private final Logger operationLog; - public EntitySynchronizer(IEncapsulatedOpenBISService service, File storeRoot, Date lastSyncTimestamp, DataSetProcessingContext context, + public EntitySynchronizer(IEncapsulatedOpenBISService service, String dataStoreCode, File storeRoot, Date lastSyncTimestamp, + DataSetProcessingContext context, SyncConfig config, Logger operationLog) { this.service = service; + this.dataStoreCode = dataStoreCode; this.storeRoot = storeRoot; this.lastSyncTimestamp = lastSyncTimestamp; this.context = context; @@ -173,7 +177,8 @@ public class EntitySynchronizer { nameTranslator = new PrefixBasedNameTranslator(dataSourcePrefix); } - ResourceListParser parser = ResourceListParser.create(nameTranslator); // , lastSyncTimestamp + + ResourceListParser parser = ResourceListParser.create(nameTranslator, dataStoreCode); // , lastSyncTimestamp ResourceListParserData data = parser.parseResourceListDocument(doc); processDeletions(data); 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 9d56f290f08cc3c56f9c80d907900daeaa00712d..64af0041cefdaa425b2e5df9faa35e8da7d34df3 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 @@ -76,37 +76,34 @@ public class ResourceListParser { private final ResourceListParserData data; - private INameTranslator nameTranslator; + private final INameTranslator nameTranslator; - public void setNameTranslator(INameTranslator nameTranslator) - { - this.nameTranslator = nameTranslator; - } + private final String dataStoreCode; public INameTranslator getNameTranslator() { return nameTranslator; } - private ResourceListParser(INameTranslator nameTranslator) + private ResourceListParser(INameTranslator nameTranslator, String dataStoreCode) { - // TODO do the returning of parser data better this.data = new ResourceListParserData(); this.nameTranslator = nameTranslator; + this.dataStoreCode = dataStoreCode; } - public static ResourceListParser create(INameTranslator nameTranslator) + public static ResourceListParser create(INameTranslator nameTranslator, String dataStoreCode) { if (nameTranslator == null) { - return create(); + return create(dataStoreCode); } - return new ResourceListParser(nameTranslator); + return new ResourceListParser(nameTranslator, dataStoreCode); } - public static ResourceListParser create() + public static ResourceListParser create(String dataStoreCode) { - return create(new DefaultNameTranslator()); + return create(new DefaultNameTranslator(), dataStoreCode); } public ResourceListParserData parseResourceListDocument(Document doc) throws XPathExpressionException @@ -284,7 +281,7 @@ public class ResourceListParser ds = new NewContainerDataSet(); ds.setCode(code); ds.setDataSetType(new DataSetType(type)); - ds.setDataStoreCode("DSS1"); + ds.setDataStoreCode(this.dataStoreCode); if (sample.trim().equals("") == false) { ds.setSampleIdentifierOrNull(getSampleIdentifier(sample)); @@ -298,7 +295,7 @@ public class ResourceListParser { ds.setCode(code); ds.setDataSetType(new DataSetType(type)); - ds.setDataStoreCode("DSS1"); + ds.setDataStoreCode(this.dataStoreCode); if (sample.trim().equals("") == false) { ds.setSampleIdentifierOrNull(getSampleIdentifier(sample));