From 895f5dbbc330edea98837deaa6754fa3bd745260 Mon Sep 17 00:00:00 2001 From: Eugene Kudelevsky Date: Tue, 7 Feb 2012 18:56:44 +0400 Subject: [PATCH] we don't need to wait until background autogeneration finished before compilation anymore --- .../android/AndroidProjectComponent.java | 26 +------------- .../android/compiler/AndroidCompileUtil.java | 34 +++++-------------- .../compiler/AndroidPrecompileTask.java | 22 ------------ 3 files changed, 10 insertions(+), 72 deletions(-) diff --git a/plugins/android/src/org/jetbrains/android/AndroidProjectComponent.java b/plugins/android/src/org/jetbrains/android/AndroidProjectComponent.java index 65bff27a39de..e047daf6bb8b 100644 --- a/plugins/android/src/org/jetbrains/android/AndroidProjectComponent.java +++ b/plugins/android/src/org/jetbrains/android/AndroidProjectComponent.java @@ -19,15 +19,11 @@ import com.intellij.openapi.compiler.CompilerManager; import com.intellij.openapi.components.AbstractProjectComponent; import com.intellij.openapi.project.Project; import org.jetbrains.android.compiler.AndroidPrecompileTask; -import org.jetbrains.annotations.NotNull; /** * @author Eugene.Kudelevsky */ public class AndroidProjectComponent extends AbstractProjectComponent { - private volatile boolean myCompilationRunning = false; - private final Object COMPILATION_FLAG_LOCK = new Object(); - protected AndroidProjectComponent(Project project) { super(project); } @@ -35,26 +31,6 @@ public class AndroidProjectComponent extends AbstractProjectComponent { @Override public void projectOpened() { final CompilerManager manager = CompilerManager.getInstance(myProject); - manager.addBeforeTask(new AndroidPrecompileTask(this)); - } - - public void setCompilationStarted() { - synchronized (COMPILATION_FLAG_LOCK) { - myCompilationRunning = true; - } - } - - public void setCompilationFinished() { - synchronized (COMPILATION_FLAG_LOCK) { - myCompilationRunning = false; - } - } - - public void runIfNotInCompilation(@NotNull Runnable r) { - synchronized (COMPILATION_FLAG_LOCK) { - if (!myCompilationRunning) { - r.run(); - } - } + manager.addBeforeTask(new AndroidPrecompileTask()); } } diff --git a/plugins/android/src/org/jetbrains/android/compiler/AndroidCompileUtil.java b/plugins/android/src/org/jetbrains/android/compiler/AndroidCompileUtil.java index 88a51f5c8cf4..c06b0cacd06f 100644 --- a/plugins/android/src/org/jetbrains/android/compiler/AndroidCompileUtil.java +++ b/plugins/android/src/org/jetbrains/android/compiler/AndroidCompileUtil.java @@ -39,7 +39,6 @@ import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.*; import com.intellij.openapi.ui.Messages; -import com.intellij.openapi.util.Computable; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.io.FileUtil; @@ -52,7 +51,6 @@ import com.intellij.psi.search.GlobalSearchScope; import com.intellij.util.ArrayUtil; import com.intellij.util.containers.HashMap; import com.intellij.util.containers.HashSet; -import org.jetbrains.android.AndroidProjectComponent; import org.jetbrains.android.dom.resources.Attr; import org.jetbrains.android.dom.resources.DeclareStyleable; import org.jetbrains.android.dom.resources.ResourceElement; @@ -414,32 +412,18 @@ public class AndroidCompileUtil { public static void doGenerate(final Module module, final AndroidAutogeneratorMode mode) { final Project project = module.getProject(); - final AndroidProjectComponent component = ApplicationManager.getApplication().runReadAction(new Computable() { - @Nullable - @Override - public AndroidProjectComponent compute() { - return !project.isDisposed() ? project.getComponent(AndroidProjectComponent.class) : null; - } - }); - if (component == null) { - return; - } - component.runIfNotInCompilation(new Runnable() { - @Override + assert !ApplicationManager.getApplication().isDispatchThread(); + final CompileContext[] contextWrapper = new CompileContext[1]; + + ApplicationManager.getApplication().runReadAction(new Runnable() { public void run() { - assert !ApplicationManager.getApplication().isDispatchThread(); - final CompileContext[] contextWrapper = new CompileContext[1]; - ApplicationManager.getApplication().runReadAction(new Runnable() { - public void run() { - if (project.isDisposed()) return; - CompilerTask task = new CompilerTask(project, true, "Android auto-generation", true); - CompileScope scope = new ModuleCompileScope(module, false); - contextWrapper[0] = new CompileContextImpl(project, task, scope, null, false, false); - } - }); - generate(module, mode, contextWrapper[0]); + if (project.isDisposed()) return; + CompilerTask task = new CompilerTask(project, true, "Android auto-generation", true); + CompileScope scope = new ModuleCompileScope(module, false); + contextWrapper[0] = new CompileContextImpl(project, task, scope, null, false, false); } }); + generate(module, mode, contextWrapper[0]); } public static boolean isModuleAffected(CompileContext context, Module module) { diff --git a/plugins/android/src/org/jetbrains/android/compiler/AndroidPrecompileTask.java b/plugins/android/src/org/jetbrains/android/compiler/AndroidPrecompileTask.java index 2201045a0502..bd629e58fc0e 100644 --- a/plugins/android/src/org/jetbrains/android/compiler/AndroidPrecompileTask.java +++ b/plugins/android/src/org/jetbrains/android/compiler/AndroidPrecompileTask.java @@ -35,7 +35,6 @@ import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.containers.hash.HashSet; -import org.jetbrains.android.AndroidProjectComponent; import org.jetbrains.android.facet.AndroidFacet; import org.jetbrains.android.sdk.AndroidPlatform; import org.jetbrains.annotations.NotNull; @@ -49,20 +48,12 @@ import java.util.Set; * @author Eugene.Kudelevsky */ public class AndroidPrecompileTask implements CompileTask { - private final AndroidProjectComponent myOwner; - private static final Logger LOG = Logger.getInstance("#org.jetbrains.android.compiler.AndroidPrecompileTask"); - public AndroidPrecompileTask(@NotNull AndroidProjectComponent owner) { - myOwner = owner; - } - @Override public boolean execute(CompileContext context) { final Project project = context.getProject(); - myOwner.setCompilationStarted(); - ExcludedEntriesConfiguration configuration = ((CompilerConfigurationImpl)CompilerConfiguration.getInstance(project)).getExcludedEntriesConfiguration(); @@ -107,19 +98,6 @@ public class AndroidPrecompileTask implements CompileTask { LOG.debug("Files excluded by Android: " + addedEntries.size()); CompilerManager.getInstance(project).addCompilationStatusListener(new MyCompilationStatusListener(project, addedEntries), project); } - - CompilerManager.getInstance(project).addCompilationStatusListener(new CompilationStatusAdapter() { - @Override - public void compilationFinished(boolean aborted, int errors, int warnings, final CompileContext compileContext) { - ApplicationManager.getApplication().executeOnPooledThread(new Runnable() { - @Override - public void run() { - myOwner.setCompilationFinished(); - } - }); - } - }, project); - return true; }