From 2d3bb4ca7536c56df3d6e97ae84ba6e8b8e6cf68 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sat, 18 Oct 2014 07:15:52 -0400 Subject: [PATCH] Fixes #1677. Provide URLSerializer. Without this json4s is unable to parse URLs. --- ivy/src/main/scala/sbt/JsonUtil.scala | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/ivy/src/main/scala/sbt/JsonUtil.scala b/ivy/src/main/scala/sbt/JsonUtil.scala index ba843aec1..c1e03d1d5 100644 --- a/ivy/src/main/scala/sbt/JsonUtil.scala +++ b/ivy/src/main/scala/sbt/JsonUtil.scala @@ -13,7 +13,8 @@ private[sbt] object JsonUtil { implicit val formats = native.Serialization.formats(NoTypeHints) + new ConfigurationSerializer + new ArtifactSerializer + - new FileSerializer + new FileSerializer + + new URLSerializer try { val json = jawn.support.json4s.Parser.parseFromFile(path) fromLite(json.get.extract[UpdateReportLite], cachedDescriptor) @@ -61,6 +62,15 @@ private[sbt] object JsonUtil { private[sbt] case class UpdateReportLite(configurations: Seq[ConfigurationReportLite]) private[sbt] case class ConfigurationReportLite(configuration: String, details: Seq[OrganizationArtifactReport]) +private[sbt] class URLSerializer extends CustomSerializer[URL](format => ( + { + case JString(s) => new URL(s) + }, + { + case x: URL => JString(x.toString) + } +)) + private[sbt] class FileSerializer extends CustomSerializer[File](format => ( { case JString(s) => new File(s)