mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
maven: save maven project tree data in the background thread
This commit is contained in:
+26
-7
@@ -114,17 +114,22 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent
|
||||
|
||||
private MavenWorkspaceSettings myWorkspaceSettings;
|
||||
|
||||
private MavenMergingUpdateQueue mySaveQueue;
|
||||
private static final int SAVE_DELAY = 1000;
|
||||
|
||||
public static MavenProjectsManager getInstance(Project p) {
|
||||
return p.getComponent(MavenProjectsManager.class);
|
||||
}
|
||||
|
||||
public MavenProjectsManager(Project project) {
|
||||
super(project);
|
||||
myEmbeddersManager = new MavenEmbeddersManager(myProject);
|
||||
myEmbeddersManager = new MavenEmbeddersManager(project);
|
||||
myModificationTracker = new MavenModificationTracker(this);
|
||||
myInitializationAlarm = new Alarm(Alarm.ThreadToUse.POOLED_THREAD, project);
|
||||
mySaveQueue = new MavenMergingUpdateQueue("Maven save queue", SAVE_DELAY, !isUnitTestMode(), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MavenProjectsManagerState getState() {
|
||||
if (isInitialized()) {
|
||||
applyTreeToState();
|
||||
@@ -132,6 +137,7 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent
|
||||
return myState;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadState(MavenProjectsManagerState state) {
|
||||
myState = state;
|
||||
if (isInitialized()) {
|
||||
@@ -140,6 +146,12 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disposeComponent() {
|
||||
super.disposeComponent();
|
||||
Disposer.dispose(mySaveQueue);
|
||||
}
|
||||
|
||||
public ModificationTracker getModificationTracker() {
|
||||
return myModificationTracker;
|
||||
}
|
||||
@@ -324,14 +336,20 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent
|
||||
myProjectsTree.setIgnoredFilesPatterns(myState.ignoredPathMasks);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save() {
|
||||
if (myProjectsTree != null) {
|
||||
try {
|
||||
myProjectsTree.save(getProjectsTreeFile());
|
||||
}
|
||||
catch (IOException e) {
|
||||
MavenLog.LOG.info(e);
|
||||
}
|
||||
mySaveQueue.queue(new Update(MavenProjectsManager.this) {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
myProjectsTree.save(getProjectsTreeFile());
|
||||
}
|
||||
catch (IOException e) {
|
||||
MavenLog.LOG.info(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -507,6 +525,7 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent
|
||||
myFoldersResolvingProcessor.stop();
|
||||
myArtifactsDownloadingProcessor.stop();
|
||||
myPostProcessor.stop();
|
||||
mySaveQueue.flush();
|
||||
|
||||
if (isUnitTestMode()) {
|
||||
FileUtil.delete(getProjectsTreesDir());
|
||||
|
||||
Reference in New Issue
Block a user