You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Brett Porter <bp...@f2network.com.au> on 2004/04/22 01:40:53 UTC

RE: cvs commit: maven/src/java/org/apache/maven/util HttpUtils.ja va

Cool - thanks Emmanuel!

Can you update changes.xml too please?

Cheers,
Brett

> -----Original Message-----
> From: Emmanuel Venisse [mailto:emmanuel@venisse.net] 
> Sent: Thursday, 22 April 2004 12:30 AM
> To: Maven Developers List
> Subject: Re: cvs commit: maven/src/java/org/apache/maven/util 
> HttpUtils.java
> 
> 
> 
> ----- Original Message ----- 
> From: "Vincent Massol" <vm...@pivolis.com>
> To: "'Maven Developers List'" <de...@maven.apache.org>
> Sent: Wednesday, April 21, 2004 4:14 PM
> Subject: RE: cvs commit: maven/src/java/org/apache/maven/util 
> HttpUtils.java
> 
> 
> > 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?
> 
> Yes and no. In some case, UrlConnection download files that 
> aren't modified. I'll think it's a problem with some JDKs. 
> Before commit it, I tested my changes with some trace, and I 
> saw that files was downloaded all the time even if the server 
> (IBiblio in my tests) send last modified date. With this 
> patch, I fix this two problems.
> 
> >
> > Thanks
> > -Vincent
> >
> > > -----Original Message-----
> > > From: evenisse@apache.org [mailto:evenisse@apache.org]
> > > Sent: 21 April 2004 15:54
> > > To: maven-cvs@apache.org
> > > 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: dev-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: dev-help@maven.apache.org
> >
> >
> >
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> > For additional commands, e-mail: dev-help@maven.apache.org
> >
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>