On Fri, Apr 18, 2008 at 9:56 AM, Felix Meschberger <[EMAIL PROTECTED]> wrote:
>  > 
> ...{scriptPathPrefix}/{resourceTypePath}/{resourceTypeLabel}.{selectorString}.{requestMethod}.{requestExtension}.{scriptExtension}.
>
>  +1
>
>  My concern now is, how do we weight these parts:
>
>    {scriptPathPrefix}/{resourceTypePath} - Required, scripts will
>  otherwise not be found

ok

>    {resourceTypeLabel} - optional, resolve doesn't care, that is no
>  preference

I'd make it required, to avoid having too many options. We can always
make it optional later, while the opposite would not be
backwards-compatible.

>    {selectorString} - Better is longer match

ok

>    {requestMethod} - Better is to have it, required for non-GET
>    {requestExtension} - Better is to have it

I'd use my suggested rules as the only options here:

rule A)
{requestMethod}.{requestExtension} == "GET.html" -> required to use an
empty string

rule B)
{requestMethod} != "GET" or "HEAD" -> {requestExtension} is optional

I think this reduces the set of possible combinations, and the rules
are based on safe vs. unsafe http methods, so that's not too bad.

>    {scriptExtension} - resolve only cares insofar as to find a ScriptEngine

ok

>
>  Now, given a GET request to bar.print.a4.html, what is the priority
>  order for the following (porential) script names ?
>
>    (1) .../print.esp
>    (2) .../print.a4.esp
>    (3) .../print.html.esp
>    (4) .../print.GET.html.esp
>    (5) .../print.a4.html.esp
>    (6) .../print.a4.GET.html.esp
>
>  It would probably be (6) - (5) - (2) - (4) - (3) - (1)

Yes, more specific names should always win over less-specific ones.
But with my above suggested rules, only the following names would be
allowed (in priority order):

print.a4.esp
print.esp

This is a good example of how my rule A) reduces the number of
possible combinations, that does not matter too much for the
implementation, but it's IMHO easier to explain.

-Bertrand

Reply via email to