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 f30dcb108768949eeb214a5c6758fc1fe37afbac..53776ec37206ba3c12b51a1a6a59414db41bd3dc 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 d0e43243eb6e4ed0e501ec037533fe77095dc656..34893253c726188e3c5228354fe7defd6ac4f805 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 360f1e7b86605c384961abc78ab170994a980d0b..bd81e7486c14faacc9c5133e8fd4bd9366797fab 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(); } - }