[SLING-4275] API: RuntimeExtension and ExtensionInstance

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[SLING-4275] API: RuntimeExtension and ExtensionInstance

Felix Meschberger-3
Hi all

Carsten started to review the Sightly Engine API in SLING-4275 [1]. Since this issue covers 4 topics, I think it would be best to quickly discuss these topic in separate threads.

#2 RuntimeExtension and ExtensionInstance

Currently the RuntimeExtension is a service and called to return an ExtensionInstance. For each evaluation of a Sightly Template an ExtensionInstance is created.

The downside of this is a double indirection: Not the RuntimeExtension itself is used. Rather the RuntimeExtension is a factory of ExtensionInstance objects.

The upside is that these ExtensionInstances can hold instance data for the duration of the Sightly template evaluation.

Question is whether there actually is a use case for such instance data, which could not be held in bindings and whether it would be possible for RuntimeExtensions to implement such instance data in different ways.

WDYT ?

Regards
Felix

[1] https://issues.apache.org/jira/browse/SLING-4275
Reply | Threaded
Open this post in threaded view
|

Re: [SLING-4275] API: RuntimeExtension and ExtensionInstance

Radu Cotescu-3
Hi,

I think we could get rid of the ExtensionInstance objects and modify the
RuntimeExtension API:

* remove the provide method
* create a call method: Object call(RenderContext renderContext, Object ...
arguments)

Cheers,
Radu


On Mon, Jan 12, 2015 at 11:44 AM, Felix Meschberger <[hidden email]>
wrote:

> Hi all
>
> Carsten started to review the Sightly Engine API in SLING-4275 [1]. Since
> this issue covers 4 topics, I think it would be best to quickly discuss
> these topic in separate threads.
>
> #2 RuntimeExtension and ExtensionInstance
>
> Currently the RuntimeExtension is a service and called to return an
> ExtensionInstance. For each evaluation of a Sightly Template an
> ExtensionInstance is created.
>
> The downside of this is a double indirection: Not the RuntimeExtension
> itself is used. Rather the RuntimeExtension is a factory of
> ExtensionInstance objects.
>
> The upside is that these ExtensionInstances can hold instance data for the
> duration of the Sightly template evaluation.
>
> Question is whether there actually is a use case for such instance data,
> which could not be held in bindings and whether it would be possible for
> RuntimeExtensions to implement such instance data in different ways.
>
> WDYT ?
>
> Regards
> Felix
>
> [1] https://issues.apache.org/jira/browse/SLING-4275
Reply | Threaded
Open this post in threaded view
|

Re: [SLING-4275] API: RuntimeExtension and ExtensionInstance

Radu Cotescu-3
Hi,

I've created https://issues.apache.org/jira/browse/SLING-4313 to address
this.

Regards,
Radu

On Mon, Jan 12, 2015 at 8:09 PM, Radu Cotescu <[hidden email]> wrote:

> Hi,
>
> I think we could get rid of the ExtensionInstance objects and modify the
> RuntimeExtension API:
>
> * remove the provide method
> * create a call method: Object call(RenderContext renderContext, Object
> ... arguments)
>
> Cheers,
> Radu
>
>
> On Mon, Jan 12, 2015 at 11:44 AM, Felix Meschberger <[hidden email]>
> wrote:
>
>> Hi all
>>
>> Carsten started to review the Sightly Engine API in SLING-4275 [1]. Since
>> this issue covers 4 topics, I think it would be best to quickly discuss
>> these topic in separate threads.
>>
>> #2 RuntimeExtension and ExtensionInstance
>>
>> Currently the RuntimeExtension is a service and called to return an
>> ExtensionInstance. For each evaluation of a Sightly Template an
>> ExtensionInstance is created.
>>
>> The downside of this is a double indirection: Not the RuntimeExtension
>> itself is used. Rather the RuntimeExtension is a factory of
>> ExtensionInstance objects.
>>
>> The upside is that these ExtensionInstances can hold instance data for
>> the duration of the Sightly template evaluation.
>>
>> Question is whether there actually is a use case for such instance data,
>> which could not be held in bindings and whether it would be possible for
>> RuntimeExtensions to implement such instance data in different ways.
>>
>> WDYT ?
>>
>> Regards
>> Felix
>>
>> [1] https://issues.apache.org/jira/browse/SLING-4275
>
>
>