It's an oversight, see https://issues.apache.org/jira/browse/SLING-11712

Regards
Carsten

On 02.06.2025 13:53, Konrad Windszus wrote:
Hi,
According to 
https://sling.apache.org/documentation/the-sling-engine/sling-api-crud-support.html
 and the javadoc of the ResourceResolver 
(https://sling.apache.org/apidocs/sling13/org/apache/sling/api/resource/ResourceResolver.html)
 there is no method suitable for renaming an existing resource.
Even 
https://sling.apache.org/apidocs/sling13/org/apache/sling/api/resource/ResourceResolver.html#move(java.lang.String,java.lang.String)
 keeps all existing resource names.

Is that an oversight?
IIUC one currently needs to do the following to perform a rename:

1. Create a new resource with the new name and copy over all old properties.
2. Move all child resources of the resource which is supposed to be renamed 
individually with 
https://sling.apache.org/apidocs/sling13/org/apache/sling/api/resource/ResourceResolver.html#move(java.lang.String,java.lang.String)
 as child of the the resource in 1.
3. Delete the resource with the old name

Wouldn’t it make sense to directly support a rename option in order to speed up 
the operations (i.e. JCR has Session.move(…) which allows to rename, 
https://developer.adobe.com/experience-manager/reference-materials/spec/javax.jcr/javadocs/jcr-2.0/javax/jcr/Session.html#move(java.lang.String,%20java.lang.String)).

One alternative is to make Sling RR move behave like JCR Session move (i.e. 
destPath is created if it does not exist yet and is used as the new resource 
name).

Thanks for your input,
Konrad



--
Carsten Ziegeler
Adobe
cziege...@apache.org

Reply via email to