commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zbynek Vyskovsky (JIRA)" <>
Subject [jira] [Commented] (COMPRESS-390) Expose zip stream offset and size via API
Date Sun, 30 Apr 2017 04:01:04 GMT


Zbynek Vyskovsky commented on COMPRESS-390:

[~bodewig] No problem,I'm sorry about the delay, I haven't found time togo through it and
to think about it into detail...

I see your last point, it would be solvable with Java 8 default methods but we still maintain
Java 7 compatibility, so not an option here anyway.

About the previous comment - I'm just thinking about trade-off between perfect and never-lying
solution and something which is still quite easy to use and is transparent across all the
potential types of archives. One thing I'm not happy about that proposal is to have different
enum for each of the archive types - that clearly breaks the transparency.

Therefore, I'd rather stick to Gary's proposal, i.e. independent interface that could be or
not implemented by the specific ArchiveEntry. Still it could return -1 under certain circumstances
(bit based stream or whatever exotic format may be used by one specific file within the archive).

So I'd suggest something like:

interface EntryOffsets {
        /** Returns the offset of data stream within the archive file, OFFSET_UNKNOWN when
not known. */
        long getDataStreamOffset();
        /** Indicates whether the data stream is continuous, i.e. not split into multiple
files, interspersed with control blocks, etc. */
        boolean isDataStreamContinuous();

About the other suggestion, whether to put it on the same level as ArchiveEntry or maybe into
the main Archive class, I don't have so strong opinion. I feel that firstly it would be inconsistent,
secondly the methods in Archive class usually do some big work which is not the case here...

> Expose zip stream offset and size via API
> -----------------------------------------
>                 Key: COMPRESS-390
>                 URL:
>             Project: Commons Compress
>          Issue Type: New Feature
>          Components: Archivers
>    Affects Versions: 1.13
>            Reporter: Zbynek Vyskovsky
>              Labels: features, github-import, patch
>             Fix For: 1.14
> In certain cases it may be useful to get information about where in the archive the stream
starts and ends. Typically when zip is used as resource container and the resources are then
mapped directly into memory, but not only.
> The size and compressed size are already available but not the stream offset.
> This can be applied to other archive types as well, therefore it would make sense to
put this into basic interface - ArchiveEntry. But not necessarily all of them have to support

This message was sent by Atlassian JIRA

View raw message