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.annotations.Nullable;
|
||||||
import org.jetbrains.jet.cli.common.CompilerPlugin;
|
import org.jetbrains.jet.cli.common.CompilerPlugin;
|
||||||
import org.jetbrains.jet.cli.common.messages.MessageCollector;
|
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.cli.jvm.compiler.*;
|
||||||
import org.jetbrains.jet.codegen.BuiltinToJavaTypesMapping;
|
import org.jetbrains.jet.codegen.BuiltinToJavaTypesMapping;
|
||||||
import org.jetbrains.jet.config.CompilerConfiguration;
|
import org.jetbrains.jet.config.CompilerConfiguration;
|
||||||
@@ -32,6 +31,8 @@ import java.io.File;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.jetbrains.jet.cli.jvm.JVMConfigurationKeys.*;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wrapper class for Kotlin bytecode compiler.
|
* Wrapper class for Kotlin bytecode compiler.
|
||||||
@@ -52,22 +53,26 @@ public class BytecodeCompiler {
|
|||||||
* @return compile environment instance
|
* @return compile environment instance
|
||||||
*/
|
*/
|
||||||
private K2JVMCompileEnvironmentConfiguration env(String stdlib, String[] classpath) {
|
private K2JVMCompileEnvironmentConfiguration env(String stdlib, String[] classpath) {
|
||||||
List<File> classpathItems = new ArrayList<File>();
|
CompilerConfiguration configuration = new CompilerConfiguration();
|
||||||
classpathItems.add(PathUtil.findRtJar());
|
configuration.add(CLASSPATH_KEY, PathUtil.findRtJar());
|
||||||
if ((stdlib != null) && (stdlib.trim().length() > 0)) {
|
if ((stdlib != null) && (stdlib.trim().length() > 0)) {
|
||||||
classpathItems.add(new File(stdlib));
|
configuration.add(CLASSPATH_KEY, new File(stdlib));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
classpathItems.add(PathUtil.getDefaultRuntimePath());
|
File path = PathUtil.getDefaultRuntimePath();
|
||||||
|
if (path != null) {
|
||||||
|
configuration.add(CLASSPATH_KEY, path);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ((classpath != null) && (classpath.length > 0)) {
|
if ((classpath != null) && (classpath.length > 0)) {
|
||||||
for (String path : classpath) {
|
for (String path : classpath) {
|
||||||
classpathItems.add(new File(path));
|
configuration.add(CLASSPATH_KEY, new File(path));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CompilerConfiguration configuration = new CompilerConfiguration();
|
File jdkAnnotationsPath = PathUtil.getJdkAnnotationsPath();
|
||||||
configuration.put(JVMConfigurationKeys.CLASSPATH_KEY, classpathItems.toArray(new File[classpathItems.size()]));
|
if (jdkAnnotationsPath != null) {
|
||||||
configuration.put(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, new File[] {PathUtil.getJdkAnnotationsPath()});
|
configuration.add(ANNOTATIONS_PATH_KEY, jdkAnnotationsPath);
|
||||||
|
}
|
||||||
|
|
||||||
JetCoreEnvironment environment = new JetCoreEnvironment(CompileEnvironmentUtil.createMockDisposable(), configuration
|
JetCoreEnvironment environment = new JetCoreEnvironment(CompileEnvironmentUtil.createMockDisposable(), configuration
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package org.jetbrains.jet.cli.jvm;
|
|||||||
import com.intellij.openapi.util.Key;
|
import com.intellij.openapi.util.Key;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Evgeny Gerashchenko
|
* @author Evgeny Gerashchenko
|
||||||
@@ -28,6 +29,6 @@ public class JVMConfigurationKeys {
|
|||||||
private JVMConfigurationKeys() {
|
private JVMConfigurationKeys() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Key<File[]> CLASSPATH_KEY = Key.create("classpath");
|
public static final Key<List<File>> CLASSPATH_KEY = Key.create("classpath");
|
||||||
public static final Key<File[]> ANNOTATIONS_PATH_KEY = Key.create("annotations path");
|
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
|
@NotNull
|
||||||
private static CompilerConfiguration createCompilerConfiguration(@NotNull K2JVMCompilerArguments arguments) {
|
private static CompilerConfiguration createCompilerConfiguration(@NotNull K2JVMCompilerArguments arguments) {
|
||||||
CompilerConfiguration configuration = new CompilerConfiguration();
|
CompilerConfiguration configuration = new CompilerConfiguration();
|
||||||
configuration.put(JVMConfigurationKeys.CLASSPATH_KEY, getClasspath(arguments).toArray(new File[0]));
|
configuration.addAll(JVMConfigurationKeys.CLASSPATH_KEY, getClasspath(arguments));
|
||||||
configuration.put(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, getAnnotationsPath(arguments).toArray(new File[0]));
|
configuration.addAll(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, getAnnotationsPath(arguments));
|
||||||
return configuration;
|
return configuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ import java.net.MalformedURLException;
|
|||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.net.URLClassLoader;
|
import java.net.URLClassLoader;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.jar.*;
|
import java.util.jar.*;
|
||||||
|
|
||||||
@@ -142,13 +143,13 @@ public class CompileEnvironmentUtil {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
CompilerConfiguration configuration = new CompilerConfiguration();
|
CompilerConfiguration configuration = new CompilerConfiguration();
|
||||||
configuration.put(JVMConfigurationKeys.CLASSPATH_KEY, new File[]{
|
configuration.put(JVMConfigurationKeys.CLASSPATH_KEY, Arrays.asList(
|
||||||
PathUtil.findRtJar(),
|
PathUtil.findRtJar(),
|
||||||
PathUtil.getDefaultRuntimePath()
|
PathUtil.getDefaultRuntimePath()
|
||||||
});
|
));
|
||||||
configuration.put(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, new File[]{
|
configuration.put(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, Arrays.asList(
|
||||||
PathUtil.getJdkAnnotationsPath()
|
PathUtil.getJdkAnnotationsPath()
|
||||||
});
|
));
|
||||||
JetCoreEnvironment scriptEnvironment = JetCoreEnvironment.createCoreEnvironmentForJVM(disposable, configuration);
|
JetCoreEnvironment scriptEnvironment = JetCoreEnvironment.createCoreEnvironmentForJVM(disposable, configuration);
|
||||||
scriptEnvironment.addSources(moduleScriptFile);
|
scriptEnvironment.addSources(moduleScriptFile);
|
||||||
|
|
||||||
|
|||||||
@@ -168,8 +168,8 @@ public class JetCoreEnvironment extends JavaCoreEnvironment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void configure(@NotNull CompilerConfiguration compilerConfiguration) {
|
public void configure(@NotNull CompilerConfiguration compilerConfiguration) {
|
||||||
File[] classpath = compilerConfiguration.get(JVMConfigurationKeys.CLASSPATH_KEY);
|
List<File> classpath = compilerConfiguration.get(JVMConfigurationKeys.CLASSPATH_KEY);
|
||||||
File[] annotationsPath = compilerConfiguration.get(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY);
|
List<File> annotationsPath = compilerConfiguration.get(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY);
|
||||||
if (classpath != null) {
|
if (classpath != null) {
|
||||||
for (File path : classpath) {
|
for (File path : classpath) {
|
||||||
addToClasspath(path);
|
addToClasspath(path);
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ public class ReplInterpreter {
|
|||||||
|
|
||||||
List<URL> classpath = Lists.newArrayList();
|
List<URL> classpath = Lists.newArrayList();
|
||||||
|
|
||||||
for (File file : configuration.get(JVMConfigurationKeys.CLASSPATH_KEY)) {
|
for (File file : configuration.getList(JVMConfigurationKeys.CLASSPATH_KEY)) {
|
||||||
try {
|
try {
|
||||||
classpath.add(file.toURI().toURL());
|
classpath.add(file.toURI().toURL());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
package org.jetbrains.jet;
|
package org.jetbrains.jet;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
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.ForTestCompileBuiltins;
|
||||||
import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileRuntime;
|
import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileRuntime;
|
||||||
import org.jetbrains.jet.codegen.forTestCompile.ForTestPackJdkAnnotations;
|
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.jetbrains.jet.utils.PathUtil;
|
||||||
import org.junit.Test;
|
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.ALL;
|
||||||
import static org.jetbrains.jet.ConfigurationKind.JDK_AND_ANNOTATIONS;
|
import static org.jetbrains.jet.ConfigurationKind.JDK_AND_ANNOTATIONS;
|
||||||
|
import static org.jetbrains.jet.cli.jvm.JVMConfigurationKeys.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Stepan Koltsov
|
* @author Stepan Koltsov
|
||||||
@@ -53,20 +49,16 @@ public class CompileCompilerDependenciesTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static CompilerConfiguration compilerConfigurationForTests(@NotNull ConfigurationKind configurationKind, @NotNull TestJdkKind jdkKind) {
|
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();
|
CompilerConfiguration configuration = new CompilerConfiguration();
|
||||||
configuration.put(JVMConfigurationKeys.CLASSPATH_KEY, classpath.toArray(new File[classpath.size()]));
|
configuration.add(CLASSPATH_KEY, jdkKind == TestJdkKind.MOCK_JDK ? JetTestUtils.findMockJdkRtJar() : PathUtil.findRtJar());
|
||||||
configuration.put(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, annotationsPath);
|
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;
|
return configuration;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ package org.jetbrains.jet.repl;
|
|||||||
import com.intellij.openapi.Disposable;
|
import com.intellij.openapi.Disposable;
|
||||||
import com.intellij.openapi.util.Disposer;
|
import com.intellij.openapi.util.Disposer;
|
||||||
import com.intellij.openapi.util.text.StringUtil;
|
import com.intellij.openapi.util.text.StringUtil;
|
||||||
import com.intellij.util.ArrayUtil;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.CompileCompilerDependenciesTest;
|
import org.jetbrains.jet.CompileCompilerDependenciesTest;
|
||||||
import org.jetbrains.jet.ConfigurationKind;
|
import org.jetbrains.jet.ConfigurationKind;
|
||||||
@@ -56,9 +55,7 @@ public class ReplInterpreterTest {
|
|||||||
private void testFile(@NotNull String relativePath) {
|
private void testFile(@NotNull String relativePath) {
|
||||||
CompilerConfiguration configuration =
|
CompilerConfiguration configuration =
|
||||||
CompileCompilerDependenciesTest.compilerConfigurationForTests(ConfigurationKind.JDK_ONLY, TestJdkKind.FULL_JDK);
|
CompileCompilerDependenciesTest.compilerConfigurationForTests(ConfigurationKind.JDK_ONLY, TestJdkKind.FULL_JDK);
|
||||||
File[] classpath = configuration.get(JVMConfigurationKeys.CLASSPATH_KEY);
|
configuration.add(JVMConfigurationKeys.CLASSPATH_KEY, new File("out/production/runtime"));
|
||||||
assert classpath != null;
|
|
||||||
configuration.put(JVMConfigurationKeys.CLASSPATH_KEY, ArrayUtil.append(classpath, new File("out/production/runtime")));
|
|
||||||
ReplInterpreter repl = new ReplInterpreter(disposable, configuration);
|
ReplInterpreter repl = new ReplInterpreter(disposable, configuration);
|
||||||
|
|
||||||
ReplSessionTestFile file = ReplSessionTestFile.load(new File("compiler/testData/repl/" + relativePath));
|
ReplSessionTestFile file = ReplSessionTestFile.load(new File("compiler/testData/repl/" + relativePath));
|
||||||
|
|||||||
Reference in New Issue
Block a user