From 783900e65fbde8332cb45f63c854c2c624337d41 Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Wed, 12 May 2010 09:05:25 +0000
Subject: [PATCH] LMS-1527 Register the services with the name server.

SVN: 15934
---
 .../generic/server/DssScreeningApiServlet.java   |  1 +
 .../screening/server/DssServiceRpcScreening.java | 16 +++++++++++++++-
 .../server/ScreeningApiServiceServer.java        | 13 +++++++++++--
 3 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssScreeningApiServlet.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssScreeningApiServlet.java
index f30dcb10876..53776ec3720 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssScreeningApiServlet.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssScreeningApiServlet.java
@@ -23,6 +23,7 @@ import com.marathon.util.spring.StreamSupportingHttpInvokerServiceExporter;
 
 /**
  * A servlet which exposes the spring bean with the HTTP Invoker
+ * 
  * @author Tomasz Pylak
  */
 public class DssScreeningApiServlet extends HttpInvokerServlet
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java
index d0e43243eb6..34893253c72 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java
@@ -27,12 +27,16 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter;
+
 import com.csvreader.CsvReader;
 
 import ch.systemsx.cisd.bds.hcs.Geometry;
 import ch.systemsx.cisd.bds.hcs.HCSDatasetLoader;
 import ch.systemsx.cisd.bds.hcs.Location;
 import ch.systemsx.cisd.bds.storage.INode;
+import ch.systemsx.cisd.common.api.RpcServiceInterfaceVersionDTO;
+import ch.systemsx.cisd.common.api.server.RpcServiceNameServer;
 import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.common.io.ConcatenatedFileInputStream;
@@ -68,7 +72,17 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements
     {
         super(ServiceProvider.getOpenBISService());
         setStoreDirectory(new File(storeRootDir));
-        operationLog.info("Started RPC V1 screening service.");
+
+        // Register the service with the name server
+        RpcServiceInterfaceVersionDTO ifaceVersion =
+                new RpcServiceInterfaceVersionDTO("screening-dss", "rmi-screening-dss-api-v1",
+                        getVersion(), getMinClientVersion());
+        HttpInvokerServiceExporter nameServiceExporter =
+                ServiceProvider.getRpcNameServiceExporter();
+        RpcServiceNameServer nameServer = (RpcServiceNameServer) nameServiceExporter.getService();
+        nameServer.addSupportedInterfaceVersion(ifaceVersion);
+
+        operationLog.info("Started DSS RPC screening service V1.");
     }
 
     public int getMinClientVersion()
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningApiServiceServer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningApiServiceServer.java
index 360f1e7b866..bd81e7486c1 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningApiServiceServer.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningApiServiceServer.java
@@ -22,6 +22,9 @@ import org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 
+import ch.systemsx.cisd.common.api.IRpcServiceNameServer;
+import ch.systemsx.cisd.common.api.RpcServiceInterfaceVersionDTO;
+import ch.systemsx.cisd.common.api.server.RpcServiceNameServer;
 import ch.systemsx.cisd.common.spring.ServiceExceptionTranslator;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.ResourceNames;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.IScreeningApiServer;
@@ -39,13 +42,19 @@ public class ScreeningApiServiceServer extends HttpInvokerServiceExporter
     @Resource(name = ResourceNames.SCREENING_PLUGIN_SERVER)
     private IScreeningApiServer server;
 
+    @Resource(name = IRpcServiceNameServer.PREFFERED_BEAN_NAME)
+    private RpcServiceNameServer nameServer;
+
     @Override
     public void afterPropertiesSet()
     {
         setServiceInterface(IScreeningApiServer.class);
         setService(server);
-        setInterceptors(new Object[] {new ServiceExceptionTranslator()});
+        setInterceptors(new Object[]
+            { new ServiceExceptionTranslator() });
+        RpcServiceInterfaceVersionDTO ifaceVersion =
+                new RpcServiceInterfaceVersionDTO("screening", "/rmi-screening-api-v1", 1, 0);
+        nameServer.addSupportedInterfaceVersion(ifaceVersion);
         super.afterPropertiesSet();
     }
-
 }
-- 
GitLab