[ 
https://issues.apache.org/jira/browse/TAP5-2659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17275647#comment-17275647
 ] 

Hudson commented on TAP5-2659:
------------------------------

SUCCESS: Integrated in Jenkins build Tapestry » tapestry-trunk-freestyle #68 
(See 
[https://ci-builds.apache.org/job/Tapestry/job/tapestry-trunk-freestyle/68/])
TAP5-2659: wrong locale being picked up when using axis (thiago: rev 
b4e776a80c70ef0e8caf81d15356078c840215b0)
* (edit) 
tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentMessagesSourceImpl.java
* (edit) 
tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentMessagesSourceImplTest.java
* (edit) 
tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentTemplateSourceImpl.java
* (edit) 
tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentTemplateSourceImplTest.java


> Direct instantiation of ComponentResourceSelector should be replaced with 
> delegation to ComponentRequestSelectorAnalyzer
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-2659
>                 URL: https://issues.apache.org/jira/browse/TAP5-2659
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>            Reporter: Dmitry Gusev
>            Assignee: Thiago Henrique De Paula Figueiredo
>            Priority: Major
>             Fix For: 5.6.2, 5.7.0
>
>
> Some implementation methods in tapestry core still use direct instantiation 
> of {{ComponentResourceSelector}} instead of delegating to 
> {{ComponentRequestSelectorAnalyzer}}, namely:
> in {{ComponentMessageSourceImpl.java}}
>  
> {code:java}
> public Messages getMessages(ComponentModel componentModel, Locale locale)
> {
>     return getMessages(componentModel, new ComponentResourceSelector(locale));
> }
> public Messages getApplicationCatalog(Locale locale)
> {
>     return messagesSource.getMessages(appCatalogBundle, new 
> ComponentResourceSelector(locale));
> } 
> {code}
> in {{ComponentTemplateSourceImpl.java}}
>  
> {code:java}
> public ComponentTemplate getTemplate(ComponentModel componentModel, Locale 
> locale)
> {
>     return getTemplate(componentModel, new ComponentResourceSelector(locale));
> }{code}
> Which makes it impossible to use axes with message bundles and component 
> templates.
>  
> Default implementation of {{ComponentRequestSelectorAnalyzer}} interface uses 
> {{ThreadLocale}} instead of directly passed Locale instance. To workaround 
> this above methods may temporarily set passed locale into ThreadLocal and 
> restore original value after `#buildSelectorForRequest` is returned, i.e.:
> {code:java}
> public Messages getMessages(ComponentModel componentModel, Locale locale)
> {
>     Locale original = threadLocale.getLocale();
>     try
>     {
>         threadLocale.setLocale(locale);
>         return getMessages(componentModel, 
> analyzer.buildSelectorForRequest());
>     }
>     finally
>     {
>         threadLocale.setLocale(original);
>     }
> }{code}
> {{}}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to