Hi, we have to implement two slightly opposing sets of requirements:
1a) Create notification e-mails with links to resources 1b) Allow external systems to store references to resources and to retrieve resource data through that reference at a later date and 2) Moving resources within the tree based on business processes By moving a resource, the path would naturally change, which would render any e-mail URL or external reference useless. For this reason, it would be desirable to be able to use the node's UUID or, in cases where the node was created by an external system, an immutable property of the node which contains an externally created Id. Any URL or reference based on this information would therefore remain valid regardless of where the node is in the tree. Our proposed solution is to implement a new ResourceProvider, mounted in the virtual tree (under /uuid for example), which would process URLs such as /uuid/e07a566f-9099-4859-bcdb-aadf76275bf2.tidy.json and invoke the javax.jcr.Session.getItem method with [<uuid>] (e.g. [e07a566f-9099-4859-bcdb-aadf76275bf2]) as the argument. This works and it is possible to retrieve a JCR node with this implemention. However, it is not currently possible to reuse JcrNodeResource, as this class is a package private class in a private package (bundle: org.apache.sling.jcr.resource). We do not wish to implement our own JcrNodeResource. Would it be possible to make these classes (namely JcrItemResource, JcrPropertyResource and JcrNodeResource) available to other bundles, either directly or through a public factory class? Thanks in advance
