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
>