You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ri...@apache.org on 2009/07/22 19:10:21 UTC

svn commit: r796799 - in /qpid/trunk/qpid/java: broker/etc/ broker/src/main/java/org/apache/qpid/server/configuration/ broker/src/test/java/org/apache/qpid/server/configuration/ systests/src/main/java/org/apache/qpid/server/configuration/

Author: ritchiem
Date: Wed Jul 22 17:10:21 2009
New Revision: 796799

URL: http://svn.apache.org/viewvc?rev=796799&view=rev
Log:
QPID-2001 : Provide a locale configuration option to allow the localisation of logging as part of providing fixed log messages

Modified:
    qpid/trunk/qpid/java/broker/etc/config-systests.xml
    qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
    qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/configuration/ServerConfigurationFileTest.java

Modified: qpid/trunk/qpid/java/broker/etc/config-systests.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/etc/config-systests.xml?rev=796799&r1=796798&r2=796799&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/etc/config-systests.xml (original)
+++ qpid/trunk/qpid/java/broker/etc/config-systests.xml Wed Jul 22 17:10:21 2009
@@ -61,6 +61,7 @@
         <framesize>65535</framesize>
         <compressBufferOnQueue>false</compressBufferOnQueue>
         <enableJMSXUserID>false</enableJMSXUserID>
+        <locale>en_US</locale>
     </advanced>
 
     <security>

Modified: qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java?rev=796799&r1=796798&r2=796799&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java (original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java Wed Jul 22 17:10:21 2009
@@ -55,6 +55,7 @@
     public static final int DEFAULT_BUFFER_WRITE_LIMIT_SIZE = 262144;
     public static final boolean DEFAULT_BROKER_CONNECTOR_PROTECTIO_ENABLED = false;
     public static final String DEFAULT_STATUS_UPDATES = "on";
+    public static final String DEFAULT_ADVANCED_LOCALE = Locale.US.toString();
 
     private static final int DEFAULT_FRAME_SIZE = 65536;
     private static final int DEFAULT_PORT = 5672;
@@ -83,6 +84,7 @@
     public static final String CONNECTOR_PROTECTIO_READ_BUFFER_LIMIT_SIZE = "connector.protectio.readBufferLimitSize";
     public static final String CONNECTOR_PROTECTIO_WRITE_BUFFER_LIMIT_SIZE = "connector.protectio.writeBufferLimitSize";
     public static final String STATUS_UPDATES = "status-updates";
+    public static final String ADVANCED_LOCALE = "advanced.locale";
 
     {
         envVarMap.put("QPID_PORT", "connector.port");
@@ -212,6 +214,46 @@
         return value.equalsIgnoreCase("on");
     }
 
+    /**
+     * The currently defined {@see Locale} for this broker
+     * @return the configuration defined locale
+     */
+    public Locale getLocale()
+    {
+
+        String localeString = getConfig().getString(ADVANCED_LOCALE, DEFAULT_ADVANCED_LOCALE);
+        // Expecting locale of format langauge_country_variant
+
+        String[] parts = localeString.split("_");
+
+        Locale locale = null;
+        switch (parts.length)
+        {
+            case 1:
+                locale = new Locale(localeString);
+                break;
+            case 2:
+                locale = new Locale(parts[0], parts[1]);
+                break;
+            default:
+                String variant = parts[2];
+                // If we have a variant such as the Java doc suggests for Spanish
+                // Traditional_WIN we may end up with more than 3 parts on a
+                // split with '_'. So we should recombine the variant.
+                if (parts.length > 3)
+                {
+                    for (int index = 3; index < parts.length; index++)
+                    {
+                        variant = variant + "_" + parts[index];
+                    }
+                }
+
+                locale = new Locale(parts[0], parts[1], variant);
+        }
+
+        return locale;
+    }
+
     // Our configuration class needs to make the interpolate method
     // public so it can be called below from the config method.
     private static class MyConfiguration extends CompositeConfiguration

Modified: qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java?rev=796799&r1=796798&r2=796799&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java (original)
+++ qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java Wed Jul 22 17:10:21 2009
@@ -39,6 +39,7 @@
 import java.io.RandomAccessFile;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Locale;
 
 public class ServerConfigurationTest extends TestCase
 {
@@ -253,6 +254,38 @@
         assertEquals(true, serverConfig.getSynchedClocks());
     }
 
+    public void testGetLocale() throws ConfigurationException
+    {
+        // Check default
+        ServerConfiguration serverConfig = new ServerConfiguration(_config);
+
+        String defaultParts[] = ServerConfiguration.DEFAULT_ADVANCED_LOCALE.split("_");
+        // The Default is en_US so will split well
+        Locale defaultLocale = new Locale(defaultParts[0],defaultParts[1]);
+
+        assertEquals(defaultLocale, serverConfig.getLocale());
+
+
+        //Test Language only
+        Locale update = new Locale("es");
+        _config.setProperty(ServerConfiguration.ADVANCED_LOCALE, "es");
+        serverConfig = new ServerConfiguration(_config);
+        assertEquals(update, serverConfig.getLocale());
+
+        //Test Language and Country
+        update = new Locale("es","ES");
+        _config.setProperty(ServerConfiguration.ADVANCED_LOCALE, "es_ES");
+        serverConfig = new ServerConfiguration(_config);
+        assertEquals(update, serverConfig.getLocale());
+
+        //Test Language and Country and Variant
+        update = new Locale("es","ES", "Traditional_WIN");
+        _config.setProperty(ServerConfiguration.ADVANCED_LOCALE, "es_ES_Traditional_WIN");
+        serverConfig = new ServerConfiguration(_config);
+        assertEquals(update, serverConfig.getLocale());
+    }
+
+
     public void testGetMsgAuth() throws ConfigurationException
     {
         // Check default

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/configuration/ServerConfigurationFileTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/configuration/ServerConfigurationFileTest.java?rev=796799&r1=796798&r2=796799&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/configuration/ServerConfigurationFileTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/configuration/ServerConfigurationFileTest.java Wed Jul 22 17:10:21 2009
@@ -77,4 +77,9 @@
         validatePropertyDefinedInFile(ServerConfiguration.STATUS_UPDATES);
     }
 
+    public void testLocale() throws ConfigurationException
+    {
+        validatePropertyDefinedInFile(ServerConfiguration.ADVANCED_LOCALE);
+    }
+
 }



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org