From fdee4f940fdb62744ef923601670f256e1b30a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Fri, 19 Dec 2014 23:53:59 +0200 Subject: [PATCH 1/3] Improve scala compilation --- .../com/mysema/query/scala/CompileTestUtils.scala | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala b/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala index 27a3744e3..fc63b9551 100644 --- a/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala +++ b/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala @@ -1,5 +1,7 @@ package com.mysema.query.scala +import java.io.File._ + import scala.tools.nsc._ import scala.tools.nsc.interpreter.IR.Success import scala.io.Source.fromFile @@ -16,10 +18,9 @@ trait CompileTestUtils { map (fromFile(_).mkString) mkString ("\n")) } - - def assertCompileSuccess(source: String): Unit = { - import java.io.File.pathSeparator + private lazy val env = { + import java.io.File.pathSeparator val env = new Settings val currentLibraries = (this.getClass.getClassLoader).asInstanceOf[java.net.URLClassLoader].getURLs().toList @@ -28,7 +29,10 @@ trait CompileTestUtils { env.classpath.value = cp.mkString(pathSeparator) env.usejavacp.value = true + env + } + def assertCompileSuccess(source: String): Unit = { val out = new java.io.ByteArrayOutputStream val interpreterWriter = new java.io.PrintWriter(out) From ac9bcd64fb21d222238bc7465b66094084194e1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Sat, 20 Dec 2014 00:03:06 +0200 Subject: [PATCH 2/3] Use singleton env --- .../mysema/query/scala/CompileTestUtils.scala | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala b/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala index fc63b9551..ff902fef6 100644 --- a/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala +++ b/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala @@ -6,9 +6,18 @@ import scala.tools.nsc._ import scala.tools.nsc.interpreter.IR.Success import scala.io.Source.fromFile import java.io.File +import java.io.File.pathSeparator trait CompileTestUtils { - + + private object env extends Settings { + val currentLibraries = (this.getClass.getClassLoader).asInstanceOf[java.net.URLClassLoader].getURLs().toList + val cp = jarPathOfClass("scala.tools.nsc.Interpreter") :: jarPathOfClass("scala.ScalaObject") :: currentLibraries + + classpath.value = cp.mkString(pathSeparator) + usejavacp.value = true + } + private def jarPathOfClass(className: String) = { Class.forName(className).getProtectionDomain.getCodeSource.getLocation } @@ -19,24 +28,11 @@ trait CompileTestUtils { mkString ("\n")) } - private lazy val env = { - import java.io.File.pathSeparator - val env = new Settings - - val currentLibraries = (this.getClass.getClassLoader).asInstanceOf[java.net.URLClassLoader].getURLs().toList - val cp = jarPathOfClass("scala.tools.nsc.Interpreter") :: jarPathOfClass("scala.ScalaObject") :: currentLibraries - - env.classpath.value = cp.mkString(pathSeparator) - - env.usejavacp.value = true - env - } - def assertCompileSuccess(source: String): Unit = { val out = new java.io.ByteArrayOutputStream val interpreterWriter = new java.io.PrintWriter(out) - val interpreter = new Interpreter(env, interpreterWriter) + val interpreter = new scala.tools.nsc.interpreter.IMain(env, interpreterWriter) try { val result = interpreter.interpret(source.replaceAll("package", "import")) if (result != Success) { From 1f806ab2725eca91204c09fc8787ba27096e293e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Sat, 20 Dec 2014 22:03:38 +0200 Subject: [PATCH 3/3] Fix scope --- .../scala/com/mysema/query/scala/CompileTestUtils.scala | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala b/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala index ff902fef6..12c2b7192 100644 --- a/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala +++ b/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala @@ -11,6 +11,11 @@ import java.io.File.pathSeparator trait CompileTestUtils { private object env extends Settings { + + private def jarPathOfClass(className: String) = { + Class.forName(className).getProtectionDomain.getCodeSource.getLocation + } + val currentLibraries = (this.getClass.getClassLoader).asInstanceOf[java.net.URLClassLoader].getURLs().toList val cp = jarPathOfClass("scala.tools.nsc.Interpreter") :: jarPathOfClass("scala.ScalaObject") :: currentLibraries @@ -18,10 +23,6 @@ trait CompileTestUtils { usejavacp.value = true } - private def jarPathOfClass(className: String) = { - Class.forName(className).getProtectionDomain.getCodeSource.getLocation - } - def assertCompileSuccess(files: Traversable[File]): Unit = { assertCompileSuccess(files map (fromFile(_).mkString)