Hi Emmanuel,

That's cool. Would it be possible to add some comments to explain why
this additional check is required?

Is it to support web servers that do not support ifModifiedSince HTTP
headers?

Thanks
-Vincent

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: 21 April 2004 15:54
> To: [EMAIL PROTECTED]
> Subject: cvs commit: maven/src/java/org/apache/maven/util
HttpUtils.java
> 
> evenisse    2004/04/21 06:53:53
> 
>   Modified:    src/java/org/apache/maven/util Tag: MAVEN-1_0-BRANCH
>                         HttpUtils.java
>   Log:
>   Fix MAVEN-1226. Snapshot is download only if the remote version is
more
> recent than local version.
> 
>   Revision  Changes    Path
>   No                   revision
>   No                   revision
>   1.28.4.6  +13 -8
maven/src/java/org/apache/maven/util/HttpUtils.java
> 
>   Index: HttpUtils.java
>   ===================================================================
>   RCS file:
> /home/cvs/maven/src/java/org/apache/maven/util/HttpUtils.java,v
>   retrieving revision 1.28.4.5
>   retrieving revision 1.28.4.6
>   diff -u -r1.28.4.5 -r1.28.4.6
>   --- HttpUtils.java  15 Apr 2004 06:05:51 -0000      1.28.4.5
>   +++ HttpUtils.java  21 Apr 2004 13:53:53 -0000      1.28.4.6
>   @@ -28,7 +28,6 @@
>    import java.net.PasswordAuthentication;
>    import java.net.URL;
>    import java.net.URLConnection;
>   -import java.util.Date;
> 
>    /**
>     * Http utils for retrieving files.
>   @@ -170,10 +169,10 @@
>            throws IOException
>        {
>            //set the timestamp to the file date.
>   -        Date timestamp = null;
>   +        long timestamp = -1;
>            if ( useTimestamp && destinationFile.exists() )
>            {
>   -            timestamp = new Date( destinationFile.lastModified() );
>   +            timestamp = destinationFile.lastModified();
>            }
> 
>            try
>   @@ -201,7 +200,7 @@
>         * @param url the URL of the file to retrieve
>         * @param destinationFile where to store it
>         * @param timestamp if provided, the remote URL is only
retrieved
> if it was
>   -     * modified more recently than timestamp. Otherwise, null
indicates
> that
>   +     * modified more recently than timestamp. Otherwise, negative
value
> indicates that
>         * the remote URL should be retrieved unconditionally.
>         * @param proxyHost Proxy Host (if proxy is required), or null
>         * @param proxyPort Proxy Port (if proxy is required), or null
>   @@ -213,7 +212,7 @@
>         */
>        public static void getFile( String url,
>                                    File destinationFile,
>   -                                Date timestamp,
>   +                                long timestamp,
>                                    String proxyHost,
>                                    String proxyPort,
>                                    String proxyUserName,
>   @@ -234,9 +233,9 @@
>            URLConnection connection = source.openConnection();
> 
>            //modify the headers
>   -        if ( timestamp != null )
>   +        if ( timestamp >= 0 )
>            {
>   -            connection.setIfModifiedSince( timestamp.getTime() );
>   +            connection.setIfModifiedSince( timestamp );
>            }
>            // prepare Java 1.1 style credentials
>            if ( username != null || password != null )
>   @@ -315,6 +314,12 @@
>                throw isException;
>            }
> 
>   +        if ( connection.getLastModified() <= timestamp &&
>   +             connection.getLastModified() != 0 )
>   +        {
>   +            return;
>   +        }
>   +
>            FileOutputStream fos = new FileOutputStream(
destinationFile );
> 
>            byte[] buffer = new byte[100 * 1024];
>   @@ -333,7 +338,7 @@
>            // if (and only if) the use file time option is set, then
the
>            // saved file now has its timestamp set to that of the
> downloaded
>            // file
>   -        if ( timestamp != null )
>   +        if ( timestamp >= 0 )
>            {
>                long remoteTimestamp = connection.getLastModified();
>                if ( remoteTimestamp != 0 )
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to