You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Carsten Ziegeler (JIRA)" <ji...@apache.org> on 2015/01/02 13:56:13 UTC

[jira] [Updated] (SLING-4275) Review of the Sightly API

     [ https://issues.apache.org/jira/browse/SLING-4275?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Carsten Ziegeler updated SLING-4275:
------------------------------------
    Description: 
I have some comments about the public Sightly API:

1. There are several exceptions, like SightlyException, RuntimeExtensionException, SightlyUseException - are these really required? The API does not mention any method/interface throwing such an exception

2.  RuntimeExtension and ExtensionInstance - I think we can get rid of the RuntimeExtension interface and simply pass the RenderContext in ExtensionInstance#call.

3. The purpose of the Record interface is a little bit unclear to me. In addition it has a T get(String) method while properties returns a Set<String>. I guess the engine supports a Map, so maybe we can get rid of this interface?

4. ResourceResolution seems to contain methods for getting scripts. Isn't this some functionalty the existing ServletResolver component provides? Or if not, shouldn't we move this to the Sling API?

5. Many of the methods in the RenderContext are Object traversal and value conversion methods. I think this needs to go into a separate service (and maybe package)



  was:
I have some comments about the public Sightly API:

1. There are several exceptions, like SightlyException, RuntimeExtensionException, SightlyUseException - are these really required? The API does not mention any method/interface throwing such an exception

2.  RuntimeExtension and ExtensionInstance - I think we can get rid of the RuntimeExtension interface and simply pass the RenderContext in ExtensionInstance#call.

3. The purpose of the Record interface is a little bit unclear to me. In addition it has a T get(String) method while properties returns a Set<String>. I guess the engine supports a Map, so maybe we can get rid of this interface?

4. ResourceResolution seems to contain methods for getting scripts. Isn't this some functionalty the existing ServletResolver component provides? Or if not, shouldn't we move this to the Sling API?

5. Many of the methods in the RenderContext are Object traversal and value conversion methods. I think this needs to go into a separate service (and maybe package)

6. UseProvider services. What about registering such a service with a required property indicating the identifiers it provides instead of requiring to ask each and every provider?


> Review of the Sightly API
> -------------------------
>
>                 Key: SLING-4275
>                 URL: https://issues.apache.org/jira/browse/SLING-4275
>             Project: Sling
>          Issue Type: Task
>          Components: Scripting
>            Reporter: Carsten Ziegeler
>             Fix For: Scripting Sightly Engine 1.0.0
>
>
> I have some comments about the public Sightly API:
> 1. There are several exceptions, like SightlyException, RuntimeExtensionException, SightlyUseException - are these really required? The API does not mention any method/interface throwing such an exception
> 2.  RuntimeExtension and ExtensionInstance - I think we can get rid of the RuntimeExtension interface and simply pass the RenderContext in ExtensionInstance#call.
> 3. The purpose of the Record interface is a little bit unclear to me. In addition it has a T get(String) method while properties returns a Set<String>. I guess the engine supports a Map, so maybe we can get rid of this interface?
> 4. ResourceResolution seems to contain methods for getting scripts. Isn't this some functionalty the existing ServletResolver component provides? Or if not, shouldn't we move this to the Sling API?
> 5. Many of the methods in the RenderContext are Object traversal and value conversion methods. I think this needs to go into a separate service (and maybe package)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)