You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bo...@apache.org on 2003/08/05 18:13:02 UTC

cvs commit: ant/src/main/org/apache/tools/ant/taskdefs Zip.java

bodewig     2003/08/05 09:13:02

  Modified:    .        WHATSNEW
               docs/manual/CoreTasks ear.html jar.html war.html zip.html
               src/main/org/apache/tools/ant/taskdefs Zip.java
  Log:
  Add a keepcompression attribute to control the compression of entries
  that come from existing archives.
  
  PR: 16084
  
  Revision  Changes    Path
  1.480     +4 -0      ant/WHATSNEW
  
  Index: WHATSNEW
  ===================================================================
  RCS file: /home/cvs/ant/WHATSNEW,v
  retrieving revision 1.479
  retrieving revision 1.480
  diff -u -r1.479 -r1.480
  --- WHATSNEW	5 Aug 2003 16:05:37 -0000	1.479
  +++ WHATSNEW	5 Aug 2003 16:13:02 -0000	1.480
  @@ -557,6 +557,10 @@
   * <if/> and <unless/> attributes added to <param/> element of <style>
      Bugzilla Report 22044
   
  +* <zip> and friends have a new attribute "keepcompression" that can be
  +  used to incrementally build an archive mixing compressed and uncompressed
  +  entries.
  +
   Changes from Ant 1.5.2 to Ant 1.5.3
   ===================================
   
  
  
  
  1.16      +13 -1     ant/docs/manual/CoreTasks/ear.html
  
  Index: ear.html
  ===================================================================
  RCS file: /home/cvs/ant/docs/manual/CoreTasks/ear.html,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- ear.html	11 Apr 2003 13:31:18 -0000	1.15
  +++ ear.html	5 Aug 2003 16:13:02 -0000	1.16
  @@ -40,7 +40,19 @@
     </tr>
     <tr>
       <td valign="top">compress</td>
  -    <td valign="top">Not only store data but also compress them, defaults to true</td>
  +    <td valign="top">Not only store data but also compress them,
  +    defaults to true.  Unless you set the <em>keepcompression</em>
  +    attribute to false, this will apply to the entire archive, not
  +    only the files you've added while updating.</td>
  +    <td align="center" valign="top">No</td>
  +  </tr>
  +  <tr>
  +    <td valign="top">keepcompression</td>
  +    <td valign="top">For entries coming from existing archives (like
  +    nested <em>zipfileset</em>s or while updating the archive), keep
  +    the compression as it has been originally instead of using the
  +    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
  +    1.6</em></td>
       <td align="center" valign="top">No</td>
     </tr>
     <tr>
  
  
  
  1.28      +13 -1     ant/docs/manual/CoreTasks/jar.html
  
  Index: jar.html
  ===================================================================
  RCS file: /home/cvs/ant/docs/manual/CoreTasks/jar.html,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- jar.html	27 May 2003 04:40:10 -0000	1.27
  +++ jar.html	5 Aug 2003 16:13:02 -0000	1.28
  @@ -73,7 +73,19 @@
     </tr>
     <tr>
       <td valign="top">compress</td>
  -    <td valign="top">Not only store data but also compress them, defaults to true</td>
  +    <td valign="top">Not only store data but also compress them,
  +    defaults to true.  Unless you set the <em>keepcompression</em>
  +    attribute to false, this will apply to the entire archive, not
  +    only the files you've added while updating.</td>
  +    <td align="center" valign="top">No</td>
  +  </tr>
  +  <tr>
  +    <td valign="top">keepcompression</td>
  +    <td valign="top">For entries coming from existing archives (like
  +    nested <em>zipfileset</em>s or while updating the archive), keep
  +    the compression as it has been originally instead of using the
  +    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
  +    1.6</em></td>
       <td align="center" valign="top">No</td>
     </tr>
     <tr>
  
  
  
  1.20      +13 -1     ant/docs/manual/CoreTasks/war.html
  
  Index: war.html
  ===================================================================
  RCS file: /home/cvs/ant/docs/manual/CoreTasks/war.html,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- war.html	17 Apr 2003 13:09:18 -0000	1.19
  +++ war.html	5 Aug 2003 16:13:02 -0000	1.20
  @@ -47,7 +47,19 @@
     </tr>
     <tr>
       <td valign="top">compress</td>
  -    <td valign="top">Not only store data but also compress them, defaults to true</td>
  +    <td valign="top">Not only store data but also compress them,
  +    defaults to true.  Unless you set the <em>keepcompression</em>
  +    attribute to false, this will apply to the entire archive, not
  +    only the files you've added while updating.</td>
  +    <td align="center" valign="top">No</td>
  +  </tr>
  +  <tr>
  +    <td valign="top">keepcompression</td>
  +    <td valign="top">For entries coming from existing archives (like
  +    nested <em>zipfileset</em>s or while updating the archive), keep
  +    the compression as it has been originally instead of using the
  +    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
  +    1.6</em></td>
       <td align="center" valign="top">No</td>
     </tr>
     <tr>
  
  
  
  1.21      +13 -1     ant/docs/manual/CoreTasks/zip.html
  
  Index: zip.html
  ===================================================================
  RCS file: /home/cvs/ant/docs/manual/CoreTasks/zip.html,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- zip.html	18 Apr 2003 22:02:58 -0000	1.20
  +++ zip.html	5 Aug 2003 16:13:02 -0000	1.21
  @@ -89,7 +89,19 @@
     </tr>
     <tr>
       <td valign="top">compress</td>
  -    <td valign="top">Not only store data but also compress them, defaults to true</td>
  +    <td valign="top">Not only store data but also compress them,
  +    defaults to true.  Unless you set the <em>keepcompression</em>
  +    attribute to false, this will apply to the entire archive, not
  +    only the files you've added while updating.</td>
  +    <td align="center" valign="top">No</td>
  +  </tr>
  +  <tr>
  +    <td valign="top">keepcompression</td>
  +    <td valign="top">For entries coming from existing archives (like
  +    nested <em>zipfileset</em>s or while updating the archive), keep
  +    the compression as it has been originally instead of using the
  +    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
  +    1.6</em></td>
       <td align="center" valign="top">No</td>
     </tr>
     <tr>
  
  
  
  1.114     +32 -4     ant/src/main/org/apache/tools/ant/taskdefs/Zip.java
  
  Index: Zip.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Zip.java,v
  retrieving revision 1.113
  retrieving revision 1.114
  diff -u -r1.113 -r1.114
  --- Zip.java	4 Aug 2003 12:11:37 -0000	1.113
  +++ Zip.java	5 Aug 2003 16:13:02 -0000	1.114
  @@ -141,6 +141,14 @@
       private String encoding;
   
       /**
  +     * Whether the original compression of entries coming from a ZIP
  +     * archive should be kept (for example when updating an archive).
  +     *
  +     * @since Ant 1.6
  +     */
  +    private boolean keepCompression = false;
  +
  +    /**
        * This is the name/location of where to
        * create the .zip file.
        *
  @@ -308,6 +316,16 @@
       }
   
       /**
  +     * Whether the original compression of entries coming from a ZIP
  +     * archive should be kept (for example when updating an archive).
  +     *
  +     * @since Ant 1.6
  +     */
  +    public void setKeepCompression(boolean keep) {
  +        keepCompression = keep;
  +    }
  +
  +    /**
        * validate and build
        */
       public void execute() throws BuildException {
  @@ -631,11 +649,20 @@
                       zipFile(f, zOut, prefix + name, fileMode);
                   } else if (!resources[i].isDirectory()) {
                       ZipEntry ze = zf.getEntry(resources[i].getName());
  +                    
                       if (ze != null) {
  -                        zipFile(zf.getInputStream(ze), zOut, prefix + name,
  -                                ze.getTime(), zfs.getSrc(getProject()),
  -                                zfs.hasFileModeBeenSet() ? fileMode
  -                                                         : ze.getUnixMode());
  +                        boolean oldCompress = doCompress;
  +                        if (keepCompression) {
  +                            doCompress = (ze.getMethod() == ZipEntry.DEFLATED);
  +                        }
  +                        try {
  +                            zipFile(zf.getInputStream(ze), zOut, prefix + name,
  +                                    ze.getTime(), zfs.getSrc(getProject()),
  +                                    zfs.hasFileModeBeenSet() ? fileMode
  +                                    : ze.getUnixMode());
  +                        } finally {
  +                            doCompress = oldCompress;
  +                        }
                       }
                   }
               }
  @@ -973,6 +1000,7 @@
           if (!skipWriting) {
               ZipEntry ze = new ZipEntry(vPath);
               ze.setTime(lastModified);
  +            ze.setMethod(doCompress ? ZipEntry.DEFLATED : ZipEntry.STORED);
   
               /*
               * ZipOutputStream.putNextEntry expects the ZipEntry to
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org