This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git


The following commit(s) were added to refs/heads/master by this push:
     new bef02ef  Migrating return values of rest services away from simple 
types
bef02ef is described below

commit bef02ef5b8d1f47f6cded2257ac49ae770e4f0fb
Author: Martin Stockhammer <[email protected]>
AuthorDate: Tue Jun 30 13:24:49 2020 +0200

    Migrating return values of rest services away from simple types
---
 .../archiva/rest/api/model/MemoryStatus.java}      | 36 ++++++++++++----------
 .../apache/archiva/rest/api/model/PingResult.java} | 36 ++++++++++++----------
 .../apache/archiva/rest/api/model/PomSnippet.java} | 36 ++++++++++++----------
 .../apache/archiva/rest/api/model/Timestamp.java}  | 36 ++++++++++++----------
 .../archiva/rest/api/services/CommonServices.java  |  9 +++---
 .../api/services/ManagedRepositoriesService.java   |  5 +--
 .../archiva/rest/api/services/PingService.java     |  5 +--
 .../rest/api/services/SystemStatusService.java     | 10 +++---
 .../rest/services/DefaultCommonServices.java       | 30 ++++++++++++------
 .../DefaultManagedRepositoriesService.java         |  5 +--
 .../archiva/rest/services/DefaultPingService.java  |  7 +++--
 .../rest/services/DefaultSystemStatusService.java  | 10 +++---
 .../archiva/rest/services/PingServiceTest.java     | 15 ++++-----
 13 files changed, 139 insertions(+), 101 deletions(-)

diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/MemoryStatus.java
similarity index 58%
copy from 
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
copy to 
archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/MemoryStatus.java
index 1d89c7e..1bf1528 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/MemoryStatus.java
@@ -1,4 +1,4 @@
-package org.apache.archiva.rest.services;
+package org.apache.archiva.rest.api.model;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -9,8 +9,7 @@ package org.apache.archiva.rest.services;
  * "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
- *
+ * 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
@@ -19,26 +18,31 @@ package org.apache.archiva.rest.services;
  * under the License.
  */
 
-import org.apache.archiva.rest.api.services.PingService;
-import org.springframework.stereotype.Service;
+import javax.xml.bind.annotation.XmlRootElement;
 
 /**
- * @author Olivier Lamy
- * @since 1.4-M1
+ * @author Martin Stockhammer <[email protected]>
  */
-@Service( "pingService#rest" )
-public class DefaultPingService
-    implements PingService
+@XmlRootElement(name="memoryStatus")
+public class MemoryStatus
 {
-    @Override
-    public String ping()
+    String statusText;
+
+    public MemoryStatus() {
+
+    }
+
+    public MemoryStatus(String statusText) {
+        this.statusText = statusText;
+    }
+
+    public String getStatusText( )
     {
-        return "Yeah Baby It rocks!";
+        return statusText;
     }
 
-    @Override
-    public String pingWithAuthz()
+    public void setStatusText( String statusText )
     {
-        return ping();
+        this.statusText = statusText;
     }
 }
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PingResult.java
similarity index 61%
copy from 
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
copy to 
archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PingResult.java
index 1d89c7e..566b291 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PingResult.java
@@ -1,4 +1,4 @@
-package org.apache.archiva.rest.services;
+package org.apache.archiva.rest.api.model;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -9,8 +9,7 @@ package org.apache.archiva.rest.services;
  * "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
- *
+ * 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
@@ -19,26 +18,31 @@ package org.apache.archiva.rest.services;
  * under the License.
  */
 
-import org.apache.archiva.rest.api.services.PingService;
-import org.springframework.stereotype.Service;
+import javax.xml.bind.annotation.XmlRootElement;
 
 /**
- * @author Olivier Lamy
- * @since 1.4-M1
+ * @author Martin Stockhammer <[email protected]>
  */
-@Service( "pingService#rest" )
-public class DefaultPingService
-    implements PingService
+@XmlRootElement(name="pingResult")
+public class PingResult
 {
-    @Override
-    public String ping()
+    String output;
+
+    public PingResult() {
+
+    }
+
+    public PingResult(String output) {
+        this.output = output;
+    }
+
+    public String getOutput( )
     {
-        return "Yeah Baby It rocks!";
+        return output;
     }
 
-    @Override
-    public String pingWithAuthz()
+    public void setOutput( String output )
     {
-        return ping();
+        this.output = output;
     }
 }
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PomSnippet.java
similarity index 62%
copy from 
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
copy to 
archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PomSnippet.java
index 1d89c7e..80a89d3 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PomSnippet.java
@@ -1,4 +1,4 @@
-package org.apache.archiva.rest.services;
+package org.apache.archiva.rest.api.model;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -9,8 +9,7 @@ package org.apache.archiva.rest.services;
  * "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
