You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org> on 2014/08/27 18:53:59 UTC

[jira] [Closed] (TAP5-2172) ComponentClassResolver does not resolve logical name to the more intuitive component

     [ https://issues.apache.org/jira/browse/TAP5-2172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship closed TAP5-2172.
--------------------------------------

    Resolution: Won't Fix

This is why we print out the mappings at startup!

I'm very loathe to change the rules at this point, however, as that can result in existing applications being subtly broken.

Finally, TAP5-2377 now ensures that the names, if not ideal, are at least unique (it now catches when the rules generate the same name for two or more classes).

> ComponentClassResolver does not resolve logical name to the more intuitive component
> ------------------------------------------------------------------------------------
>
>                 Key: TAP5-2172
>                 URL: https://issues.apache.org/jira/browse/TAP5-2172
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3.7
>            Reporter: Olivier Le Merdy
>            Priority: Minor
>         Attachments: bug-sample.zip
>
>
> ComponentClassResolver does not always resolve components the more intuitive way.
> See attached sample project for demonstration purposes but given a set of three components: "foo/Bar", "foo/FooBar" and "foo/BarFoo", the logical name "foo/bar" will be resolved to "foo/FooBar" component instead of the more intuitive "foo/Bar".
> The workaround is to rename our components but, given the stripping can happen at multiple package levels, it is sometimes hard to predict (and debug) what is happening, e.g.: "layout/detail/Section" logical name will resolve primarily "layout/detail/SectionLayout" component instead of "layout/detail/Section" component.
> Looking at ComponentClassResolverImpl implementation, the component name cache is filled following classpath alphabetical order, overriding any previous entry found.
> Could it be possible to privilege a component when its unstripped name exactly match its logical name?



--
This message was sent by Atlassian JIRA
(v6.2#6252)