From 86cd21dd4ea02bed52cf37a5d5b3ff33cda0ecf0 Mon Sep 17 00:00:00 2001 From: Grant Xuexu Date: Wed, 18 Jul 2018 09:27:46 -0400 Subject: [PATCH] replace Manifest with ClassTag --- .../main/scala/org/apache/griffin/measure/Application.scala | 3 ++- .../griffin/measure/config/reader/ParamFileReader.scala | 3 ++- .../griffin/measure/config/reader/ParamHdfsFileReader.scala | 3 ++- .../measure/config/reader/ParamRawStringReader.scala | 3 ++- .../apache/griffin/measure/config/reader/ParamReader.scala | 3 ++- .../scala/org/apache/griffin/measure/utils/JsonUtil.scala | 6 +++--- .../scala/org/apache/griffin/measure/utils/ParamUtil.scala | 4 +++- 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/measure/src/main/scala/org/apache/griffin/measure/Application.scala b/measure/src/main/scala/org/apache/griffin/measure/Application.scala index 43781f274..749c78faa 100644 --- a/measure/src/main/scala/org/apache/griffin/measure/Application.scala +++ b/measure/src/main/scala/org/apache/griffin/measure/Application.scala @@ -27,6 +27,7 @@ import org.apache.griffin.measure.log.Loggable import org.apache.griffin.measure.persist.PersistThreadPool import org.apache.griffin.measure.process._ +import scala.reflect.ClassTag import scala.util.{Failure, Success, Try} object Application extends Loggable { @@ -166,7 +167,7 @@ object Application extends Loggable { // } } - private def readParamFile[T <: Param](file: String, fsType: String)(implicit m : Manifest[T]): Try[T] = { + private def readParamFile[T <: Param](file: String, fsType: String)(implicit m : ClassTag[T]): Try[T] = { val paramReader = ParamReaderFactory.getParamReader(file, fsType) paramReader.readConfig[T] } diff --git a/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamFileReader.scala b/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamFileReader.scala index ede68f455..f6f52767b 100644 --- a/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamFileReader.scala +++ b/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamFileReader.scala @@ -21,11 +21,12 @@ package org.apache.griffin.measure.config.reader import org.apache.griffin.measure.config.params.Param import org.apache.griffin.measure.utils.JsonUtil +import scala.reflect.ClassTag import scala.util.Try case class ParamFileReader(file: String) extends ParamReader { - def readConfig[T <: Param](implicit m : Manifest[T]): Try[T] = { + def readConfig[T <: Param](implicit m : ClassTag[T]): Try[T] = { Try { val source = scala.io.Source.fromFile(file) val lines = source.mkString diff --git a/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamHdfsFileReader.scala b/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamHdfsFileReader.scala index 8b51b111d..38acf61f7 100644 --- a/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamHdfsFileReader.scala +++ b/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamHdfsFileReader.scala @@ -22,11 +22,12 @@ import org.apache.griffin.measure.config.params.Param import org.apache.griffin.measure.utils.JsonUtil import org.apache.griffin.measure.utils.HdfsUtil +import scala.reflect.ClassTag import scala.util.Try case class ParamHdfsFileReader(filePath: String) extends ParamReader { - def readConfig[T <: Param](implicit m : Manifest[T]): Try[T] = { + def readConfig[T <: Param](implicit m : ClassTag[T]): Try[T] = { Try { val source = HdfsUtil.openFile(filePath) val param = JsonUtil.fromJson[T](source) diff --git a/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamRawStringReader.scala b/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamRawStringReader.scala index 87e195375..9c47d32be 100644 --- a/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamRawStringReader.scala +++ b/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamRawStringReader.scala @@ -21,11 +21,12 @@ package org.apache.griffin.measure.config.reader import org.apache.griffin.measure.config.params.Param import org.apache.griffin.measure.utils.JsonUtil +import scala.reflect.ClassTag import scala.util.Try case class ParamRawStringReader(rawString: String) extends ParamReader { - def readConfig[T <: Param](implicit m : Manifest[T]): Try[T] = { + def readConfig[T <: Param](implicit m : ClassTag[T]): Try[T] = { Try { val param = JsonUtil.fromJson[T](rawString) param diff --git a/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamReader.scala b/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamReader.scala index 350822341..40273a3dc 100644 --- a/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamReader.scala +++ b/measure/src/main/scala/org/apache/griffin/measure/config/reader/ParamReader.scala @@ -21,10 +21,11 @@ package org.apache.griffin.measure.config.reader import org.apache.griffin.measure.log.Loggable import org.apache.griffin.measure.config.params.Param +import scala.reflect.ClassTag import scala.util.Try trait ParamReader extends Loggable with Serializable { - def readConfig[T <: Param](implicit m : Manifest[T]): Try[T] + def readConfig[T <: Param](implicit m : ClassTag[T]): Try[T] } diff --git a/measure/src/main/scala/org/apache/griffin/measure/utils/JsonUtil.scala b/measure/src/main/scala/org/apache/griffin/measure/utils/JsonUtil.scala index 14183759d..9bcbfcd13 100644 --- a/measure/src/main/scala/org/apache/griffin/measure/utils/JsonUtil.scala +++ b/measure/src/main/scala/org/apache/griffin/measure/utils/JsonUtil.scala @@ -38,13 +38,13 @@ object JsonUtil { mapper.writeValueAsString(value) } - def toMap[V](json:String)(implicit m: Manifest[V]) = fromJson[Map[String,V]](json) + def toMap[V: ClassTag](json:String) = fromJson[Map[String,V]](json) - def fromJson[T: ClassTag](json: String)(implicit m : Manifest[T]): T = { + def fromJson[T: ClassTag](json: String): T = { mapper.readValue[T](json, classTag[T].runtimeClass.asInstanceOf[Class[T]]) } - def fromJson[T: ClassTag](is: InputStream)(implicit m : Manifest[T]): T = { + def fromJson[T: ClassTag](is: InputStream): T = { mapper.readValue[T](is, classTag[T].runtimeClass.asInstanceOf[Class[T]]) } diff --git a/measure/src/main/scala/org/apache/griffin/measure/utils/ParamUtil.scala b/measure/src/main/scala/org/apache/griffin/measure/utils/ParamUtil.scala index d125d8728..897fc46bb 100644 --- a/measure/src/main/scala/org/apache/griffin/measure/utils/ParamUtil.scala +++ b/measure/src/main/scala/org/apache/griffin/measure/utils/ParamUtil.scala @@ -18,6 +18,8 @@ under the License. */ package org.apache.griffin.measure.utils +import scala.reflect.ClassTag + object ParamUtil { implicit class ParamMap(params: Map[String, Any]) { @@ -28,7 +30,7 @@ object ParamUtil { } } - def getAnyRef[T](key: String, defValue: T)(implicit m: Manifest[T]): T = { + def getAnyRef[T: ClassTag](key: String, defValue: T): T = { params.get(key) match { case Some(v: T) => v case _ => defValue