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

Amit Gupta commented on SLING-2853:
-----------------------------------

new patch (addressing following comments)

1. BTW, there should probably also be an add(Resource) without the metadata.
2. Namespacing of properties
3.  ResourceCollectionAdapterFactory adapts to a collection only if the 
"members" child 
  is present. IMHO the resource type should be enough. If there are no members 
yet, the 
  node could be missing. Any code reading content should be very liberal in 
what it 
  expects, and empty content should always work. So all writing methods should 
have 
  a step in them to create the members node if not present yet. 
   
4. Resource type: ResourceCollectionAdapterFactory should use 
Resource.isResourceType() for 
  the type/super type check. 
5. ResourceCollectionManagerImpl.createCollection() could maybe use 
  ResourceUtil.normalize() on the final concatenated path (solved if using 
Resource 
  instead of path as argument) 

6. ResourceCollectionManagerImpl.getCollection relies on adaptTo() in 
getCollection() 

7. ResourceCollection.DEFAULT_SLING_RES_TYPE rename to simply RESOURCE_TYPE 
  The "default" and "sling" in it is misleading; it is *the* rt for the 
ResourceCollection, 
  and I guess it's rather unlikely that someone extends the resource collection 
rt, 
  let alone being a central feature to be pointed out. 
   
8. ResourceCollectionManager methods should IMHO all be consistently based on 
  passing Resource instead of path (makes e.g. the createCollection() 
implementation 
  simpler in that it does not have to getResource() and check for existence) 

                
> Add ResourceCollection to Sling
> -------------------------------
>
>                 Key: SLING-2853
>                 URL: https://issues.apache.org/jira/browse/SLING-2853
>             Project: Sling
>          Issue Type: New Feature
>          Components: API
>    Affects Versions: API 2.0.2
>            Reporter: Amit Gupta
>            Priority: Minor
>         Attachments: collection_v2.zip, collection.zip, resourcecollection.zip
>
>
> Creating a collection of resources has been a use case for a while and there 
> has been no inherent support in SLING for the same.
> This proposal is to add a ResourceCollection interface and implementation 
> that allows creation of collection of resources. 
> Collection is a simple list of members, where each member contains path of 
> resource it refers to. In future, we might need to store additional 
> information with the member, hence following structure is proposed
> N: resourceCollection (nt:unstructured)
>         + P: sling:resourceType
>         + N : members (nt:unstructured)
>             + N: member_res1  > nt:unstructured
>                 + P: path > string, reference to actual resource
>             + N: member_res2  > nt:unstructured
>                 + P: path > string, reference to actual resource

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to