commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Bodewig (JIRA)" <>
Subject [jira] [Commented] (COMPRESS-118) Simple high-level api to do with one line what you can do with one command in a command shell
Date Mon, 23 Apr 2018 14:16:00 GMT


Stefan Bodewig commented on COMPRESS-118:
contains a first idea of the Archiver class, basically in order to get feedback. Apart from
the missing unit tests:

* some formats - AR, to be precise - doesn't allow directory entries at all, the class could
deal with that internally
* yes, the code would be shorter with Java8
* creating a ZIP throws an exceptio about not having a current entry. Either there is a bug
in the Archiver class or it uncovered one in ZipArchieOutputStream

I've written a small main class and successfully created tar, 7z and cpio archives - only
using the File versions and no filters, though.

> Simple high-level api to do with one line what you can do with one command in a command
> ---------------------------------------------------------------------------------------------
>                 Key: COMPRESS-118
>                 URL:
>             Project: Commons Compress
>          Issue Type: New Feature
>          Components: Archivers
>            Reporter: Eirik Maus
>            Priority: Major
>              Labels: API
>             Fix For: 1.17
>   Original Estimate: 48h
>  Remaining Estimate: 48h
> There should be a high-level api for basic operations with archives in Java. This could
be a place for it. There are a few apis for working with compression archives in java, but
all of them are fairly low-level. The most basic operations therefore requires just as much
code as more specific ones.  It is not possible to unzip an archive in less than 50 lines
of code, can you believe it!  
> Performing basic operations on archives should be as easy in java as on the command line.
I suggest adding something like:
>   HighLevelApi.extractAll(zipfile,destinationDirectory)
> or, even
>   new ZipFile(file).extractAllTo(directory)
> and
>   ZipFile archive = HighLevelApi.createFrom(directory, "*");
> or, even
>   ZipFile archive = ZipFile.from(directory);
> In general: one line in bash should be one line in java (plus try-catch...) for these
kinds of operations. 
> See "zip --help" and "unzip --help" for further candidate methods in the high-level API.

> One could also consider a coordinated effort with the VFS-project, in order to add such
methods to all such hierarchies/storages. 

This message was sent by Atlassian JIRA

View raw message