Add sources for 'reflect' and 'test' libs during JPS config (KT-20956)

#KT-20956 Fixed
This commit is contained in:
Nikolay Krasko
2017-11-20 18:15:21 +03:00
parent ec8adfe7c4
commit a530163074
3 changed files with 26 additions and 6 deletions
@@ -53,7 +53,10 @@ object PathUtil {
const val KOTLIN_JAVA_STDLIB_JAR = "$KOTLIN_JAVA_STDLIB_NAME.jar"
const val KOTLIN_JAVA_STDLIB_SRC_JAR = "$KOTLIN_JAVA_STDLIB_NAME-sources.jar"
const val KOTLIN_JAVA_REFLECT_JAR = "kotlin-reflect.jar"
const val KOTLIN_JAVA_REFLECT_NAME = "kotlin-reflect"
const val KOTLIN_JAVA_REFLECT_JAR = "$KOTLIN_JAVA_REFLECT_NAME.jar"
const val KOTLIN_REFLECT_SRC_JAR = "$KOTLIN_JAVA_REFLECT_NAME-sources.jar"
const val KOTLIN_JAVA_SCRIPT_RUNTIME_JAR = "kotlin-script-runtime.jar"
const val KOTLIN_TEST_NAME = "kotlin-test"
@@ -64,7 +67,6 @@ object PathUtil {
const val KOTLIN_TEST_JS_JAR = "$KOTLIN_TEST_JS_NAME.jar"
const val KOTLIN_JAVA_STDLIB_SRC_JAR_OLD = "kotlin-runtime-sources.jar"
const val KOTLIN_REFLECT_SRC_JAR = "kotlin-reflect-sources.jar"
const val KOTLIN_COMPILER_NAME = "kotlin-compiler"
const val KOTLIN_COMPILER_JAR = "$KOTLIN_COMPILER_NAME.jar"
@@ -72,10 +72,13 @@ open class KotlinJavaModuleConfigurator internal constructor() : KotlinWithLibra
get() = JvmPlatform
override fun getLibraryJarDescriptors(sdk: Sdk?): List<LibraryJarDescriptor> {
var result = listOf(LibraryJarDescriptor.RUNTIME_JAR,
LibraryJarDescriptor.REFLECT_JAR,
LibraryJarDescriptor.RUNTIME_SRC_JAR,
LibraryJarDescriptor.TEST_JAR)
var result = listOf(
LibraryJarDescriptor.RUNTIME_JAR,
LibraryJarDescriptor.RUNTIME_SRC_JAR,
LibraryJarDescriptor.REFLECT_JAR,
LibraryJarDescriptor.REFLECT_SRC_JAR,
LibraryJarDescriptor.TEST_JAR,
LibraryJarDescriptor.TEST_SRC_JAR)
val sdkVersion = sdk?.version ?: return result
if (sdkVersion.isAtLeast(JavaSdkVersion.JDK_1_7)) {
result += listOf(LibraryJarDescriptor.RUNTIME_JDK7_JAR, LibraryJarDescriptor.RUNTIME_JDK7_SOURCES_JAR)
@@ -22,9 +22,11 @@ import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.roots.LibraryOrderEntry;
import com.intellij.openapi.roots.ModuleRootManager;
import com.intellij.openapi.roots.OrderRootType;
import com.intellij.openapi.roots.RootPolicy;
import com.intellij.openapi.roots.libraries.Library;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiJavaModule;
import com.intellij.psi.PsiRequiresStatement;
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments;
@@ -38,6 +40,7 @@ import org.jetbrains.kotlin.idea.project.PlatformKt;
import org.jetbrains.kotlin.idea.util.Java9StructureUtilKt;
import org.jetbrains.kotlin.idea.versions.KotlinRuntimeLibraryUtilKt;
import org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleKt;
import org.jetbrains.kotlin.utils.PathUtil;
import java.io.File;
import java.io.IOException;
@@ -48,6 +51,18 @@ import java.util.stream.StreamSupport;
public class ConfigureKotlinTest extends AbstractConfigureKotlinTest {
public void testNewLibrary_copyJar() {
doTestOneJavaModule(KotlinWithLibraryConfigurator.FileState.COPY);
ModuleRootManager.getInstance(getModule()).orderEntries().forEachLibrary(library -> {
assertSameElements(
Arrays.stream(library.getRootProvider().getFiles(OrderRootType.CLASSES)).map(VirtualFile::getName).toArray(),
PathUtil.KOTLIN_JAVA_STDLIB_JAR, PathUtil.KOTLIN_JAVA_REFLECT_JAR, PathUtil.KOTLIN_TEST_JAR);
assertSameElements(
Arrays.stream(library.getRootProvider().getFiles(OrderRootType.SOURCES)).map(VirtualFile::getName).toArray(),
PathUtil.KOTLIN_JAVA_STDLIB_SRC_JAR, PathUtil.KOTLIN_REFLECT_SRC_JAR, PathUtil.KOTLIN_TEST_SRC_JAR);
return true;
});
}
public void testNewLibrary_doNotCopyJar() {