diff --git a/dspace-server-webapp/src/main/java/org/dspace/app/rest/converter/RootConverter.java b/dspace-server-webapp/src/main/java/org/dspace/app/rest/converter/RootConverter.java index 3675ddf13f0..3b8b1ec1136 100644 --- a/dspace-server-webapp/src/main/java/org/dspace/app/rest/converter/RootConverter.java +++ b/dspace-server-webapp/src/main/java/org/dspace/app/rest/converter/RootConverter.java @@ -44,7 +44,9 @@ public RootRest convert(HttpServletRequest request) { } else { rootRest.setDspaceServer(dspaceUrl); } - rootRest.setDspaceVersion("DSpace " + getSourceVersion()); + String versionPrefix = StringUtils.defaultIfBlank( + configurationService.getProperty("dspace.version.prefix", "DSpace"), "DSpace"); + rootRest.setDspaceVersion(versionPrefix + " " + getSourceVersion()); rootRest.setBuildVersion(getBuildVersion()); return rootRest; } diff --git a/dspace-server-webapp/src/test/java/org/dspace/app/rest/converter/RootConverterTest.java b/dspace-server-webapp/src/test/java/org/dspace/app/rest/converter/RootConverterTest.java index 951bedbf47c..53b16fd8cb3 100644 --- a/dspace-server-webapp/src/test/java/org/dspace/app/rest/converter/RootConverterTest.java +++ b/dspace-server-webapp/src/test/java/org/dspace/app/rest/converter/RootConverterTest.java @@ -45,6 +45,7 @@ public void setUp() throws Exception { when(configurationService.getProperty("dspace.name")).thenReturn("dspacename"); when(configurationService.getProperty("dspace.server.url")).thenReturn(serverURL); when(configurationService.getProperty("dspace.server.ssr.url", serverURL)).thenReturn(serverSSRURL); + when(configurationService.getProperty("dspace.version.prefix", "DSpace")).thenReturn("DSpace"); } @@ -85,4 +86,15 @@ public void testCorrectInternalUrlSetFromConfigurationService() throws Exception assertEquals(serverSSRURL, rootRest.getDspaceServer()); assertEquals("DSpace " + Util.getSourceVersion(), rootRest.getDspaceVersion()); } + + @Test + public void testConfigurableVersionPrefix() throws Exception { + when(configurationService.getProperty("dspace.version.prefix", "DSpace")).thenReturn("CLARIN-DSpace"); + request.setScheme("https"); + request.setServerName("dspace-rest"); + request.setServerPort(443); + request.setRequestURI("/server/api"); + RootRest rootRest = rootConverter.convert(request); + assertEquals("CLARIN-DSpace " + Util.getSourceVersion(), rootRest.getDspaceVersion()); + } } diff --git a/dspace/config/dspace.cfg b/dspace/config/dspace.cfg index add4564d547..4359ea7d6cc 100644 --- a/dspace/config/dspace.cfg +++ b/dspace/config/dspace.cfg @@ -42,6 +42,11 @@ dspace.ui.url = http://localhost:4000 dspace.name = DSpace at My University dspace.shortname = DSpace +# Prefix for the version string exposed at the REST root (/server/api), rendered by the UI as +# the HTML value. Defaults to "DSpace" when unset; CLARIN/customer +# deployments may set e.g. "CLARIN-DSpace". +# dspace.version.prefix = DSpace + # Assetstore configurations have moved to config/modules/assetstore.cfg # and config/spring/api/bitstore.xml. # Additional storage options (e.g. Amazon S3) are available in `assetstore.cfg`