Hi all, After the big reorganization of servlet resolution in April of this year and some more experiences with using Sling, I propose the extension of our servlet/script resolution process.
Actually it is a single change only: Consider request selectors for all requests. Currently request selectors are only considered for GET or HEAD requests and ignored for any other requests. Over time use cases arose, which would be easier implementable if we would support using selectors to influence servlet/script resolution for all methods. Example: Say you are building an application providing a configurable input form system. The most important configuration would be the action upon form submission. Submitted forms are sent back to the resource providing the form. The actual action would be encoded as a request selector: For example we would like to be able to send a form based mail message. We would have script "/apps/myapp/form/mail/POST.esp", which handles the "myapp/form" resource type and is called using the "mail" selector. The form itself together with some nice GUI surroundings etc. would be stored in the /content/feedback resource. Now updating the /content/feedback resource should be handled by Sling's default POST servlet. Thus POSTing to /content/feedback would update the content. Submitting the form would POST to /content/feedback.mail.html and should thus not store any form input but trigger the mail/POST.esp script. I have prepared a prototype implementation of this new mechanism in my sandbox at [1]. A nice side effect of this prototype is, that it is much simpler codewise. WDYT? Regards Felix [1] http://svn.apache.org/repos/asf/incubator/sling/whiteboard/fmeschbe/servlet_resolver
