diff --git a/plugins/groovy/src/META-INF/plugin.xml b/plugins/groovy/src/META-INF/plugin.xml
index 04576a510cec..aa0313a8feb4 100644
--- a/plugins/groovy/src/META-INF/plugin.xml
+++ b/plugins/groovy/src/META-INF/plugin.xml
@@ -361,6 +361,8 @@
+
+
org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureSynchronizer.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureSynchronizer.java
index 3dd6b04e408a..00b698b16a22 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureSynchronizer.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureSynchronizer.java
@@ -189,8 +189,6 @@ public class MvcModuleStructureSynchronizer extends AbstractProjectComponent {
queue(SyncAction.EnsureRunConfigurationExists, myProject);
queue(SyncAction.UpgradeFramework, myProject);
queue(SyncAction.CreateAppStructureIfNeeded, myProject);
-
- MvcProjectWithoutLibraryNotificator.projectOpened(myProject);
}
private void queue(SyncAction action, Object on) {
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcProjectWithoutLibraryNotificator.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcProjectWithoutLibraryNotificator.java
index 1be654406d34..7f8cc96d2466 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcProjectWithoutLibraryNotificator.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcProjectWithoutLibraryNotificator.java
@@ -5,12 +5,13 @@ import com.intellij.notification.NotificationListener;
import com.intellij.notification.NotificationType;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
-import com.intellij.openapi.project.DumbAwareRunnable;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.project.ProjectManagerAdapter;
-import com.intellij.openapi.startup.StartupManager;
+import com.intellij.openapi.startup.StartupActivity;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.psi.CommonClassNames;
+import com.intellij.psi.JavaPsiFacade;
+import com.intellij.psi.search.GlobalSearchScope;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -19,41 +20,36 @@ import javax.swing.event.HyperlinkEvent;
/**
* @author Sergey Evdokimov
*/
-public class MvcProjectWithoutLibraryNotificator {
+public class MvcProjectWithoutLibraryNotificator implements StartupActivity {
- private MvcProjectWithoutLibraryNotificator() {
+ @Override
+ public void runActivity(final Project project) {
+ if (JavaPsiFacade.getInstance(project).findClass(CommonClassNames.JAVA_LANG_OBJECT, GlobalSearchScope.allScope(project)) == null) {
+ return; // If indexes is corrupted JavaPsiFacade.findClass() can't find classes during StartupActivity (may be it's a bug).
+ // So we can't determinate whether exists Grails library or not.
+ }
- }
+ Pair pair = findModuleWithoutLibrary(project);
- public static void projectOpened(final Project project) {
- StartupManager.getInstance(project).runWhenProjectIsInitialized(new DumbAwareRunnable() {
+ if (pair != null) {
+ final MvcFramework framework = pair.second;
+ final Module module = pair.first;
- @Override
- public void run() {
- Pair pair = findModuleWithoutLibrary(project);
-
- if (pair != null) {
- final MvcFramework framework = pair.second;
- final Module module = pair.first;
-
- new Notification(framework.getFrameworkName() + ".Configure",
- framework.getFrameworkName() + " SDK not found.",
- "Module '" +
- module.getName() +
- "' has no " +
- framework.getFrameworkName() +
- " SDK. Configure SDK", NotificationType.INFORMATION,
- new NotificationListener() {
- @Override
- public void hyperlinkUpdate(@NotNull Notification notification,
- @NotNull HyperlinkEvent event) {
- MvcConfigureNotification.configure(framework, module);
- }
- }).notify(project);
-
- }
- }
- });
+ new Notification(framework.getFrameworkName() + ".Configure",
+ framework.getFrameworkName() + " SDK not found.",
+ "Module '" +
+ module.getName() +
+ "' has no " +
+ framework.getFrameworkName() +
+ " SDK. Configure SDK", NotificationType.INFORMATION,
+ new NotificationListener() {
+ @Override
+ public void hyperlinkUpdate(@NotNull Notification notification,
+ @NotNull HyperlinkEvent event) {
+ MvcConfigureNotification.configure(framework, module);
+ }
+ }).notify(project);
+ }
}
@Nullable