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.

Regards,
O.

> Regards
> Felix
> 
> 
> > Am 23.01.2015 um 11:17 schrieb Radu Cotescu <[email protected]>:
> > 
> > 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
> 
> 

Reply via email to