Add sources for 'reflect' and 'test' libs during JPS config (KT-20956)
#KT-20956 Fixed
This commit is contained in:
@@ -53,7 +53,10 @@ object PathUtil {
|
|||||||
const val KOTLIN_JAVA_STDLIB_JAR = "$KOTLIN_JAVA_STDLIB_NAME.jar"
|
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_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_JAVA_SCRIPT_RUNTIME_JAR = "kotlin-script-runtime.jar"
|
||||||
|
|
||||||
const val KOTLIN_TEST_NAME = "kotlin-test"
|
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_TEST_JS_JAR = "$KOTLIN_TEST_JS_NAME.jar"
|
||||||
|
|
||||||
const val KOTLIN_JAVA_STDLIB_SRC_JAR_OLD = "kotlin-runtime-sources.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_NAME = "kotlin-compiler"
|
||||||
const val KOTLIN_COMPILER_JAR = "$KOTLIN_COMPILER_NAME.jar"
|
const val KOTLIN_COMPILER_JAR = "$KOTLIN_COMPILER_NAME.jar"
|
||||||
|
|||||||
@@ -72,10 +72,13 @@ open class KotlinJavaModuleConfigurator internal constructor() : KotlinWithLibra
|
|||||||
get() = JvmPlatform
|
get() = JvmPlatform
|
||||||
|
|
||||||
override fun getLibraryJarDescriptors(sdk: Sdk?): List<LibraryJarDescriptor> {
|
override fun getLibraryJarDescriptors(sdk: Sdk?): List<LibraryJarDescriptor> {
|
||||||
var result = listOf(LibraryJarDescriptor.RUNTIME_JAR,
|
var result = listOf(
|
||||||
LibraryJarDescriptor.REFLECT_JAR,
|
LibraryJarDescriptor.RUNTIME_JAR,
|
||||||
LibraryJarDescriptor.RUNTIME_SRC_JAR,
|
LibraryJarDescriptor.RUNTIME_SRC_JAR,
|
||||||
LibraryJarDescriptor.TEST_JAR)
|
LibraryJarDescriptor.REFLECT_JAR,
|
||||||
|
LibraryJarDescriptor.REFLECT_SRC_JAR,
|
||||||
|
LibraryJarDescriptor.TEST_JAR,
|
||||||
|
LibraryJarDescriptor.TEST_SRC_JAR)
|
||||||
val sdkVersion = sdk?.version ?: return result
|
val sdkVersion = sdk?.version ?: return result
|
||||||
if (sdkVersion.isAtLeast(JavaSdkVersion.JDK_1_7)) {
|
if (sdkVersion.isAtLeast(JavaSdkVersion.JDK_1_7)) {
|
||||||
result += listOf(LibraryJarDescriptor.RUNTIME_JDK7_JAR, LibraryJarDescriptor.RUNTIME_JDK7_SOURCES_JAR)
|
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.projectRoots.Sdk;
|
||||||
import com.intellij.openapi.roots.LibraryOrderEntry;
|
import com.intellij.openapi.roots.LibraryOrderEntry;
|
||||||
import com.intellij.openapi.roots.ModuleRootManager;
|
import com.intellij.openapi.roots.ModuleRootManager;
|
||||||
|
import com.intellij.openapi.roots.OrderRootType;
|
||||||
import com.intellij.openapi.roots.RootPolicy;
|
import com.intellij.openapi.roots.RootPolicy;
|
||||||
import com.intellij.openapi.roots.libraries.Library;
|
import com.intellij.openapi.roots.libraries.Library;
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
import com.intellij.openapi.util.io.FileUtil;
|
||||||
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import com.intellij.psi.PsiJavaModule;
|
import com.intellij.psi.PsiJavaModule;
|
||||||
import com.intellij.psi.PsiRequiresStatement;
|
import com.intellij.psi.PsiRequiresStatement;
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments;
|
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.util.Java9StructureUtilKt;
|
||||||
import org.jetbrains.kotlin.idea.versions.KotlinRuntimeLibraryUtilKt;
|
import org.jetbrains.kotlin.idea.versions.KotlinRuntimeLibraryUtilKt;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleKt;
|
import org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleKt;
|
||||||
|
import org.jetbrains.kotlin.utils.PathUtil;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -48,6 +51,18 @@ import java.util.stream.StreamSupport;
|
|||||||
public class ConfigureKotlinTest extends AbstractConfigureKotlinTest {
|
public class ConfigureKotlinTest extends AbstractConfigureKotlinTest {
|
||||||
public void testNewLibrary_copyJar() {
|
public void testNewLibrary_copyJar() {
|
||||||
doTestOneJavaModule(KotlinWithLibraryConfigurator.FileState.COPY);
|
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() {
|
public void testNewLibrary_doNotCopyJar() {
|
||||||
|
|||||||
Reference in New Issue
Block a user