Hey Olivier,
Thanks for the explanation! For me real the benefit would be that I could take
a vanilla sling launchpad and install the project where I would add a config
file making the thymeleaf engine a higher service ranking and it would all work
without any manual action of the user in the system console (unless there is a
way I don’t know of that you can deactivate bundles through a config / maven
plugin).
Also I still seem to be getting errors in the fling sample.
Firstly, when going to the form page, I get following error which can be fixed
by making the <input> tags closed in the templates:
org.thymeleaf.exceptions.TemplateInputException: Exception parsing
document: template="/apps/fling/page/form/html.html", line 52 - column
Caused by: org.xml.sax.SAXParseException; lineNumber: 52; columnNumber:
9; The element type "input" must be terminated by the matching end-tag
"</input>”.
Secondly, when I manually close the input tags myself in the
/apps/fling/page/form/html.html template and I submit the form, I just get
redirected to following page and no validation occures:
Content modified /content/fling/validation
Status 200
Message OK
Location /fling/validation
Parent Location /fling
Path /content/fling/validation
Referer http://localhost:8080/fling/validation.html
ChangeLog
<pre>modified("/content/fling/validation/formType");<br/>modified("/content/fling/validation/name");<br/></pre>
Go Back
Modified Resource
Parent of Modified Resource
Lastly, I was wondering what should be on the sling commons messaging page in
the example. I just get a page with three columns, subject from and text but
nothing filled in.
Thanks!
Greetings,
Roy
> On 01 May 2016, at 09:42, Oliver Lietz <[email protected]> wrote:
>
> On Sunday 01 May 2016 10:05:33 Vlad Bailescu wrote:
>> Hi,
>>
>> My comments are inline.
>>
>> On Sunday, 1 May 2016, Oliver Lietz <[email protected]> wrote:
>>> On Saturday 30 April 2016 22:04:57 Vlad Bailescu wrote:
>>>> On Saturday, 30 April 2016, Oliver Lietz <[email protected]
>>>
>>> <javascript:;>> wrote:
>>>>> (service ranking is not honored by Sling's script engine manager, no
>>>
>>> need
>>>
>>>>> to try).
>>>>
>>>> Any idea why this is not a bug?
>>>
>>> Why do you think it should be a bug?
>>
>> Because Sling generally uses the service ranking and it's a great mechanism.
>
> "generally" is a somewhat optimistic term when it comes to service ranking at
> Sling. I don't think it's a bug still, but using service ranking could be an
> improvement indeed.
>
>>> Sling's Scripting support is built around Java's Scripting API (JSR-223)
>>> and
>>> that was obviously not designed to handle multiple script engines for one
>>> extension or mime type. So it is a limitation in Java's Scripting API.
>>
>> The implementation could use service ranking as an optional/custom
>> extension of the standard.
>
> Right. And we will need an extension somehow when script engine manager is
> asked for an engine by extension or mime type. The manager could return null,
> throw an Exception or select the engine by service ranking when more than one
> engine is registered per extension or mime type. It will be implemented as
> part of SLING-4330 (work in progress).
>
>>>> https://issues.apache.org/jira/browse/SLING-4330
>>>>
>>>> I was under the impression SLING-4330 is about using both Sightly and
>>>> Thymeleaf in the same running instance; and how to solve which one gets
>>>> used on a file/script level.
>>>
>>> Right.
>>>
>>>> But for using just one scripting engine (Thymeleaf in this case) for a
>>>> given extension we could just use the service ranking.
>>>
>>> What is the benefit?
>>>
>>> If you give Thymeleaf's script engine a higher service ranking than
>>> Sightly's
>>> to render HTML templates (.html) you make Sightly quite useless. The
>>> result is
>>> similar to deactivating/deinstalling Sightly's bundles (correct me if I'm
>>> wrong).
>>>
>>> The other way round is not that destructive because Thymeleaf's script
>>> engine
>>> can be configured for different extensions (e.g. .htm, .thtml), can handle
>>> not
>>> only HTML but also XML, CSS, JavaScript, text and raw templates and makes
>>> its
>>> TemplateEngine available as OSGi service to render templates outside of
>>> Sling's Scripting context (see Fling sample).
>>>
>>> So unless SLING-4330 is implemented and you want to use Thymeleaf for
>>> .html
>>> just deinstall Sightly.
>>
>> Right, but that seems a bit counter-intuitive since Sightly ships as
>> default with Sling. From an user point of view it would make sense to just
>> bump the ranking of Thymeleaf to make it "cut in front" instead of
>> uninstalling something.
>
> Sling Launchpad ships with Sightly because Adobe is pushing Sightly with full
> force. If you use Sling Launchpad Karaf no Scripting implementation is
> installed at all and you have the freedom to choose.
>
>> This will not solve SLING-4330, of course, but will provide a better user
>> experience, IMO.
>
> Patches are welcome, go ahead!
>
> O.
>
>>> Regards,
>>> O.
>>
>> Best,
>> Vlad