From bb3c970c4037ce5fe64d00e6ba4b9fd1b4c7f91f Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Thu, 7 Jul 2016 16:27:43 +0200 Subject: [PATCH] cleanup --- .../src/com/intellij/util/ActionRunner.java | 3 +- .../ant/config/impl/AntConfigurationImpl.java | 106 ++++++------------ .../src/messages/AntBundle.properties | 4 +- 3 files changed, 40 insertions(+), 73 deletions(-) diff --git a/platform/lang-api/src/com/intellij/util/ActionRunner.java b/platform/lang-api/src/com/intellij/util/ActionRunner.java index 75e5179d522a..d1f662cab902 100644 --- a/platform/lang-api/src/com/intellij/util/ActionRunner.java +++ b/platform/lang-api/src/com/intellij/util/ActionRunner.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -46,6 +46,7 @@ public abstract class ActionRunner { return result.throwException().getResultObject(); } + @Deprecated public static void runInsideReadAction(@NotNull final InterruptibleRunnable runnable) throws Exception { ApplicationManager.getApplication().runReadAction(new ThrowableComputable() { @Override diff --git a/plugins/ant/src/com/intellij/lang/ant/config/impl/AntConfigurationImpl.java b/plugins/ant/src/com/intellij/lang/ant/config/impl/AntConfigurationImpl.java index 59b051bf2807..de4b0c746f83 100644 --- a/plugins/ant/src/com/intellij/lang/ant/config/impl/AntConfigurationImpl.java +++ b/plugins/ant/src/com/intellij/lang/ant/config/impl/AntConfigurationImpl.java @@ -53,7 +53,6 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiManager; import com.intellij.psi.xml.XmlFile; -import com.intellij.util.ActionRunner; import com.intellij.util.EventDispatcher; import com.intellij.util.StringSetSpinAllocator; import com.intellij.util.concurrency.Semaphore; @@ -89,7 +88,7 @@ public class AntConfigurationImpl extends AntConfigurationBase implements Persis @Nullable public String get(final AbstractPropertyContainer container) { if (!container.hasProperty(this)) return null; - AntConfiguration antConfiguration = AntConfigurationImpl.INSTANCE.get(container); + AntConfiguration antConfiguration = INSTANCE.get(container); return ProjectRootManager.getInstance(antConfiguration.getProject()).getProjectSdkName(); } @@ -145,7 +144,7 @@ public class AntConfigurationImpl extends AntConfigurationBase implements Persis daemon.restart(); } else { - SwingUtilities.invokeLater(() -> daemon.restart()); + SwingUtilities.invokeLater(daemon::restart); } } }); @@ -172,19 +171,42 @@ public class AntConfigurationImpl extends AntConfigurationBase implements Persis public Element getState() { try { - final Element e = new Element("state"); - writeExternal(e); - return e; + final Element state = new Element("state"); + getProperties().writeExternal(state); + ApplicationManager.getApplication().runReadAction(() -> { + for (final AntBuildFileBase buildFile : getBuildFiles()) { + final Element element = new Element(BUILD_FILE); + element.setAttribute(URL, buildFile.getVirtualFile().getUrl()); + buildFile.writeProperties(element); + saveEvents(element, buildFile); + state.addContent(element); + } + + final List files = new ArrayList(myAntFileToContextFileMap.keySet()); + // sort in order to minimize changes + Collections.sort(files, (o1, o2) -> o1.getUrl().compareTo(o2.getUrl())); + for (VirtualFile file : files) { + final Element element = new Element(CONTEXT_MAPPING); + final VirtualFile contextFile = myAntFileToContextFileMap.get(file); + element.setAttribute(URL, file.getUrl()); + element.setAttribute(CONTEXT, contextFile.getUrl()); + state.addContent(element); + } + }); + return state; } - catch (WriteExternalException e1) { - LOG.error(e1); - return null; + catch (WriteExternalException e) { + LOG.error(e); } + return null; } public void loadState(Element state) { try { - readExternal(state); + myIsInitialized = Boolean.FALSE; + myAntWorkspaceConfiguration.loadFromProjectSettings(state); + getProperties().readExternal(state); + runWhenInitialized(() -> loadBuildFileProjectProperties(state)); } catch (InvalidDataException e) { LOG.error(e); @@ -348,17 +370,6 @@ public class AntConfigurationImpl extends AntConfigurationBase implements Persis } } - public void handleTargetRename(String oldTargetName, String newTargetName) { - synchronized (myEventToTargetMap) { - for (Map.Entry> entry : myEventToTargetMap.entrySet()) { - final Pair pair = entry.getValue(); - if (pair != null && Comparing.equal(pair.getSecond(), oldTargetName)) { - entry.setValue(Pair.create(pair.getFirst(), newTargetName)); - } - } - } - } - public void updateBuildFile(final AntBuildFile buildFile) { incModificationCount(); myEventDispatcher.getMulticaster().buildFileChanged(buildFile); @@ -387,57 +398,12 @@ public class AntConfigurationImpl extends AntConfigurationBase implements Persis return getModel(buildFile); } - private void readExternal(final Element parentNode) throws InvalidDataException { - myIsInitialized = Boolean.FALSE; - myAntWorkspaceConfiguration.loadFromProjectSettings(parentNode); - getProperties().readExternal(parentNode); - runWhenInitialized(() -> loadBuildFileProjectProperties(parentNode)); - } - private void runWhenInitialized(final Runnable runnable) { if (getProject().isInitialized()) { - ApplicationManager.getApplication().runReadAction(() -> runnable.run()); + ApplicationManager.getApplication().runReadAction(runnable); } else { - myStartupManager.runWhenProjectIsInitialized(() -> runnable.run()); - } - } - - private void writeExternal(final Element parentNode) throws WriteExternalException { - getProperties().writeExternal(parentNode); - try { - ActionRunner.runInsideReadAction(new ActionRunner.InterruptibleRunnable() { - public void run() throws WriteExternalException { - for (final AntBuildFileBase buildFile : getBuildFiles()) { - final Element element = new Element(BUILD_FILE); - element.setAttribute(URL, buildFile.getVirtualFile().getUrl()); - buildFile.writeProperties(element); - saveEvents(element, buildFile); - parentNode.addContent(element); - } - final List files = new ArrayList(myAntFileToContextFileMap.keySet()); - // sort in order to minimize changes - Collections.sort(files, (o1, o2) -> o1.getUrl().compareTo(o2.getUrl())); - for (VirtualFile file : files) { - final Element element = new Element(CONTEXT_MAPPING); - final VirtualFile contextFile = myAntFileToContextFileMap.get(file); - element.setAttribute(URL, file.getUrl()); - element.setAttribute(CONTEXT, contextFile.getUrl()); - parentNode.addContent(element); - } - } - }); - } - catch (WriteExternalException e) { - LOG.error(e); - throw e; - } - catch (RuntimeException e) { - LOG.error(e); - throw e; - } - catch (Exception e) { - LOG.error(e); + myStartupManager.runWhenProjectIsInitialized(runnable); } } @@ -607,7 +573,7 @@ public class AntConfigurationImpl extends AntConfigurationBase implements Persis } public static boolean executeTargetSynchronously(final DataContext dataContext, final AntBuildTarget target) { - return executeTargetSynchronously(dataContext, target, Collections.emptyList()); + return executeTargetSynchronously(dataContext, target, Collections.emptyList()); } public static boolean executeTargetSynchronously(final DataContext dataContext, final AntBuildTarget target, final List additionalProperties) { @@ -831,7 +797,7 @@ public class AntConfigurationImpl extends AntConfigurationBase implements Persis if (!app.isDispatchThread() || task.isHeadless()) { // for headless tasks we need to ensure async execution. // Otherwise calls to AntConfiguration.getInstance() from the task will cause SOE - app.invokeLater(() -> task.queue(), ModalityState.any()); + app.invokeLater(task::queue, ModalityState.any()); } else { task.queue(); diff --git a/resources-en/src/messages/AntBundle.properties b/resources-en/src/messages/AntBundle.properties index e487c69484e4..287d330abd11 100644 --- a/resources-en/src/messages/AntBundle.properties +++ b/resources-en/src/messages/AntBundle.properties @@ -182,8 +182,8 @@ ant.inspections.display.name=Ant inspections ant.duplicate.targets.inspection=Duplicate targets ant.duplicate.imported.targets.inspection=Duplicate targets in imported files ant.missing.properties.file.inspection=Missing properties file -register.ant.build.progress=Registering Ant build file ''{0}''... -loading.ant.config.progress=Loading Ant configuration... +register.ant.build.progress=Registering Ant Build File ''{0}''... +loading.ant.config.progress=Loading Ant Configuration... intention.configure.highlighting.family.name=Configure highlighting intention.configure.highlighting.text=Configure highlighting build.file.properties.maximum.stack.size.label=Maximum &stack size (Mb):