181: Revert "Fix OOM in tests for 181 (Temporary workaround)"
This reverts commit 5cf45ef
This commit is contained in:
committed by
Nikolay Krasko
parent
f0a85eeefb
commit
1125926009
+22
-47
@@ -24,7 +24,6 @@ import com.intellij.core.JavaCoreApplicationEnvironment
|
|||||||
import com.intellij.core.JavaCoreProjectEnvironment
|
import com.intellij.core.JavaCoreProjectEnvironment
|
||||||
import com.intellij.lang.MetaLanguage
|
import com.intellij.lang.MetaLanguage
|
||||||
import com.intellij.lang.jvm.facade.JvmElementProvider
|
import com.intellij.lang.jvm.facade.JvmElementProvider
|
||||||
import com.intellij.openapi.Disposable
|
|
||||||
import com.intellij.openapi.extensions.Extensions
|
import com.intellij.openapi.extensions.Extensions
|
||||||
import com.intellij.openapi.extensions.ExtensionsArea
|
import com.intellij.openapi.extensions.ExtensionsArea
|
||||||
import com.intellij.openapi.fileTypes.FileTypeExtensionPoint
|
import com.intellij.openapi.fileTypes.FileTypeExtensionPoint
|
||||||
@@ -40,71 +39,47 @@ import com.intellij.psi.impl.compiled.ClsCustomNavigationPolicy
|
|||||||
import com.intellij.psi.meta.MetaDataContributor
|
import com.intellij.psi.meta.MetaDataContributor
|
||||||
import com.intellij.psi.stubs.BinaryFileStubBuilders
|
import com.intellij.psi.stubs.BinaryFileStubBuilders
|
||||||
import com.intellij.psi.util.JavaClassSupers
|
import com.intellij.psi.util.JavaClassSupers
|
||||||
import com.intellij.util.containers.MultiMap
|
|
||||||
import junit.framework.TestCase
|
import junit.framework.TestCase
|
||||||
import org.jetbrains.kotlin.utils.PathUtil
|
import org.jetbrains.kotlin.utils.PathUtil
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.net.URLClassLoader
|
import java.net.URLClassLoader
|
||||||
|
|
||||||
abstract class AbstractJavaToKotlinConverterForWebDemoTest : TestCase() {
|
abstract class AbstractJavaToKotlinConverterForWebDemoTest : TestCase() {
|
||||||
lateinit var testDisposable: Disposable
|
val DISPOSABLE = Disposer.newDisposable()
|
||||||
|
|
||||||
fun doTest(javaPath: String) {
|
fun doTest(javaPath: String) {
|
||||||
val fileContents = FileUtil.loadFile(File(javaPath), true)
|
try {
|
||||||
val javaCoreEnvironment: JavaCoreProjectEnvironment = setUpJavaCoreEnvironment()
|
val fileContents = FileUtil.loadFile(File(javaPath), true)
|
||||||
translateToKotlin(fileContents, javaCoreEnvironment.project)
|
val javaCoreEnvironment: JavaCoreProjectEnvironment = setUpJavaCoreEnvironment()
|
||||||
|
translateToKotlin(fileContents, javaCoreEnvironment.project)
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
Disposer.dispose(DISPOSABLE)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setUp() {
|
fun setUpJavaCoreEnvironment(): JavaCoreProjectEnvironment {
|
||||||
super.setUp()
|
Extensions.cleanRootArea(DISPOSABLE)
|
||||||
testDisposable = Disposer.newDisposable()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun tearDown() {
|
|
||||||
super.tearDown()
|
|
||||||
|
|
||||||
Disposer.dispose(testDisposable)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private fun setUpJavaCoreEnvironment(): JavaCoreProjectEnvironment {
|
|
||||||
Extensions.cleanRootArea(testDisposable)
|
|
||||||
val area = Extensions.getRootArea()
|
val area = Extensions.getRootArea()
|
||||||
|
|
||||||
registerExtensionPoints(area)
|
registerExtensionPoints(area)
|
||||||
|
|
||||||
val applicationEnvironment = JavaCoreApplicationEnvironment(testDisposable)
|
val applicationEnvironment = JavaCoreApplicationEnvironment(DISPOSABLE)
|
||||||
|
val javaCoreEnvironment = object : JavaCoreProjectEnvironment(DISPOSABLE, applicationEnvironment) {
|
||||||
Disposer.register(testDisposable, Disposable {
|
|
||||||
val rootArea = Extensions.getRootArea()
|
|
||||||
val availabilityListeners = rootArea::class.java.getDeclaredField("myAvailabilityListeners")
|
|
||||||
availabilityListeners.isAccessible = true
|
|
||||||
(availabilityListeners.get(rootArea) as MultiMap<String, *>)
|
|
||||||
.remove("com.intellij.virtualFileSystem")
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
val javaCoreEnvironment = object : JavaCoreProjectEnvironment(testDisposable, applicationEnvironment) {
|
|
||||||
override fun preregisterServices() {
|
override fun preregisterServices() {
|
||||||
val projectArea = Extensions.getArea(project)
|
val projectArea = Extensions.getArea(project)
|
||||||
CoreApplicationEnvironment.registerExtensionPoint(
|
CoreApplicationEnvironment.registerExtensionPoint(projectArea, PsiTreeChangePreprocessor.EP_NAME, PsiTreeChangePreprocessor::class.java)
|
||||||
projectArea,
|
|
||||||
PsiTreeChangePreprocessor.EP_NAME,
|
|
||||||
PsiTreeChangePreprocessor::class.java
|
|
||||||
)
|
|
||||||
CoreApplicationEnvironment.registerExtensionPoint(projectArea, PsiElementFinder.EP_NAME, PsiElementFinder::class.java)
|
CoreApplicationEnvironment.registerExtensionPoint(projectArea, PsiElementFinder.EP_NAME, PsiElementFinder::class.java)
|
||||||
CoreApplicationEnvironment.registerExtensionPoint(projectArea, JvmElementProvider.EP_NAME, JvmElementProvider::class.java)
|
CoreApplicationEnvironment.registerExtensionPoint(projectArea, JvmElementProvider.EP_NAME, JvmElementProvider::class.java)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
javaCoreEnvironment.project.registerService(
|
javaCoreEnvironment.project.registerService(NullableNotNullManager::class.java, object : NullableNotNullManager(javaCoreEnvironment.project) {
|
||||||
NullableNotNullManager::class.java,
|
override fun isNullable(owner: PsiModifierListOwner, checkBases: Boolean) = !isNotNull(owner, checkBases)
|
||||||
object : NullableNotNullManager(javaCoreEnvironment.project) {
|
override fun isNotNull(owner: PsiModifierListOwner, checkBases: Boolean) = true
|
||||||
override fun isNullable(owner: PsiModifierListOwner, checkBases: Boolean) = !isNotNull(owner, checkBases)
|
override fun hasHardcodedContracts(element: PsiElement): Boolean = false
|
||||||
|
override fun getPredefinedNotNulls() = emptyList<String>()
|
||||||
override fun isNotNull(owner: PsiModifierListOwner, checkBases: Boolean) = true
|
})
|
||||||
override fun hasHardcodedContracts(element: PsiElement): Boolean = false
|
|
||||||
override fun getPredefinedNotNulls() = emptyList<String>()
|
|
||||||
})
|
|
||||||
|
|
||||||
applicationEnvironment.application.registerService(JavaClassSupers::class.java, JavaClassSupersImpl::class.java)
|
applicationEnvironment.application.registerService(JavaClassSupers::class.java, JavaClassSupersImpl::class.java)
|
||||||
|
|
||||||
@@ -135,7 +110,7 @@ abstract class AbstractJavaToKotlinConverterForWebDemoTest : TestCase() {
|
|||||||
CoreApplicationEnvironment.registerExtensionPoint(area, JavaModuleSystem.EP_NAME, JavaModuleSystem::class.java)
|
CoreApplicationEnvironment.registerExtensionPoint(area, JavaModuleSystem.EP_NAME, JavaModuleSystem::class.java)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun findAnnotations(): File? {
|
fun findAnnotations(): File? {
|
||||||
var classLoader = JavaToKotlinTranslator::class.java.classLoader
|
var classLoader = JavaToKotlinTranslator::class.java.classLoader
|
||||||
while (classLoader != null) {
|
while (classLoader != null) {
|
||||||
val loader = classLoader
|
val loader = classLoader
|
||||||
|
|||||||
Reference in New Issue
Block a user