- *
+ * 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
@@ -19,26 +18,31 @@ package org.apache.archiva.rest.services;
  * under the License.
  */
 
-import org.apache.archiva.rest.api.services.PingService;
-import org.springframework.stereotype.Service;
+import javax.xml.bind.annotation.XmlRootElement;
 
 /**
- * @author Olivier Lamy
- * @since 1.4-M1
+ * @author Martin Stockhammer <[email protected]>
  */
-@Service( "pingService#rest" )
-public class DefaultPingService
-    implements PingService
+@XmlRootElement(name="pomSnippet")
+public class PomSnippet
 {
-    @Override
-    public String ping()
+    String text;
+
+    public PomSnippet() {
+
+    }
+
+    public PomSnippet(String text) {
+        this.text = text;
+    }
+
+    public String getText( )
     {
-        return "Yeah Baby It rocks!";
+        return text;
     }
 
-    @Override
-    public String pingWithAuthz()
+    public void setText( String text )
     {
-        return ping();
+        this.text = text;
     }
 }
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/Timestamp.java
similarity index 61%
copy from 
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
copy to 
archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/Timestamp.java
index 1d89c7e..19adfb3 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/Timestamp.java
@@ -1,4 +1,4 @@
-package org.apache.archiva.rest.services;
+package org.apache.archiva.rest.api.model;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -9,8 +9,7 @@ package org.apache.archiva.rest.services;
  * "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
- *
+ * 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
@@ -19,26 +18,31 @@ package org.apache.archiva.rest.services;
  * under the License.
  */
 
-import org.apache.archiva.rest.api.services.PingService;
-import org.springframework.stereotype.Service;
+import javax.xml.bind.annotation.XmlRootElement;
 
 /**
- * @author Olivier Lamy
- * @since 1.4-M1
+ * @author Martin Stockhammer <[email protected]>
  */
-@Service( "pingService#rest" )
-public class DefaultPingService
-    implements PingService
+@XmlRootElement(name="timestamp")
+public class Timestamp
 {
-    @Override
-    public String ping()
+    String value;
+
+    public Timestamp() {
+
+    }
+
+    public Timestamp( String value) {
+        this.value = value;
+    }
+
+    public String getValue( )
     {
-        return "Yeah Baby It rocks!";
+        return value;
     }
 
-    @Override
-    public String pingWithAuthz()
+    public void setValue( String value )
     {
-        return ping();
+        this.value = value;
     }
 }
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/CommonServices.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/CommonServices.java
index 68d827f..09d8646 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/CommonServices.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/CommonServices.java
@@ -28,6 +28,7 @@ import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
+import java.util.Map;
 
 /**
  * contains some "free" services (i18n)
@@ -47,9 +48,9 @@ public interface CommonServices
      */
     @Path( "getI18nResources" )
     @GET
-    @Produces( { MediaType.TEXT_PLAIN } )
+    @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
     @RedbackAuthorization( noRestriction = true )
-    String getI18nResources( @QueryParam( "locale" ) String locale )
+    Map<String,String> getI18nResources( @QueryParam( "locale" ) String locale 
)
         throws ArchivaRestServiceException;
 
     /**
@@ -60,9 +61,9 @@ public interface CommonServices
      */
     @Path( "getAllI18nResources" )
     @GET
-    @Produces( { MediaType.TEXT_PLAIN } )
+    @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
     @RedbackAuthorization( noRestriction = true )
-    String getAllI18nResources( @QueryParam( "locale" ) String locale )
+    Map<String,String> getAllI18nResources( @QueryParam( "locale" ) String 
locale )
         throws ArchivaRestServiceException;
 
 
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ManagedRepositoriesService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ManagedRepositoriesService.java
index 208f24f..5a61d07 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ManagedRepositoriesService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ManagedRepositoriesService.java
@@ -26,6 +26,7 @@ import 
org.apache.archiva.redback.authorization.RedbackAuthorization;
 import org.apache.archiva.rest.api.model.ActionStatus;
 import org.apache.archiva.rest.api.model.ArchivaRepositoryStatistics;
 import org.apache.archiva.rest.api.model.FileStatus;
