Hi > Am 23.01.2015 um 11:55 schrieb Oliver Lietz <apa...@oliverlietz.de>: > > On Friday 23 January 2015 10:30:26 Felix Meschberger wrote: >> Hi Radu >> >> Thanks for starting this thread. >> >> As I wrote in my other message [1], the ScriptEngine management is currently >> laid out to have script engines to use disjoint extensions. Having two >> engines with the same extension is not supported. > >> I also don’t really like to have multiple engines to have the same >> extension. And using „html“ as the extension of a script really is prone >> for such collisions. > >> Also I don’t like this path thing because it is very brittle and we have >> enough troubles with them in the Servlet Resolver already … > >> Lets see how Unix' exec() system call does it: It actually ignores the >> extension and looks for a magic file pattern at the beginning of the file >> „#!“. > >> So we could extend our ScriptResolution as well like this. If the file >> begins with a line of the form > >> #!<engine-name><CR><LF> >> >> then the named script engine is selected by its name, which now is >> considered to be unique. The selection only looks at the first two >> characters to decide whether to actually read the first line. If the first >> line is of this form, it is consumed and the script engine will not be able >> to read it — this way we also prevent script engines from failing due to >> incorrect commenting. > >> If a script does not start with „#!“ then the regular selection by extension >> kicks in. > >> WDYT ? > > Adding a Shebang to XML and HTML makes them invalid. So that won't work.
Technically yes, but from a processing perspective no: because the SlingScriptAdapterFactory will it it up and the ScriptEngine should not be able to see it anymore. Regards Felix > > Regards, > O. > >> Regards >> Felix >> >> >>> Am 23.01.2015 um 11:17 schrieb Radu Cotescu <r...@apache.org>: >>> >>> Hello, >>> >>> In SLING-4330 [0] Oliver suggests that Sightly should be configured to >>> render templates only from some search paths sub-paths, because he'd also >>> like to write some Thymeleaf templates in a project, where the Thymeleaf >>> script engine also binds itself to the *.html extension. >>> >>> However, if we'd like scripting engines to process templates based on >>> allowed paths I think that this should happen at a higher level. AFAIK a >>> scripting engine registers itself for an extension, but that's about it. >>> The behaviour that determines which script engine will provide the >>> rendering for a resource is implemented by the SlingServletResolver, >>> which >>> adapts the component's resource to a ScriptEngine. >>> >>> The AdapterFactory that performs the adaptation is implemented by >>> SlingScriptAdapterFactory, which picks the scripting engine based solely >>> on > extension. If we'd change the ScriptEngineFactories to also provide >>> the path patterns for which they register and we'd expose the patterns as >>> a configurable OSGi property I think we'd reach the goal of having >>> scripting engines render templates also based on paths. >>> >>> WDYT? >>> >>> Regards, >>> Radu >>> >>> [0] - https://issues.apache.org/jira/browse/SLING-4330 >> >> >