You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by lk...@apache.org on 2020/10/23 01:10:55 UTC
[netbeans] 08/18: Make sure Maven project is refreshed before build
is over
This is an automated email from the ASF dual-hosted git repository.
lkishalmi pushed a commit to branch release122
in repository https://gitbox.apache.org/repos/asf/netbeans.git
commit e3f1aeda5cf0dc2345fa1e74f58a99d572674bcd
Author: Jaroslav Tulach <ja...@oracle.com>
AuthorDate: Tue Oct 20 08:37:50 2020 +0200
Make sure Maven project is refreshed before build is over
---
.../netbeans/modules/maven/ActionProviderImpl.java | 6 ++----
.../netbeans/modules/maven/NbMavenProjectImpl.java | 7 ++++---
.../netbeans/modules/maven/api/NbMavenProject.java | 5 +++--
.../maven/execute/MavenCommandLineExecutor.java | 19 ++++++++-----------
4 files changed, 17 insertions(+), 20 deletions(-)
diff --git a/java/maven/src/org/netbeans/modules/maven/ActionProviderImpl.java b/java/maven/src/org/netbeans/modules/maven/ActionProviderImpl.java
index a9dd035..add44f8 100644
--- a/java/maven/src/org/netbeans/modules/maven/ActionProviderImpl.java
+++ b/java/maven/src/org/netbeans/modules/maven/ActionProviderImpl.java
@@ -275,10 +275,8 @@ public class ActionProviderImpl implements ActionProvider {
final ActionProgress listener = ActionProgress.start(lookup);
final ExecutorTask task = RunUtils.run(rc);
if (task != null) {
- task.addTaskListener(new TaskListener() {
- @Override public void taskFinished(Task t) {
- listener.finished(task.result() == 0);
- }
+ task.addTaskListener((Task t) -> {
+ listener.finished(task.result() == 0);
});
} else {
listener.finished(false);
diff --git a/java/maven/src/org/netbeans/modules/maven/NbMavenProjectImpl.java b/java/maven/src/org/netbeans/modules/maven/NbMavenProjectImpl.java
index ccc98b3..2708f1a 100644
--- a/java/maven/src/org/netbeans/modules/maven/NbMavenProjectImpl.java
+++ b/java/maven/src/org/netbeans/modules/maven/NbMavenProjectImpl.java
@@ -467,15 +467,16 @@ public final class NbMavenProjectImpl implements Project {
- public void fireProjectReload() {
+ public RequestProcessor.Task fireProjectReload() {
//#227101 not only AWT and project read/write mutex has to be checked, there are some additional more
//complex scenarios that can lead to deadlock. Just give up and always fire changes in separate RP.
if (Boolean.getBoolean("test.reload.sync")) {
reloadTask.run();
//for tests just do sync reload, even though silly, even sillier is to attempt to sync the threads..
- return;
+ } else {
+ reloadTask.schedule(0); //asuming here that schedule(0) will move the scheduled task in the queue if not yet executed
}
- reloadTask.schedule(0); //asuming here that schedule(0) will move the scheduled task in the queue if not yet executed
+ return reloadTask;
}
public static void refreshLocalRepository(NbMavenProjectImpl project) {
diff --git a/java/maven/src/org/netbeans/modules/maven/api/NbMavenProject.java b/java/maven/src/org/netbeans/modules/maven/api/NbMavenProject.java
index 17b90a5..8fdf544 100644
--- a/java/maven/src/org/netbeans/modules/maven/api/NbMavenProject.java
+++ b/java/maven/src/org/netbeans/modules/maven/api/NbMavenProject.java
@@ -63,6 +63,7 @@ import org.openide.filesystems.FileUtil;
import org.openide.util.Lookup;
import org.openide.util.NbBundle.Messages;
import org.openide.util.RequestProcessor;
+import org.openide.util.Task;
import org.openide.util.Utilities;
/**
@@ -546,8 +547,8 @@ public final class NbMavenProject {
/**
*
*/
- private void fireProjectReload() {
- project.fireProjectReload();
+ private RequestProcessor.Task fireProjectReload() {
+ return project.fireProjectReload();
}
private void doFireReload() {
diff --git a/java/maven/src/org/netbeans/modules/maven/execute/MavenCommandLineExecutor.java b/java/maven/src/org/netbeans/modules/maven/execute/MavenCommandLineExecutor.java
index 770e556..e920702 100644
--- a/java/maven/src/org/netbeans/modules/maven/execute/MavenCommandLineExecutor.java
+++ b/java/maven/src/org/netbeans/modules/maven/execute/MavenCommandLineExecutor.java
@@ -58,6 +58,8 @@ import org.netbeans.api.extexecution.base.Processes;
import org.netbeans.api.java.platform.JavaPlatform;
import org.netbeans.api.progress.ProgressHandle;
import org.netbeans.api.progress.ProgressHandleFactory;
+import org.netbeans.api.project.Project;
+import org.netbeans.modules.maven.NbMavenProjectImpl;
import org.netbeans.modules.maven.api.Constants;
import org.netbeans.modules.maven.api.FileUtilities;
import org.netbeans.modules.maven.api.NbMavenProject;
@@ -318,18 +320,13 @@ public class MavenCommandLineExecutor extends AbstractMavenExecutor {
ioput.getErr().close();
actionStatesAtFinish(out.createResumeFromFinder(), out.getExecutionTree());
markFreeTab();
- RP.post(new Runnable() { //#103460
- @Override
- public void run() {
- //TODO we eventually know the coordinates of all built projects via EventSpy.
- if (clonedConfig.getProject() != null) {
- NbMavenProject.fireMavenProjectReload(clonedConfig.getProject());
- }
- }
- });
-
+ final Project prj = clonedConfig.getProject();
+ NbMavenProjectImpl impl = prj.getLookup().lookup(NbMavenProjectImpl.class);
+ if (impl != null) {
+ RequestProcessor.Task reloadTask = impl.fireProjectReload();
+ reloadTask.waitFinished();
+ }
}
-
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists