From a423cb293e35d24c30c4b39fe7e970700dd8c86d Mon Sep 17 00:00:00 2001
From: gakin <gakin>
Date: Tue, 20 Dec 2016 13:56:35 +0000
Subject: [PATCH] SSDM-4389 : Proper solution to handle both openbis
 alternative URLs when calling rmi-common service.

SVN: 37526
---
 .../dss/ResourceSyncRequestHandler.java       | 27 ++++++++++---------
 1 file changed, 14 insertions(+), 13 deletions(-)

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 93538106211..d2076558ee8 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
@@ -15,11 +15,9 @@
  */
 package ch.ethz.sis.openbis.generic.server.dss;
 
-import org.apache.commons.lang.time.DateUtils;
-
 import ch.ethz.sis.openbis.generic.server.EntityRetriever;
-import ch.systemsx.cisd.common.spring.HttpInvokerUtils;
-import ch.systemsx.cisd.common.ssl.SslCertificateHelper;
+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;
@@ -40,15 +38,18 @@ public class ResourceSyncRequestHandler extends JythonBasedRequestHandler
     protected void setVariables(IRequestHandlerPluginScriptRunner runner, SessionContextDTO session)
     {
         super.setVariables(runner, session);
-
-        String openBisUrl = ServiceProvider.getConfigProvider().getOpenBisServerUrl();
-        SslCertificateHelper.trustAnyCertificate(openBisUrl);
-        ICommonServer commonService =
-                HttpInvokerUtils.createServiceStub(ICommonServer.class, ((String.valueOf(properties.get("server-url")).trim()))
-                        + "/rmi-common",
-                        5 * DateUtils.MILLIS_PER_MINUTE);
-
-        EncapsulatedCommonServer encapsulatedServer = EncapsulatedCommonServer.create(commonService, session.getSessionToken());
+        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());
         MasterDataRegistrationService service = new MasterDataRegistrationService(encapsulatedServer);
         IMasterDataRegistrationTransaction masterDataRegistrationTransaction = service.transaction();
 
-- 
GitLab