diff --git a/build.gradle.kts b/build.gradle.kts index ce264462..1cb1edc7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,7 @@ import org.jetbrains.intellij.platform.gradle.IntelliJPlatformType import org.jetbrains.intellij.platform.gradle.TestFrameworkType import org.jetbrains.intellij.platform.gradle.models.ProductRelease +import org.jetbrains.intellij.platform.gradle.tasks.VerifyPluginTask plugins { id("java") // Java support @@ -99,6 +100,10 @@ val runIdeForUiTests by intellijPlatformTesting.runIde.registering { intellijPlatform { pluginVerification { + failureLevel = listOf( + VerifyPluginTask.FailureLevel.COMPATIBILITY_PROBLEMS, + VerifyPluginTask.FailureLevel.INTERNAL_API_USAGES + ) ides { select { types = listOf(IntelliJPlatformType.IntellijIdeaCommunity) diff --git a/src/main/java/org/jboss/tools/intellij/componentanalysis/gradle/GradleCAUpdateManifestIntentionAction.java b/src/main/java/org/jboss/tools/intellij/componentanalysis/gradle/GradleCAUpdateManifestIntentionAction.java index b277c90e..51077cf7 100644 --- a/src/main/java/org/jboss/tools/intellij/componentanalysis/gradle/GradleCAUpdateManifestIntentionAction.java +++ b/src/main/java/org/jboss/tools/intellij/componentanalysis/gradle/GradleCAUpdateManifestIntentionAction.java @@ -12,6 +12,7 @@ import org.jboss.tools.intellij.componentanalysis.gradle.build.psi.BuildGradleFile; import org.jboss.tools.intellij.componentanalysis.gradle.build.psi.BuildGradleTypes; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.Arrays; @@ -28,6 +29,9 @@ public GradleCAUpdateManifestIntentionAction(PsiElement element, DependencyRepor @Override protected void updateManifest(Project project, Editor editor, PsiFile file, DependencyReport dependency) { PsiElement repositories = getRepositoriesFromBuildGradle(file); + if (repositories == null) { + return; + } String repositoriesBlock = repositories.getText(); int lastRightCurlyBracket = repositoriesBlock.lastIndexOf("}"); repositoriesBlock = repositoriesBlock.substring(0,lastRightCurlyBracket); @@ -44,10 +48,9 @@ protected void updateManifest(Project project, Editor editor, PsiFile file, Depe } - private static @NotNull PsiElement getRepositoriesFromBuildGradle(PsiFile file) { - PsiElement repositories = Arrays.stream(file.getChildren()).filter(psi -> psi instanceof LeafPsiElement) - .filter(psi -> ((LeafPsiElement) psi).getElementType().getDebugName().equals(BuildGradleTypes.REPOSITORIES.getDebugName())).findFirst().get(); - return repositories; + private static @Nullable PsiElement getRepositoriesFromBuildGradle(PsiFile file) { + return Arrays.stream(file.getChildren()).filter(psi -> psi instanceof LeafPsiElement) + .filter(psi -> ((LeafPsiElement) psi).getElementType() == BuildGradleTypes.REPOSITORIES).findFirst().orElse(null); } private static @NotNull String formatArtifactsRepository(String repositoryUrl) { @@ -56,9 +59,12 @@ protected void updateManifest(Project project, Editor editor, PsiFile file, Depe @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { + PsiElement repositoriesFromBuildGradle = getRepositoriesFromBuildGradle(file); + if (repositoriesFromBuildGradle == null) { + return false; + } final String mavenRhGa = "https://maven.repository.redhat.com/ga/"; String mavenGaRepo = formatArtifactsRepository(mavenRhGa); - PsiElement repositoriesFromBuildGradle = getRepositoriesFromBuildGradle(file); return !(repositoriesFromBuildGradle.getText().contains(mavenGaRepo) || repositoriesFromBuildGradle.getText().contains(mavenRhGa)); } }