+import org.apache.archiva.rest.api.model.PomSnippet;
 import org.apache.archiva.security.common.ArchivaRoleConstants;
 
 import javax.ws.rs.Consumes;
@@ -116,9 +117,9 @@ public interface ManagedRepositoriesService
      */
     @Path( "getPomSnippet/{repositoryId}" )
     @GET
-    @Produces( { MediaType.TEXT_PLAIN } )
+    @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
     @RedbackAuthorization( permissions = 
ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
-    String getPomSnippet( @PathParam( "repositoryId" ) String repositoryId )
+    PomSnippet getPomSnippet( @PathParam( "repositoryId" ) String repositoryId 
)
         throws ArchivaRestServiceException;
 
 
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/PingService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/PingService.java
index b1016b8..ab53f3d 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/PingService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/PingService.java
@@ -21,6 +21,7 @@ package org.apache.archiva.rest.api.services;
 
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.apache.archiva.redback.authorization.RedbackAuthorization;
+import org.apache.archiva.rest.api.model.PingResult;
 
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
@@ -45,7 +46,7 @@ public interface PingService
     @GET
     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, 
MediaType.TEXT_PLAIN } )
     @RedbackAuthorization( noRestriction = true )
-    String ping();
+    PingResult ping();
 
     /**
      * same as #ping but check authz
@@ -56,6 +57,6 @@ public interface PingService
     @GET
     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, 
MediaType.TEXT_PLAIN } )
     @RedbackAuthorization( noRestriction = false, noPermission = true )
-    String pingWithAuthz();
+    PingResult pingWithAuthz();
 
 }
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SystemStatusService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SystemStatusService.java
index c6b4332..c8d509f 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SystemStatusService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SystemStatusService.java
@@ -22,6 +22,8 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import org.apache.archiva.redback.authorization.RedbackAuthorization;
 import org.apache.archiva.rest.api.model.ActionStatus;
 import org.apache.archiva.rest.api.model.CacheEntry;
+import org.apache.archiva.rest.api.model.Timestamp;
+import org.apache.archiva.rest.api.model.MemoryStatus;
 import org.apache.archiva.rest.api.model.QueueEntry;
 import org.apache.archiva.rest.api.model.RepositoryScannerStatistics;
 import org.apache.archiva.security.common.ArchivaRoleConstants;
@@ -43,16 +45,16 @@ public interface SystemStatusService
 {
     @Path( "memoryStatus" )
     @GET
-    @Produces( MediaType.TEXT_PLAIN )
+    @Produces( {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
     @RedbackAuthorization( permissions = 
ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
-    String getMemoryStatus()
+    MemoryStatus getMemoryStatus()
         throws ArchivaRestServiceException;
 
     @Path( "currentServerTime/{locale}" )
     @GET
-    @Produces( MediaType.TEXT_PLAIN )
+    @Produces( {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML} )
     @RedbackAuthorization( permissions = 
ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
-    String getCurrentServerTime( @PathParam( "locale" ) String locale )
+    Timestamp getCurrentServerTime( @PathParam( "locale" ) String locale )
         throws ArchivaRestServiceException;
 
     @Path( "queueEntries" )
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultCommonServices.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultCommonServices.java
index 25ee182..b57e66c 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultCommonServices.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultCommonServices.java
@@ -40,6 +40,7 @@ import java.io.InputStream;
 import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
 
 /**
  * @author Olivier Lamy
@@ -56,7 +57,7 @@ public class DefaultCommonServices
     @Inject
     private UtilServices utilServices;
 
-    private Map<String, String> cachei18n = new ConcurrentHashMap<String, 
String>();
+    private Map<String, Map<String,String>> cachei18n = new 
ConcurrentHashMap<String, Map<String,String>>();
 
     @Inject
     protected CronExpressionValidator cronExpressionValidator;
@@ -72,7 +73,7 @@ public class DefaultCommonServices
     }
 
     @Override
-    public String getI18nResources( String locale )
+    public Map<String,String> getI18nResources( String locale )
         throws ArchivaRestServiceException
     {
         Properties properties = new Properties();
@@ -89,7 +90,14 @@ public class DefaultCommonServices
             log.warn( "skip error loading properties {}", resourceName );
         }
 
-        return fromProperties( properties );
+        return properties.entrySet().stream().collect(
+            Collectors.toMap(
+                e -> e.getKey().toString(),
+                e -> e.getValue().toString()
+            )
+        );
+
+
     }
 
     private void loadResource( Properties properties, StringBuilder 
resourceName, String locale )
@@ -142,11 +150,11 @@ public class DefaultCommonServices
     }
 
     @Override
-    public String getAllI18nResources( String locale )
+    public Map<String,String> getAllI18nResources( String locale )
         throws ArchivaRestServiceException
     {
 
-        String cachedi18n = cachei18n.get( StringUtils.isEmpty( locale ) ? 
"en" : StringUtils.lowerCase( locale ) );
+        Map<String,String> cachedi18n = cachei18n.get( StringUtils.isEmpty( 
locale ) ? "en" : StringUtils.lowerCase( locale ) );
         if ( cachedi18n != null )
         {
             return cachedi18n;
@@ -158,10 +166,14 @@ public class DefaultCommonServices
             Properties all = utilServices.getI18nProperties( locale );
             StringBuilder resourceName = new StringBuilder( RESOURCE_NAME );
             loadResource( all, resourceName, locale );
-
-            String i18n = fromProperties( all );
-            cachei18n.put( StringUtils.isEmpty( locale ) ? "en" : 
StringUtils.lowerCase( locale ), i18n );
-            return i18n;
+            Map<String, String> allMap = all.entrySet().stream().collect(
+            Collectors.toMap(
+                e -> e.getKey().toString(),
+                e -> e.getValue().toString()
+            )
+            );
+            cachei18n.put( StringUtils.isEmpty( locale ) ? "en" : 
StringUtils.lowerCase( locale ), allMap );
+            return allMap;
         }
         catch ( IOException e )
         {
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultManagedRepositoriesService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultManagedRepositoriesService.java
index 6aec318..ea84684 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultManagedRepositoriesService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultManagedRepositoriesService.java
@@ -30,6 +30,7 @@ import 
org.apache.archiva.metadata.repository.stats.model.RepositoryStatisticsMa
 import org.apache.archiva.rest.api.model.ActionStatus;
 import org.apache.archiva.rest.api.model.ArchivaRepositoryStatistics;
 import org.apache.archiva.rest.api.model.FileStatus;
+import org.apache.archiva.rest.api.model.PomSnippet;
 import org.apache.archiva.rest.api.services.ArchivaRestServiceException;
 import org.apache.archiva.rest.api.services.ManagedRepositoriesService;
 import org.apache.commons.lang3.StringEscapeUtils;
@@ -211,10 +212,10 @@ public class DefaultManagedRepositoriesService
     }
 
     @Override
-    public String getPomSnippet( String repositoryId )
+    public PomSnippet getPomSnippet( String repositoryId )
         throws ArchivaRestServiceException
     {
-        return createSnippet( getManagedRepository( repositoryId ) );
+        return new PomSnippet( createSnippet( getManagedRepository( 
repositoryId ) ) );
     }
 
     private String createSnippet( ManagedRepository repo )
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
index 1d89c7e..8603247 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPingService.java
@@ -19,6 +19,7 @@ package org.apache.archiva.rest.services;
  * under the License.
  */
 
