mbenson     2005/02/25 14:23:07

  Modified:    .        WHATSNEW
               src/main/org/apache/tools/ant/taskdefs Get.java
               src/etc/testcases/taskdefs get.xml
               src/testcases/org/apache/tools/ant/taskdefs GetTest.java
  Log:
  get with usetimestamp did not work on Java 1.2 .
  
  Revision  Changes    Path
  1.758     +2 -0      ant/WHATSNEW
  
  Index: WHATSNEW
  ===================================================================
  RCS file: /home/cvs/ant/WHATSNEW,v
  retrieving revision 1.757
  retrieving revision 1.758
  diff -u -r1.757 -r1.758
  --- WHATSNEW  25 Feb 2005 11:34:10 -0000      1.757
  +++ WHATSNEW  25 Feb 2005 22:23:06 -0000      1.758
  @@ -345,6 +345,8 @@
   * <javac debug="false"> created an invalid command line when running
     the Symantec Java compiler.
   
  +* Get with usetimestamp did not work on Java 1.2.
  +
   Changes from Ant 1.6.1 to Ant 1.6.2
   ===================================
   
  
  
  
  1.48      +9 -2      ant/src/main/org/apache/tools/ant/taskdefs/Get.java
  
  Index: Get.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Get.java,v
  retrieving revision 1.47
  retrieving revision 1.48
  diff -u -r1.47 -r1.48
  --- Get.java  6 Jan 2005 12:05:05 -0000       1.47
  +++ Get.java  25 Feb 2005 22:23:07 -0000      1.48
  @@ -21,6 +21,7 @@
   import org.apache.tools.ant.Project;
   import org.apache.tools.ant.Task;
   import org.apache.tools.ant.util.FileUtils;
  +import org.apache.tools.ant.util.JavaEnvUtils;
   
   import java.io.File;
   import java.io.FileOutputStream;
  @@ -137,7 +138,7 @@
           URLConnection connection = source.openConnection();
           //modify the headers
           //NB: things like user authentication could go in here too.
  -        if (useTimestamp && hasTimestamp) {
  +        if (hasTimestamp) {
               connection.setIfModifiedSince(timestamp);
           }
           // prepare Java 1.1 style credentials
  @@ -160,13 +161,19 @@
               HttpURLConnection httpConnection
                       = (HttpURLConnection) connection;
               if (httpConnection.getResponseCode()
  -                    == HttpURLConnection.HTTP_NOT_MODIFIED)  {
  +                    == HttpURLConnection.HTTP_NOT_MODIFIED
  +                //workaround:  doesn't work on 1.2
  +                || (hasTimestamp
  +                && JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_2)
  +                && timestamp > httpConnection.getLastModified())) {
                   //not modified so no file download. just return
                   //instead and trace out something so the user
                   //doesn't think that the download happened when it
                   //didn't
                   log("Not modified - so not downloaded", logLevel);
                   return false;
  +                // also, if timestamp is roughly >= now, HTTP_NOT_MODIFIED 
is _not_
  +                // returned... We may want to remove the 1.2 qualifier above.
               }
               // test for 401 result (HTTP only)
               if (httpConnection.getResponseCode()
  
  
  
  1.5       +44 -0     ant/src/etc/testcases/taskdefs/get.xml
  
  Index: get.xml
  ===================================================================
  RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/get.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- get.xml   8 May 2001 09:35:27 -0000       1.4
  +++ get.xml   25 Feb 2005 22:23:07 -0000      1.5
  @@ -24,6 +24,50 @@
   
     <target name="test6">
       <get src="http://www.apache.org/"; dest="get.tmp"/>
  +
  +    <fileset id="t6" file="get.tmp" />
  +    <pathconvert property="t6" refid="t6" setonempty="false" />
  +
  +    <fail message="get failed">
  +      <condition>
  +        <not>
  +          <isset property="t6" />
  +        </not>
  +      </condition>
  +    </fail>
  +  </target>
  +
  +  <target name="testUseTimestamp">
  +    <property name="pat" value="yyyyMMddHHmm" />
  +
  +    <tstamp>
  +      <format property="dt" pattern="${pat}" offset="-90" unit="second" />
  +    </tstamp>
  +
  +    <touch file="get.tmp" datetime="${dt}" pattern="${pat}" />
  +
  +    <get src="http://www.apache.org/"; dest="get.tmp"
  +         usetimestamp="true" verbose="true" />
  +
  +    <fileset id="ts" file="get.tmp">
  +      <date when="equal" datetime="${dt}" pattern="${pat}" />
  +    </fileset>
  +
  +    <pathconvert property="ts" refid="ts" setonempty="false" />
  +
  +    <fail message="get w/ timestamp should have failed.">
  +      <condition>
  +        <not>
  +          <isset property="ts" />
  +        </not>
  +      </condition>
  +    </fail>
  +  </target>
  +
  +  <target name="cleanup">
  +    <delete>
  +      <fileset dir="${basedir}" includes="get.tmp" />
  +    </delete>
     </target>
   
   </project>
  
  
  
  1.12      +7 -6      
ant/src/testcases/org/apache/tools/ant/taskdefs/GetTest.java
  
  Index: GetTest.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/GetTest.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- GetTest.java      9 Mar 2004 16:48:57 -0000       1.11
  +++ GetTest.java      25 Feb 2005 22:23:07 -0000      1.12
  @@ -32,6 +32,10 @@
           configureProject("src/etc/testcases/taskdefs/get.xml");
       }
   
  +    public void tearDown() {
  +        executeTarget("cleanup");
  +    }
  +
       public void test1() {
           expectBuildException("test1", "required argument missing");
       }
  @@ -54,13 +58,10 @@
   
       public void test6() {
           executeTarget("test6");
  -        java.io.File f = new File(getProjectDir(), "get.tmp");
  -        if (!f.exists()) {
  -            fail("get failed");
  -        } else {
  -            f.delete();
  -        }
  +    }
   
  +    public void testUseTimestamp() {
  +        executeTarget("testUseTimestamp");
       }
   
   }
  
  
  

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

Reply via email to