[jboss-jira] [JBoss JIRA] (LOGTOOL-116) Locale is not used in the actual string format.

James Perkins (JIRA) issues at jboss.org
Fri Nov 18 18:58:00 EST 2016


    [ https://issues.jboss.org/browse/LOGTOOL-116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13325244#comment-13325244 ] 

James Perkins edited comment on LOGTOOL-116 at 11/18/16 6:57 PM:
-----------------------------------------------------------------

Prematurely closed this. This is partially done. Bundle messages now use a {{getLoggingLocale()}} method. Loggers still need to be implemented, but it relies on changes in JBoss Logging and JBoss Log Manager to work as expected.

This JIRA will include the changes only for message bundles. LOGTOOL-120 was created to support loggers.


was (Author: jamezp):
Prematurely closed this. This is partially done. Bundle messages now use a {{getLoggingLocale()}} method. Loggers still need to be implemented, but it relies on changes in JBoss Logging and JBoss Log Manager to work as expected.

> Locale is not used in the actual string format.
> -----------------------------------------------
>
>                 Key: LOGTOOL-116
>                 URL: https://issues.jboss.org/browse/LOGTOOL-116
>             Project: Log Tool
>          Issue Type: Bug
>    Affects Versions: 2.0.1.Final
>            Reporter: David Lloyd
>            Assignee: James Perkins
>            Priority: Minor
>             Fix For: 2.0.2.Final, 2.1.0.Alpha1
>
>
> The {{String.format()}} method accepts a Locale parameter.  We should be using the Locale of the implementation class.  Since the format method is called from a final method, we need a polymorphic way of getting the Locale instance; therefore, a protected method should be added to the generated base class like this:
> {code}
>     protected Locale getLoggingLocale() {
>         return Locale.ROOT;
>     }
> {code}
> Then each subclass should return a locale object specific to that class.  The locale object returned should either be one of the following:
> * Locale.CANADA - for "en_CA"
> * Locale.CANADA_FRENCH - for "fr_CA"
> * Locale.CHINESE - for "zh"
> * Locale.ENGLISH - for "en"
> * Locale.FRANCE - for "fr_FR"
> * Locale.FRENCH - for "fr"
> * Locale.GERMAN - for "de"
> * Locale.GERMANY - for "de_DE"
> * Locale.ITALIAN - for "it"
> * Locale.ITALY - for "it_IT"
> * Locale.JAPAN	 - for "ja_JP"
> * Locale.JAPANESE - for "ja"
> * Locale.KOREA - for "ko_KR"
> * Locale.KOREAN - for "ko"
> * Locale.SIMPLIFIED_CHINESE - for "zh_CN"
> * Locale.TRADITIONAL_CHINESE - for "zh_TW"
> * Locale.UK - for "en_GB"
> * Locale.US - for "en_US"
> If the locale is not one of the above, then the correct Locale should be created in a private constant field of the class like this:
> {code}
>     private static final Locale LOCALE = new Locale("hu");
>     // or...
>     private static final Locale LOCALE = new Locale("hu", "HU");
>     // or...
>     private static final Locale LOCALE = new Locale("hu", "HU", "technl");
>     // ...and then...
>     @Override
>     protected Locale getLoggingLocale() {
>         return LOCALE;
>     }
> {code}
> Finally, all calls to {{format()}} should be rewritten to use the locale *from the method* like this:
> {code}
>             final NamingException result = new NamingException(String.format(getLoggingLocale(), objectFromReference$str()));
> {code}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the jboss-jira mailing list