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 5112716ba7f..eade13e398b 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
@@ -19,6 +19,7 @@ package org.jetbrains.jet.buildtools.core;
import jet.modules.Module;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import org.jetbrains.jet.cli.common.CLIConfigurationKeys;
import org.jetbrains.jet.cli.common.CompilerPlugin;
import org.jetbrains.jet.cli.common.messages.MessageCollector;
import org.jetbrains.jet.cli.common.util.CompilerPathUtil;
@@ -83,7 +84,7 @@ public class BytecodeCompiler {
MessageCollector.PLAIN_TEXT_TO_SYSTEM_ERR);
// lets register any compiler plugins
- env.getCompilerPlugins().addAll(getCompilerPlugins());
+ configuration.addAll(CLIConfigurationKeys.COMPILER_PLUGINS, getCompilerPlugins());
return env;
}
diff --git a/compiler/cli/src/org/jetbrains/jet/cli/common/CLICompiler.java b/compiler/cli/src/org/jetbrains/jet/cli/common/CLICompiler.java
index 1ee18e963a4..8183942eae7 100644
--- a/compiler/cli/src/org/jetbrains/jet/cli/common/CLICompiler.java
+++ b/compiler/cli/src/org/jetbrains/jet/cli/common/CLICompiler.java
@@ -26,9 +26,9 @@ import org.jetbrains.jet.cli.common.messages.MessageRenderer;
import org.jetbrains.jet.cli.common.messages.PrintingMessageCollector;
import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentException;
import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentUtil;
+import org.jetbrains.jet.config.CompilerConfiguration;
import java.io.PrintStream;
-import java.util.List;
import static org.jetbrains.jet.cli.common.ExitCode.INTERNAL_ERROR;
import static org.jetbrains.jet.cli.common.ExitCode.OK;
@@ -36,7 +36,7 @@ import static org.jetbrains.jet.cli.common.ExitCode.OK;
/**
* @author Pavel Talanov
*/
-public abstract class CLICompiler {
+public abstract class CLICompiler {
@NotNull
public ExitCode exec(@NotNull PrintStream errStream, @NotNull String... args) {
@@ -90,9 +90,8 @@ public abstract class CLICompiler plugins = arguments.getCompilerPlugins();
- configuration.getCompilerPlugins().addAll(plugins);
+ protected void configureEnvironment(@NotNull CompilerConfiguration configuration, @NotNull A arguments) {
+ configuration.addAll(CLIConfigurationKeys.COMPILER_PLUGINS, arguments.getCompilerPlugins());
}
@NotNull
diff --git a/compiler/cli/src/org/jetbrains/jet/cli/common/CLIConfigurationKeys.java b/compiler/cli/src/org/jetbrains/jet/cli/common/CLIConfigurationKeys.java
new file mode 100644
index 00000000000..71505ed2d3e
--- /dev/null
+++ b/compiler/cli/src/org/jetbrains/jet/cli/common/CLIConfigurationKeys.java
@@ -0,0 +1,32 @@
+/*
+ * 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.common;
+
+import com.intellij.openapi.util.Key;
+
+import java.util.List;
+
+/**
+ * @author Evgeny Gerashchenko
+ * @since 7/23/12
+ */
+public class CLIConfigurationKeys {
+ public static final Key> COMPILER_PLUGINS = Key.create("compiler plugins");
+
+ private CLIConfigurationKeys() {
+ }
+}
diff --git a/compiler/cli/src/org/jetbrains/jet/cli/common/CompileEnvironmentConfiguration.java b/compiler/cli/src/org/jetbrains/jet/cli/common/CompileEnvironmentConfiguration.java
index 525357b7efd..ac972852224 100644
--- a/compiler/cli/src/org/jetbrains/jet/cli/common/CompileEnvironmentConfiguration.java
+++ b/compiler/cli/src/org/jetbrains/jet/cli/common/CompileEnvironmentConfiguration.java
@@ -16,13 +16,10 @@
package org.jetbrains.jet.cli.common;
-import com.google.common.collect.Lists;
import com.intellij.openapi.util.Disposer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.cli.common.messages.MessageCollector;
-import java.util.List;
-
/**
* @author Pavel Talanov
*/
@@ -30,8 +27,6 @@ public abstract class CompileEnvironmentConfiguration {
@NotNull
private final MessageCollector messageCollector;
- @NotNull
- private final List compilerPlugins = Lists.newArrayList();
/**
* NOTE: It's very important to call dispose for every object of this class or there will be memory leaks.
@@ -46,9 +41,4 @@ public abstract class CompileEnvironmentConfiguration {
public MessageCollector getMessageCollector() {
return messageCollector;
}
-
- @NotNull
- public List getCompilerPlugins() {
- return compilerPlugins;
- }
}
diff --git a/compiler/cli/src/org/jetbrains/jet/cli/js/K2JSCompiler.java b/compiler/cli/src/org/jetbrains/jet/cli/js/K2JSCompiler.java
index e22fb9e7fdc..136099e8e70 100644
--- a/compiler/cli/src/org/jetbrains/jet/cli/js/K2JSCompiler.java
+++ b/compiler/cli/src/org/jetbrains/jet/cli/js/K2JSCompiler.java
@@ -42,7 +42,6 @@ import org.jetbrains.k2js.analyze.AnalyzerFacadeForJS;
import org.jetbrains.k2js.config.*;
import org.jetbrains.k2js.facade.K2JSTranslator;
import org.jetbrains.k2js.facade.MainCallParameters;
-import org.jetbrains.k2js.utils.JetFileUtils;
import java.io.File;
import java.util.Arrays;
@@ -53,7 +52,7 @@ import static org.jetbrains.jet.cli.common.messages.CompilerMessageLocation.NO_L
/**
* @author Pavel Talanov
*/
-public class K2JSCompiler extends CLICompiler {
+public class K2JSCompiler extends CLICompiler {
public static void main(String... args) {
doMain(new K2JSCompiler(), args);
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 cbc2e9ec2cf..74d3d1dc068 100644
--- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java
+++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java
@@ -47,7 +47,7 @@ import static org.jetbrains.jet.cli.common.ExitCode.*;
* @author alex.tkachman
*/
@SuppressWarnings("UseOfSystemOutOrSystemErr")
-public class K2JVMCompiler extends CLICompiler {
+public class K2JVMCompiler extends CLICompiler {
public static void main(String... args) {
doMain(new K2JVMCompiler(), args);
@@ -108,7 +108,7 @@ public class K2JVMCompiler extends CLICompiler plugins = configuration.getCompilerPlugins();
CompilerPluginContext context = new CompilerPluginContext(project, exhaust.getBindingContext(), environment.getSourceFiles());
- for (CompilerPlugin plugin : plugins) {
+ for (CompilerPlugin plugin : environment.getConfiguration().getList(CLIConfigurationKeys.COMPILER_PLUGINS)) {
plugin.processFiles(context);
}
return generationState;
diff --git a/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/KDocCompiler.kt b/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/KDocCompiler.kt
index 2a778c81e34..1f98e8e6551 100644
--- a/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/KDocCompiler.kt
+++ b/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/KDocCompiler.kt
@@ -5,6 +5,8 @@ import org.jetbrains.jet.cli.common.CLICompiler
import org.jetbrains.jet.cli.jvm.K2JVMCompiler
import org.jetbrains.jet.cli.jvm.K2JVMCompilerArguments
import org.jetbrains.jet.cli.jvm.compiler.K2JVMCompileEnvironmentConfiguration
+import org.jetbrains.jet.config.CompilerConfiguration
+import org.jetbrains.jet.cli.common.CLIConfigurationKeys
/**
* Main for running the KDocCompiler
@@ -19,14 +21,9 @@ fun main(args: Array): Unit {
*/
class KDocCompiler() : K2JVMCompiler() {
- protected override fun configureEnvironment(configuration : K2JVMCompileEnvironmentConfiguration, arguments : K2JVMCompilerArguments) {
+ protected override fun configureEnvironment(configuration : CompilerConfiguration, arguments : K2JVMCompilerArguments) {
super.configureEnvironment(configuration, arguments)
- val coreEnvironment = configuration.getEnvironment()
- if (coreEnvironment != null) {
- val kdoc = KDoc(arguments as KDocArguments)
- val plugins = configuration.getCompilerPlugins()
- plugins.add(kdoc);
- }
+ configuration.add(CLIConfigurationKeys.COMPILER_PLUGINS, KDoc(arguments as KDocArguments))
}
protected override fun createArguments() : K2JVMCompilerArguments {