You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Gilles Knobloch (JIRA)" <ji...@apache.org> on 2013/10/23 14:05:43 UTC

[jira] [Commented] (SLING-2986) Merged Resource Provider

    [ https://issues.apache.org/jira/browse/SLING-2986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13802834#comment-13802834 ] 

Gilles Knobloch commented on SLING-2986:
----------------------------------------

[~cziegeler], just realized I didn't answer your first questions.

On why introducting a new API:
* Where I am using it (outside of that package), I need to know if the resource is a "real" resource or a merged one, reason for {{org.apache.sling.resourcemerger.api.MergedResource}}
* The constants of {{org.apache.sling.resourcemerger.api.MergedResourceConstants}} could stay private. On the other hand, people overriding resources anyway need to know which properties to use to achieve it, so why hiding them?
* The service is aimed to be extended and available through OSGi references in JSPs, other classes, etc.

Could we at least agree on the main concepts?
# How to add/override a property
** Create the corresponding property within {{/apps}} (the property will have priority based on Sling Resource Resolver configuration)
** Changing the type of the property is supported
# How to delete one or more properties
** Create the corresponding node within {{/apps}}, and set {{sling:hideProperties}} to the list of properties to delete ({{String[]}})
** {{*}} can be used to delete all the properties
# How to delete a node (and its children)
** Create the corresponding node within {{/apps}}, and set {{sling:hideResource}} to {{true}} ({{Boolean}})
# How to delete children of a node (but keep the properties of the node)
** Create the corresponding node within {{/apps}}, and set {{sling:hideChildren}} to {{true}} ({{Boolean}})
# How to reorder nodes
** Create the corresponding node within {{/apps}}, and set {{sling:orderBefore}} to the name of the sibling where that node should be reordered before ({{String}})
** TODO: support redefining the whole list of children

> Merged Resource Provider
> ------------------------
>
>                 Key: SLING-2986
>                 URL: https://issues.apache.org/jira/browse/SLING-2986
>             Project: Sling
>          Issue Type: New Feature
>          Components: ResourceResolver
>            Reporter: Gilles Knobloch
>
> As exchanged once with Felix Meschberger, the idea is to implement a custom resource provider, with ability to merge multiple resources based on your search paths.
> For instance, if your search paths are
> /apps
> /libs
> Hitting /merge/my/resource/is/here will check
> /apps/my/resource/is/here
> /libs/my/resource/is/here
> There are some options like:
> - add/override property
> - delete a property of the resource under /libs
> - reorder nodes if available
> I intend to submit this patch as soon as possible.
> Code is currently located at https://github.com/gknob/sling-resourcemerger



--
This message was sent by Atlassian JIRA
(v6.1#6144)