diff --git a/plugins/gradle/src/META-INF/plugin.xml b/plugins/gradle/src/META-INF/plugin.xml
index 1c6dffafb409..9b1875b03040 100644
--- a/plugins/gradle/src/META-INF/plugin.xml
+++ b/plugins/gradle/src/META-INF/plugin.xml
@@ -72,6 +72,14 @@
+
+
+
+
+
+
+
+
@@ -84,33 +92,6 @@
-
-
- org.jetbrains.plugins.gradle.sync.GradleProjectStructureChangesModel
-
-
- org.jetbrains.plugins.gradle.sync.GradleProjectStructureHelper
-
-
- org.jetbrains.plugins.gradle.model.id.GradleEntityIdMapper
-
-
- org.jetbrains.plugins.gradle.util.GradleProjectStructureContext
-
-
- org.jetbrains.plugins.gradle.manage.GradleLocalNodeManageHelper
-
-
- org.jetbrains.plugins.gradle.sync.GradleProjectStructureChangesDetector
-
-
- org.jetbrains.plugins.gradle.notification.GradleConfigNotificationManager
-
-
- org.jetbrains.plugins.gradle.task.GradleTaskManager
-
-
-
diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleImportEntityAction.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleImportEntityAction.java
index 5c63f913bd1d..2ed96927ff60 100644
--- a/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleImportEntityAction.java
+++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleImportEntityAction.java
@@ -1,5 +1,6 @@
package org.jetbrains.plugins.gradle.action;
+import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.ui.treeStructure.Tree;
import org.jetbrains.annotations.NotNull;
@@ -38,7 +39,7 @@ public class GradleImportEntityAction extends AbstractGradleSyncTreeNodeAction {
@Override
protected void doActionPerformed(@NotNull Collection> nodes, @NotNull Project project, @NotNull Tree tree) {
- final GradleLocalNodeManageHelper helper = project.getComponent(GradleLocalNodeManageHelper.class);
+ final GradleLocalNodeManageHelper helper = ServiceManager.getService(project, GradleLocalNodeManageHelper.class);
helper.importNodes(nodes);
}
}
diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleRefreshProjectAction.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleRefreshProjectAction.java
index 3838ce27c627..9d599e3ff2e7 100644
--- a/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleRefreshProjectAction.java
+++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleRefreshProjectAction.java
@@ -2,6 +2,7 @@ package org.jetbrains.plugins.gradle.action;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
+import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
@@ -40,12 +41,12 @@ public class GradleRefreshProjectAction extends AbstractGradleLinkedProjectActio
if (model != null) {
model.rebuild();
}
- GradleConfigNotificationManager notificationManager = project.getComponent(GradleConfigNotificationManager.class);
+ GradleConfigNotificationManager notificationManager = ServiceManager.getService(project, GradleConfigNotificationManager.class);
notificationManager.processRefreshError(message);
myErrorMessage.set(null);
}
boolean enabled = false;
- final GradleTaskManager taskManager = project.getComponent(GradleTaskManager.class);
+ final GradleTaskManager taskManager = ServiceManager.getService(project, GradleTaskManager.class);
if (taskManager != null) {
enabled = !taskManager.hasTaskOfTypeInProgress(GradleTaskType.RESOLVE_PROJECT);
}
@@ -57,7 +58,7 @@ public class GradleRefreshProjectAction extends AbstractGradleLinkedProjectActio
// We save all documents because there is more than one target 'build.gradle' file in case of multi-module gradle project.
FileDocumentManager.getInstance().saveAllDocuments();
- GradleConfigNotificationManager notificationManager = project.getComponent(GradleConfigNotificationManager.class);
+ GradleConfigNotificationManager notificationManager = ServiceManager.getService(project, GradleConfigNotificationManager.class);
if (!GradleUtil.isGradleAvailable(project)) {
notificationManager.processUnknownGradleHome();
return;
diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleRemoveIdeEntityAction.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleRemoveIdeEntityAction.java
index db7230ed6921..da61a6093d76 100644
--- a/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleRemoveIdeEntityAction.java
+++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleRemoveIdeEntityAction.java
@@ -1,5 +1,6 @@
package org.jetbrains.plugins.gradle.action;
+import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.ui.treeStructure.Tree;
import org.jetbrains.annotations.NotNull;
@@ -44,7 +45,7 @@ public class GradleRemoveIdeEntityAction extends AbstractGradleSyncTreeNodeActio
@Override
protected void doActionPerformed(@NotNull Collection> nodes, @NotNull Project project, @NotNull Tree tree) {
- final GradleLocalNodeManageHelper helper = project.getComponent(GradleLocalNodeManageHelper.class);
+ final GradleLocalNodeManageHelper helper = ServiceManager.getService(project, GradleLocalNodeManageHelper.class);
helper.removeNodes(nodes);
}
}
diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleShowConflictDetailsAction.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleShowConflictDetailsAction.java
index 006e77449ddf..0a61d888ed65 100644
--- a/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleShowConflictDetailsAction.java
+++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleShowConflictDetailsAction.java
@@ -55,7 +55,7 @@ public class GradleShowConflictDetailsAction extends AbstractGradleSyncTreeNodeA
protected void doActionPerformed(@NotNull Collection> nodes, @NotNull Project project, @NotNull Tree tree) {
assert nodes.size() == 1;
final GradleProjectStructureNode> node = nodes.iterator().next();
- final GradleProjectStructureContext context = project.getComponent(GradleProjectStructureContext.class);
+ final GradleProjectStructureContext context = ServiceManager.getService(project, GradleProjectStructureContext.class);
final Object entity = node.getDescriptor().getElement().mapToEntity(context);
if (entity == null) {
return;
diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleToolWindowPanel.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleToolWindowPanel.java
index 87082a36c9db..97a293306629 100644
--- a/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleToolWindowPanel.java
+++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleToolWindowPanel.java
@@ -3,6 +3,7 @@ package org.jetbrains.plugins.gradle.config;
import com.intellij.openapi.actionSystem.ActionGroup;
import com.intellij.openapi.actionSystem.ActionManager;
import com.intellij.openapi.actionSystem.ActionToolbar;
+import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.SimpleToolWindowPanel;
import com.intellij.ui.IdeBorderFactory;
@@ -91,7 +92,8 @@ public abstract class GradleToolWindowPanel extends SimpleToolWindowPanel {
GradleUtil.refreshProject(myProject, new Consumer() {
@Override
public void consume(String s) {
- GradleConfigNotificationManager notificationManager = myProject.getComponent(GradleConfigNotificationManager.class);
+ GradleConfigNotificationManager notificationManager
+ = ServiceManager.getService(myProject, GradleConfigNotificationManager.class);
notificationManager.processRefreshError(s);
UIUtil.invokeLaterIfNeeded(new Runnable() {
@Override
diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleDependencyManager.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleDependencyManager.java
index 77807200391e..9ca2e274f7bc 100644
--- a/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleDependencyManager.java
+++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleDependencyManager.java
@@ -1,5 +1,6 @@
package org.jetbrains.plugins.gradle.manage;
+import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.roots.*;
import com.intellij.openapi.roots.libraries.Library;
@@ -65,7 +66,8 @@ public class GradleDependencyManager {
ModuleRootManager moduleRootManager = ModuleRootManager.getInstance(module);
final ModifiableRootModel moduleRootModel = moduleRootManager.getModifiableModel();
try {
- final GradleProjectStructureHelper projectStructureHelper = module.getProject().getComponent(GradleProjectStructureHelper.class);
+ final GradleProjectStructureHelper projectStructureHelper
+ = ServiceManager.getService(module.getProject(), GradleProjectStructureHelper.class);
for (GradleModuleDependency dependency : dependencies) {
final String moduleName = dependency.getName();
final Module intellijModule = projectStructureHelper.findIdeModule(moduleName);
@@ -110,7 +112,7 @@ public class GradleDependencyManager {
}
for (GradleLibraryDependency dependency : dependencies) {
- GradleProjectStructureHelper helper = module.getProject().getComponent(GradleProjectStructureHelper.class);
+ GradleProjectStructureHelper helper = ServiceManager.getService(module.getProject(), GradleProjectStructureHelper.class);
ModuleRootManager moduleRootManager = ModuleRootManager.getInstance(module);
final ModifiableRootModel moduleRootModel = moduleRootManager.getModifiableModel();
try {
diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleProjectImportBuilder.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleProjectImportBuilder.java
index aefb78dbd352..673811d32592 100644
--- a/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleProjectImportBuilder.java
+++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleProjectImportBuilder.java
@@ -1,6 +1,7 @@
package org.jetbrains.plugins.gradle.manage;
import com.intellij.ide.util.projectWizard.WizardContext;
+import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.module.ModifiableModuleModel;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.options.ConfigurationException;
@@ -235,14 +236,14 @@ public class GradleProjectImportBuilder extends ProjectImportBuilder changes, @NotNull final Project project) {
- final Collection toMerge = buildMergeData(changes, project.getComponent(GradleProjectStructureContext.class));
+ final Collection toMerge = buildMergeData(changes, ServiceManager.getService(project, GradleProjectStructureContext.class));
if (toMerge == null) {
return;
}
diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/sync/GradleProjectStructureChangesPanel.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/sync/GradleProjectStructureChangesPanel.java
index 9ffdd267d41f..056ae011c46c 100644
--- a/plugins/gradle/src/org/jetbrains/plugins/gradle/sync/GradleProjectStructureChangesPanel.java
+++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/sync/GradleProjectStructureChangesPanel.java
@@ -57,13 +57,15 @@ public class GradleProjectStructureChangesPanel extends GradleToolWindowPanel {
private final GradleLocalSettings mySettings;
- private Tree myTree;
- private GradleProjectStructureTreeModel myTreeModel;
- private GradleProjectStructureContext myContext;
- private Object myNodeUnderMouse;
- private boolean mySuppressCollapseTracking;
+ private Tree myTree;
+ private GradleProjectStructureTreeModel myTreeModel;
+ private GradleProjectStructureContext myContext;
+ private Object myNodeUnderMouse;
+ private boolean mySuppressCollapseTracking;
- public GradleProjectStructureChangesPanel(@NotNull Project project, @NotNull GradleProjectStructureContext context) {
+ public GradleProjectStructureChangesPanel(@NotNull Project project,
+ @NotNull GradleProjectStructureContext context)
+ {
super(project, GradleConstants.TOOL_WINDOW_TOOLBAR_PLACE);
myContext = context;
myToolbarControls.add(new GradleProjectStructureFiltersPanel());
@@ -144,7 +146,6 @@ public class GradleProjectStructureChangesPanel extends GradleToolWindowPanel {
myTreeModel.rebuild();
}
-
@Nullable
@Override
public Object getData(@NonNls String dataId) {
diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/task/GradleResolveProjectTask.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/task/GradleResolveProjectTask.java
index d5e568099466..29c1720896dc 100644
--- a/plugins/gradle/src/org/jetbrains/plugins/gradle/task/GradleResolveProjectTask.java
+++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/task/GradleResolveProjectTask.java
@@ -39,7 +39,7 @@ public class GradleResolveProjectTask extends AbstractGradleTask {
GradleProjectStructureChangesModel model = null;
final Project intellijProject = getIntellijProject();
if (intellijProject != null && !intellijProject.isDisposed()) {
- model = intellijProject.getComponent(GradleProjectStructureChangesModel.class);
+ model = ServiceManager.getService(intellijProject, GradleProjectStructureChangesModel.class);
}
final GradleProject project;
try {
diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/ui/GradleToolWindowFactory.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/ui/GradleToolWindowFactory.java
index 9895a2152102..99bed994756c 100644
--- a/plugins/gradle/src/org/jetbrains/plugins/gradle/ui/GradleToolWindowFactory.java
+++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/ui/GradleToolWindowFactory.java
@@ -1,6 +1,7 @@
package org.jetbrains.plugins.gradle.ui;
import com.intellij.ProjectTopics;
+import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ModuleRootAdapter;
@@ -8,14 +9,17 @@ import com.intellij.openapi.roots.ModuleRootEvent;
import com.intellij.openapi.wm.ToolWindow;
import com.intellij.openapi.wm.ToolWindowFactory;
import com.intellij.ui.content.impl.ContentImpl;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.plugins.gradle.config.PlatformFacade;
import org.jetbrains.plugins.gradle.sync.GradleProjectStructureChangesPanel;
import org.jetbrains.plugins.gradle.util.GradleBundle;
import org.jetbrains.plugins.gradle.util.GradleProjectStructureContext;
public class GradleToolWindowFactory implements ToolWindowFactory, DumbAware {
+
@Override
public void createToolWindowContent(final Project project, final ToolWindow toolWindow) {
- final GradleProjectStructureContext context = project.getComponent(GradleProjectStructureContext.class);
+ final GradleProjectStructureContext context = ServiceManager.getService(project, GradleProjectStructureContext.class);
final GradleProjectStructureChangesPanel panel = new GradleProjectStructureChangesPanel(project, context);
final String syncTitle = GradleBundle.message("gradle.sync.title.tab");
diff --git a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/testutil/AbstractGradleTest.groovy b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/testutil/AbstractGradleTest.groovy
index e374dbcb2dcf..102e13c2e34a 100644
--- a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/testutil/AbstractGradleTest.groovy
+++ b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/testutil/AbstractGradleTest.groovy
@@ -27,11 +27,7 @@ import org.jetbrains.plugins.gradle.sync.GradleProjectStructureChangesModel
import org.jetbrains.plugins.gradle.sync.GradleProjectStructureHelper
import org.jetbrains.plugins.gradle.sync.GradleProjectStructureTreeModel
import org.jetbrains.plugins.gradle.ui.GradleProjectStructureNodeFilter
-import org.jetbrains.plugins.gradle.util.GradleLibraryPathTypeMapper
-import org.jetbrains.plugins.gradle.util.GradleProjectStructureContext
-import org.jetbrains.plugins.gradle.util.GradleUtil
-import org.jetbrains.plugins.gradle.util.TestGradleJarManager
-import org.jetbrains.plugins.gradle.util.TestGradleMovedJarsPostProcessor
+import org.jetbrains.plugins.gradle.util.*
import org.junit.Before
import org.picocontainer.MutablePicoContainer
import org.picocontainer.defaults.DefaultPicoContainer
@@ -59,7 +55,19 @@ public abstract class AbstractGradleTest {
intellij = new IntellijProjectBuilder()
changesBuilder = new ChangeBuilder()
treeChecker = new ProjectStructureChecker()
- container = new DefaultPicoContainer()
+ container = new DefaultPicoContainer() {
+ @Override
+ Object getComponentInstance(Object componentKey) {
+ def result = super.getComponentInstance(componentKey)
+ if (result == null && componentKey instanceof String) {
+ def clazz = Class.forName(componentKey)
+ if (clazz != null) {
+ result = super.getComponentInstance(clazz)
+ }
+ }
+ result
+ }
+ }
container.registerComponentInstance(Project, intellij.project)
container.registerComponentInstance(PlatformFacade, intellij.platformFacade as PlatformFacade)
container.registerComponentImplementation(GradleProjectStructureChangesModel)
@@ -79,6 +87,7 @@ public abstract class AbstractGradleTest {
configureContainer(container)
intellij.projectStub.getComponent = { clazz -> container.getComponentInstance(clazz) }
+ intellij.projectStub.getPicoContainer = { container }
changesModel = container.getComponentInstance(GradleProjectStructureChangesModel) as GradleProjectStructureChangesModel