+import org.apache.archiva.rest.api.model.PingResult;
 import org.apache.archiva.rest.api.services.PingService;
 import org.springframework.stereotype.Service;
 
@@ -31,13 +32,13 @@ public class DefaultPingService
     implements PingService
 {
     @Override
-    public String ping()
+    public PingResult ping()
     {
-        return "Yeah Baby It rocks!";
+        return new PingResult( "Yeah Baby It rocks!" );
     }
 
     @Override
-    public String pingWithAuthz()
+    public PingResult pingWithAuthz()
     {
         return ping();
     }
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSystemStatusService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSystemStatusService.java
index 7756646..2b1c8ab 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSystemStatusService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSystemStatusService.java
@@ -29,8 +29,10 @@ import 
org.apache.archiva.repository.scanner.RepositoryScannerInstance;
 import org.apache.archiva.rest.api.model.ActionStatus;
 import org.apache.archiva.rest.api.model.CacheEntry;
 import org.apache.archiva.rest.api.model.ConsumerScanningStatistics;
+import org.apache.archiva.rest.api.model.MemoryStatus;
 import org.apache.archiva.rest.api.model.QueueEntry;
 import org.apache.archiva.rest.api.model.RepositoryScannerStatistics;
+import org.apache.archiva.rest.api.model.Timestamp;
 import org.apache.archiva.rest.api.services.ArchivaRestServiceException;
 import org.apache.archiva.rest.api.services.SystemStatusService;
 import 
org.apache.archiva.rest.services.utils.ConsumerScanningStatisticsComparator;
@@ -86,7 +88,7 @@ public class DefaultSystemStatusService
     }
 
     @Override
