[ 
https://issues.apache.org/jira/browse/COMPRESS-365?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15432962#comment-15432962
 ] 

Gary Gregory commented on COMPRESS-365:
---------------------------------------

Instead of a big-bang patch for the whole component, I would suggest to create 
a subtask for each file type and see if this can be done is smaller chunks. 

> Use java.nio.file.Path instead of java.io.File
> ----------------------------------------------
>
>                 Key: COMPRESS-365
>                 URL: https://issues.apache.org/jira/browse/COMPRESS-365
>             Project: Commons Compress
>          Issue Type: Improvement
>            Reporter: Ben Butler-Cole
>
> When testing code that does file I/O it is faster and provides better 
> isolation to use an in-memory filesystem. The standard way of doing that is 
> to use the java.nio.file package for all file I/O and provide an in-memory 
> implementation of java.nio.file.FileSystem (for example Jimfs 
> (https://mvnrepository.com/artifact/com.google.jimfs/jimfs)).
> Unfortunately it's impossible to do this if code anywhere in the stack 
> converts back to java.io.File. So it's currently impossible to use Commons 
> Compress with an in-memory filesystem. To enable this there would need to be 
> java.io.file.Path versions of all API methods that currently take 
> java.io.File objects and the implementation would need to be changed to use 
> java.nio.file classes throughout.
> I can see that this is a fair bit of work (although when I've done similar 
> conversions it's been fairly easy to drive by leaning on the IDE and type 
> system). But you would get big implementation advantages from doing this 
> because java.nio.file makes lots of things easy that are tedious with java.io 
> and provides more safety around fallible operations. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to