diff --git a/cli/src/main/java/org/incenp/obofoundry/sssom/cli/SimpleCLI.java b/cli/src/main/java/org/incenp/obofoundry/sssom/cli/SimpleCLI.java index b836e7d..0ec9902 100644 --- a/cli/src/main/java/org/incenp/obofoundry/sssom/cli/SimpleCLI.java +++ b/cli/src/main/java/org/incenp/obofoundry/sssom/cli/SimpleCLI.java @@ -71,6 +71,8 @@ import org.semanticweb.owlapi.model.OWLOntology; import org.semanticweb.owlapi.model.OWLOntologyCreationException; import org.semanticweb.owlapi.model.OWLOntologyManager; +import org.tukaani.xz.LZMA2Options; +import org.tukaani.xz.XZOutputStream; import picocli.CommandLine.ArgGroup; import picocli.CommandLine.Command; @@ -833,6 +835,10 @@ private OutputStream getOutputStream(String filename, CompressionFormat comp) out = new GZIPOutputStream(out); break; + case XZ: + out = new XZOutputStream(out, new LZMA2Options()); + break; + case NONE: break; } diff --git a/ext/pom.xml b/ext/pom.xml index 6aa1adf..6791b35 100644 --- a/ext/pom.xml +++ b/ext/pom.xml @@ -32,6 +32,11 @@ owlapi-distribution 4.5.29 + + org.tukaani + xz + 1.12 + io.github.liveontologies elk-owlapi diff --git a/ext/src/main/java/org/incenp/obofoundry/sssom/util/CompressionFormat.java b/ext/src/main/java/org/incenp/obofoundry/sssom/util/CompressionFormat.java index 609e7ff..b442b8c 100644 --- a/ext/src/main/java/org/incenp/obofoundry/sssom/util/CompressionFormat.java +++ b/ext/src/main/java/org/incenp/obofoundry/sssom/util/CompressionFormat.java @@ -35,7 +35,14 @@ public enum CompressionFormat { * * @see RFC 1952 */ - GZIP(".gz"); + GZIP(".gz"), + + /** + * The XZ file format from the XZ Utils project. + * + * @see XZ file format + */ + XZ(".xz"); private String extension; diff --git a/ext/src/main/java/org/incenp/obofoundry/sssom/util/ReaderFactory.java b/ext/src/main/java/org/incenp/obofoundry/sssom/util/ReaderFactory.java index 408f452..88a4143 100644 --- a/ext/src/main/java/org/incenp/obofoundry/sssom/util/ReaderFactory.java +++ b/ext/src/main/java/org/incenp/obofoundry/sssom/util/ReaderFactory.java @@ -34,6 +34,7 @@ import org.incenp.obofoundry.sssom.TSVReader; import org.incenp.obofoundry.sssom.TSVReader.SeparatorMode; import org.incenp.obofoundry.sssom.rdf.RDFReader; +import org.tukaani.xz.XZInputStream; /** * A class providing helper methods to obtain SSSOM reader objects. @@ -513,6 +514,10 @@ private InputStream getInputStream(String filename, boolean allowStdin, Compress in = new GZIPInputStream(in); break; + case XZ: + in = new XZInputStream(in); + break; + case NONE: break; }