Hi Dirk, It is possible to do what you describe with data-sly-template. The two statements data-sly-template and data-sly-use are the extension points that allow to do in Sightly what TagLibs and Scriptlets do in JSP.
What you said for JSP is even more true for Sightly: In times of Sightly, it is easy (actually much easier than to create a custom TagLib) to implement a custom include template that delegates to data-sly-resource when the include should be done directly. :) I strongly discourage to build custom Sightly extensions, like creating a decorator around the ResourcePlugin. If we think that some features are lacking, then let's take a step back and analyze if something might make sense to be added to the core, so that everybody can benefit from it. The frustrating part here is that we want to keep the language focused, so many good ideas won't make it. But luckily, this cannot be blocking on a project level since the data-sly-template and data-sly-use extension points usually allow to achieve what is needed. While I really like your suggestion to have different ways of including a resource, I'm not convinced yet of the benefit to add that to the core features, as opposed to keeping it in a template. The reason is that there are many different kind of includes (SSI, ESI, Ajax, etc.), and each has many very different features, which would mean that we'll end up adding all kinds of additional options to data-sly-resource for each of these includes. Actually, each of these include systems is a template language in itself, which really makes me think that this is best handled in a separate template where you can write whatever instructions are needed, and each project still has the possibility to fully overlay whatever that template proposes. Still, what would be great is that Sling comes with a predefined template that offers to easily call different kind of includes. Dirk, would you be ready to contribute something like that? Cheers, Gabriel On 08/04/15 10:28, "Dirk Rudolph" <[email protected]> wrote: >Thanks for you feedback. > >So you suggest to implement a decorator around ResourcePlugin.FUNCTION >for handling different behaviours. I¹m fine with this. > >However wouldn¹t it make sense to provide a central extension point for >that use case? In my eyes it is quite common to use different include >behaviours for at least those projects I did with Sling/AEM. >Cheers, > >Dirk > >> On 08 Apr 2015, at 10:07, Vlad Bailescu <[email protected]> wrote: >> >> Hey Dirk, >> >> The way to go about doing this at the moment is to provide your own >> RuntimeExtension (with a higher service ranking). >> >> Best, >> Vlad >> >> On Tue, Apr 7, 2015 at 12:46 PM, Dirk Rudolph >><[email protected] <mailto:[email protected]>> >> wrote: >> >>> Hi @devs, >>> >>> while working on a project with a default Apache Sling based >>> AEM6+Dispatcher infrastructure, we mentioned, that there is no way to >>> provide a different include behaviour for resource includes - for >>>example >>> include using SSI instead of directly calling the RequestDispatcher. >>> >>> In times of JSPs it was easy to implement a custom include tag the >>> delegates to the <sling:include/> when the include should be done >>>directly. >>> Unfortunately this isn¹t possible with Sightly so far (and as I >>>understood >>> this is also intended to be not possible). >>> >>> Nevertheless it would be nice to have the possibility to use different >>> behaviours for resource includes also in sightly. I had a look at the >>> implementation and in general it would mean to expose the >>>includeResource >>> method in [1] in a SPI that will be implemented per behaviour >>>identified by >>> an option in the sightly template: >>> >>> <section data-sly-resource="${ 'path/to/resource' @ mode=Œ<behaviour>' >>> }"></section> >>> >>> The default behaviour of directly including the resource would stay the >>> same (when mode isn¹t specified) and would also be the fallback when >>>the >>> specified behaviour isn¹t available. So the suggestion is fully >>>compatible >>> with previous versions of sightly. >>> >>> What do you thing?/comments appreciated. >>> >>> Cheers, >>> >>> --- >>> Dirk Rudolph | Senior Software Engineer >>> >>> Netcentric AG >>> >>> M: +41 79 642 37 11 >>> D: +49 174 966 84 34 >>> >>> [email protected] <mailto:[email protected]> >>><mailto:[email protected] >>><mailto:[email protected]>> | >>> www.netcentric.biz <http://www.netcentric.biz/> >>><http://www.netcentric.biz/ <http://www.netcentric.biz/>>[1] >>> >>>http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engin >>>e/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension >>>/ResourceRuntimeExtension.java?view=markup#l247 >>><http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engi >>>ne/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extensio >>>n/ResourceRuntimeExtension.java?view=markup#l247> >>> < >>> >>>http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engin >>>e/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension >>>/ResourceRuntimeExtension.java?view=markup#l247 >>><http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engi >>>ne/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extensio >>>n/ResourceRuntimeExtension.java?view=markup#l247>
