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

peacewong pushed a commit to branch dev-1.1.3
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git


The following commit(s) were added to refs/heads/dev-1.1.3 by this push:
     new 8299f98b0 [feture-2167] File type variable configuration in 
FileSource.scala (#2168)
8299f98b0 is described below

commit 8299f98b0c45368b485461941508098ef62f5726
Author: weixiao <[email protected]>
AuthorDate: Tue May 24 22:00:17 2022 +0800

    [feture-2167] File type variable configuration in FileSource.scala (#2168)
    
    * [feture-2167] File type variable configuration in FileSource.scala
    
    * [feture-2167] File type variable configuration in FileSource.scala
---
 .../linkis/storage/conf/LinkisStorageConf.scala    | 23 ++++++++++++++++++++++
 .../apache/linkis/storage/source/FileSource.scala  |  4 ++--
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git 
a/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/conf/LinkisStorageConf.scala
 
b/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/conf/LinkisStorageConf.scala
index 87a8fc263..a6eba05b7 100644
--- 
a/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/conf/LinkisStorageConf.scala
+++ 
b/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/conf/LinkisStorageConf.scala
@@ -17,10 +17,13 @@
 
 package org.apache.linkis.storage.conf
 
+import org.apache.commons.lang.StringUtils
 import org.apache.linkis.common.conf.{ByteType, CommonVars}
 import org.apache.linkis.common.utils.ByteTimeUtils
 
 object LinkisStorageConf {
+  private val CONF_LOCK = new Object()
+
   val HDFS_FILE_SYSTEM_REST_ERRS: String =
     CommonVars.apply(
       "wds.linkis.hdfs.rest.errs",
@@ -31,4 +34,24 @@ object LinkisStorageConf {
 
   val ROW_BYTE_MAX_LEN = ByteTimeUtils.byteStringAsBytes(ROW_BYTE_MAX_LEN_STR)
 
+  val FILE_TYPE = CommonVars("wds.linkis.storage.file.type", 
"dolphin,sql,scala,py,hql,python,out,log,text,sh,jdbc,ngql,psql,fql").getValue
+
+  private var fileTypeArr: Array[String] = null
+
+  private def fileTypeArrParser(fileType: String): Array[String] = {
+    if (StringUtils.isBlank(fileType)) Array()
+    else fileType.split(",")
+  }
+
+  def getFileTypeArr: Array[String] = {
+    if (fileTypeArr == null) {
+      CONF_LOCK.synchronized {
+        if (fileTypeArr == null) {
+          fileTypeArr = fileTypeArrParser(FILE_TYPE)
+        }
+      }
+    }
+    fileTypeArr
+  }
+
 }
diff --git 
a/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/source/FileSource.scala
 
b/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/source/FileSource.scala
index 43138af3d..04f2486af 100644
--- 
a/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/source/FileSource.scala
+++ 
b/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/source/FileSource.scala
@@ -19,13 +19,13 @@ package org.apache.linkis.storage.source
 
 import java.io.{Closeable, InputStream}
 import java.util
-
 import org.apache.linkis.common.io._
 import org.apache.linkis.storage.exception.StorageErrorException
 import org.apache.linkis.storage.resultset.{ResultSetFactory, ResultSetReader}
 import org.apache.linkis.storage.script.ScriptFsReader
 import org.apache.linkis.storage.utils.StorageConfiguration
 import org.apache.commons.math3.util.Pair
+import org.apache.linkis.storage.conf.LinkisStorageConf
 
 
 trait FileSource extends Closeable {
@@ -55,7 +55,7 @@ trait FileSource extends Closeable {
 
 object FileSource {
 
-  private val fileType = Array("dolphin", "sql", "scala", "py", "hql", 
"python", "out", "log", "text", "sh", "jdbc", "ngql", "psql", "fql")
+  private val fileType = LinkisStorageConf.getFileTypeArr
   private val suffixPredicate = (path: String, suffix: String) => 
path.endsWith(s".$suffix")
 
   def isResultSet(path: String): Boolean = {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to