You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by dk...@apache.org on 2019/08/19 17:48:53 UTC

[avro] branch branch-1.9 updated: AVRO-2465: Fix wrong defalut values in the avro-tools' usage

This is an automated email from the ASF dual-hosted git repository.

dkulp pushed a commit to branch branch-1.9
in repository https://gitbox.apache.org/repos/asf/avro.git


The following commit(s) were added to refs/heads/branch-1.9 by this push:
     new 0998fb2  AVRO-2465: Fix wrong defalut values in the avro-tools' usage
0998fb2 is described below

commit 0998fb2c69894b7c4ef69236e0fcf4602e1157c1
Author: Kengo Seki <se...@apache.org>
AuthorDate: Mon Jul 8 22:23:49 2019 +0900

    AVRO-2465: Fix wrong defalut values in the avro-tools' usage
    
    (cherry picked from commit e305f0625be79753dd34d20a5bfbecf9f01e5b41)
---
 .../org/apache/avro/tool/DataFileWriteTool.java    |  2 +-
 .../java/org/apache/avro/tool/RecodecTool.java     |  2 +-
 .../src/main/java/org/apache/avro/tool/Util.java   |  7 ++++++-
 .../apache/avro/tool/TestCreateRandomFileTool.java |  8 ++++++++
 .../org/apache/avro/tool/TestDataFileTools.java    |  9 +++++++++
 .../org/apache/avro/tool/TestTextFileTools.java    | 22 +++++++++++++++++-----
 6 files changed, 42 insertions(+), 8 deletions(-)

