src/main/java/org/codehaus/plexus/archiver/tar/TarUnArchiver.java
private InputStream decompress( UntarCompressionMethod compression, final File file, final InputStream istream )
			throws IOException, ArchiverException
	{
		if ( compression == UntarCompressionMethod.GZIP )
		{
			return new GZIPInputStream( istream );
		}
		else if ( compression == UntarCompressionMethod.BZIP2 )
		{
			return new BZip2CompressorInputStream( istream );
		}
        else if ( compression == UntarCompressionMethod.SNAPPY )
        {
            return new SnappyInputStream( istream );
        }
		return istream;
	}
private InputStream decompress( UntarCompressionMethod compression, final File file, final InputStream istream )
			throws IOException, ArchiverException
	{
		if ( compression == UntarCompressionMethod.GZIP )
		{
			return new GZIPInputStream( istream );
		}
		else if ( compression == UntarCompressionMethod.BZIP2 )
		{
			return new BZip2CompressorInputStream( istream );
		}
        else if ( compression == UntarCompressionMethod.SNAPPY )
        {
            return new SnappyInputStream( istream );
        }
		return istream;
	}
This method wraps the input stream with the
corresponding decompression method

@param file    provides location information for BuildException
@param istream input stream
@return input stream with on-the-fly decompression
@throws IOException thrown by GZIPInputStream constructor