From ffca0409d43c35e7b64c4dfbccd6b6d95c3c6be9 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Mon, 9 Jul 2012 15:56:30 +0400 Subject: [PATCH] Changed types of JVM configuration keys from arrays to lists. --- .../jet/buildtools/core/BytecodeCompiler.java | 23 +++++++++------ .../jet/cli/jvm/JVMConfigurationKeys.java | 5 ++-- .../jetbrains/jet/cli/jvm/K2JVMCompiler.java | 4 +-- .../jvm/compiler/CompileEnvironmentUtil.java | 9 +++--- .../cli/jvm/compiler/JetCoreEnvironment.java | 4 +-- .../jet/cli/jvm/repl/ReplInterpreter.java | 2 +- .../jet/CompileCompilerDependenciesTest.java | 28 +++++++------------ .../jet/repl/ReplInterpreterTest.java | 5 +--- 8 files changed, 38 insertions(+), 42 deletions(-) diff --git a/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java b/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java index a759731711a..7d96cce43e7 100644 --- a/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java +++ b/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java @@ -21,7 +21,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.cli.common.CompilerPlugin; import org.jetbrains.jet.cli.common.messages.MessageCollector; -import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys; import org.jetbrains.jet.cli.jvm.compiler.*; import org.jetbrains.jet.codegen.BuiltinToJavaTypesMapping; import org.jetbrains.jet.config.CompilerConfiguration; @@ -32,6 +31,8 @@ import java.io.File; import java.util.ArrayList; import java.util.List; +import static org.jetbrains.jet.cli.jvm.JVMConfigurationKeys.*; + /** * Wrapper class for Kotlin bytecode compiler. @@ -52,22 +53,26 @@ public class BytecodeCompiler { * @return compile environment instance */ private K2JVMCompileEnvironmentConfiguration env(String stdlib, String[] classpath) { - List classpathItems = new ArrayList(); - classpathItems.add(PathUtil.findRtJar()); + CompilerConfiguration configuration = new CompilerConfiguration(); + configuration.add(CLASSPATH_KEY, PathUtil.findRtJar()); if ((stdlib != null) && (stdlib.trim().length() > 0)) { - classpathItems.add(new File(stdlib)); + configuration.add(CLASSPATH_KEY, new File(stdlib)); } else { - classpathItems.add(PathUtil.getDefaultRuntimePath()); + File path = PathUtil.getDefaultRuntimePath(); + if (path != null) { + configuration.add(CLASSPATH_KEY, path); + } } if ((classpath != null) && (classpath.length > 0)) { for (String path : classpath) { - classpathItems.add(new File(path)); + configuration.add(CLASSPATH_KEY, new File(path)); } } - CompilerConfiguration configuration = new CompilerConfiguration(); - configuration.put(JVMConfigurationKeys.CLASSPATH_KEY, classpathItems.toArray(new File[classpathItems.size()])); - configuration.put(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, new File[] {PathUtil.getJdkAnnotationsPath()}); + File jdkAnnotationsPath = PathUtil.getJdkAnnotationsPath(); + if (jdkAnnotationsPath != null) { + configuration.add(ANNOTATIONS_PATH_KEY, jdkAnnotationsPath); + } JetCoreEnvironment environment = new JetCoreEnvironment(CompileEnvironmentUtil.createMockDisposable(), configuration ); diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/JVMConfigurationKeys.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/JVMConfigurationKeys.java index 48147fe31cd..3c353e5a9a6 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/JVMConfigurationKeys.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/JVMConfigurationKeys.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.cli.jvm; import com.intellij.openapi.util.Key; import java.io.File; +import java.util.List; /** * @author Evgeny Gerashchenko @@ -28,6 +29,6 @@ public class JVMConfigurationKeys { private JVMConfigurationKeys() { } - public static final Key CLASSPATH_KEY = Key.create("classpath"); - public static final Key ANNOTATIONS_PATH_KEY = Key.create("annotations path"); + public static final Key> CLASSPATH_KEY = Key.create("classpath"); + public static final Key> ANNOTATIONS_PATH_KEY = Key.create("annotations path"); } diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java index 3ff5626de74..4aa2b23dd55 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java @@ -163,8 +163,8 @@ public class K2JVMCompiler extends CLICompiler classpath = compilerConfiguration.get(JVMConfigurationKeys.CLASSPATH_KEY); + List annotationsPath = compilerConfiguration.get(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY); if (classpath != null) { for (File path : classpath) { addToClasspath(path); diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java index 2374031548b..0d4fbf9d68e 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java @@ -105,7 +105,7 @@ public class ReplInterpreter { List classpath = Lists.newArrayList(); - for (File file : configuration.get(JVMConfigurationKeys.CLASSPATH_KEY)) { + for (File file : configuration.getList(JVMConfigurationKeys.CLASSPATH_KEY)) { try { classpath.add(file.toURI().toURL()); } diff --git a/compiler/tests/org/jetbrains/jet/CompileCompilerDependenciesTest.java b/compiler/tests/org/jetbrains/jet/CompileCompilerDependenciesTest.java index f3a8ec3b4b0..91933849062 100644 --- a/compiler/tests/org/jetbrains/jet/CompileCompilerDependenciesTest.java +++ b/compiler/tests/org/jetbrains/jet/CompileCompilerDependenciesTest.java @@ -17,7 +17,6 @@ package org.jetbrains.jet; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys; import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileBuiltins; import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileRuntime; import org.jetbrains.jet.codegen.forTestCompile.ForTestPackJdkAnnotations; @@ -25,12 +24,9 @@ import org.jetbrains.jet.config.CompilerConfiguration; import org.jetbrains.jet.utils.PathUtil; import org.junit.Test; -import java.io.File; -import java.util.ArrayList; -import java.util.List; - import static org.jetbrains.jet.ConfigurationKind.ALL; import static org.jetbrains.jet.ConfigurationKind.JDK_AND_ANNOTATIONS; +import static org.jetbrains.jet.cli.jvm.JVMConfigurationKeys.*; /** * @author Stepan Koltsov @@ -53,20 +49,16 @@ public class CompileCompilerDependenciesTest { } public static CompilerConfiguration compilerConfigurationForTests(@NotNull ConfigurationKind configurationKind, @NotNull TestJdkKind jdkKind) { - List classpath = new ArrayList(); - classpath.add(jdkKind == TestJdkKind.MOCK_JDK ? JetTestUtils.findMockJdkRtJar() : PathUtil.findRtJar()); - if (configurationKind == ALL) { - classpath.add(ForTestCompileRuntime.runtimeJarForTests()); - } - - File[] annotationsPath = new File[0]; - if (configurationKind == ALL || configurationKind == JDK_AND_ANNOTATIONS) { - annotationsPath = new File[]{ForTestPackJdkAnnotations.jdkAnnotationsForTests()}; - } - CompilerConfiguration configuration = new CompilerConfiguration(); - configuration.put(JVMConfigurationKeys.CLASSPATH_KEY, classpath.toArray(new File[classpath.size()])); - configuration.put(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, annotationsPath); + configuration.add(CLASSPATH_KEY, jdkKind == TestJdkKind.MOCK_JDK ? JetTestUtils.findMockJdkRtJar() : PathUtil.findRtJar()); + if (configurationKind == ALL) { + configuration.add(CLASSPATH_KEY, ForTestCompileRuntime.runtimeJarForTests()); + } + + if (configurationKind == ALL || configurationKind == JDK_AND_ANNOTATIONS) { + configuration.add(ANNOTATIONS_PATH_KEY, ForTestPackJdkAnnotations.jdkAnnotationsForTests()); + } + return configuration; } } diff --git a/compiler/tests/org/jetbrains/jet/repl/ReplInterpreterTest.java b/compiler/tests/org/jetbrains/jet/repl/ReplInterpreterTest.java index c917d784bc2..122ed33c0e4 100644 --- a/compiler/tests/org/jetbrains/jet/repl/ReplInterpreterTest.java +++ b/compiler/tests/org/jetbrains/jet/repl/ReplInterpreterTest.java @@ -19,7 +19,6 @@ package org.jetbrains.jet.repl; import com.intellij.openapi.Disposable; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.util.ArrayUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.CompileCompilerDependenciesTest; import org.jetbrains.jet.ConfigurationKind; @@ -56,9 +55,7 @@ public class ReplInterpreterTest { private void testFile(@NotNull String relativePath) { CompilerConfiguration configuration = CompileCompilerDependenciesTest.compilerConfigurationForTests(ConfigurationKind.JDK_ONLY, TestJdkKind.FULL_JDK); - File[] classpath = configuration.get(JVMConfigurationKeys.CLASSPATH_KEY); - assert classpath != null; - configuration.put(JVMConfigurationKeys.CLASSPATH_KEY, ArrayUtil.append(classpath, new File("out/production/runtime"))); + configuration.add(JVMConfigurationKeys.CLASSPATH_KEY, new File("out/production/runtime")); ReplInterpreter repl = new ReplInterpreter(disposable, configuration); ReplSessionTestFile file = ReplSessionTestFile.load(new File("compiler/testData/repl/" + relativePath));