I plan to work on this after solving some issues on my current projects
(probably next week).
Christophe


2009/11/19 Simon Gaeremynck <[email protected]>

> 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