Move BuildIssueException to ES api

GitOrigin-RevId: 9eaab24dfb5017cc54631f74aefa6eaeb46060c6
This commit is contained in:
Vladislav.Soroka
2019-05-17 15:04:22 +03:00
committed by intellij-monorepo-bot
parent bdad8b598d
commit da6b76589b
4 changed files with 14 additions and 15 deletions
@@ -1,5 +1,5 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.plugins.gradle.issue;
package com.intellij.openapi.externalSystem.issue;
import com.intellij.build.issue.BuildIssue;
import com.intellij.openapi.externalSystem.model.ExternalSystemException;
@@ -15,6 +15,8 @@
*/
package com.intellij.openapi.externalSystem.service.notification;
import com.intellij.build.issue.BuildIssue;
import com.intellij.build.issue.BuildIssueQuickFix;
import com.intellij.execution.rmi.RemoteUtil;
import com.intellij.ide.errorTreeView.*;
import com.intellij.notification.Notification;
@@ -24,6 +26,7 @@ import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.externalSystem.issue.BuildIssueException;
import com.intellij.openapi.externalSystem.model.LocationAwareExternalSystemException;
import com.intellij.openapi.externalSystem.model.ProjectSystemId;
import com.intellij.openapi.externalSystem.service.project.manage.ExternalProjectsManagerImpl;
@@ -130,6 +133,14 @@ public class ExternalSystemNotificationManager implements Disposable {
title, message, notificationCategory, NotificationSource.PROJECT_SYNC,
filePath, ObjectUtils.notNull(line, -1), ObjectUtils.notNull(column, -1), false);
if (unwrapped instanceof BuildIssueException) {
BuildIssue buildIssue = ((BuildIssueException)unwrapped).getBuildIssue();
for (BuildIssueQuickFix quickFix : buildIssue.getQuickFixes()) {
notificationData.setListener(quickFix.getId(), (notification, event) -> quickFix.runQuickFix(project));
}
return notificationData;
}
for (ExternalSystemNotificationExtension extension: ExternalSystemNotificationExtension.EP_NAME.getExtensions()) {
final ProjectSystemId targetExternalSystemId = extension.getTargetExternalSystemId();
if (!externalSystemId.equals(targetExternalSystemId) && !targetExternalSystemId.equals(ProjectSystemId.IDE)) {
@@ -142,6 +153,7 @@ public class ExternalSystemNotificationManager implements Disposable {
private static boolean isInternalError(@NotNull Throwable error,
@NotNull ProjectSystemId externalSystemId) {
if (RemoteUtil.unwrap(error) instanceof BuildIssueException) return false;
return ExternalSystemNotificationExtension.EP_NAME.extensions()
.anyMatch(extension -> externalSystemId.equals(extension.getTargetExternalSystemId()) && extension.isInternalError(error));
}
@@ -15,8 +15,6 @@
*/
package org.jetbrains.plugins.gradle.service.notification;
import com.intellij.build.issue.BuildIssue;
import com.intellij.build.issue.BuildIssueQuickFix;
import com.intellij.execution.rmi.RemoteUtil;
import com.intellij.openapi.externalSystem.model.ExternalSystemException;
import com.intellij.openapi.externalSystem.model.LocationAwareExternalSystemException;
@@ -27,7 +25,6 @@ import com.intellij.openapi.externalSystem.service.notification.callback.OpenExt
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.gradle.issue.BuildIssueException;
import org.jetbrains.plugins.gradle.util.GradleConstants;
import java.io.ObjectStreamException;
@@ -54,9 +51,6 @@ public class GradleNotificationExtension implements ExternalSystemNotificationEx
// gradle tooling internal serialization issues
return true;
}
if (unwrapped instanceof BuildIssueException) {
return false;
}
if (unwrapped instanceof ExternalSystemException) {
Throwable cause = unwrapped.getCause();
if (cause != null) {
@@ -84,13 +78,6 @@ public class GradleNotificationExtension implements ExternalSystemNotificationEx
protected void updateNotification(@NotNull final NotificationData notificationData,
@NotNull final Project project,
@NotNull ExternalSystemException e) {
if(e instanceof BuildIssueException) {
BuildIssue buildIssue = ((BuildIssueException)e).getBuildIssue();
for (BuildIssueQuickFix quickFix : buildIssue.getQuickFixes()) {
notificationData.setListener(quickFix.getId(), (notification, event) -> quickFix.runQuickFix(project));
}
return;
}
for (String fix : e.getQuickFixes()) {
if (OpenGradleSettingsCallback.ID.equals(fix)) {
notificationData.setListener(OpenGradleSettingsCallback.ID, new OpenGradleSettingsCallback(project));
@@ -19,6 +19,7 @@ import com.intellij.build.issue.BuildIssue;
import com.intellij.build.issue.BuildIssueChecker;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.externalSystem.issue.BuildIssueException;
import com.intellij.openapi.externalSystem.model.ExternalSystemException;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.util.text.StringUtil;
@@ -28,7 +29,6 @@ import org.gradle.tooling.model.build.BuildEnvironment;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.gradle.issue.BuildIssueException;
import org.jetbrains.plugins.gradle.issue.GradleIssueChecker;
import org.jetbrains.plugins.gradle.issue.GradleIssueData;
import org.jetbrains.plugins.gradle.service.execution.GradleExecutionErrorHandler;