You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "C?dric Vidal (JIRA)" <ji...@codehaus.org> on 2006/03/16 19:53:32 UTC

[jira] Created: (WAGON-38) Lightweight HTTP Wagon PUT imcomplete - Missing scoped ancestor collections are not created

Lightweight HTTP Wagon PUT imcomplete - Missing scoped ancestor collections are not created
-------------------------------------------------------------------------------------------

         Key: WAGON-38
         URL: http://jira.codehaus.org/browse/WAGON-38
     Project: wagon
        Type: Improvement

 Environment: Maven 2.0.2
wagon-http-lightweight-1.0-alpha-6.jar
Apache/2.0.54 (Debian GNU/Linux) mod_ssl/2.0.54 OpenSSL/0.9.7e
    Reporter: Cédric Vidal


The WEBDAV RFC states that "A PUT that would result in the creation of a resource without an appropriately scoped parent collection MUST fail with a 409 (Conflict)." 
http://www.webdav.org/specs/rfc2518.html#rfc.section.8.7.1

All the scoped ancestor collections must therefore exist before PUTing the artifact, it is not the responsibility of the server to create the ancestor scoped collections but the responsibility of the HTTP Wagon, exactly as it is for the FTP Wagon. Today, because the Lightweigth HTTP Wagon doesn't create those forementionned ancestor collections, it cannot be used to deploy an artifact to a WEBDAV server (unless I'm missing something).

Creating those forementioned ancestor scoped collections using the WEBDAV protocol is done using the MKCOL command, which cannot be sent using the java.net.HttpURLConnection which only support "GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE" and "TRACE". It therefore requires the use of a WEBDAV aware library such as the Jakarta Slide Client library (or issuing the MKCOL method manually, or adding a MkcolMethod to Jakarta Commons HttpClient).

Two possibilities, either adding the MkCol method to the lightweight (or fat) http wagon (Completing WAGON-28) , or adding a new wagon (See WAGON-32). The bottom line being that using the proper wagon should be transparent to the end user (no replacing jars in the maven lib dir).

I have already done some isolated tests and wagon hacking and I am willing to help here by submitting a patch, I just would like to know which way you guys would prefer to go before doing any real work.

PS: As a matter of fact, regarding the error code returned when the scoped parent collection is missing, 403 is returned instead of 409 with the following server :
Apache/2.0.54 (Debian GNU/Linux) mod_ssl/2.0.54 OpenSSL/0.9.7e


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Closed: (WAGON-38) Lightweight HTTP Wagon PUT imcomplete - Missing scoped ancestor collections are not created

Posted by "Carlos Sanchez (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/WAGON-38?page=all ]
     
Carlos Sanchez closed WAGON-38:
-------------------------------

     Assign To: Carlos Sanchez
    Resolution: Won't Fix

Added a new webdav wagon, see WAGON-32

> Lightweight HTTP Wagon PUT imcomplete - Missing scoped ancestor collections are not created
> -------------------------------------------------------------------------------------------
>
>          Key: WAGON-38
>          URL: http://jira.codehaus.org/browse/WAGON-38
>      Project: wagon
>         Type: Improvement

>  Environment: Maven 2.0.2
> wagon-http-lightweight-1.0-alpha-6.jar
> Apache/2.0.54 (Debian GNU/Linux) mod_ssl/2.0.54 OpenSSL/0.9.7e
>     Reporter: Cédric Vidal
>     Assignee: Carlos Sanchez

>
>
> The WEBDAV RFC states that "A PUT that would result in the creation of a resource without an appropriately scoped parent collection MUST fail with a 409 (Conflict)." 
> http://www.webdav.org/specs/rfc2518.html#rfc.section.8.7.1
> All the scoped ancestor collections must therefore exist before PUTing the artifact, it is not the responsibility of the server to create the ancestor scoped collections but the responsibility of the HTTP Wagon, exactly as it is for the FTP Wagon. Today, because the Lightweigth HTTP Wagon doesn't create those forementionned ancestor collections, it cannot be used to deploy an artifact to a WEBDAV server (unless I'm missing something).
> Creating those forementioned ancestor scoped collections using the WEBDAV protocol is done using the MKCOL command, which cannot be sent using the java.net.HttpURLConnection which only support "GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE" and "TRACE". It therefore requires the use of a WEBDAV aware library such as the Jakarta Slide Client library (or issuing the MKCOL method manually, or adding a MkcolMethod to Jakarta Commons HttpClient).
> Two possibilities, either adding the MkCol method to the lightweight (or fat) http wagon (Completing WAGON-28) , or adding a new wagon (See WAGON-32). The bottom line being that using the proper wagon should be transparent to the end user (no replacing jars in the maven lib dir).
> I have already done some isolated tests and wagon hacking and I am willing to help here by submitting a patch, I just would like to know which way you guys would prefer to go before doing any real work.
> PS: As a matter of fact, regarding the error code returned when the scoped parent collection is missing, 403 is returned instead of 409 with the following server :
> Apache/2.0.54 (Debian GNU/Linux) mod_ssl/2.0.54 OpenSSL/0.9.7e

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira