[ https://issues.apache.org/jira/browse/SLING-5469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17291163#comment-17291163 ]
Konrad Windszus edited comment on SLING-5469 at 2/25/21, 7:23 PM: ------------------------------------------------------------------ Let's go for a simple mixin approach here. The new mixin must allow the four properties # sling:hideProperties (String[]) # sling:hideChildren (String[]) # sling:hideResource (Boolean) # sling:orderBefore (String) was (Author: kwin): Let's go for a simple mixin approach here. The new mixin must allow the four properties # sling:hideProperties (String{}) # sling:hideChildren (String[]) # sling:hideResource (Boolean) # sling:orderBefore (String) > Resource Merger: Add some name prefixing mechanism for properties which are > used by the resource merger itself > -------------------------------------------------------------------------------------------------------------- > > Key: SLING-5469 > URL: https://issues.apache.org/jira/browse/SLING-5469 > Project: Sling > Issue Type: Improvement > Components: Extensions > Affects Versions: Resource Merger 1.2.10 > Reporter: Konrad Windszus > Priority: Major > Fix For: Resource Merger 1.4.0 > > > Currently within the resource merger it is not possible to > # use the {{jcr:primaryType}} of the underlying resource, while the > overlaid/overridden resource has a different {{jcr:primaryType}}. > That is a problem because for a JCR the primaryType is mandatory for each > node. Some node type definitions don't allow arbitrary property names like > {{sling:hideResource}}. To be able to use those properties (which are only > relevant up the point where the resource has been merged) you might need to > use a more relaxed node type. Still you don't want that relaxed node type to > appear as primaryType in the merged resource. > # use the {{sling:resourceSuperType}} from the underlying resource, while the > overridden resource has a different {{sling:resourceSuperType}}. > This is kind of a edge case because sling:resourceSuperType would be used for > two different things here: > ** for getting the underlying resource path for the > {{OverridingResourcePicker}} > ** for the request resolution of the merged resource > Sometime the value for each of the cases would be different. > Therefore I propose a general property name mangling mechanism which allows > someone to use a prefix like {{sling-resource-merging_}} for the properties, > which are during the resource merging exposed as properties without the > prefix. One example for case 1): > {code} > /apps/my/resource > - jcr:primaryType=nt:folder > - sling:resourceSuperType=apps/my/super/resource > - sling:hideProperties=customNodeTypePrefix:property1 > - jcr:sling-resource-merging_primaryTypemyCustomNodeRestrictedNodeType > /apps/my/super/resource > - jcr:primaryType=myCustomNodeRestrictedNodeType > - customNodeTypePrefix:property1=test > - customNodeTypePrefix:property2=test > /mnt/override/apps/my/resource > - jcrPrimaryType=nt:unstructured (but should be > myCustomNodeRestrictedNodeType) > - customNodeTypePrefix:property2=test > {code} > In this example it is impossible to let my merged resource have the nodeType > {{myCustomNodeRestrictedNodeType}} (because that simply does not allow the > property {{sling:hideProperties}} to be set in {{/apps/my/resource}}. -- This message was sent by Atlassian Jira (v8.3.4#803005)