Implement better fake formats than ???

Fixes sbt/librarymanagement#67
Fixes sbt/sbt#3288
This commit is contained in:
Eugene Yokota 2017-07-25 16:58:40 -04:00
parent bf733e782b
commit 93c06d29b1
2 changed files with 27 additions and 2 deletions

View File

@ -2,7 +2,24 @@ package sbt.internal.librarymanagement.formats
import sjsonnew._
import xsbti._
import java.io.File
import java.util.concurrent.Callable
/**
* A fake JsonFormat for xsbti.GlobalLock.
* This is mostly for making IvyConfiguration serializable to JSON.
*/
trait GlobalLockFormat { self: BasicJsonProtocol =>
implicit lazy val GlobalLockFormat: JsonFormat[GlobalLock] = ???
import GlobalLockFormats._
implicit lazy val globalLockIsoString: IsoString[GlobalLock] =
IsoString.iso(_ => "<lock>", _ => NoGlobalLock)
implicit lazy val GlobalLockFormat: JsonFormat[GlobalLock] = implicitly
}
private[sbt] object GlobalLockFormats {
object NoGlobalLock extends GlobalLock {
def apply[T](lockFile: File, run: Callable[T]) = run.call()
}
}

View File

@ -2,7 +2,15 @@ package sbt.internal.librarymanagement.formats
import sjsonnew._
import xsbti._
import sbt.util.Logger.Null
/**
* A fake JsonFormat for xsbti.Logger.
* This is mostly for making IvyConfiguration serializable to JSON.
*/
trait LoggerFormat { self: BasicJsonProtocol =>
implicit lazy val LoggerFormat: JsonFormat[Logger] = ???
implicit lazy val xsbtiLoggerIsoString: IsoString[Logger] =
IsoString.iso(_ => "<logger>", _ => Null)
implicit lazy val LoggerFormat: JsonFormat[Logger] = implicitly
}