You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by bo...@apache.org on 2013/03/07 17:16:32 UTC
svn commit: r1453941 - in /commons/proper/compress/trunk/src:
changes/changes.xml
main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
main/java/org/apache/commons/compress/compressors/xz/XZUtils.java
Author: bodewig
Date: Thu Mar 7 16:16:32 2013
New Revision: 1453941
URL: http://svn.apache.org/r1453941
Log:
COMPRESS-221 make XZ for Jaca truely optional for CompressorStreamFactory, based on patch description by Matt Quigley
Modified:
commons/proper/compress/trunk/src/changes/changes.xml
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/xz/XZUtils.java
Modified: commons/proper/compress/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/changes/changes.xml?rev=1453941&r1=1453940&r2=1453941&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/changes/changes.xml (original)
+++ commons/proper/compress/trunk/src/changes/changes.xml Thu Mar 7 16:16:32 2013
@@ -164,6 +164,10 @@ The <action> type attribute can be add,u
Fixed a potential ArrayIndexOutOfBoundsException when
reading STORED entries from ZipArchiveInputStream.
</action>
+ <action type="fix" date="2013-03-07" issue="COMPRESS-221">
+ CompressorStreamFactory can now be used without XZ for Java
+ being available.
+ </action>
</release>
<release version="1.4.1" date="2012-05-23"
description="Release 1.4.1">
Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java?rev=1453941&r1=1453940&r2=1453941&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java (original)
+++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java Thu Mar 7 16:16:32 2013
@@ -28,6 +28,7 @@ import org.apache.commons.compress.compr
import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream;
import org.apache.commons.compress.compressors.xz.XZCompressorInputStream;
import org.apache.commons.compress.compressors.xz.XZCompressorOutputStream;
+import org.apache.commons.compress.compressors.xz.XZUtils;
import org.apache.commons.compress.compressors.pack200.Pack200CompressorInputStream;
import org.apache.commons.compress.compressors.pack200.Pack200CompressorOutputStream;
@@ -117,7 +118,8 @@ public class CompressorStreamFactory {
return new GzipCompressorInputStream(in);
}
- if (XZCompressorInputStream.matches(signature, signatureLength)) {
+ if (XZUtils.isXZCompressionAvailable() &&
+ XZCompressorInputStream.matches(signature, signatureLength)) {
return new XZCompressorInputStream(in);
}
Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/xz/XZUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/xz/XZUtils.java?rev=1453941&r1=1453940&r2=1453941&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/xz/XZUtils.java (original)
+++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/xz/XZUtils.java Thu Mar 7 16:16:32 2013
@@ -44,6 +44,19 @@ public class XZUtils {
}
/**
+ * Are the classes required to support XZ compression available?
+ * @since Commons Compress 1.5
+ */
+ public static boolean isXZCompressionAvailable() {
+ try {
+ XZCompressorInputStream.matches(null, 0);
+ return true;
+ } catch (NoClassDefFoundError error) {
+ return false;
+ }
+ }
+
+ /**
* Detects common xz suffixes in the given filename.
*
* @param filename name of a file