mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-83532 Gradle: Change gradle plugin configuration from ProjectComponent to ProjectService
This commit is contained in:
@@ -72,6 +72,14 @@
|
||||
|
||||
<projectService serviceImplementation="org.jetbrains.plugins.gradle.config.GradleSettings"/>
|
||||
<projectService serviceImplementation="org.jetbrains.plugins.gradle.config.GradleLocalSettings"/>
|
||||
<projectService serviceImplementation="org.jetbrains.plugins.gradle.sync.GradleProjectStructureChangesModel"/>
|
||||
<projectService serviceImplementation="org.jetbrains.plugins.gradle.sync.GradleProjectStructureHelper"/>
|
||||
<projectService serviceImplementation="org.jetbrains.plugins.gradle.model.id.GradleEntityIdMapper"/>
|
||||
<projectService serviceImplementation="org.jetbrains.plugins.gradle.util.GradleProjectStructureContext"/>
|
||||
<projectService serviceImplementation="org.jetbrains.plugins.gradle.manage.GradleLocalNodeManageHelper"/>
|
||||
<projectService serviceImplementation="org.jetbrains.plugins.gradle.sync.GradleProjectStructureChangesDetector"/>
|
||||
<projectService serviceImplementation="org.jetbrains.plugins.gradle.notification.GradleConfigNotificationManager"/>
|
||||
<projectService serviceImplementation="org.jetbrains.plugins.gradle.task.GradleTaskManager"/>
|
||||
|
||||
<toolWindow id="JetGradle" anchor="right" icon="GradleIcons.ToolWindowGradle"
|
||||
factoryClass="org.jetbrains.plugins.gradle.ui.GradleToolWindowFactory"/>
|
||||
@@ -84,33 +92,6 @@
|
||||
<groovyFrameworkConfigNotification implementation="org.jetbrains.plugins.gradle.config.GradleGroovyConfigNotification"/>
|
||||
</extensions>
|
||||
|
||||
<project-components>
|
||||
<component>
|
||||
<implementation-class>org.jetbrains.plugins.gradle.sync.GradleProjectStructureChangesModel</implementation-class>
|
||||
</component>
|
||||
<component>
|
||||
<implementation-class>org.jetbrains.plugins.gradle.sync.GradleProjectStructureHelper</implementation-class>
|
||||
</component>
|
||||
<component>
|
||||
<implementation-class>org.jetbrains.plugins.gradle.model.id.GradleEntityIdMapper</implementation-class>
|
||||
</component>
|
||||
<component>
|
||||
<implementation-class>org.jetbrains.plugins.gradle.util.GradleProjectStructureContext</implementation-class>
|
||||
</component>
|
||||
<component>
|
||||
<implementation-class>org.jetbrains.plugins.gradle.manage.GradleLocalNodeManageHelper</implementation-class>
|
||||
</component>
|
||||
<component>
|
||||
<implementation-class>org.jetbrains.plugins.gradle.sync.GradleProjectStructureChangesDetector</implementation-class>
|
||||
</component>
|
||||
<component>
|
||||
<implementation-class>org.jetbrains.plugins.gradle.notification.GradleConfigNotificationManager</implementation-class>
|
||||
</component>
|
||||
<component>
|
||||
<implementation-class>org.jetbrains.plugins.gradle.task.GradleTaskManager</implementation-class>
|
||||
</component>
|
||||
</project-components>
|
||||
|
||||
<actions>
|
||||
|
||||
<!-- Tool window toolbar actions -->
|
||||
|
||||
+2
-1
@@ -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<GradleProjectStructureNode<?>> 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);
|
||||
}
|
||||
}
|
||||
|
||||
+4
-3
@@ -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;
|
||||
|
||||
+2
-1
@@ -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<GradleProjectStructureNode<?>> 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);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@ public class GradleShowConflictDetailsAction extends AbstractGradleSyncTreeNodeA
|
||||
protected void doActionPerformed(@NotNull Collection<GradleProjectStructureNode<?>> 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;
|
||||
|
||||
@@ -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<String>() {
|
||||
@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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
+3
-2
@@ -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<GradleProje
|
||||
|
||||
// Register libraries.
|
||||
myLibraryManager.importLibraries(projectWithResolvedLibraries.getLibraries(), project);
|
||||
GradleProjectStructureHelper helper = project.getComponent(GradleProjectStructureHelper.class);
|
||||
GradleProjectStructureHelper helper = ServiceManager.getService(project, GradleProjectStructureHelper.class);
|
||||
for (GradleModule module : projectWithResolvedLibraries.getModules()) {
|
||||
Module intellijModule = helper.findIdeModule(module);
|
||||
assert intellijModule != null;
|
||||
myDependencyManager.importDependencies(module.getDependencies(), intellijModule);
|
||||
}
|
||||
|
||||
GradleProjectStructureChangesModel changesModel = project.getComponent(GradleProjectStructureChangesModel.class);
|
||||
GradleProjectStructureChangesModel changesModel = ServiceManager.getService(project, GradleProjectStructureChangesModel.class);
|
||||
changesModel.update(projectWithResolvedLibraries);
|
||||
}
|
||||
});
|
||||
|
||||
+2
-1
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.jetbrains.plugins.gradle.sync;
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ex.ProjectRootManagerEx;
|
||||
import com.intellij.util.containers.ContainerUtilRt;
|
||||
@@ -69,7 +70,7 @@ public class GradleMovedJarsPostProcessor implements GradleProjectStructureChang
|
||||
|
||||
@Override
|
||||
public void processChanges(@NotNull final Collection<GradleProjectStructureChange> changes, @NotNull final Project project) {
|
||||
final Collection<MergeInfo> toMerge = buildMergeData(changes, project.getComponent(GradleProjectStructureContext.class));
|
||||
final Collection<MergeInfo> toMerge = buildMergeData(changes, ServiceManager.getService(project, GradleProjectStructureContext.class));
|
||||
if (toMerge == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
+8
-7
@@ -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) {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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");
|
||||
|
||||
+15
-6
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user