commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Commons Wiki] Update of "CompressRoadmap" by StefanBodewig
Date Sun, 08 Dec 2013 06:44:43 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Commons Wiki" for change notification.

The "CompressRoadmap" page has been changed by StefanBodewig:
https://wiki.apache.org/commons/CompressRoadmap?action=diff&rev1=15&rev2=16

  
  == About this page ==
  
- Compress has seen several releases of the 1.x series.  While the factory and stream APIs
have proven to be useful there pieces that "don't feel right" and cannot be changed without
breaking backwards compatibility.  Also Compress API has been designed for Java 1.4 and could
benefit from generics and enums.
+ Compress has seen several releases of the 1.x series.  While the factory and stream APIs
have proven to be useful there are pieces that "don't feel right" and cannot be changed without
breaking backwards compatibility.  Also Compress' API has been designed for Java 1.4 and could
benefit from generics and enums.
  
  The idea of a 2.0 release that is allowed to break backwards compatibility has come up more
than once over a span of three years or even longer.  This page will gather requirements and
design ideas in the hope that a real implementation will be created based on the existing
code.
  
@@ -16, +16 @@

    
    Stefan sees a chance NIO2 will help and is totally sure the "new java.util.zip" of Java7
is even worse than the old code :-)
  
+ * external dependencies?
+ 
+   we have copied or reinvented some code from IO - do we want to keep our copy or use a
dependency?
+ 
+ * some general cleanup
+ 
+   we have encoding code in the zip packages that gets used in tar and other archived classes.
 We should make a run for extracting common code into utilities.
+ 
+ * make the factories configurable - i.e. allow third parties to register new formats without
changing Compress
+ 
+   ServiceProvider?
+ 
+ * common solutions for streaming 
+ 
+   pack200 has to use a temporary files or hold the result in memory as it uses an API that
converts a stream with a single call.  The archive classes that need random access can currently
only work on files.  Some options have been discussed on the mailing list in this thread:
http://markmail.org/thread/2jr5qapuynnxnfx6
+ 
+ * read-only support
+ 
+   The list of formats we ca read but not write seems to be growing.  Do we want to add some
sort of meta-data for a format we can query to know whether it supports writing?  Might be
part of the "make factories  configurable" solution.
+ 
+ * events for certain stages of (un)archiving/(un)compressing?
+ 
+   This might be used for progress bars or similar stuff at a higher level.  COMPRESS-207
+ 
+ == Archivers ==
+ 
+ * unify common stuff in ArchiveEntry
+ 
+   this includes extracting a common representation for modes/persmission (COMPRESS-136)
but doesn't need to stop there.  There is a discussion thread that is more than three years
old with ideas about this: http://markmail.org/thread/fsxtzs3vsepycu25
+ 
+ * embrace generics at least for the {{{getNextEntry}}}/{{{putArchiveEntry}}} methods
+ 
+ * streaming vs random-access
+ 
+   For some archivers we don't have streams as their formats really require random access
to work properly (7z) for others there is a stream and a diferent class for random access
(zip) which is superior.  Should we generalize this in some way like having a factory and
a common API for the random access based classes?  See also the "general" bullet point on
this.
+ 
+ === JAR ===
+ 
+ * stop extending the zip stuff but do something useful for JAR archives like providing access
to the manifest.  COMPRESS-18
+ 
+ === ZIP ===
+ 
+ * try to share more code between ZipFile and InputStream
+ 
+ * provide an API that allows third parties to implement und use compression/encryption methods
without modifying Compress' codebase.
+ 
+   COMPRESS-143
+ 
+ == Compressors ==
+ 
+ * provide byte[] based Compressors/Decompressors as an alternative to streams
+ 
+   COMPRESS-134
+ 
  ...
  

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


Mime
View raw message