diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/ResourceSyncRequestHandler.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/ResourceSyncRequestHandler.java index d2076558ee843941e2dcd68fe27627c2018ef2b7..2277c0766090fd24cd81ffe0c60f054fc97ea3c1 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/ResourceSyncRequestHandler.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/ResourceSyncRequestHandler.java @@ -16,15 +16,12 @@ package ch.ethz.sis.openbis.generic.server.dss; import ch.ethz.sis.openbis.generic.server.EntityRetriever; -import ch.systemsx.cisd.openbis.common.api.client.IServicePinger; -import ch.systemsx.cisd.openbis.common.api.client.ServiceFinder; import ch.systemsx.cisd.openbis.dss.generic.server.oaipmh.JythonBasedRequestHandler; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.jython.IRequestHandlerPluginScriptRunner; import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IMasterDataRegistrationTransaction; import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.EncapsulatedCommonServer; import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.MasterDataRegistrationService; -import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO; /** @@ -38,18 +35,8 @@ public class ResourceSyncRequestHandler extends JythonBasedRequestHandler protected void setVariables(IRequestHandlerPluginScriptRunner runner, SessionContextDTO session) { super.setVariables(runner, session); - ServiceFinder finder = new ServiceFinder("openbis", "/rmi-common"); - ICommonServer commonServer = - finder.createService(ICommonServer.class, ServiceProvider.getConfigProvider().getOpenBisServerUrl(), - new IServicePinger<ICommonServer>() - { - @Override - public void ping(ICommonServer service) - { - service.getVersion(); - } - }); - EncapsulatedCommonServer encapsulatedServer = EncapsulatedCommonServer.create(commonServer, session.getSessionToken()); + String openBisServerUrl = ServiceProvider.getConfigProvider().getOpenBisServerUrl(); + EncapsulatedCommonServer encapsulatedServer = ServiceFinderUtils.getEncapsulatedCommonServer(session.getSessionToken(), openBisServerUrl); MasterDataRegistrationService service = new MasterDataRegistrationService(encapsulatedServer); IMasterDataRegistrationTransaction masterDataRegistrationTransaction = service.transaction(); diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/ServiceFinderUtils.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/ServiceFinderUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..ec87f84ab440936b4dc1803c7d328c22b52bf292 --- /dev/null +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/ServiceFinderUtils.java @@ -0,0 +1,46 @@ +/* + * Copyright 2016 ETH Zuerich, SIS + * + * 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.ethz.sis.openbis.generic.server.dss; + +import ch.systemsx.cisd.openbis.common.api.client.IServicePinger; +import ch.systemsx.cisd.openbis.common.api.client.ServiceFinder; +import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.EncapsulatedCommonServer; +import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; + +/** + * + * + * @author Ganime Betul Akin + */ +public class ServiceFinderUtils +{ + public static EncapsulatedCommonServer getEncapsulatedCommonServer(String sessionToken, String openBisServerUrl) + { + ServiceFinder finder = new ServiceFinder("openbis", "/rmi-common"); + ICommonServer commonServer = + finder.createService(ICommonServer.class, openBisServerUrl, + new IServicePinger<ICommonServer>() + { + @Override + public void ping(ICommonServer service) + { + service.getVersion(); + } + }); + return EncapsulatedCommonServer.create(commonServer, sessionToken); + } +} \ No newline at end of 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 13a2b02a00a161d0aeba5bf3d5c9c1d42963f9fe..0a6365c5463aecb4ff7879bad74817e5d042d87e 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 @@ -36,7 +36,6 @@ import java.util.Set; import org.apache.commons.codec.binary.Hex; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.time.DateUtils; import org.apache.log4j.Logger; import org.w3c.dom.Document; @@ -59,6 +58,7 @@ import ch.ethz.sis.openbis.generic.dssapi.v3.dto.datasetfile.DataSetFile; import ch.ethz.sis.openbis.generic.dssapi.v3.dto.datasetfile.fetchoptions.DataSetFileFetchOptions; import ch.ethz.sis.openbis.generic.dssapi.v3.dto.datasetfile.search.DataSetFileSearchCriteria; import ch.ethz.sis.openbis.generic.server.EntityRetriever; +import ch.ethz.sis.openbis.generic.server.dss.ServiceFinderUtils; import ch.ethz.sis.openbis.generic.server.dss.plugins.harvester.config.SyncConfig; import ch.ethz.sis.openbis.generic.server.dss.plugins.harvester.synchronizer.ResourceListParserData.Connection; import ch.ethz.sis.openbis.generic.server.dss.plugins.harvester.synchronizer.ResourceListParserData.DataSetWithConnections; @@ -77,7 +77,6 @@ import ch.systemsx.cisd.common.concurrent.ParallelizedExecutor; import ch.systemsx.cisd.common.exceptions.Status; import ch.systemsx.cisd.common.filesystem.FileUtilities; import ch.systemsx.cisd.common.logging.Log4jSimpleLogger; -import ch.systemsx.cisd.common.spring.HttpInvokerUtils; import ch.systemsx.cisd.etlserver.registrator.api.v1.impl.ConversionUtils; import ch.systemsx.cisd.openbis.dss.generic.shared.DataSetDirectoryProvider; import ch.systemsx.cisd.openbis.dss.generic.shared.DataSetProcessingContext; @@ -91,7 +90,6 @@ import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.EncapsulatedCo import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.MasterDataRegistrationException; import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.MasterDataRegistrationTransactionWrapper; import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.MasterDataTransactionErrors; -import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; @@ -448,13 +446,10 @@ public class EntitySynchronizer private MasterDataRegistrationTransactionWrapper getMasterDataRegistrationTransactionWrapper() { - ICommonServer commonService = - HttpInvokerUtils.createServiceStub(ICommonServer.class, ServiceProvider.getConfigProvider().getOpenBisServerUrl() + - "/openbis/rmi-common", - 5 * DateUtils.MILLIS_PER_MINUTE); - EncapsulatedCommonServer encapsulatedServer = - EncapsulatedCommonServer.create(commonService, ServiceProvider.getOpenBISService().getSessionToken()); - return new MasterDataRegistrationTransactionWrapper(encapsulatedServer); + String openBisServerUrl = ServiceProvider.getConfigProvider().getOpenBisServerUrl(); + String sessionToken = ServiceProvider.getOpenBISService().getSessionToken(); + EncapsulatedCommonServer encapsulatedCommonServer = ServiceFinderUtils.getEncapsulatedCommonServer(sessionToken, openBisServerUrl); + return new MasterDataRegistrationTransactionWrapper(encapsulatedCommonServer); } private void processDeletions(ResourceListParserData data) throws NoSuchAlgorithmException, UnsupportedEncodingException