diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 2709e8030..54e20445f 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -25,7 +25,7 @@ object Dependencies { val launcherInterface = "org.scala-sbt" % "launcher-interface" % launcherVersion val rawLauncher = "org.scala-sbt" % "launcher" % launcherVersion val testInterface = "org.scala-sbt" % "test-interface" % "1.0" - val ipcSocket = "org.scala-sbt.ipcsocket" % "ipcsocket" % "1.0.1" + val ipcSocket = "org.scala-sbt.ipcsocket" % "ipcsocket" % "1.1.0" private val compilerInterface = "org.scala-sbt" % "compiler-interface" % zincVersion private val compilerClasspath = "org.scala-sbt" %% "zinc-classpath" % zincVersion diff --git a/protocol/src/main/scala/sbt/protocol/ClientSocket.scala b/protocol/src/main/scala/sbt/protocol/ClientSocket.scala index d22905a08..d5c498eee 100644 --- a/protocol/src/main/scala/sbt/protocol/ClientSocket.scala +++ b/protocol/src/main/scala/sbt/protocol/ClientSocket.scala @@ -21,9 +21,10 @@ import org.scalasbt.ipcsocket._ object ClientSocket { private lazy val fileFormats = new BasicJsonProtocol with PortFileFormats with TokenFileFormats {} - def socket(portfile: File): (Socket, Option[String]) = { + def socket(portfile: File): (Socket, Option[String]) = socket(portfile, false) + def socket(portfile: File, useJNI: Boolean): (Socket, Option[String]) = { import fileFormats._ - val json: JValue = Parser.parseFromFile(portfile).get + val json: JValue = Parser.parseFromString(sbt.io.IO.read(portfile)).get val p = Converter.fromJson[PortFile](json).get val uri = new URI(p.uri) // println(uri) @@ -35,10 +36,11 @@ object ClientSocket { } val sk = uri.getScheme match { case "local" if isWindows => - (new Win32NamedPipeSocket("""\\.\pipe\""" + uri.getSchemeSpecificPart): Socket) - case "local" => (new UnixDomainSocket(uri.getSchemeSpecificPart): Socket) - case "tcp" => new Socket(InetAddress.getByName(uri.getHost), uri.getPort) - case _ => sys.error(s"Unsupported uri: $uri") + (new Win32NamedPipeSocket("""\\.\pipe\""" + uri.getSchemeSpecificPart, useJNI): Socket) + case "local" => + (new UnixDomainSocket(uri.getSchemeSpecificPart, useJNI): Socket) + case "tcp" => new Socket(InetAddress.getByName(uri.getHost), uri.getPort) + case _ => sys.error(s"Unsupported uri: $uri") } (sk, token) }