diff --git a/core/src/main/contraband-scala/sbt/librarymanagement/Developer.scala b/core/src/main/contraband-scala/sbt/librarymanagement/Developer.scala index 30c20f3b9..075851b3d 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: String, + val email: Option[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: String = email, url: java.net.URL = url): Developer = { + private[this] def copy(id: String = id, name: String = name, email: Option[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: String): Developer = { + def withEmail(email: Option[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: String, url: java.net.URL): Developer = new Developer(id, name, email, url) + def apply(id: String, name: String, email: Option[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 ee1e87e45..4671afed5 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[String]("email") + val email = unbuilder.readField[Option[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 10c8fd86b..943564131 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": "String" }, - { "name": "url", "type": "java.net.URL" } + { "name": "id", "type": "String" }, + { "name": "name", "type": "String" }, + { "name": "email", "type": "Option[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 86f514e69..96922cf9b 100644 --- a/ivy/src/main/scala/sbt/internal/librarymanagement/MakePom.scala +++ b/ivy/src/main/scala/sbt/internal/librarymanagement/MakePom.scala @@ -206,8 +206,13 @@ class MakePom(val log: Logger) { { developer.id } { developer.name } - { developer.email } { developer.url } + { + developer.email match { + case Some(e)=> { e } + case _ => NodeSeq.Empty + } + } } }