Is there any work being done on this?
I can't seem to find it in JIRA. It looks like something we might be interested in as well.

Regards,
Simon

On 12 Nov 2009, at 16:04, Christophe Lombart wrote:

Thanks for the input. I will create a new Jira issue and try the solution
you suggest.

br,
Christophe


2009/11/12 Vidar Ramdal <[email protected]>

On Thu, Nov 12, 2009 at 4:07 PM, Christophe Lombart
<[email protected]> wrote:
2009/11/12 Vidar Ramdal <[email protected]>

What if you could post to a (Json)QueryServlet URL, something like:
POST


http://localhost:8080/.query.json?statement=//*[sling:resourceType='myContentType
']
... with the fields
myprop=123
anotherProp="new value"
...etc

The servlet would then run the query, and run the modifications on
each result node.

On Thu, Nov 12, 2009 at 3:47 PM, Christophe Lombart
<[email protected]> wrote:
This is exactly what I'm thinking about :-)
I think we should have one servlet (or extension) / type of operation
(delete props, rename prop, update value, ...).

Those operations, aren't those already handled by SlingPostServlet?

The SlingPostSerlvet already supports the :applyTo parameter [1], so
you can act on multiple nodes by supplying their paths.
Perhaps :applyTo could be extended to support XPath queries?


This is maybe something that we can evaluate.

After some more investigation, there seems to be only two things that
needs to be done to implement this:

1) It seems applyTo is handled by
AbstractSlingPostOperation.getApplyToResources(). However, this method
is never called by ModifyOperation, which is the class doing all
Property modifications. Thus, :applyTo is not supported for property
modifications (but for node delete/move/copy etc), but looks not too
hard to implement.

2) The getApplyToResources() method creates an ApplyToIterator, which
assumes all :applyTo values are absolute paths, and looks them up via
resolver.getResource. It should be absolutely possible to modify this
functionality to use resolver.findResources instead, or something
similar, so that xpath queries could be supported.

The advantage, IMO, of implementing this via SlingPostServlet, is that
we suddenly can do all kinds of operations on a set of nodes - since
SlingPostServlet already supports custom SllingPostOperations and
SlingPostProcessors.

--
Vidar S. Ramdal <[email protected]> - http://www.idium.no
Sommerrogata 13-15, N-0255 Oslo, Norway
+ 47 22 00 84 00 / +47 21 531941, ext 2070


Reply via email to