Fix build after change api
This commit is contained in:
@@ -26,13 +26,14 @@ import jet.modules.AllModules;
|
||||
import jet.modules.Module;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.OutputFile;
|
||||
import org.jetbrains.jet.cli.common.CLIConfigurationKeys;
|
||||
import org.jetbrains.jet.cli.common.messages.MessageCollector;
|
||||
import org.jetbrains.jet.cli.common.messages.MessageRenderer;
|
||||
import org.jetbrains.jet.cli.common.modules.ModuleDescription;
|
||||
import org.jetbrains.jet.cli.common.modules.ModuleXmlParser;
|
||||
import org.jetbrains.jet.OutputDirector;
|
||||
import org.jetbrains.jet.cli.common.outputUtils.OutputUtilsPackage;
|
||||
import org.jetbrains.jet.cli.common.output.OutputDirector;
|
||||
import org.jetbrains.jet.cli.common.output.outputUtils.OutputUtilsPackage;
|
||||
import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys;
|
||||
import org.jetbrains.jet.codegen.ClassFileFactory;
|
||||
import org.jetbrains.jet.codegen.GeneratedClassLoader;
|
||||
@@ -170,7 +171,7 @@ public class CompileEnvironmentUtil {
|
||||
}
|
||||
|
||||
// TODO: includeRuntime should be not a flag but a path to runtime
|
||||
private static void doWriteToJar(ClassFileFactory factory, OutputStream fos, @Nullable FqName mainClass, boolean includeRuntime) {
|
||||
private static void doWriteToJar(ClassFileFactory outputFiles, OutputStream fos, @Nullable FqName mainClass, boolean includeRuntime) {
|
||||
try {
|
||||
Manifest manifest = new Manifest();
|
||||
Attributes mainAttributes = manifest.getMainAttributes();
|
||||
@@ -180,9 +181,9 @@ public class CompileEnvironmentUtil {
|
||||
mainAttributes.putValue("Main-Class", mainClass.asString());
|
||||
}
|
||||
JarOutputStream stream = new JarOutputStream(fos, manifest);
|
||||
for (String file : factory.getOutputFiles()) {
|
||||
stream.putNextEntry(new JarEntry(file));
|
||||
stream.write(factory.asBytes(file));
|
||||
for (OutputFile outputFile : outputFiles.asList()) {
|
||||
stream.putNextEntry(new JarEntry(outputFile.getRelativePath()));
|
||||
stream.write(outputFile.asByteArray());
|
||||
}
|
||||
if (includeRuntime) {
|
||||
writeRuntimeToJar(stream);
|
||||
@@ -194,11 +195,11 @@ public class CompileEnvironmentUtil {
|
||||
}
|
||||
}
|
||||
|
||||
public static void writeToJar(File jarPath, boolean jarRuntime, FqName mainClass, ClassFileFactory moduleFactory) {
|
||||
public static void writeToJar(File jarPath, boolean jarRuntime, FqName mainClass, ClassFileFactory outputFiles) {
|
||||
FileOutputStream outputStream = null;
|
||||
try {
|
||||
outputStream = new FileOutputStream(jarPath);
|
||||
doWriteToJar(moduleFactory, outputStream, mainClass, jarRuntime);
|
||||
doWriteToJar(outputFiles, outputStream, mainClass, jarRuntime);
|
||||
outputStream.close();
|
||||
}
|
||||
catch (FileNotFoundException e) {
|
||||
@@ -212,7 +213,7 @@ public class CompileEnvironmentUtil {
|
||||
}
|
||||
}
|
||||
|
||||
private static void writeRuntimeToJar(final JarOutputStream stream) throws IOException {
|
||||
private static void writeRuntimeToJar(JarOutputStream stream) throws IOException {
|
||||
File runtimeJarPath = getRuntimeJarPath();
|
||||
if (runtimeJarPath != null) {
|
||||
JarInputStream jis = new JarInputStream(new FileInputStream(runtimeJarPath));
|
||||
@@ -254,14 +255,14 @@ public class CompileEnvironmentUtil {
|
||||
@Nullable OutputDirector outputDir,
|
||||
boolean includeRuntime,
|
||||
@Nullable FqName mainClass,
|
||||
@NotNull ClassFileFactory factory,
|
||||
@NotNull ClassFileFactory outputFiles,
|
||||
@NotNull MessageCollector messageCollector
|
||||
) {
|
||||
if (jar != null) {
|
||||
writeToJar(jar, includeRuntime, mainClass, factory);
|
||||
writeToJar(jar, includeRuntime, mainClass, outputFiles);
|
||||
}
|
||||
else if (outputDir != null) {
|
||||
OutputUtilsPackage.writeAll(factory, outputDir, messageCollector);
|
||||
OutputUtilsPackage.writeAll(outputFiles, outputDir, messageCollector);
|
||||
}
|
||||
else {
|
||||
throw new CompileEnvironmentException("Output directory or jar file is not specified - no files will be saved to the disk");
|
||||
|
||||
@@ -30,6 +30,7 @@ import com.intellij.testFramework.LightVirtualFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.asm4.Type;
|
||||
import org.jetbrains.jet.OutputFile;
|
||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.cli.common.messages.AnalyzerWithCompilerReport;
|
||||
import org.jetbrains.jet.cli.common.messages.MessageCollector;
|
||||
@@ -70,7 +71,6 @@ import java.net.URLClassLoader;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
import static org.jetbrains.jet.codegen.AsmUtil.asmTypeByFqNameWithoutInnerClasses;
|
||||
import static org.jetbrains.jet.codegen.binding.CodegenBinding.registerClassNameForScript;
|
||||
|
||||
@@ -241,8 +241,8 @@ public class ReplInterpreter {
|
||||
compileScript(psiFile.getScript(), scriptClassType, earlierScripts, generationState,
|
||||
CompilationErrorHandler.THROW_EXCEPTION);
|
||||
|
||||
for (String file : generationState.getFactory().getOutputFiles()) {
|
||||
classLoader.addClass(JvmClassName.byInternalName(file.replaceFirst("\\.class$", "")), generationState.getFactory().asBytes(file));
|
||||
for (OutputFile outputFile : generationState.getFactory().asList()) {
|
||||
classLoader.addClass(JvmClassName.byInternalName(outputFile.getRelativePath().replaceFirst("\\.class$", "")), outputFile.asByteArray());
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user