Build: Remove duplicated compiler.xml from idea module
Workaround for JPS build by copying compiler.xml in test runner before tests For gradle just copy it in the processResourcesTask of idea project #KT-34528
This commit is contained in:
+21
@@ -26,9 +26,13 @@ import org.junit.runner.Runner;
|
|||||||
import org.junit.runner.manipulation.*;
|
import org.junit.runner.manipulation.*;
|
||||||
import org.junit.runner.notification.RunNotifier;
|
import org.junit.runner.notification.RunNotifier;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
|
||||||
import static org.jetbrains.kotlin.test.JUnit3RunnerWithInners.isTestMethod;
|
import static org.jetbrains.kotlin.test.JUnit3RunnerWithInners.isTestMethod;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -45,6 +49,7 @@ public class JUnit3RunnerWithInnersForJPS extends Runner implements Filterable,
|
|||||||
public JUnit3RunnerWithInnersForJPS(Class<?> klass) {
|
public JUnit3RunnerWithInnersForJPS(Class<?> klass) {
|
||||||
this.klass = klass;
|
this.klass = klass;
|
||||||
requestedRunners.add(klass);
|
requestedRunners.add(klass);
|
||||||
|
ensureCompilerXmlExists();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -76,6 +81,22 @@ public class JUnit3RunnerWithInnersForJPS extends Runner implements Filterable,
|
|||||||
delegateRunner = new JUnit38ClassRunner(getCollectedTests());
|
delegateRunner = new JUnit38ClassRunner(getCollectedTests());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* compiler.xml needs to be in both compiler & ide module for tests execution.
|
||||||
|
* To avoid file duplication copy it to the out dir idea module before test execution.
|
||||||
|
*/
|
||||||
|
private static void ensureCompilerXmlExists() {
|
||||||
|
String compilerXmlSourcePath = "compiler/cli/cli-common/resources/META-INF/extensions/compiler.xml";
|
||||||
|
String compilerXmlTargetPath = "out/production/kotlin.idea.main/META-INF/extensions/compiler.xml";
|
||||||
|
|
||||||
|
try {
|
||||||
|
Files.copy(Paths.get(compilerXmlSourcePath), Paths.get(compilerXmlTargetPath), REPLACE_EXISTING);
|
||||||
|
}
|
||||||
|
catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Test getCollectedTests() {
|
private Test getCollectedTests() {
|
||||||
List<Class> innerClasses = collectDeclaredClasses(klass, false);
|
List<Class> innerClasses = collectDeclaredClasses(klass, false);
|
||||||
Set<Class> unprocessedInnerClasses = unprocessedClasses(innerClasses);
|
Set<Class> unprocessedInnerClasses = unprocessedClasses(innerClasses);
|
||||||
|
|||||||
@@ -197,6 +197,12 @@ dependencies {
|
|||||||
performanceTestRuntime(sourceSets["performanceTest"].output)
|
performanceTestRuntime(sourceSets["performanceTest"].output)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.named<Copy>("processResources") {
|
||||||
|
from(provider { project(":compiler:cli-common").mainSourceSet.resources }) {
|
||||||
|
include("META-INF/extensions/compiler.xml")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
projectTest(parallel = true) {
|
projectTest(parallel = true) {
|
||||||
dependsOn(":dist")
|
dependsOn(":dist")
|
||||||
workingDir = rootDir
|
workingDir = rootDir
|
||||||
|
|||||||
@@ -1,66 +0,0 @@
|
|||||||
<idea-plugin>
|
|
||||||
<id>org.jetbrains.kotlin</id>
|
|
||||||
<version>1.2</version>
|
|
||||||
|
|
||||||
<extensionPoints>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.diagnosticSuppressor"
|
|
||||||
interface="org.jetbrains.kotlin.resolve.diagnostics.DiagnosticSuppressor"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.analyzeCompleteHandlerExtension"
|
|
||||||
interface="org.jetbrains.kotlin.resolve.jvm.extensions.AnalysisHandlerExtension"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.extensions.internal.callResolutionInterceptorExtension"
|
|
||||||
interface="org.jetbrains.kotlin.extensions.internal.CallResolutionInterceptorExtension"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.extensions.internal.typeResolutionInterceptorExtension"
|
|
||||||
interface="org.jetbrains.kotlin.extensions.internal.TypeResolutionInterceptorExtension"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.expressionCodegenExtension"
|
|
||||||
interface="org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.syntheticResolveExtension"
|
|
||||||
interface="org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.jsSyntheticTranslateExtension"
|
|
||||||
interface="org.jetbrains.kotlin.js.translate.extensions.JsSyntheticTranslateExtension"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.irGenerationExtension"
|
|
||||||
interface="org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.simpleNameReferenceExtension"
|
|
||||||
interface="org.jetbrains.kotlin.plugin.references.SimpleNameReferenceExtension"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.kotlinIndicesHelperExtension"
|
|
||||||
interface="org.jetbrains.kotlin.idea.core.extension.KotlinIndicesHelperExtension"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.classBuilderFactoryInterceptorExtension"
|
|
||||||
interface="org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.packageFragmentProviderExtension"
|
|
||||||
interface="org.jetbrains.kotlin.resolve.jvm.extensions.PackageFragmentProviderExtension"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.quickFixContributor"
|
|
||||||
interface="org.jetbrains.kotlin.idea.quickfix.QuickFixContributor"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.storageComponentContainerContributor"
|
|
||||||
interface="org.jetbrains.kotlin.extensions.StorageComponentContainerContributor"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.scriptDefinitionContributor"
|
|
||||||
interface="org.jetbrains.kotlin.idea.core.script.ScriptDefinitionContributor"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.scriptTemplatesProvider"
|
|
||||||
interface="org.jetbrains.kotlin.script.ScriptTemplatesProvider"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.extraImportsProviderExtension"
|
|
||||||
interface="org.jetbrains.kotlin.resolve.extensions.ExtraImportsProviderExtension"
|
|
||||||
area="IDEA_PROJECT"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.facetConfigurationExtension"
|
|
||||||
interface="org.jetbrains.kotlin.idea.facet.KotlinFacetConfigurationExtension"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.versionInfoProvider"
|
|
||||||
interface="org.jetbrains.kotlin.idea.facet.KotlinVersionInfoProvider"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.completionInformationProvider"
|
|
||||||
interface="org.jetbrains.kotlin.idea.completion.CompletionInformationProvider" />
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.moduleBuilder"
|
|
||||||
interface="com.intellij.ide.util.projectWizard.ModuleBuilder"/>
|
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.renameHandler"
|
|
||||||
interface="com.intellij.refactoring.rename.RenameHandler"/>
|
|
||||||
</extensionPoints>
|
|
||||||
</idea-plugin>
|
|
||||||
Reference in New Issue
Block a user