atom feed55 messages in org.apache.incubator.sling-devRe: Simplifying script paths and names?
FromSent OnAttachments
Bertrand DelacretazApr 14, 2008 8:45 am 
Carsten ZiegelerApr 14, 2008 9:11 am 
Alexander KlimetschekApr 14, 2008 9:25 am 
Carsten ZiegelerApr 16, 2008 1:00 am 
Bertrand DelacretazApr 16, 2008 5:43 am 
Carsten ZiegelerApr 16, 2008 5:52 am 
Felix MeschbergerApr 16, 2008 8:11 am 
Carsten ZiegelerApr 16, 2008 9:09 am 
Carsten ZiegelerApr 16, 2008 11:20 pm 
Bertrand DelacretazApr 17, 2008 12:00 am 
Gert VanthienenApr 17, 2008 12:49 am 
Juanjo VázquezApr 17, 2008 1:33 am 
Alexander KlimetschekApr 17, 2008 1:48 am 
Michael MarthApr 17, 2008 6:39 am 
Bertrand DelacretazApr 18, 2008 12:21 am 
Bertrand DelacretazApr 18, 2008 12:24 am 
Felix MeschbergerApr 18, 2008 12:56 am 
Michael MarthApr 18, 2008 1:33 am 
Bertrand DelacretazApr 18, 2008 1:36 am 
Bertrand DelacretazApr 18, 2008 1:43 am 
Felix MeschbergerApr 18, 2008 2:10 am 
Bertrand DelacretazApr 18, 2008 2:16 am 
Felix MeschbergerApr 18, 2008 4:18 am 
Carsten ZiegelerApr 18, 2008 4:59 am 
Felix MeschbergerApr 18, 2008 5:54 am 
Bertrand DelacretazApr 18, 2008 5:58 am 
Felix MeschbergerApr 18, 2008 6:16 am 
Bertrand DelacretazApr 18, 2008 6:19 am 
Carsten ZiegelerApr 18, 2008 6:21 am 
Felix MeschbergerApr 18, 2008 6:45 am 
Carsten ZiegelerApr 18, 2008 6:53 am 
Bertrand DelacretazApr 18, 2008 6:53 am 
Felix MeschbergerApr 18, 2008 7:06 am 
Felix MeschbergerApr 18, 2008 7:07 am 
Carsten ZiegelerApr 18, 2008 7:11 am 
Carsten ZiegelerApr 18, 2008 7:22 am 
Felix MeschbergerApr 18, 2008 7:30 am 
Carsten ZiegelerApr 18, 2008 7:35 am 
Felix MeschbergerApr 18, 2008 7:43 am 
Carsten ZiegelerApr 18, 2008 7:49 am 
Tobias BocanegraApr 18, 2008 9:33 am 
David NueschelerApr 25, 2008 7:40 am 
Felix MeschbergerApr 25, 2008 8:52 am 
Tobias BocanegraApr 25, 2008 9:35 am 
Dominik SüßApr 25, 2008 10:09 am 
Dominik SüßApr 25, 2008 12:07 pm 
Carsten ZiegelerApr 26, 2008 10:16 am 
Tobias BocanegraApr 26, 2008 10:45 am 
Dominik SüßApr 26, 2008 1:45 pm 
Tobias BocanegraApr 26, 2008 2:14 pm 
David NueschelerApr 27, 2008 4:37 am 
Bertrand DelacretazApr 28, 2008 6:21 am 
Felix MeschbergerApr 28, 2008 6:40 am 
Felix MeschbergerApr 28, 2008 8:33 am 
Bertrand DelacretazApr 29, 2008 12:50 am 
Subject:Re: Simplifying script paths and names?
From:Bertrand Delacretaz (bdel@apache.org)
Date:Apr 18, 2008 1:43:53 am
List:org.apache.incubator.sling-dev

On Fri, Apr 18, 2008 at 9:56 AM, Felix Meschberger <fmes@gmail.com> 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