PARQUET-1725: Replace Usage of Strings.join with JDK Functionality in… (#713)

* PARQUET-1725: Replace Usage of Strings.join with JDK Functionality in ColumnPath Class

* Applied refactoring to DictionaryPageReader as well

* Remove Strings utility class join methods

* Deprecate instead of remove join methods
diff --git a/parquet-common/src/main/java/org/apache/parquet/Strings.java b/parquet-common/src/main/java/org/apache/parquet/Strings.java
index 17a0456..1a9fcee 100644
--- a/parquet-common/src/main/java/org/apache/parquet/Strings.java
+++ b/parquet-common/src/main/java/org/apache/parquet/Strings.java
@@ -38,7 +38,9 @@
    * @param s an iterable of strings
    * @param on the delimiter
    * @return a single joined string
+   * @deprecated Use {@link String#join(CharSequence, Iterable)}
    */
+  @Deprecated
   public static String join(Iterable<String> s, String on) {
     return join(s.iterator(), on);
   }
@@ -51,7 +53,9 @@
    * @param iter an iterator of strings
    * @param on the delimiter
    * @return a single joined string
+   * @deprecated Use {@link String#join(CharSequence, Iterable)}
    */
+  @Deprecated
   public static String join(Iterator<String> iter, String on) {
     StringBuilder sb = new StringBuilder();
     while (iter.hasNext()) {
@@ -71,7 +75,9 @@
    * @param s an iterable of strings
    * @param on the delimiter
    * @return a single joined string
+   * @deprecated Use {@link String#join(CharSequence, Iterable)}
    */
+  @Deprecated
   public static String join(String[] s, String on) {
     return join(Arrays.asList(s), on);
   }
diff --git a/parquet-common/src/main/java/org/apache/parquet/hadoop/metadata/ColumnPath.java b/parquet-common/src/main/java/org/apache/parquet/hadoop/metadata/ColumnPath.java
index 4383b0f..0b3f365 100644
--- a/parquet-common/src/main/java/org/apache/parquet/hadoop/metadata/ColumnPath.java
+++ b/parquet-common/src/main/java/org/apache/parquet/hadoop/metadata/ColumnPath.java
@@ -22,8 +22,6 @@
 import java.util.Arrays;
 import java.util.Iterator;
 
-import org.apache.parquet.Strings;
-
 import static org.apache.parquet.Preconditions.checkNotNull;
 
 public final class ColumnPath implements Iterable<String>, Serializable {
@@ -68,7 +66,7 @@
   }
 
   public String toDotString() {
-    return Strings.join(p, ".");
+    return String.join(".", p);
   }
 
   @Override
diff --git a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/DictionaryPageReader.java b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/DictionaryPageReader.java
index ebc9c84..99643ed 100644
--- a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/DictionaryPageReader.java
+++ b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/DictionaryPageReader.java
@@ -18,7 +18,6 @@
  */
 package org.apache.parquet.hadoop;
 
-import org.apache.parquet.Strings;
 import org.apache.parquet.bytes.BytesInput;
 import org.apache.parquet.column.ColumnDescriptor;
 import org.apache.parquet.column.Encoding;
@@ -92,7 +91,7 @@
       return rowGroup.readDictionaryPage(descriptor);
     }
 
-    String dotPath = Strings.join(descriptor.getPath(), ".");
+    String dotPath = String.join(".", descriptor.getPath());
     ColumnChunkMetaData column = columns.get(dotPath);
     if (column == null) {
       throw new ParquetDecodingException(
diff --git a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetFileWriter.java b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetFileWriter.java
index e402c7d..39a75bc 100644
--- a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetFileWriter.java
+++ b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetFileWriter.java
@@ -41,7 +41,6 @@
 import org.apache.hadoop.fs.Path;
 
 import org.apache.parquet.Preconditions;
-import org.apache.parquet.Strings;
 import org.apache.parquet.Version;
 import org.apache.parquet.bytes.BytesInput;
 import org.apache.parquet.bytes.BytesUtils;
@@ -763,7 +762,7 @@
     if (!dropColumns && !columnsToCopy.isEmpty()) {
       throw new IllegalArgumentException(String.format(
           "Columns cannot be copied (missing from target schema): %s",
-          Strings.join(columnsToCopy.keySet(), ", ")));
+          String.join(", ", columnsToCopy.keySet())));
     }
 
     // copy the data for all chunks
diff --git a/parquet-hadoop/src/test/java/org/apache/parquet/hadoop/example/TestInputOutputFormat.java b/parquet-hadoop/src/test/java/org/apache/parquet/hadoop/example/TestInputOutputFormat.java
index 0a38303..47645ac 100644
--- a/parquet-hadoop/src/test/java/org/apache/parquet/hadoop/example/TestInputOutputFormat.java
+++ b/parquet-hadoop/src/test/java/org/apache/parquet/hadoop/example/TestInputOutputFormat.java
@@ -48,7 +48,6 @@
 import org.apache.hadoop.mapreduce.Mapper;
 import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
 import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
-import org.apache.parquet.Strings;
 import org.apache.parquet.filter2.predicate.FilterApi;
 import org.junit.Before;
 import org.junit.Test;
@@ -307,7 +306,7 @@
 
     sbFound.deleteCharAt(sbFound.length() - 1);
 
-    assertEquals(Strings.join(expected, "\n"), sbFound.toString());
+    assertEquals(String.join("\n", expected), sbFound.toString());
   }
 
   @Test
diff --git a/parquet-thrift/src/main/java/org/apache/parquet/thrift/struct/CompatibilityChecker.java b/parquet-thrift/src/main/java/org/apache/parquet/thrift/struct/CompatibilityChecker.java
index f5e215c..7091711 100644
--- a/parquet-thrift/src/main/java/org/apache/parquet/thrift/struct/CompatibilityChecker.java
+++ b/parquet-thrift/src/main/java/org/apache/parquet/thrift/struct/CompatibilityChecker.java
@@ -34,7 +34,6 @@
 import org.apache.parquet.thrift.struct.ThriftType.I32Type;
 import org.apache.parquet.thrift.struct.ThriftType.I64Type;
 import org.apache.parquet.thrift.struct.ThriftType.StringType;
-import org.apache.parquet.Strings;
 
 /**
  * A checker for thrift struct to enforce its backward compatibility, returns compatibility report based on following rules:
@@ -81,8 +80,7 @@
   }
 
   public String prettyMessages() {
-
-    return Strings.join(messages, "\n");
+    return String.join("\n", messages);
   }
 
   @Override
diff --git a/parquet-thrift/src/test/java/org/apache/parquet/thrift/TestThriftRecordConverter.java b/parquet-thrift/src/test/java/org/apache/parquet/thrift/TestThriftRecordConverter.java
index 255515a..06c8cef 100644
--- a/parquet-thrift/src/test/java/org/apache/parquet/thrift/TestThriftRecordConverter.java
+++ b/parquet-thrift/src/test/java/org/apache/parquet/thrift/TestThriftRecordConverter.java
@@ -24,7 +24,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 
-import org.apache.parquet.Strings;
 import org.apache.parquet.io.ParquetDecodingException;
 import org.apache.parquet.io.api.Binary;
 import org.apache.parquet.thrift.ThriftRecordConverter.FieldEnumConverter;
@@ -78,10 +77,10 @@
 
   @Test
   public void constructorDoesNotRequireStructOrUnionTypeMeta() throws Exception {
-    String jsonWithNoStructOrUnionMeta = Strings.join(
+    String jsonWithNoStructOrUnionMeta = String.join("\n",
         Files.readAllLines(
             new File("src/test/resources/org/apache/parquet/thrift/StructWithUnionV1NoStructOrUnionMeta.json").toPath(),
-            StandardCharsets.UTF_8), "\n");
+            StandardCharsets.UTF_8));
 
     StructType noStructOrUnionMeta  = (StructType) ThriftType.fromJSON(jsonWithNoStructOrUnionMeta);