You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by "Alfred Nathaniel (JIRA)" <ji...@apache.org> on 2009/01/07 01:41:44 UTC
[jira] Issue Comment Edited: (COCOON-2247) Default matcher no
longer works when divider character part of match
[ https://issues.apache.org/jira/browse/COCOON-2247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12661389#action_12661389 ]
anathaniel@apache.org edited comment on COCOON-2247 at 1/6/09 4:41 PM:
------------------------------------------------------------------
Latest Cocoon 2.2 and 2.1 behave in the same way. Before 2.1.10 the WildcardMatcherHelper was a handmade parser which had a number of subtle bugs. Now the match pattern is translated into an RE and handed to the Apache regexp package.
In that translation " is handled as "[^/]*", i.e. greedy match except slash. Unfortunately there are only testcases for the greediness of "" but not for *. Therefore the behaviour for " is open for discussion.
I think " should remain greedy as it is now because
a) "" is definitely greedy and * should not be the other way around
b) in other RE languages the default is usually greedy
If you want non-greedy matches, there is <match type="regexp"> to use general REs.
was (Author: anathaniel@apache.org):
Latest Cocoon 2.2 and 2.1 behave in the same way. Before 2.1.10 the WildcardMatcherHelper was a handmade parser which had a number of subtle bugs. Now the match pattern is translated into an RE and handed to the Apache regexp package.
In that translation " is handled as "[^/]*", i.e. greedy match except slash. Unfortunately there are only testcases for the greediness of "" but not for *. Therefore the behaviour for " is open for discussion.
I think " should remain greedy as it is now because
a) "" is definitely greedy and * should not be the other way around
b) in other RE languages the default is usually greedy
If you want non-greedy matches, there is <match type="regexp"> to use general REs.
(Visible to all-developers group)
> Default matcher no longer works when divider character part of match
> --------------------------------------------------------------------
>
> Key: COCOON-2247
> URL: https://issues.apache.org/jira/browse/COCOON-2247
> Project: Cocoon
> Issue Type: Bug
> Components: * Cocoon Core
> Affects Versions: 2.1.11
> Reporter: Kamal Bhatt
>
> Example sitemap:
> <!-- Generates a CFORM selection list based on all images accessible to publication -->
> <map:match pattern="image_list_*_*">
> <map:generate type="imagedirectory" src="../cmsblocks/holidayImg/{1}/{2}">
> <map:parameter name="depth" value="2"/>
> </map:generate>
> <map:transform src="xslt/brandimagedirectory_list.xsl">
> <map:parameter name="list_level" value="file"/>
> </map:transform>
> <map:serialize type="xml"/>
> </map:match>
> Using the following match:
> image_list_images_TE_tours
> You get the following error:
> ../cmsblocks/holidayImg/images_TE/tours is not a directory.
> The match is completely foobar. This used to work in 2.1.9
> I have not had a chance to see how it works in 2.2.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.