diff --git a/lang/java/tools/src/main/java/org/apache/avro/tool/DataFileWriteTool.java b/lang/java/tools/src/main/java/org/apache/avro/tool/DataFileWriteTool.java
index 3beb955..b763a00 100644
--- a/lang/java/tools/src/main/java/org/apache/avro/tool/DataFileWriteTool.java
+++ b/lang/java/tools/src/main/java/org/apache/avro/tool/DataFileWriteTool.java
@@ -53,7 +53,7 @@ public class DataFileWriteTool implements Tool {
   public int run(InputStream stdin, PrintStream out, PrintStream err, List<String> args) throws Exception {
 
     OptionParser p = new OptionParser();
-    OptionSpec<String> codec = Util.compressionCodecOption(p);
+    OptionSpec<String> codec = Util.compressionCodecOptionWithDefault(p, DataFileConstants.NULL_CODEC);
     OptionSpec<Integer> level = Util.compressionLevelOption(p);
     OptionSpec<String> file = p.accepts("schema-file", "Schema File").withOptionalArg().ofType(String.class);
     OptionSpec<String> inschema = p.accepts("schema", "Schema").withOptionalArg().ofType(String.class);
diff --git a/lang/java/tools/src/main/java/org/apache/avro/tool/RecodecTool.java b/lang/java/tools/src/main/java/org/apache/avro/tool/RecodecTool.java
index fded37b..c851891 100644
--- a/lang/java/tools/src/main/java/org/apache/avro/tool/RecodecTool.java
+++ b/lang/java/tools/src/main/java/org/apache/avro/tool/RecodecTool.java
@@ -41,7 +41,7 @@ public class RecodecTool implements Tool {
   public int run(InputStream in, PrintStream out, PrintStream err, List<String> args) throws Exception {
 
     OptionParser optParser = new OptionParser();
-    OptionSpec<String> codecOpt = Util.compressionCodecOption(optParser);
+    OptionSpec<String> codecOpt = Util.compressionCodecOptionWithDefault(optParser, DataFileConstants.NULL_CODEC);
     OptionSpec<Integer> levelOpt = Util.compressionLevelOption(optParser);
     OptionSet opts = optParser.parse(args.toArray(new String[0]));
 
diff --git a/lang/java/tools/src/main/java/org/apache/avro/tool/Util.java b/lang/java/tools/src/main/java/org/apache/avro/tool/Util.java
index 0b576d8..df98e0b 100644
--- a/lang/java/tools/src/main/java/org/apache/avro/tool/Util.java
+++ b/lang/java/tools/src/main/java/org/apache/avro/tool/Util.java
@@ -251,7 +251,12 @@ class Util {
   }
 
   static OptionSpec<String> compressionCodecOption(OptionParser optParser) {
-    return optParser.accepts("codec", "Compression codec").withRequiredArg().ofType(String.class).defaultsTo("null");
+    return optParser.accepts("codec", "Compression codec").withRequiredArg().ofType(String.class)
+        .defaultsTo(DEFLATE_CODEC);
+  }
+
+  static OptionSpec<String> compressionCodecOptionWithDefault(OptionParser optParser, String s) {
+    return optParser.accepts("codec", "Compression codec").withRequiredArg().ofType(String.class).defaultsTo(s);
   }
 
   static OptionSpec<Integer> compressionLevelOption(OptionParser optParser) {
diff --git a/lang/java/tools/src/test/java/org/apache/avro/tool/TestCreateRandomFileTool.java b/lang/java/tools/src/test/java/org/apache/avro/tool/TestCreateRandomFileTool.java
index 3e75623..e068e10 100644
--- a/lang/java/tools/src/test/java/org/apache/avro/tool/TestCreateRandomFileTool.java
+++ b/lang/java/tools/src/test/java/org/apache/avro/tool/TestCreateRandomFileTool.java
@@ -23,6 +23,7 @@ import java.io.File;
 import java.io.PrintStream;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.Iterator;
 
@@ -134,4 +135,11 @@ public class TestCreateRandomFileTool {
 
     reader.close();
   }
+
+  @Test
+  public void testDefaultCodec() throws Exception {
+    // The default codec for random is deflate
+    run(Collections.emptyList());
+    assertTrue(err.toString().contains("Compression codec (default: deflate)"));
+  }
 }
diff --git a/lang/java/tools/src/test/java/org/apache/avro/tool/TestDataFileTools.java b/lang/java/tools/src/test/java/org/apache/avro/tool/TestDataFileTools.java
index 15e021e..00538aa 100644
--- a/lang/java/tools/src/test/java/org/apache/avro/tool/TestDataFileTools.java
+++ b/lang/java/tools/src/test/java/org/apache/avro/tool/TestDataFileTools.java
@@ -257,4 +257,13 @@ public class TestDataFileTools {
     }
     return outFile;
   }
+
+  @Test
+  public void testDefaultCodec() throws Exception {
+    // The default codec for fromjson is null
+    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+    PrintStream err = new PrintStream(baos);
+    new DataFileWriteTool().run(new ByteArrayInputStream(jsonData.getBytes()), null, err, Collections.emptyList());
+    assertTrue(baos.toString().contains("Compression codec (default: null)"));
+  }
 }
diff --git a/lang/java/tools/src/test/java/org/apache/avro/tool/TestTextFileTools.java b/lang/java/tools/src/test/java/org/apache/avro/tool/TestTextFileTools.java
index 30f05de..770b812 100644
--- a/lang/java/tools/src/test/java/org/apache/avro/tool/TestTextFileTools.java
+++ b/lang/java/tools/src/test/java/org/apache/avro/tool/TestTextFileTools.java
@@ -19,18 +19,21 @@ package org.apache.avro.tool;
 
 import static org.junit.Assert.assertEquals;
 
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.OutputStream;
-import java.io.InputStream;
-import java.io.FileOutputStream;
 import java.io.FileInputStream;
-import java.io.BufferedOutputStream;
-import java.io.BufferedInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
 import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
 import java.nio.ByteBuffer;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.Random;
 
 import org.apache.avro.Schema;
@@ -131,4 +134,13 @@ public class TestTextFileTools {
       }
     }
   }
+
+  @Test
+  public void testDefaultCodec() throws Exception {
+    // The default codec for fromtext is deflate
+    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+    PrintStream err = new PrintStream(baos);
+    new FromTextTool().run(null, null, err, Collections.emptyList());
+    Assert.assertTrue(baos.toString().contains("Compression codec (default: deflate)"));
+  }
 }