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

ASF subversion and git services commented on TAP5-2659:
-------------------------------------------------------

Commit 4003ff2f7c1bc646e670757a6b1c000fc178432f in tapestry-5's branch 
refs/heads/5.6.x from Thiago H. de Paula Figueiredo
[ https://gitbox.apache.org/repos/asf?p=tapestry-5.git;h=4003ff2 ]

TAP5-2659: fixing bad merge

> 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