Skip to content

Commit 5ef2592

Browse files
committed
More studies on buffering
1 parent 9d54c83 commit 5ef2592

File tree

10 files changed

+191
-113
lines changed

10 files changed

+191
-113
lines changed

src/main/java/org/codehaus/plexus/archiver/bzip2/BZip2Compressor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public void compress()
4444
try
4545
{
4646
zOut = new BZip2CompressorOutputStream( bufferedOutputStream( fileOutputStream( getDestFile() ) ) );
47+
// BUffering of the source stream seems to have little/no impact
4748
compress( getSource(), zOut );
4849
}
4950
catch ( IOException ioe )

src/main/java/org/codehaus/plexus/archiver/bzip2/BZip2UnArchiver.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,20 @@
1717
* limitations under the License.
1818
*/
1919

20-
import java.io.File;
21-
import java.io.IOException;
22-
import java.io.InputStream;
23-
2420
import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
2521
import org.codehaus.plexus.archiver.AbstractUnArchiver;
2622
import org.codehaus.plexus.archiver.ArchiverException;
2723

2824
import javax.annotation.Nonnull;
25+
import java.io.File;
26+
import java.io.IOException;
27+
import java.io.InputStream;
2928

30-
import static org.codehaus.plexus.archiver.util.Streams.*;
29+
import static org.codehaus.plexus.archiver.util.Streams.bufferedInputStream;
30+
import static org.codehaus.plexus.archiver.util.Streams.bufferedOutputStream;
31+
import static org.codehaus.plexus.archiver.util.Streams.copyFully;
32+
import static org.codehaus.plexus.archiver.util.Streams.fileInputStream;
33+
import static org.codehaus.plexus.archiver.util.Streams.fileOutputStream;
3134

3235
/**
3336
* @author <a href="mailto:evenisse@codehaus.org">Emmanuel Venisse</a>
@@ -67,6 +70,7 @@ BZip2CompressorInputStream getBZip2InputStream( InputStream bis )
6770
{
6871
try
6972
{
73+
// Note that bis must be buffered for performance. Does not need buffering around BZip2CompressorInputStream
7074
return new BZip2CompressorInputStream( bis );
7175
}
7276
catch ( IOException e )

src/main/java/org/codehaus/plexus/archiver/gzip/GZipCompressor.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@
1818
*/
1919

2020
import org.codehaus.plexus.archiver.ArchiverException;
21-
import org.codehaus.plexus.archiver.util.Streams;
2221
import org.codehaus.plexus.archiver.util.Compressor;
22+
import org.codehaus.plexus.archiver.util.Streams;
2323
import org.codehaus.plexus.util.IOUtil;
2424

2525
import java.io.FileOutputStream;
2626
import java.io.IOException;
27+
import java.io.OutputStream;
2728
import java.util.zip.GZIPOutputStream;
2829

