ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Bodewig <bode...@apache.org>
Subject Compress Antlib Status
Date Tue, 01 Sep 2009 04:34:43 GMT
Hi all,

this mail is here to show where I am and to test support for moving the
Antlib out of the sandbox.  If you'd like to see it become a proper
Antlib and would support it, please raise your hand.

The Antlib is pretty much complete by now, the major missing piece is
documentation.

It consists of

  Tasks:

    * <bzip2> and <gzip>

      pretty much identical to the core tasks but can take a nested
      archiving task as source as well

      <bzip2>
        <tar>
          <fileset ...>
        </tar>
      </bzip2>

      and write to non-file resources.

    * <bunzip2> and <gunzip>

      Really the same as the core tasks just using Commons Compress.

    * <unar>, <uncpio>, <untar> and <unzip>

      Again, pretty much the same as the core <untar> and <unzip> but
      <unzip> here supports non-file resources as well.

      The only missing feature is the compression attribute in <untar>
      which is superseeded by wrapping the source resource into a
      <gzipresource> (or the bzip2 cousin).

    * <ar>, <cpio>, <tar> and <zip>

      New code base, almost a superset of the core <tar> and <zip> tasks
      just a lot less code since it doesn't need to carry around so much
      cruft.

      It does accept arbitrary resource collections, tries to preserve
      permission, uids, gids, usernames and groupnames of existing
      ArchiveResources where possible and can write to non-file
      resources.

      It does not support

      - the compress attribute of core <zip> (use level="0" instead)

      - the compression attribute of core <tar> (wrap the task into
        <gzip> or <bzip2>)

      - the longfile attribute of <tar>.  Here I plan to understand the
        tar code ;-) and replace it with mode="ustar" and mode="oldgnu"
        (which I think it really is) and maybe later add mode="posix"
        and mode="solaris" once Commons Compress can do that.

  Types:

    * <gzipresource> and <bzip2resource>

      Just like the core counterparts.  They extend core's
      ContentTransformingResource directly, though.

    * <arentry>, <cpioentry>, <tarentry> and <zipentry>

      Pretty much the same as core <tarentry> and <zipentry> - they
      extend core's ArchiveResource.

    * <arfileset>, <cpiofileset>, <tarfileset> and <zipfileset>

      Pretty much the same as core <tarfileset> and <zipfileset>,
      <zipfileset> does support non-file sources here.  They extend
      ArchiveFileSet so the core <tar> and <zip> tasks may be able to
      preserve permissions from <cpiofileset> for example.

  Conditions:

    * <hasmode>, <hasuserid>, <hasusername>, <hasgroupid>,
      <hasgroupname>

      mostly here to support the Antlib's AntUnit tests.

      Work on the core <tarentry> and <zipentry> resources as well.

The Antlib depends on Ant trunk and Commons Compress 1.0 but some tests
will only pass with Commons Compress trunk (the ar and cpio code in ACC
1.0 doesn't write nor read permissions and support for modification
times is broken).

Most formats work reasonably well.  The ar code is a bit spooky and for
reasons I haven't tracked down yet it fails if using non-file resources
in some places.  The ar format isn't that useful anyway since its
filename length limit is 16 characters and it doesn't support
directories.

Stefan

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


Mime
View raw message