You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2012/04/02 12:28:26 UTC

svn commit: r1308291 - /archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultCommonServices.java

Author: olamy
Date: Mon Apr  2 10:28:26 2012
New Revision: 1308291

URL: http://svn.apache.org/viewvc?rev=1308291&view=rev
Log:
cache i18n values

Modified:
    archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultCommonServices.java

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultCommonServices.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultCommonServices.java?rev=1308291&r1=1308290&r2=1308291&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultCommonServices.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultCommonServices.java Mon Apr  2 10:28:26 2012
@@ -29,6 +29,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 import javax.ws.rs.core.Response;
 import java.io.ByteArrayInputStream;
@@ -36,6 +37,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.Map;
 import java.util.Properties;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * @author Olivier Lamy
@@ -52,9 +54,21 @@ public class DefaultCommonServices
     @Inject
     private UtilServices utilServices;
 
+    private Map<String, String> cachei18n = new ConcurrentHashMap<String, String>();
+
     @Inject
     protected CronExpressionValidator cronExpressionValidator;
 
+    @PostConstruct
+    public void init()
+        throws ArchivaRestServiceException
+    {
+
+        // preload i18n en and fr
+        getAllI18nResources( "en" );
+        getAllI18nResources( "fr" );
+    }
+
     public String getI18nResources( String locale )
         throws ArchivaRestServiceException
     {
@@ -133,6 +147,13 @@ public class DefaultCommonServices
     public String getAllI18nResources( String locale )
         throws ArchivaRestServiceException
     {
+
+        String cachedi18n = cachei18n.get( StringUtils.isEmpty( locale ) ? "en" : StringUtils.lowerCase( locale ) );
+        if ( cachedi18n != null )
+        {
+            return cachedi18n;
+        }
+
         try
         {
 
@@ -140,7 +161,9 @@ public class DefaultCommonServices
             StringBuilder resourceName = new StringBuilder( RESOURCE_NAME );
             loadResource( all, resourceName, locale );
 
-            return fromProperties( all );
+            String i18n = fromProperties( all );
+            cachei18n.put( StringUtils.isEmpty( locale ) ? "en" : StringUtils.lowerCase( locale ), i18n );
+            return i18n;
         }
         catch ( IOException e )
         {