On Friday 23 January 2015 13:33:37 Radu Cotescu wrote: > On Fri, Jan 23, 2015 at 1:15 PM, Bertrand Delacretaz <bdelacre...@apache.org > > wrote: > > > > Good point - we can consider that notation say anywhere in the first > > 200 chars of the script, so > > > > <?xml version="1.0" encoding="UTF-8"?> > > <!-- sling:language: thymeleaf --> > > <foo/> > > > > would work, the pattern being "sling:language" followed by whitespace > > and one word which is the language name. > > This has the disadvantage that the Servlet Resolver would have to parse the > first n characters of the script and then the Script Engine would parse > again the whole file. We should not increase the number of resource reads, > if not really needed. > > If we want to have a conflict resolution mechanism we could add a property > on component nodes (but they must be sling:Folder / nt:unstructured) that > would handle which of the multiple scripting engines registered for the > same extension should be used: > > "sling:script" -> "html:thymeleaf" > > This would essentially say that for the *.html scripts for this component, > Thymeleaf should be used. > > However, this adds an unnecessary step for component developers. I think > the configurable patterns on the ScriptEngineFactories is simpler, as this > is essentially a deployment issue.
Totally agree. > Whatever the approach is, if we want to allow multiple scripting engines to > use the same extension we need to refactor the code from the > SlingScriptEngineManager. Why? The ScriptEngine itself can decide if it kicks in for a script based on the paths patterns. O.