I think usePut could do a Sling-POST.

Carsten

2012/4/18 Felix Meschberger <[email protected]>:
> Hi,
>
> Am 17.04.2012 um 19:06 schrieb Carsten Ziegeler:
>
>> I would be very happy if we don't add a dependency on webdav - I still
>> think we should rather use Sling stuff which is the post servlet :)
>
> So usePut would do a Sling-POST ? Or introduce another configuration element ?
>
> Currently the default is to do a POST against the Web Console. And I think 
> this is good and makes sense (even though this functionality maybe belongs to 
> the Felix project)
>
> Regards
> Felix
>
>>
>> Carsten
>>
>> 2012/4/17 Felix Meschberger <[email protected]>:
>>> Hi,
>>>
>>> Am 10.04.2012 um 01:46 schrieb Mark Adamcin:
>>>
>>>> Whatever direction this happens to go in, I don't think this should result
>>>> in changing the behavior for existing maven-sling-plugin configurations
>>>> that already use PUT. Instead, maybe there should just be a new config
>>>> parameter like <useMkcol>true</useMkcol> that defaults to false. This would
>>>> cover the most generic and widely applicable use case, which is: "I want to
>>>> create a bundle project that can deploy to any repository using jcrinstall
>>>> without requiring additional supporting content to have been created prior
>>>> to bundle activation". If users have more granular requirements like
>>>> requiring different intermediate nodetypes, then those problems have likely
>>>> already been solved with other deployment scripts or packaging formats.
>>>
>>> Instead of useMkcol we could also have a parameter <mkdirs> defaulting to 
>>> false. If this is true and the PUT request fails with a 209 CONFLICT, the 
>>> plugin would send a series of MKCOL requests to try to create the tree and 
>>> the resend the PUT.
>>>
>>> Of course, depending on the WebDAV setup the intermediate nodes may be 
>>> created with whatever node type is configured (IIRC Sling defaults to 
>>> sling:Folder).
>>>
>>> Regards
>>> Felix
>>>
>>>>
>>>> Mark Adamcin
>>>> Acquity Group
>>>>
>>>>
>>>>
>>>> On Mon, Apr 9, 2012 at 4:05 PM, Justin Edelson 
>>>> <[email protected]>wrote:
>>>>
>>>>> Craig,
>>>>> Feel free to submit an enhancement request, but personally I don't like
>>>>> either of these options. I'm pretty sure MKCOL will create nt:folder nodes
>>>>> and I usually prefer sling:Folder nodes for the second level under /apps.
>>>>> Conversely, the Sling POST servlet can't create intermediate folders under
>>>>> an nt:folder node (and I've typically seen /apps be an nt:folder) because
>>>>> nt:folder doesn't define a default child node type.
>>>>>
>>>>> While I agree that the current behavior is annoying at times, I don't want
>>>>> to introduce an element of surprise.
>>>>>
>>>>> Justin
>>>>>
>>>>> On Fri, Apr 6, 2012 at 1:36 PM, Craig S. Dickson <[email protected]
>>>>>> wrote:
>>>>>
>>>>>> I agree with Mark and Carsten. I think from a Maven plugin perspective,
>>>>>> the user should be able to "upload" a file, to just about any path they
>>>>>> like. The person writing the Maven pom.xml shouldn't need to worry about
>>>>>> whether the plugin is using WebDav or a Sling post or any other mechanism
>>>>>> and the specifics of how that mechanism does or doesn't work.
>>>>>>
>>>>>> Anyone have a strong feeling about either Mark's suggestion of doing
>>>>> MKCOL
>>>>>> requests at each level to make sure the path exists, or alternatively
>>>>>> Carsten's suggestion of using the Sling POST servlet instead of WebDAV?
>>>>>>
>>>>>> I think this is worth logging as an enhancement request, does anyone
>>>>>> object?
>>>>>>
>>>>>> Cheers
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Apr 5, 2012, at 8:14 AM, Mark Adamcin wrote:
>>>>>>
>>>>>>> Couldn't the plugin be modified to add an option to use MKCOL requests
>>>>> at
>>>>>>> every level of the path prior to executing the PUT request?
>>>>>>>
>>>>>>> Mark Adamcin
>>>>>>> Acquity Group
>>>>>>> On Apr 5, 2012 4:01 AM, "Carsten Ziegeler" <[email protected]>
>>>>> wrote:
>>>>>>>
>>>>>>>> Maybe we could do a POST and let the Post-Servlet handle this? This
>>>>>>>> would be independent from WebDav then.
>>>>>>>>
>>>>>>>> Carsten
>>>>>>>>
>>>>>>>> 2012/4/5 Bertrand Delacretaz <[email protected]>:
>>>>>>>>>> On Wed, Apr 4, 2012 at 5:16 PM, Craig S. Dickson <
>>>>>>>> [email protected]>wrote:
>>>>>>>>>>> ...Is PUT'ing to a
>>>>>>>>>>> non-existent path not considered semantically correct from a REST
>>>>>>>>>>> standpoint? Or, is this just a bug or missing feature?...
>>>>>>>>>
>>>>>>>>> PUT is handled by Sling's WebDAV servlet, and
>>>>>>>>> http://www.webdav.org/specs/rfc2518.html says (about MKCOL):
>>>>>>>>>
>>>>>>>>> "When the MKCOL operation creates a new collection resource, all
>>>>>>>>> ancestors must already exist, or the method must fail with a 409
>>>>>>>>> (Conflict) status code. For example, if a request to create
>>>>> collection
>>>>>>>>> /a/b/c/d/ is made, and neither /a/b/ nor /a/b/c/ exists, the request
>>>>>>>>> must fail."
>>>>>>>>>
>>>>>>>>> The PUT section of that spec is a bit less understandable IMO:
>>>>>>>>>
>>>>>>>>> "A PUT that would result in the creation of a resource without an
>>>>>>>>> appropriately scoped parent collection must fail with a 409
>>>>>>>>> (Conflict)."
>>>>>>>>>
>>>>>>>>> but between the two it seems that 409 is correct when PUTting to a
>>>>>>>>> path that doesn't exist.
>>>>>>>>>
>>>>>>>>> -Bertrand
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Carsten Ziegeler
>>>>>>>> [email protected]
>>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>
>>
>>
>>
>> --
>> Carsten Ziegeler
>> [email protected]
>



-- 
Carsten Ziegeler
[email protected]

Reply via email to