[
https://issues.apache.org/jira/browse/SLING-1236?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12789508#action_12789508
]
Michael Dürig commented on SLING-1236:
--------------------------------------
The implemented approach has two drawbacks:
- Arguments passed to the script are possibly not eligible for implicit
conversion anymore. This is due to an implicit conversion already talking place
and Scala not allowing for more than a single implicit conversion.
- Compiles class files cannot be cached anymore because the static types of the
declarations in the preamble depend on the actual types of the values in the
Binding instance passed to the Script.
> Scala Scripting: Make all types of the script arguments visible on the Scala
> side
> ---------------------------------------------------------------------------------
>
> Key: SLING-1236
> URL: https://issues.apache.org/jira/browse/SLING-1236
> Project: Sling
> Issue Type: Improvement
> Components: Scripting
> Reporter: Michael Dürig
> Priority: Minor
> Attachments: SLING-1236.patch
>
>
> Currently the Scala scripting engine inserts a preamble for the bindings
> passed to a Script. The preamble contains a declaration of the following form
> for each value in the Bindings instance:
> val request: SlingHttpServletRequest =
> bindings.get("request").asInstanceOf[SlingHttpServletRequest]
> The types are hard coded in the ScalaScriptEngine.TypeHints class. For
> unknown types a declaration of type AnyRef is inserted into the preamble.
> I suggest to implement a run time type discovery algorithm which discovers
> the accessible type from a given instance and inserts the respective
> declarations into the preamble. That way the static coupling between the
> known values in Bindings and its types would go away. Furthermore the values
> would be of a type appearing to be of all the visible types on the Scala side.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.