mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-79735 android: perform light build when test-ng or scala test configurations are used
This commit is contained in:
@@ -54,6 +54,7 @@
|
||||
<orderEntry type="module" module-name="properties" />
|
||||
<orderEntry type="library" name="xpp3-1.1.4-min" level="project" />
|
||||
<orderEntry type="module" module-name="IntentionPowerPackPlugin" />
|
||||
<orderEntry type="module" module-name="testng" />
|
||||
</component>
|
||||
</module>
|
||||
|
||||
|
||||
@@ -77,6 +77,7 @@
|
||||
<depends>IntentionPowerPack</depends>
|
||||
|
||||
<depends optional="true" config-file="maven-support.xml">org.jetbrains.idea.maven</depends>
|
||||
<depends optional="true" config-file="test-ng.xml">TestNG-J</depends>
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<errorHandler implementation="com.intellij.diagnostic.ITNReporter"/>
|
||||
@@ -184,5 +185,6 @@
|
||||
|
||||
<extensionPoints>
|
||||
<extensionPoint name="mavenProvider" interface="org.jetbrains.android.maven.AndroidMavenProvider"/>
|
||||
<extensionPoint name="lightBuildProvider" interface="org.jetbrains.android.compiler.AndroidLightBuildProvider"/>
|
||||
</extensionPoints>
|
||||
</idea-plugin>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<!DOCTYPE idea-plugin PUBLIC "Plugin/DTD" "http://plugins.intellij.net/plugin.dtd">
|
||||
<idea-plugin url="http://www.jetbrains.com/idea">
|
||||
<extensions defaultExtensionNs="org.jetbrains">
|
||||
<android.lightBuildProvider implementation="org.jetbrains.android.compiler.AndroidTestNgLightBuildProvider"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
@@ -84,6 +84,10 @@ public class AndroidCompileUtil {
|
||||
|
||||
@NonNls private static final String PROGUARD_CFG_FILE_NAME = "proguard.cfg";
|
||||
@NonNls public static final String CLASSES_JAR_FILE_NAME = "classes.jar";
|
||||
|
||||
@NonNls
|
||||
private static final String[] SCALA_TEST_CONFIGURATIONS =
|
||||
{"ScalaTestRunConfiguration", "SpecsRunConfiguration", "Specs2RunConfiguration"};
|
||||
|
||||
private AndroidCompileUtil() {
|
||||
}
|
||||
@@ -598,8 +602,23 @@ public class AndroidCompileUtil {
|
||||
}
|
||||
|
||||
public static boolean isFullBuild(@NotNull CompileContext context) {
|
||||
RunConfiguration runConfiguration = CompileStepBeforeRun.getRunConfiguration(context);
|
||||
return !(runConfiguration instanceof JUnitConfiguration);
|
||||
final RunConfiguration runConfiguration = CompileStepBeforeRun.getRunConfiguration(context);
|
||||
|
||||
if (runConfiguration == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (runConfiguration instanceof JUnitConfiguration) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (AndroidLightBuildProvider provider : AndroidLightBuildProvider.EP_NAME.getExtensions()) {
|
||||
if (provider.toPerformLightBuild(runConfiguration)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
final String id = runConfiguration.getType().getId();
|
||||
return ArrayUtil.find(SCALA_TEST_CONFIGURATIONS, id) < 0;
|
||||
}
|
||||
|
||||
public static boolean isReleaseBuild(@NotNull CompileContext context) {
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package org.jetbrains.android.compiler;
|
||||
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author Eugene.Kudelevsky
|
||||
*/
|
||||
public interface AndroidLightBuildProvider {
|
||||
ExtensionPointName<AndroidLightBuildProvider> EP_NAME = ExtensionPointName.create("org.jetbrains.android.lightBuildProvider");
|
||||
|
||||
boolean toPerformLightBuild(@NotNull RunConfiguration runConfiguration);
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package org.jetbrains.android.compiler;
|
||||
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.theoryinpractice.testng.configuration.TestNGConfiguration;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author Eugene.Kudelevsky
|
||||
*/
|
||||
public class AndroidTestNgLightBuildProvider implements AndroidLightBuildProvider {
|
||||
@Override
|
||||
public boolean toPerformLightBuild(@NotNull RunConfiguration runConfiguration) {
|
||||
return runConfiguration instanceof TestNGConfiguration;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user