mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-CR-52830 IDEA-221682 - replaced baloon with build tool window event
GitOrigin-RevId: 3ec9a7f0957bef494056e1f8bb1a44cc501a4419
This commit is contained in:
committed by
intellij-monorepo-bot
parent
adbbcef28a
commit
01d7728d21
@@ -9,12 +9,16 @@ import com.intellij.build.events.EventResult
|
||||
import com.intellij.build.events.MessageEvent
|
||||
import com.intellij.build.events.MessageEventResult
|
||||
import com.intellij.build.events.impl.*
|
||||
import com.intellij.build.issue.BuildIssue
|
||||
import com.intellij.build.issue.BuildIssueQuickFix
|
||||
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId
|
||||
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskType
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.registry.Registry
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import org.jetbrains.idea.maven.buildtool.quickfix.OpenMavenSettingsQuickFix
|
||||
import org.jetbrains.idea.maven.buildtool.quickfix.UseBundledMavenQuickFix
|
||||
import org.jetbrains.idea.maven.execution.SyncBundle
|
||||
import org.jetbrains.idea.maven.server.MavenServerProgressIndicator
|
||||
import org.jetbrains.idea.maven.utils.MavenLog
|
||||
@@ -172,6 +176,7 @@ class MavenSyncConsole(private val myProject: Project) {
|
||||
completeTask(downloadString, downloadArtifactString, SuccessResultImpl(false))
|
||||
}
|
||||
|
||||
|
||||
@Synchronized
|
||||
private fun downloadEventFailed(keyPrefix: String, dependency: String, error: String, stackTrace: String?) = doIfImportInProcess{
|
||||
val downloadString = SyncBundle.message("${keyPrefix}.download")
|
||||
@@ -201,6 +206,18 @@ class MavenSyncConsole(private val myProject: Project) {
|
||||
}
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
fun showQuickFixBadMaven(message: String, kind: MessageEvent.Kind) {
|
||||
mySyncView.onEvent(mySyncId, BuildIssueEventImpl(mySyncId, object : BuildIssue {
|
||||
override val title = "Bad maven version"
|
||||
override val description: String = "${message}\n" +
|
||||
"- <a href=\"${OpenMavenSettingsQuickFix.ID}\">Open Settings</a>\n" +
|
||||
"- <a href=\"${UseBundledMavenQuickFix.ID}\">Use Bundled</a>\n"
|
||||
|
||||
override val quickFixes: List<BuildIssueQuickFix> = listOf(OpenMavenSettingsQuickFix(), UseBundledMavenQuickFix())
|
||||
}, kind))
|
||||
}
|
||||
|
||||
private fun isJavadocOrSource(dependency: String): Boolean {
|
||||
val split = dependency.split(':')
|
||||
if (split.size < 4) {
|
||||
@@ -215,7 +232,6 @@ class MavenSyncConsole(private val myProject: Project) {
|
||||
action.invoke()
|
||||
}
|
||||
|
||||
|
||||
private inner class ArtifactSyncListenerImpl(val keyPrefix: String) : ArtifactSyncListener {
|
||||
override fun downloadStarted(dependency: String) {
|
||||
downloadEventStarted(keyPrefix, dependency)
|
||||
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
// 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.idea.maven.buildtool.quickfix
|
||||
|
||||
import com.intellij.build.issue.BuildIssueQuickFix
|
||||
import com.intellij.openapi.actionSystem.DataProvider
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.options.ShowSettingsUtil
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.idea.maven.utils.MavenSettings
|
||||
import java.util.concurrent.CompletableFuture
|
||||
|
||||
class OpenMavenSettingsQuickFix : BuildIssueQuickFix {
|
||||
override val id: String = ID
|
||||
|
||||
override fun runQuickFix(project: Project, dataProvider: DataProvider): CompletableFuture<*> {
|
||||
ApplicationManager.getApplication().invokeLater {
|
||||
ShowSettingsUtil.getInstance().showSettingsDialog(project, MavenSettings.DISPLAY_NAME)
|
||||
}
|
||||
return CompletableFuture.completedFuture(null)
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val ID = "open_maven_settings_quick_fix"
|
||||
}
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
// 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.idea.maven.buildtool.quickfix
|
||||
|
||||
import com.intellij.build.issue.BuildIssueQuickFix
|
||||
import com.intellij.ide.actions.ShowSettingsUtilImpl
|
||||
import com.intellij.notification.Notification
|
||||
import com.intellij.notification.NotificationType
|
||||
import com.intellij.openapi.actionSystem.DataProvider
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.options.ShowSettingsUtil
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.idea.maven.project.MavenGeneralSettings
|
||||
import org.jetbrains.idea.maven.project.MavenWorkspaceSettings
|
||||
import org.jetbrains.idea.maven.project.MavenWorkspaceSettingsComponent
|
||||
import org.jetbrains.idea.maven.server.MavenServerManager
|
||||
import org.jetbrains.idea.maven.utils.MavenSettings
|
||||
import org.jetbrains.idea.maven.utils.MavenUtil
|
||||
import java.util.concurrent.CompletableFuture
|
||||
|
||||
class UseBundledMavenQuickFix: BuildIssueQuickFix {
|
||||
override val id: String = ID
|
||||
|
||||
override fun runQuickFix(project: Project, dataProvider: DataProvider): CompletableFuture<*> {
|
||||
MavenWorkspaceSettingsComponent.getInstance(project).settings.generalSettings.mavenHome = MavenServerManager.BUNDLED_MAVEN_3
|
||||
Notification(MavenUtil.MAVEN_NOTIFICATION_GROUP, "", "Maven version changed to ${MavenServerManager.getInstance().currentMavenVersion}", NotificationType.INFORMATION).notify(null)
|
||||
return CompletableFuture.completedFuture(null)
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val ID = "use_bundled_maven_quick_fix"
|
||||
}
|
||||
|
||||
}
|
||||
@@ -59,6 +59,7 @@ import org.jetbrains.idea.maven.importing.MavenProjectImporter;
|
||||
import org.jetbrains.idea.maven.model.*;
|
||||
import org.jetbrains.idea.maven.project.MavenArtifactDownloader.DownloadResult;
|
||||
import org.jetbrains.idea.maven.server.MavenEmbedderWrapper;
|
||||
import org.jetbrains.idea.maven.server.MavenServerManager;
|
||||
import org.jetbrains.idea.maven.server.MavenServerProgressIndicator;
|
||||
import org.jetbrains.idea.maven.server.NativeMavenProjectHolder;
|
||||
import org.jetbrains.idea.maven.utils.*;
|
||||
@@ -884,6 +885,7 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent
|
||||
|
||||
public Promise<List<Module>> scheduleImportAndResolve(boolean fromAutoImport) {
|
||||
getSyncConsole().startImport(myProgressListener, fromAutoImport);
|
||||
MavenServerManager.getInstance().showMavenNotifications(getSyncConsole());
|
||||
MavenSyncConsole console = getSyncConsole();
|
||||
AsyncPromise<List<Module>> promise = scheduleResolve();
|
||||
promise.onProcessed(m -> {
|
||||
|
||||
+14
-12
@@ -1,6 +1,7 @@
|
||||
// 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.idea.maven.server;
|
||||
|
||||
import com.intellij.build.events.MessageEvent;
|
||||
import com.intellij.execution.DefaultExecutionResult;
|
||||
import com.intellij.execution.ExecutionException;
|
||||
import com.intellij.execution.ExecutionResult;
|
||||
@@ -37,7 +38,6 @@ import com.intellij.util.EnvironmentUtil;
|
||||
import com.intellij.util.PathUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.io.BaseOutputReader;
|
||||
import com.intellij.util.text.VersionComparatorUtil;
|
||||
import com.intellij.util.xmlb.Converter;
|
||||
import com.intellij.util.xmlb.annotations.Attribute;
|
||||
import gnu.trove.THashMap;
|
||||
@@ -48,9 +48,11 @@ import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.annotations.TestOnly;
|
||||
import org.jetbrains.idea.maven.buildtool.MavenSyncConsole;
|
||||
import org.jetbrains.idea.maven.execution.MavenExecutionOptions;
|
||||
import org.jetbrains.idea.maven.execution.MavenRunnerSettings;
|
||||
import org.jetbrains.idea.maven.execution.RunnerBundle;
|
||||
import org.jetbrains.idea.maven.execution.SyncBundle;
|
||||
import org.jetbrains.idea.maven.model.MavenExplicitProfiles;
|
||||
import org.jetbrains.idea.maven.model.MavenModel;
|
||||
import org.jetbrains.idea.maven.project.MavenGeneralSettings;
|
||||
@@ -100,6 +102,17 @@ public class MavenServerManager extends MavenRemoteObjectWrapper<MavenServer> im
|
||||
private boolean myDownloadListenerExported;
|
||||
private State myState = new State();
|
||||
|
||||
public void showMavenNotifications(MavenSyncConsole console) {
|
||||
String mavenVersion = getCurrentMavenVersion();
|
||||
if (mavenVersion == null) {
|
||||
console.showQuickFixBadMaven(SyncBundle.message("maven.sync.quickfixes.nomaven"), MessageEvent.Kind.ERROR);
|
||||
}
|
||||
|
||||
if (StringUtil.compareVersionNumbers(mavenVersion, "3.6.0") == 0) {
|
||||
console.showQuickFixBadMaven(SyncBundle.message("maven.sync.quickfixes.maven360"), MessageEvent.Kind.WARNING);
|
||||
}
|
||||
}
|
||||
|
||||
private static class BundledMavenPathHolder {
|
||||
private static final File myBundledMaven2Home;
|
||||
private static final File myBundledMaven3Home;
|
||||
@@ -308,15 +321,6 @@ public class MavenServerManager extends MavenRemoteObjectWrapper<MavenServer> im
|
||||
}
|
||||
}
|
||||
|
||||
private static void showNofificationIfMaven360(@NotNull String mavenVersion, @NotNull String sdkConfigLocation) {
|
||||
if(StringUtil.compareVersionNumbers(mavenVersion, "3.6.0") == 0) {
|
||||
new Notification(MavenUtil.MAVEN_NOTIFICATION_GROUP, "",
|
||||
"You use Maven 3.6.0, there could be issues importing multimodule project.<br>" +
|
||||
"It is recommended to upgrade or downgrade Maven version at <br>" +
|
||||
sdkConfigLocation,
|
||||
NotificationType.WARNING).notify(null);
|
||||
}
|
||||
}
|
||||
|
||||
public static File getMavenEventListener() {
|
||||
return BundledMavenPathHolder.eventListenerJar;
|
||||
@@ -725,8 +729,6 @@ public class MavenServerManager extends MavenRemoteObjectWrapper<MavenServer> im
|
||||
String sdkConfigLocation = "Settings | Build, Execution, Deployment | Build Tools | Maven | Importing | JDK for Importer";
|
||||
verifyMavenSdkRequirements(jdk, mavenVersion, sdkConfigLocation);
|
||||
|
||||
showNofificationIfMaven360(mavenVersion,sdkConfigLocation);
|
||||
|
||||
final List<String> classPath = new ArrayList<>();
|
||||
classPath.add(PathUtil.getJarPathForClass(org.apache.log4j.Logger.class));
|
||||
if (StringUtil.compareVersionNumbers(mavenVersion, "3.1") < 0) {
|
||||
|
||||
@@ -6,4 +6,7 @@ maven.sync.plugins.artifact.download=Downloading {0}
|
||||
maven.sync.dependencies.resolve=Resolve dependencies
|
||||
maven.sync.dependencies.resolve.error=Cannot resolve {0}
|
||||
maven.sync.dependencies.download=Downloading dependencies
|
||||
maven.sync.dependencies.artifact.download=Downloading {0}
|
||||
maven.sync.dependencies.artifact.download=Downloading {0}
|
||||
|
||||
maven.sync.quickfixes.nomaven=Maven version not defined
|
||||
maven.sync.quickfixes.maven360=You use Maven 3.6.0, there could be issues importing multimodule project. It is recommended to upgrade or downgrade Maven version
|
||||
|
||||
Reference in New Issue
Block a user