This is an automated email from the ASF dual-hosted git repository. kwin pushed a commit to branch feature/SLING-10150-clarify-multivalue-resourcemerger-properties in repository https://gitbox.apache.org/repos/asf/sling-site.git
commit 8b325e7a4964e439830f2cb3b84ed2766ff17277 Author: Konrad Windszus <[email protected]> AuthorDate: Mon Mar 15 13:27:48 2021 +0100 SLING-10150 clarify handling of multivalue properties sling:hideChildren and sling:hideProperties --- .../documentation/bundles/resource-merger.md | 27 ++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main/jbake/content/documentation/bundles/resource-merger.md b/src/main/jbake/content/documentation/bundles/resource-merger.md index 9f14e3b..002b40f 100644 --- a/src/main/jbake/content/documentation/bundles/resource-merger.md +++ b/src/main/jbake/content/documentation/bundles/resource-merger.md @@ -34,11 +34,34 @@ The `CRUDMergingResourceProvider` not only gives read-access to the merged resou Property Name | Type | Description ------------- | ---- | --------- -sling:hideProperties | String[] | Hides the properties with the given names. `*` hides all properties (since version 1.3.2 the wildcard only affects underlying properties and no longer local ones, see also [SLING-5468](https://issues.apache.org/jira/browse/SLING-5468)). -sling:hideChildren| String[] | Hides the child resources with the given names. `*` hides all child resources (since version 1.3.2 the wildcard only affects underlying child resources and no longer local ones, see also [SLING-5468](https://issues.apache.org/jira/browse/SLING-5468)). If one value starts with `!` this is a negation (which means the property with the given value should not be hidden). Since by default nothing is hidden the negation is only useful if you specify multiple valu [...] +sling:hideProperties | String[] | Hides the properties matching the given names. The exact syntax is described below. +sling:hideChildren| String[] | Hides the child resources with the given names. The exact syntax is described below. sling:hideResource | Boolean | If `true` then the resource with the name which contains this property should not be exposed! sling:orderBefore | String | Contains the name of the preceding sibling resource. This is influencing the order of resources when calling e.g. `Resource.listChildren()` or `Resource.getChildren()` on the merged resource. This is only necessary if the default child resource order is not sufficient (see below). +## sling:hideProperties/hideChildren syntax +Both properties `sling:hideProperties` and `sling:hideChildren` take multiple string values which either act as allow list or as deny list. +They are treated as deny list if the first value is starting with an odd number of `!` otherwise as allow list. + +In case negated (odd number of leader `!` ) and non-negated values are mixed in one property the first one determines the list type, and all values of the other type are just skipped! + +For deny lists an implicit wildcard is assumed, i.e. everything is allowed except for the names given in negated form. Giving an explicit wildcard (`*`) is optional and does not change the semantics. + +Each value can either be `*` which is treated as wildcard (i.e. matches all names) or a string with no placeholders. That string is unescaped by removing half of the leading `!` characters. That allows to negate arbitrary item names (even ones starting with one or multiple `!`). + +Escaped Value | Unescaped Value | Is negated +--- | --- | --- +!name | name | yes +name | name | no +!!name | !name | no +!!!name | !name | yes +!!!!name!test | !!name!test | no + +The matching algorithm just compares the item name (either resource or property name) with each of the given unescaped values. It matches if at least one is equal from an allow list or none is equal from a deny list. + +Since version 1.3.2 the wildcard only affects underlying child resources and no longer local ones, see also [SLING-5468](https://issues.apache.org/jira/browse/SLING-5468). + + # Child Resource Order For a merged resource the order of its child resources is the following:
