From 2fb0814dbf815e4f3770529dd08ccc6943d467cb Mon Sep 17 00:00:00 2001 From: Nabil Adouani Date: Fri, 21 Apr 2017 15:03:38 +0200 Subject: [PATCH] #18 Display analyzer's license and author --- app/models/Analyzer.scala | 3 +++ app/models/ExternalAnalyzer.scala | 3 +++ app/models/JsonFormat.scala | 5 ++++- app/services/Analyzer.scala | 11 ++++++++++- ui/app/views/analyzers.html | 7 ++++++- 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/app/models/Analyzer.scala b/app/models/Analyzer.scala index 3a6fcb319..ce853ac97 100644 --- a/app/models/Analyzer.scala +++ b/app/models/Analyzer.scala @@ -9,5 +9,8 @@ abstract class Analyzer { val version: String val description: String val dataTypeList: Seq[String] + val author: String + val url: String + val license: String val id = (name + "_" + version).replaceAll("\\.", "_") } diff --git a/app/models/ExternalAnalyzer.scala b/app/models/ExternalAnalyzer.scala index 74edf9e93..2ce882b5a 100644 --- a/app/models/ExternalAnalyzer.scala +++ b/app/models/ExternalAnalyzer.scala @@ -19,6 +19,9 @@ case class ExternalAnalyzer( version: String, description: String, dataTypeList: Seq[String], + author: String, + url: String, + license: String, command: Path, config: JsObject)(implicit val ec: ExecutionContext) extends Analyzer { diff --git a/app/models/JsonFormat.scala b/app/models/JsonFormat.scala index 3d526a3c6..b2536890c 100644 --- a/app/models/JsonFormat.scala +++ b/app/models/JsonFormat.scala @@ -18,6 +18,9 @@ object JsonFormat { "version" → analyzer.version, "description" → analyzer.description, "dataTypeList" → analyzer.dataTypeList, + "author" → analyzer.author, + "url" → analyzer.url, + "license" → analyzer.license, "id" → analyzer.id)) implicit val fileArtifactWrites = OWrites[FileArtifact](fileArtifact ⇒ Json.obj( @@ -40,4 +43,4 @@ object JsonFormat { "date" → job.date, "artifact" → job.artifact)) -} \ No newline at end of file +} diff --git a/app/services/Analyzer.scala b/app/services/Analyzer.scala index 34ebf7534..c64eef8b2 100644 --- a/app/services/Analyzer.scala +++ b/app/services/Analyzer.scala @@ -63,11 +63,20 @@ class AnalyzerSrv( command ← (info \ "command").asOpt[String] orElse { log.warn(s"command is missing in $infoFile"); None } + author ← (info \ "author").asOpt[String] orElse { + log.warn(s"author is missing in $infoFile"); None + } + url ← (info \ "url").asOpt[String] orElse { + log.warn(s"url is missing in $infoFile"); None + } + license ← (info \ "license").asOpt[String] orElse { + log.warn(s"license is missing in $infoFile"); None + } config = (info \ "config").asOpt[JsObject].getOrElse(JsObject(Nil)) baseConfig = (info \ "baseConfig").asOpt[String].flatMap(c ⇒ (analyzerConfig \ c).asOpt[JsObject]).getOrElse(JsObject(Nil)) absoluteCommand = analyzerPath.resolve(Paths.get(command.replaceAll("[\\/]", File.separator))) _ = log.info(s"Register analyzer $name $version (${(name + "_" + version).replaceAll("\\.", "_")})") - } yield ExternalAnalyzer(name, version, description, dataTypeList, absoluteCommand, globalConfig deepMerge baseConfig deepMerge config)(analyzeExecutionContext) + } yield ExternalAnalyzer(name, version, description, dataTypeList, author, url, license, absoluteCommand, globalConfig deepMerge baseConfig deepMerge config)(analyzeExecutionContext) } private[services] def readInfo(file: Path): JsValue = { diff --git a/ui/app/views/analyzers.html b/ui/app/views/analyzers.html index 8f3934925..3d5b5d3d3 100644 --- a/ui/app/views/analyzers.html +++ b/ui/app/views/analyzers.html @@ -32,7 +32,12 @@

Data types

-

{{analyzer.name}} (Version: {{analyzer.version}})

+

+ {{analyzer.name}} + Version: {{analyzer.version}} + Author: {{analyzer.author}} + License: {{analyzer.license}} +