This is an automated email from the ASF dual-hosted git repository. mmiller pushed a commit to branch 1.10 in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/1.10 by this push: new fbdbda9 Improve filename extension usage in RFile API (#1917) fbdbda9 is described below commit fbdbda9c666a989ea5a5b8270f0ca02d4ec30e58 Author: Mike Miller <mmil...@apache.org> AuthorDate: Thu Feb 11 07:32:34 2021 -0500 Improve filename extension usage in RFile API (#1917) * Add info about extension to RFile API javadoc * Throw IllegalArgumentException early when a filename that does not end in the appropriate RFile extension is used in the RFileWriterBuilder. Co-authored-by: Christopher Tubbs <ctubb...@apache.org> --- core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java | 4 ++-- .../main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java | 3 ++- .../org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java | 4 ++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java index fed3e35..7ea9b81 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java +++ b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java @@ -196,14 +196,14 @@ public class RFile { /** * This is an intermediate interface in a larger builder pattern. Supports setting the required - * output sink to write a RFile to. + * output sink to write a RFile to. The filename parameter requires the ".rf" extension. * * @since 1.8.0 */ public static interface OutputArguments { /** * @param filename - * name of file to write RFile data + * name of file to write RFile data, ending with the ".rf" extension * @return this */ public WriterFSOptions to(String filename); diff --git a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java index a0703fd..dc02504 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java +++ b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java @@ -47,6 +47,7 @@ import com.google.common.base.Preconditions; * <li>Keys must be appended in sorted order within a locality group.</li> * <li>Locality groups must have a mutually exclusive set of column families.</li> * <li>The default locality group must be started last.</li> + * <li>If using RFile.newWriter().to("filename.rf"), the ".rf" extension is required.</li> * </ul> * * <p> @@ -58,7 +59,7 @@ import com.google.common.base.Preconditions; * Iterable<Entry<Key, Value>> localityGroup2Data = ... * Iterable<Entry<Key, Value>> defaultGroupData = ... * - * try(RFileWriter writer = RFile.newWriter().to(file).build()) { + * try(RFileWriter writer = RFile.newWriter().to("filename.rf").build()) { * * // Start a locality group before appending data. * writer.startNewLocalityGroup("groupA", "columnFam1", "columnFam2"); diff --git a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java index 4dd7184..d8476eb 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java +++ b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java @@ -111,6 +111,10 @@ class RFileWriterBuilder implements RFile.OutputArguments, RFile.WriterFSOptions @Override public WriterFSOptions to(String filename) { Objects.requireNonNull(filename); + if (!filename.endsWith(".rf")) { + throw new IllegalArgumentException( + "Provided filename (" + filename + ") does not end with '.rf'"); + } this.out = new OutputArgs(filename); return this; }