From a4e5a2e299a43da1c1bcee9713f23c2b6fd23e91 Mon Sep 17 00:00:00 2001 From: 0lejk4 Date: Sun, 17 Mar 2019 11:32:52 +0200 Subject: [PATCH] leave scheme unchanged for binary compatibility but don`t render email tag if it is null or empty --- .../sbt/librarymanagement/Developer.scala | 8 ++++---- .../sbt/librarymanagement/DeveloperFormats.scala | 2 +- core/src/main/contraband/librarymanagement.json | 8 ++++---- .../scala/sbt/internal/librarymanagement/MakePom.scala | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/core/src/main/contraband-scala/sbt/librarymanagement/Developer.scala b/core/src/main/contraband-scala/sbt/librarymanagement/Developer.scala index 075851b3d..30c20f3b9 100644 --- a/core/src/main/contraband-scala/sbt/librarymanagement/Developer.scala +++ b/core/src/main/contraband-scala/sbt/librarymanagement/Developer.scala @@ -7,7 +7,7 @@ package sbt.librarymanagement final class Developer private ( val id: String, val name: String, - val email: Option[String], + val email: String, val url: java.net.URL) extends Serializable { @@ -22,7 +22,7 @@ final class Developer private ( override def toString: String = { "Developer(" + id + ", " + name + ", " + email + ", " + url + ")" } - private[this] def copy(id: String = id, name: String = name, email: Option[String] = email, url: java.net.URL = url): Developer = { + private[this] def copy(id: String = id, name: String = name, email: String = email, url: java.net.URL = url): Developer = { new Developer(id, name, email, url) } def withId(id: String): Developer = { @@ -31,7 +31,7 @@ final class Developer private ( def withName(name: String): Developer = { copy(name = name) } - def withEmail(email: Option[String]): Developer = { + def withEmail(email: String): Developer = { copy(email = email) } def withUrl(url: java.net.URL): Developer = { @@ -40,5 +40,5 @@ final class Developer private ( } object Developer { - def apply(id: String, name: String, email: Option[String], url: java.net.URL): Developer = new Developer(id, name, email, url) + def apply(id: String, name: String, email: String, url: java.net.URL): Developer = new Developer(id, name, email, url) } diff --git a/core/src/main/contraband-scala/sbt/librarymanagement/DeveloperFormats.scala b/core/src/main/contraband-scala/sbt/librarymanagement/DeveloperFormats.scala index 4671afed5..ee1e87e45 100644 --- a/core/src/main/contraband-scala/sbt/librarymanagement/DeveloperFormats.scala +++ b/core/src/main/contraband-scala/sbt/librarymanagement/DeveloperFormats.scala @@ -13,7 +13,7 @@ implicit lazy val DeveloperFormat: JsonFormat[sbt.librarymanagement.Developer] = unbuilder.beginObject(js) val id = unbuilder.readField[String]("id") val name = unbuilder.readField[String]("name") - val email = unbuilder.readField[Option[String]]("email") + val email = unbuilder.readField[String]("email") val url = unbuilder.readField[java.net.URL]("url") unbuilder.endObject() sbt.librarymanagement.Developer(id, name, email, url) diff --git a/core/src/main/contraband/librarymanagement.json b/core/src/main/contraband/librarymanagement.json index 943564131..10c8fd86b 100644 --- a/core/src/main/contraband/librarymanagement.json +++ b/core/src/main/contraband/librarymanagement.json @@ -328,10 +328,10 @@ "target": "Scala", "type": "record", "fields": [ - { "name": "id", "type": "String" }, - { "name": "name", "type": "String" }, - { "name": "email", "type": "Option[String]" }, - { "name": "url", "type": "java.net.URL" } + { "name": "id", "type": "String" }, + { "name": "name", "type": "String" }, + { "name": "email", "type": "String" }, + { "name": "url", "type": "java.net.URL" } ] }, { diff --git a/ivy/src/main/scala/sbt/internal/librarymanagement/MakePom.scala b/ivy/src/main/scala/sbt/internal/librarymanagement/MakePom.scala index 96922cf9b..80b466b5a 100644 --- a/ivy/src/main/scala/sbt/internal/librarymanagement/MakePom.scala +++ b/ivy/src/main/scala/sbt/internal/librarymanagement/MakePom.scala @@ -209,8 +209,8 @@ class MakePom(val log: Logger) { { developer.url } { developer.email match { - case Some(e)=> { e } - case _ => NodeSeq.Empty + case "" | null => NodeSeq.Empty + case e => { e } } }