Changed types of JVM configuration keys from arrays to lists.

This commit is contained in:
Evgeny Gerashchenko
2012-07-09 15:56:30 +04:00
parent 4332a60b31
commit ffca0409d4
8 changed files with 38 additions and 42 deletions
@@ -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<File> classpathItems = new ArrayList<File>();
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
);
@@ -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<File[]> CLASSPATH_KEY = Key.create("classpath");
public static final Key<File[]> ANNOTATIONS_PATH_KEY = Key.create("annotations path");
public static final Key<List<File>> CLASSPATH_KEY = Key.create("classpath");
public static final Key<List<File>> ANNOTATIONS_PATH_KEY = Key.create("annotations path");
}
@@ -163,8 +163,8 @@ public class K2JVMCompiler extends CLICompiler<K2JVMCompilerArguments, K2JVMComp
@NotNull
private static CompilerConfiguration createCompilerConfiguration(@NotNull K2JVMCompilerArguments arguments) {
CompilerConfiguration configuration = new CompilerConfiguration();
configuration.put(JVMConfigurationKeys.CLASSPATH_KEY, getClasspath(arguments).toArray(new File[0]));
configuration.put(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, getAnnotationsPath(arguments).toArray(new File[0]));
configuration.addAll(JVMConfigurationKeys.CLASSPATH_KEY, getClasspath(arguments));
configuration.addAll(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, getAnnotationsPath(arguments));
return configuration;
}
@@ -47,6 +47,7 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.jar.*;
@@ -142,13 +143,13 @@ public class CompileEnvironmentUtil {
}
};
CompilerConfiguration configuration = new CompilerConfiguration();
configuration.put(JVMConfigurationKeys.CLASSPATH_KEY, new File[]{
configuration.put(JVMConfigurationKeys.CLASSPATH_KEY, Arrays.asList(
PathUtil.findRtJar(),
PathUtil.getDefaultRuntimePath()
});
configuration.put(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, new File[]{
));
configuration.put(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, Arrays.asList(
PathUtil.getJdkAnnotationsPath()
});
));
JetCoreEnvironment scriptEnvironment = JetCoreEnvironment.createCoreEnvironmentForJVM(disposable, configuration);
scriptEnvironment.addSources(moduleScriptFile);
@@ -168,8 +168,8 @@ public class JetCoreEnvironment extends JavaCoreEnvironment {
}
public void configure(@NotNull CompilerConfiguration compilerConfiguration) {
File[] classpath = compilerConfiguration.get(JVMConfigurationKeys.CLASSPATH_KEY);
File[] annotationsPath = compilerConfiguration.get(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY);
List<File> classpath = compilerConfiguration.get(JVMConfigurationKeys.CLASSPATH_KEY);
List<File> annotationsPath = compilerConfiguration.get(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY);
if (classpath != null) {
for (File path : classpath) {
addToClasspath(path);
@@ -105,7 +105,7 @@ public class ReplInterpreter {
List<URL> 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());
}
@@ -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<File> classpath = new ArrayList<File>();
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;
}
}
@@ -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));