2930
/**
@@ -32,7 +33,7 @@
3233
public class GZipCompressor
3334
extends Compressor
3435
{
35-
private GZIPOutputStream zOut;
36+
private OutputStream zOut;
3637

3738
/**
3839
* perform the GZip compression operation.
@@ -42,7 +43,7 @@ public void compress()
4243
{
4344
try
4445
{
45-
zOut = new GZIPOutputStream( Streams.bufferedOutputStream( new FileOutputStream( getDestFile() ) ));
46+
zOut = Streams.bufferedOutputStream( new GZIPOutputStream( new FileOutputStream( getDestFile() ) ) );
4647
compress( getSource(), zOut );
4748
}
4849
catch ( IOException ioe )

src/main/java/org/codehaus/plexus/archiver/gzip/GZipUnArchiver.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,17 @@
1919

2020
import org.codehaus.plexus.archiver.AbstractUnArchiver;
2121
import org.codehaus.plexus.archiver.ArchiverException;
22+
import org.codehaus.plexus.archiver.util.Streams;
2223

23-
import java.io.BufferedInputStream;
24-
import java.io.FileInputStream;
2524
import java.io.File;
25+
import java.io.FileInputStream;
2626
import java.io.IOException;
2727
import java.io.InputStream;
2828
import java.util.zip.GZIPInputStream;
2929

30-
import static org.codehaus.plexus.archiver.util.Streams.*;
30+
import static org.codehaus.plexus.archiver.util.Streams.copyFully;
31+
import static org.codehaus.plexus.archiver.util.Streams.fileInputStream;
32+
import static org.codehaus.plexus.archiver.util.Streams.fileOutputStream;
3133

3234
/**
3335
* @author <a href="mailto:evenisse@codehaus.org">Emmanuel Venisse</a>
@@ -66,7 +68,7 @@ private InputStream getGzipInputStream( FileInputStream in )
6668
{
6769
try
6870
{
69-
return new BufferedInputStream( new GZIPInputStream( in ));
71+
return Streams.bufferedInputStream( new GZIPInputStream( in ) );
7072
}
7173
catch ( IOException e )
7274
{

src/main/java/org/codehaus/plexus/archiver/gzip/PlexusIoGzipResourceCollection.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
package org.codehaus.plexus.archiver.gzip;
22

3-
import java.io.BufferedInputStream;
4-
import java.io.File;
5-
import java.io.FileInputStream;
6-
import java.io.IOException;
7-
import java.io.InputStream;
8-
import java.util.HashMap;
9-
import java.util.zip.GZIPInputStream;
10-
3+
import org.codehaus.plexus.archiver.util.Streams;
114
import org.codehaus.plexus.components.io.attributes.Java7FileAttributes;
125
import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
136
import org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection;
147
import org.codehaus.plexus.util.IOUtil;
158

169
import javax.annotation.Nonnull;
10+
import java.io.File;
11+
import java.io.FileInputStream;
12+
import java.io.IOException;
13+
import java.io.InputStream;
14+
import java.util.HashMap;
15+
import java.util.zip.GZIPInputStream;
1716

1817

1918
/**
@@ -35,7 +34,7 @@ protected InputStream getInputStream( File file )
3534
InputStream fis = new FileInputStream( file );
3635
try
3736
{
38-
InputStream result = new BufferedInputStream( new GZIPInputStream( fis ));
37+
InputStream result = Streams.bufferedInputStream( new GZIPInputStream( fis ) );
3938
fis = null;
4039
return result;
4140
}
@@ -45,7 +44,10 @@ protected InputStream getInputStream( File file )
4544
}
4645
}
4746

48-
@Override protected PlexusIoResourceAttributes getAttributes(File file) throws IOException {
49-
return new Java7FileAttributes(file, new HashMap<Integer, String>(), new HashMap<Integer, String>());
50-
}
47+
@Override
48+
protected PlexusIoResourceAttributes getAttributes( File file )
49+
throws IOException
50+
{
51+
return new Java7FileAttributes( file, new HashMap<Integer, String>(), new HashMap<Integer, String>() );
52+
}
5153
}

src/main/java/org/codehaus/plexus/archiver/tar/GZipTarFile.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.codehaus.plexus.archiver.tar;
22

3-
import java.io.BufferedInputStream;
3+
import org.codehaus.plexus.archiver.util.Streams;
4+
45
import java.io.File;
56
import java.io.IOException;
67
import java.io.InputStream;
@@ -10,7 +11,8 @@
1011
/**
1112
* Extension of {@link TarFile} for gzip compressed files.
1213
*/
13-
public class GZipTarFile extends TarFile
14+
public class GZipTarFile
15+
extends TarFile
1416
{
1517
/**
1618
* Creates a new instance with the given file.
@@ -24,14 +26,14 @@ protected InputStream getInputStream( File file )
2426
throws IOException
2527
{
2628
final InputStream inputStream = super.getInputStream( file );
27-
return new BufferedInputStream( new GZIPInputStream( inputStream )
29+
return Streams.bufferedInputStream( new GZIPInputStream( inputStream )
2830
{
2931
public void close()
3032
throws IOException
3133
{
3234
super.close();
3335
inputStream.close();
3436
}
35-
});
37+
} );
3638
}
3739
}

0 commit comments

Comments
 (0)