-    public String getMemoryStatus()
+    public MemoryStatus getMemoryStatus()
         throws ArchivaRestServiceException
     {
         Runtime runtime = Runtime.getRuntime();
@@ -94,7 +96,7 @@ public class DefaultSystemStatusService
         long total = runtime.totalMemory();
         long used = total - runtime.freeMemory();
         long max = runtime.maxMemory();
-        return formatMemory( used ) + "/" + formatMemory( total ) + " (Max: " 
+ formatMemory( max ) + ")";
+        return new MemoryStatus( formatMemory( used ) + "/" + formatMemory( 
total ) + " (Max: " + formatMemory( max ) + ")" );
     }
 
     private static String formatMemory( long l )
@@ -103,11 +105,11 @@ public class DefaultSystemStatusService
     }
 
     @Override
-    public String getCurrentServerTime( String locale )
+    public Timestamp getCurrentServerTime( String locale )
         throws ArchivaRestServiceException
     {
         SimpleDateFormat sdf = new SimpleDateFormat( "EEE, d MMM yyyy HH:mm:ss 
Z", new Locale( locale ) );
-        return sdf.format( new Date() );
+        return new Timestamp( sdf.format( new Date( ) ) );
     }
 
     @Override
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/PingServiceTest.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/PingServiceTest.java
index 7fb242e..6fff4d3 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/PingServiceTest.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/PingServiceTest.java
@@ -19,6 +19,7 @@ package org.apache.archiva.rest.services;
  * under the License.
  */
 
+import org.apache.archiva.rest.api.model.PingResult;
 import org.apache.archiva.rest.api.services.PingService;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.junit.Ignore;
@@ -42,8 +43,8 @@ public class PingServiceTest
         // 1000000L
         //WebClient.getConfig( userService 
).getHttpConduit().getClient().setReceiveTimeout(3000);
 
-        String res = getPingService().ping();
-        assertEquals( "Yeah Baby It rocks!", res );
+        PingResult res = getPingService().ping();
+        assertEquals( "Yeah Baby It rocks!", res.getOutput() );
     }
 
     @Test( expected = ForbiddenException.class )
@@ -53,7 +54,7 @@ public class PingServiceTest
 
         try
         {
-            String res = getPingService().pingWithAuthz();
+            PingResult res = getPingService().pingWithAuthz();
             fail( "not in exception" );
         }
         catch ( ForbiddenException e )
@@ -71,8 +72,8 @@ public class PingServiceTest
         PingService service = getPingService();
         WebClient.getConfig( service 
).getHttpConduit().getClient().setReceiveTimeout( 300000 );
         WebClient.client( service ).header( "Authorization", 
authorizationHeader );
-        String res = service.pingWithAuthz();
-        assertEquals( "Yeah Baby It rocks!", res );
+        PingResult res = service.pingWithAuthz();
+        assertEquals( "Yeah Baby It rocks!", res.getOutput() );
     }
 
     @Ignore( "FIXME guest failed ???" )
@@ -83,7 +84,7 @@ public class PingServiceTest
         PingService service = getPingService();
         WebClient.getConfig( service 
).getHttpConduit().getClient().setReceiveTimeout( 300000 );
         WebClient.client( service ).header( "Authorization", guestAuthzHeader 
);
-        String res = service.pingWithAuthz();
-        assertEquals( "Yeah Baby It rocks!", res );
+        PingResult res = service.pingWithAuthz();
+        assertEquals( "Yeah Baby It rocks!", res.getOutput() );
     }
 }

Reply via email to