diff --git a/build-tools/build-tools.iml b/build-tools/build-tools.iml
index fde16f7bfd8..ee9779446f1 100644
--- a/build-tools/build-tools.iml
+++ b/build-tools/build-tools.iml
@@ -21,6 +21,7 @@
+
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 0dd913806c1..b474a4a4f72 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
@@ -20,10 +20,13 @@ import jet.modules.Module;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.cli.common.CompilerPlugin;
+import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys;
import org.jetbrains.jet.cli.jvm.compiler.*;
import org.jetbrains.jet.cli.common.messages.MessageCollector;
+import org.jetbrains.jet.config.CompilerConfiguration;
import org.jetbrains.jet.lang.resolve.java.CompilerDependencies;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
+import org.jetbrains.jet.utils.PathUtil;
import java.io.File;
import java.util.ArrayList;
@@ -50,20 +53,28 @@ public class BytecodeCompiler {
* @return compile environment instance
*/
private K2JVMCompileEnvironmentConfiguration env( String stdlib, String[] classpath ) {
- CompilerDependencies dependencies = CompilerDependencies.compilerDependenciesForProduction(CompilerSpecialMode.REGULAR);
- JetCoreEnvironment environment = new JetCoreEnvironment(CompileEnvironmentUtil.createMockDisposable(), dependencies);
+ List classpathItems = new ArrayList();
+ classpathItems.add(PathUtil.findRtJar());
+ if ((stdlib != null) && (stdlib.trim().length() > 0)) {
+ classpathItems.add(new File(stdlib));
+ }
+ else {
+ classpathItems.add(PathUtil.getDefaultRuntimePath());
+ }
+ if ((classpath != null) && (classpath.length > 0)) {
+ for (String path : classpath) {
+ classpathItems.add(new File(path));
+ }
+ }
+ CompilerConfiguration configuration = new CompilerConfiguration();
+ configuration.putUserData(JVMConfigurationKeys.CLASSPATH_KEY, classpathItems.toArray(new File[classpathItems.size()]));
+ configuration.putUserData(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, new File[]{PathUtil.getJdkAnnotationsPath()});
+
+ JetCoreEnvironment environment = new JetCoreEnvironment(CompileEnvironmentUtil.createMockDisposable(), configuration,
+ CompilerSpecialMode.REGULAR);
K2JVMCompileEnvironmentConfiguration
env = new K2JVMCompileEnvironmentConfiguration(environment, MessageCollector.PLAIN_TEXT_TO_SYSTEM_ERR, false);
- if (( stdlib != null ) && ( stdlib.trim().length() > 0 )) {
- File file = new File(stdlib);
- CompileEnvironmentUtil.addToClasspath(env.getEnvironment(), file);
- }
-
- if (( classpath != null ) && ( classpath.length > 0 )) {
- CompileEnvironmentUtil.addToClasspath(env.getEnvironment(), classpath);
- }
-
// lets register any compiler plugins
env.getCompilerPlugins().addAll(getCompilerPlugins());
diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/CompilerConfigurationUtl.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/CompilerConfigurationUtl.java
new file mode 100644
index 00000000000..449af0229cd
--- /dev/null
+++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/CompilerConfigurationUtl.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2010-2012 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jetbrains.jet.cli.jvm;
+
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.jet.config.CompilerConfiguration;
+import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
+import org.jetbrains.jet.utils.PathUtil;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Evgeny Gerashchenko
+ * @since 7/4/12
+ */
+public class CompilerConfigurationUtl {
+ // TODO merge with similar K2JVMCompiler method
+ public static CompilerConfiguration getDefaultConfiguration(@NotNull CompilerSpecialMode compilerSpecialMode) {
+ List classpath = new ArrayList();
+ if (compilerSpecialMode.includeJdk()) {
+ classpath.add(PathUtil.findRtJar());
+ }
+ if (compilerSpecialMode.includeKotlinRuntime()) {
+ classpath.add(PathUtil.getDefaultRuntimePath());
+ }
+ File[] annotationsPath = new File[0];
+ if (compilerSpecialMode.includeJdkAnnotations()) {
+ annotationsPath = new File[]{PathUtil.getJdkAnnotationsPath()};
+ }
+
+ CompilerConfiguration configuration = new CompilerConfiguration();
+ configuration.putUserData(JVMConfigurationKeys.CLASSPATH_KEY, classpath.toArray(new File[classpath.size()]));
+ configuration.putUserData(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, annotationsPath);
+ return configuration;
+ }
+}
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 06fe83adc6f..c7990d8a1a7 100644
--- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java
+++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java
@@ -55,36 +55,8 @@ public class K2JVMCompiler extends CLICompiler argumentsSourceDirs = arguments.getSourceDirs();
if (!arguments.script &&
@@ -93,12 +65,13 @@ public class K2JVMCompiler extends CLICompileremptyList());
- injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module,
- compilerDependencies.getCompilerSpecialMode());
+ injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module, mode);
List classpath = Lists.newArrayList();
diff --git a/compiler/tests/org/jetbrains/jet/JetTestUtils.java b/compiler/tests/org/jetbrains/jet/JetTestUtils.java
index 36a532aa712..6d0c9220a35 100644
--- a/compiler/tests/org/jetbrains/jet/JetTestUtils.java
+++ b/compiler/tests/org/jetbrains/jet/JetTestUtils.java
@@ -180,8 +180,9 @@ public class JetTestUtils {
}
public static JetCoreEnvironment createEnvironmentWithMockJdkAndIdeaAnnotations(Disposable disposable, @NotNull CompilerSpecialMode compilerSpecialMode) {
- JetCoreEnvironment environment =
- new JetCoreEnvironment(disposable, CompileCompilerDependenciesTest.compilerDependenciesForTests(compilerSpecialMode, true));
+ JetCoreEnvironment environment = new JetCoreEnvironment(disposable,
+ CompileCompilerDependenciesTest.compilerConfigurationForTests(compilerSpecialMode, true),
+ compilerSpecialMode);
environment.addToClasspath(getAnnotationsJar());
return environment;
}
@@ -253,7 +254,8 @@ public class JetTestUtils {
public static JetCoreEnvironment createEnvironmentWithFullJdk(Disposable disposable) {
return new JetCoreEnvironment(disposable,
- CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.REGULAR, false));
+ CompileCompilerDependenciesTest.compilerConfigurationForTests(CompilerSpecialMode.REGULAR, false),
+ CompilerSpecialMode.REGULAR);
}
public static PsiFile createFile(@NonNls String name, String text, @NotNull Project project) {
diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/longTest/ResolveDescriptorsFromExternalLibraries.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/longTest/ResolveDescriptorsFromExternalLibraries.java
index 7e77680b06a..19fec3af536 100644
--- a/compiler/tests/org/jetbrains/jet/jvm/compiler/longTest/ResolveDescriptorsFromExternalLibraries.java
+++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/longTest/ResolveDescriptorsFromExternalLibraries.java
@@ -30,19 +30,15 @@ import org.jetbrains.jet.CompileCompilerDependenciesTest;
import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.TimeUtils;
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
+import org.jetbrains.jet.config.CompilerConfiguration;
import org.jetbrains.jet.di.InjectorForJavaSemanticServices;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
-import org.jetbrains.jet.lang.resolve.name.FqName;
-import org.jetbrains.jet.lang.resolve.java.CompilerDependencies;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule;
+import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.utils.PathUtil;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
import java.util.Arrays;
import java.util.List;
import java.util.zip.ZipEntry;
@@ -153,8 +149,9 @@ public class ResolveDescriptorsFromExternalLibraries {
jetCoreEnvironment.addToClasspath(jar);
}
else {
- CompilerDependencies compilerDependencies = CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.STDLIB, false);
- jetCoreEnvironment = JetCoreEnvironment.createCoreEnvironmentForJVM(junk, compilerDependencies);
+ CompilerConfiguration configuration =
+ CompileCompilerDependenciesTest.compilerConfigurationForTests(CompilerSpecialMode.STDLIB, false);
+ jetCoreEnvironment = JetCoreEnvironment.createCoreEnvironmentForJVM(junk, configuration, CompilerSpecialMode.STDLIB);
if (!PathUtil.findRtJar().equals(jar)) {
throw new RuntimeException("rt.jar mismatch: " + jar + ", " + PathUtil.findRtJar());
}
diff --git a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveTest.java b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveTest.java
index b4999530d1d..bf0f34908a2 100644
--- a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveTest.java
+++ b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveTest.java
@@ -29,7 +29,6 @@ import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
import org.jetbrains.jet.lang.resolve.BindingTraceContext;
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
-import org.jetbrains.jet.lang.resolve.java.CompilerDependencies;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.junit.After;
@@ -47,9 +46,9 @@ public abstract class AbstractLazyResolveTest {
}
};
- protected final CompilerDependencies
- compilerDependencies = CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.JDK_HEADERS, true);
- protected final JetCoreEnvironment jetCoreEnvironment = new JetCoreEnvironment(rootDisposable, compilerDependencies);
+ protected final JetCoreEnvironment jetCoreEnvironment = new JetCoreEnvironment(rootDisposable,
+ CompileCompilerDependenciesTest.compilerConfigurationForTests(CompilerSpecialMode.JDK_HEADERS, true),
+ CompilerSpecialMode.JDK_HEADERS);
protected final Project project = jetCoreEnvironment.getProject();
@BeforeClass
diff --git a/compiler/tests/org/jetbrains/jet/repl/ReplInterpreterTest.java b/compiler/tests/org/jetbrains/jet/repl/ReplInterpreterTest.java
index a2b8b814b8b..93d8b6ec827 100644
--- a/compiler/tests/org/jetbrains/jet/repl/ReplInterpreterTest.java
+++ b/compiler/tests/org/jetbrains/jet/repl/ReplInterpreterTest.java
@@ -25,7 +25,6 @@ import org.jetbrains.jet.CompileCompilerDependenciesTest;
import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys;
import org.jetbrains.jet.cli.jvm.repl.ReplInterpreter;
import org.jetbrains.jet.config.CompilerConfiguration;
-import org.jetbrains.jet.lang.resolve.java.CompilerDependencies;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import org.junit.After;
import org.junit.Assert;
@@ -54,13 +53,12 @@ public class ReplInterpreterTest {
}
private void testFile(@NotNull String relativePath) {
- CompilerDependencies compilerDependencies = CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.JDK_HEADERS, false);
CompilerConfiguration configuration =
CompileCompilerDependenciesTest.compilerConfigurationForTests(CompilerSpecialMode.JDK_HEADERS, false);
File[] classpath = configuration.getUserData(JVMConfigurationKeys.CLASSPATH_KEY);
assert classpath != null;
configuration.putUserData(JVMConfigurationKeys.CLASSPATH_KEY, ArrayUtil.append(classpath, new File("out/production/runtime")));
- ReplInterpreter repl = new ReplInterpreter(disposable, compilerDependencies, configuration);
+ ReplInterpreter repl = new ReplInterpreter(disposable, configuration, CompilerSpecialMode.JDK_HEADERS);
ReplSessionTestFile file = ReplSessionTestFile.load(new File("compiler/testData/repl/" + relativePath));
for (ReplSessionTestFile.OneLine t : file.getLines()) {
diff --git a/js/js.tests/test/org/jetbrains/k2js/test/TestWithEnvironment.java b/js/js.tests/test/org/jetbrains/k2js/test/TestWithEnvironment.java
index 38474a2eea2..0460c54c264 100644
--- a/js/js.tests/test/org/jetbrains/k2js/test/TestWithEnvironment.java
+++ b/js/js.tests/test/org/jetbrains/k2js/test/TestWithEnvironment.java
@@ -51,9 +51,9 @@ public abstract class TestWithEnvironment extends UsefulTestCase {
}
protected void createEnvironmentWithMockJdkAndIdeaAnnotations() {
- myEnvironment = JetCoreEnvironment.createCoreEnvironmentForJVM(getTestRootDisposable(),
- CompileCompilerDependenciesTest.compilerDependenciesForTests(
- CompilerSpecialMode.JS,
- true));
+ myEnvironment = JetCoreEnvironment.createCoreEnvironmentForJVM(
+ getTestRootDisposable(),
+ CompileCompilerDependenciesTest.compilerConfigurationForTests(CompilerSpecialMode.JS, true),
+ CompilerSpecialMode.JS);
}
}