diff --git a/plugins/groovy/src/META-INF/groovy-dynamic-members.xml b/plugins/groovy/src/META-INF/groovy-dynamic-members.xml
new file mode 100644
index 000000000000..3215480dc421
--- /dev/null
+++ b/plugins/groovy/src/META-INF/groovy-dynamic-members.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plugins/groovy/src/META-INF/plugin.xml b/plugins/groovy/src/META-INF/plugin.xml
index 8af4657b1f95..2aa342ea7748 100644
--- a/plugins/groovy/src/META-INF/plugin.xml
+++ b/plugins/groovy/src/META-INF/plugin.xml
@@ -94,7 +94,6 @@
-
@@ -1573,9 +1572,6 @@
org.jetbrains.plugins.groovy.intentions.declaration.GrRemoveExplicitTypeDeclarationIntention
-
-
@@ -1668,17 +1664,6 @@
-
-
-
-
-
-
-
-
org.jetbrains.plugins.groovy.annotator.GrReferenceHighlighterFactory
-
- org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicManager
- org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicManagerImpl
-
org.jetbrains.plugins.groovy.mvc.MvcModuleStructureSynchronizer
+
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManager.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManager.java
index a508214f394f..b9bac95e0357 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManager.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManager.java
@@ -16,7 +16,7 @@
package org.jetbrains.plugins.groovy.annotator.intentions.dynamic;
import com.intellij.openapi.components.PersistentStateComponent;
-import com.intellij.openapi.components.ProjectComponent;
+import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.PsiVariable;
@@ -32,11 +32,11 @@ import java.util.List;
* User: Dmitry.Krasilschikov
* Date: 23.11.2007
*/
-public abstract class DynamicManager implements ProjectComponent, PersistentStateComponent {
+public abstract class DynamicManager implements PersistentStateComponent {
@NotNull
public static DynamicManager getInstance(@NotNull Project project) {
- return project.getComponent(DynamicManager.class);
+ return ServiceManager.getService(project, DynamicManager.class);
}
/**
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManagerImpl.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManagerImpl.java
index 030995bf1a7f..0d10c21ed91f 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManagerImpl.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManagerImpl.java
@@ -20,7 +20,6 @@ import com.intellij.openapi.application.TransactionGuard;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.startup.StartupManager;
import com.intellij.openapi.wm.ToolWindow;
import com.intellij.psi.PsiManager;
import com.intellij.psi.PsiMethod;
@@ -53,22 +52,12 @@ public class DynamicManagerImpl extends DynamicManager {
public DynamicManagerImpl(final Project project) {
myProject = project;
- StartupManager.getInstance(project).registerPostStartupActivity(() -> {
- if (!myRootElement.getContainingClasses().isEmpty()) {
- DynamicToolWindowWrapper.getInstance(project).getToolWindow(); //initialize myToolWindow
- }
- });
}
public Project getProject() {
return myProject;
}
-
- @Override
- public void initComponent() {
- }
-
@Override
public void addProperty(DynamicElementSettings settings) {
assert settings != null;
@@ -390,8 +379,8 @@ public class DynamicManagerImpl extends DynamicManager {
}
@Nullable
- private static DPropertyElement findConcreteDynamicProperty(DRootElement rootElement, final String conatainingClassName, final String propertyName) {
- final DClassElement classElement = rootElement.getClassElement(conatainingClassName);
+ private static DPropertyElement findConcreteDynamicProperty(DRootElement rootElement, final String containingClassName, final String propertyName) {
+ final DClassElement classElement = rootElement.getClassElement(containingClassName);
if (classElement == null) return null;
@@ -399,43 +388,17 @@ public class DynamicManagerImpl extends DynamicManager {
}
@Nullable
- private static DClassElement findClassElement(DRootElement rootElement, final String conatainingClassName) {
- return rootElement.getClassElement(conatainingClassName);
+ private static DClassElement findClassElement(DRootElement rootElement, final String containingClassName) {
+ return rootElement.getClassElement(containingClassName);
}
- @Override
- public void disposeComponent() {
- }
-
- @Override
- @NotNull
- public String getComponentName() {
- return "DynamicManagerImpl";
- }
-
- @Override
- public void projectOpened() {
- }
-
- @Override
- public void projectClosed() {
- }
-
- /**
- * On exit
- */
@Override
public DRootElement getState() {
-// return XmlSerializer.serialize(myRootElement);
return myRootElement;
}
- /*
- * On loading
- */
@Override
public void loadState(DRootElement element) {
-// myRootElement = XmlSerializer.deserialize(element, myRootElement.getClass());
myRootElement = element;
}
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicMembersStartupActivity.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicMembersStartupActivity.java
new file mode 100644
index 000000000000..603a10578a72
--- /dev/null
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicMembersStartupActivity.java
@@ -0,0 +1,31 @@
+/*
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jetbrains.plugins.groovy.annotator.intentions.dynamic;
+
+import com.intellij.openapi.project.Project;
+import com.intellij.openapi.startup.StartupActivity;
+import org.jetbrains.annotations.NotNull;
+
+public class DynamicMembersStartupActivity implements StartupActivity {
+
+ @Override
+ public void runActivity(@NotNull Project project) {
+ DynamicManager manager = DynamicManager.getInstance(project);
+ if (!manager.getRootElement().getContainingClasses().isEmpty()) {
+ DynamicToolWindowWrapper.getInstance(project).getToolWindow(); //initialize toolWindow
+ }
+ }
+}