[
https://issues.apache.org/jira/browse/SLING-6354?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15715074#comment-15715074
]
Justin Edelson commented on SLING-6354:
---------------------------------------
One additional note on the implementation - with this change, Sling Model
Exporter is treated as a Script Engine for the purposes of accessing
BindingsValuesProviders (although there is no actual ScriptEngineFactory
service registered and Sling Models doesn't appear on the Script Engines web
console tab since it isn't directly usable). Should someone want to target a
BVP just at Sling Models Exporter, they should use the name
"sling-models-exporter".
Note that due to the way BVPs work, the same Sling Model class may not have
access to the same Bindings values in different script engines and the
Exporter. This is already the case in that you can have different Bindings
between scripting languages, i.e. JSPs may have different Bindings values than
HTL scripts or Thymeleaf scripts (and vice versa).
> Make exporter servlet script-bindings aware
> -------------------------------------------
>
> Key: SLING-6354
> URL: https://issues.apache.org/jira/browse/SLING-6354
> Project: Sling
> Issue Type: Bug
> Components: Extensions
> Affects Versions: Sling Models Impl 1.3.4
> Reporter: Burkhard Pauli
> Assignee: Justin Edelson
> Fix For: Sling Models Impl 1.3.6
>
>
> The current exporter servlet [0] doesn't expose scripting variables.
> If a field for the related Sling Model should be injected via the
> ScriptVariable annotation [1] and the field is not optional, the model can't
> be initialized and the request to exporter servlet fails.
> Example:
> {code}
> @Model(adaptables = SlingHttpServletRequest.class, adapters =
> TestModel.class, resourceType = "core/components/test")
> @Exporter(name = "jackson", extensions = "json")
> public class TestModel {
> @ScriptVariable
> private Page currentPage;
> public String getName() {
> return currentPage.getName();
> }
> }
> {code}
> [0]
> https://github.com/apache/sling/blob/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ExportServlet.java
> [1]
> https://github.com/apache/sling/blob/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/annotations/injectorspecific/ScriptVariable.java
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)