Changed types of JVM configuration keys from arrays to lists.
This commit is contained in:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user