Repository: calcite Updated Branches: refs/heads/master f5cef1606 -> 008bfd6e9
[CALCITE-2409] SparkAdapterTest fails on Windows when '/tmp' directory does not exist (Sergey Nuyanzin) Close apache/calcite#756 Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/008bfd6e Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/008bfd6e Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/008bfd6e Branch: refs/heads/master Commit: 008bfd6e9668f5be01057f73c14334d4b77446e4 Parents: f5cef16 Author: snuyanzin <[email protected]> Authored: Wed Jul 11 14:09:59 2018 +0300 Committer: Volodymyr Vysotskyi <[email protected]> Committed: Sat Jul 14 08:58:01 2018 +0300 ---------------------------------------------------------------------- .../calcite/adapter/spark/SparkHandlerImpl.java | 43 +++++++++----------- 1 file changed, 19 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/008bfd6e/spark/src/main/java/org/apache/calcite/adapter/spark/SparkHandlerImpl.java ---------------------------------------------------------------------- diff --git a/spark/src/main/java/org/apache/calcite/adapter/spark/SparkHandlerImpl.java b/spark/src/main/java/org/apache/calcite/adapter/spark/SparkHandlerImpl.java index be328ee..6935490 100644 --- a/spark/src/main/java/org/apache/calcite/adapter/spark/SparkHandlerImpl.java +++ b/spark/src/main/java/org/apache/calcite/adapter/spark/SparkHandlerImpl.java @@ -29,9 +29,7 @@ import org.apache.calcite.util.javac.JaninoCompiler; import org.apache.spark.api.java.JavaSparkContext; import java.io.File; -import java.io.IOException; import java.io.Serializable; -import java.io.Writer; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.Calendar; @@ -49,7 +47,6 @@ public class SparkHandlerImpl implements CalcitePrepare.SparkHandler { new JavaSparkContext("local[1]", "calcite"); private static SparkHandlerImpl instance; - private static final File SRC_DIR = new File("/tmp"); private static final File CLASS_DIR = new File("target/classes"); /** Creates a SparkHandlerImpl. */ @@ -106,32 +103,30 @@ public class SparkHandlerImpl implements CalcitePrepare.SparkHandler { public ArrayBindable compile(ClassDeclaration expr, String s) { final String className = "CalciteProgram" + classId.getAndIncrement(); - final File file = new File(SRC_DIR, className + ".java"); - try (Writer w = Util.printWriter(file)) { - String source = "public class " + className + "\n" - + " implements " + ArrayBindable.class.getName() - + ", " + Serializable.class.getName() - + " {\n" - + s + "\n" - + "}\n"; - - System.out.println("======================"); - System.out.println(source); - System.out.println("======================"); - - w.write(source); - w.close(); - JaninoCompiler compiler = new JaninoCompiler(); - compiler.getArgs().setDestdir(CLASS_DIR.getAbsolutePath()); - compiler.getArgs().setSource(source, file.getAbsolutePath()); - compiler.getArgs().setFullClassName(className); - compiler.compile(); + final String classFileName = className + ".java"; + String source = "public class " + className + "\n" + + " implements " + ArrayBindable.class.getName() + + ", " + Serializable.class.getName() + + " {\n" + + s + "\n" + + "}\n"; + + System.out.println("======================"); + System.out.println(source); + System.out.println("======================"); + + JaninoCompiler compiler = new JaninoCompiler(); + compiler.getArgs().setDestdir(CLASS_DIR.getAbsolutePath()); + compiler.getArgs().setSource(source, classFileName); + compiler.getArgs().setFullClassName(className); + compiler.compile(); + try { @SuppressWarnings("unchecked") final Class<ArrayBindable> clazz = (Class<ArrayBindable>) Class.forName(className); final Constructor<ArrayBindable> constructor = clazz.getConstructor(); return constructor.newInstance(); - } catch (IOException | ClassNotFoundException | InstantiationException + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) { throw new RuntimeException(e);
