From 41afa54c73fedcb448cf57089db283498bec1017 Mon Sep 17 00:00:00 2001 From: "Denis.Zhdanov" Date: Thu, 2 Feb 2012 12:54:17 +0400 Subject: [PATCH] IDEA-76142: Gradle support - cannot update IDEA projects once one of build.gradle files changes Removed static dependency to the Application from the 'sync project changes' code. The reason is to avoid global setup changes during the tests processing --- plugins/gradle/src/META-INF/plugin.xml | 2 +- .../gradle/bootstrap/GradleBootstrap.java | 6 +++--- .../config/GradleColorAndFontPreviewPanel.java | 8 +++++++- .../gradle/config/GradleToolWindowPanel.java | 8 ++++---- .../GradleModuleStructureChangesCalculator.java | 4 ++-- .../GradleProjectStructureChangesCalculator.java | 4 ++-- .../diff/GradleProjectStructureHelperImpl.java | 11 ++++++++++- ...tStructureHelper.java => PlatformFacade.java} | 11 +++++++++-- .../adjust/GradleProjectStructureFactory.java | 6 +++++- .../sync/GradleProjectStructureChangesPanel.java | 4 ++-- .../sync/GradleProjectStructureTreeModel.java | 16 ++++++++-------- .../jetbrains/plugins/gradle/ui/GradleIcons.java | 2 -- ...GradleProjectStructureChangesModelTest.groovy | 10 +++------- .../testutil/IntellijProjectBuilder.groovy | 12 +++++++----- 14 files changed, 63 insertions(+), 41 deletions(-) rename plugins/gradle/src/org/jetbrains/plugins/gradle/diff/{GradleProjectStructureHelper.java => PlatformFacade.java} (81%) diff --git a/plugins/gradle/src/META-INF/plugin.xml b/plugins/gradle/src/META-INF/plugin.xml index aa9dc8db2165..e347b9db2348 100644 --- a/plugins/gradle/src/META-INF/plugin.xml +++ b/plugins/gradle/src/META-INF/plugin.xml @@ -40,7 +40,7 @@ serviceImplementation="org.jetbrains.plugins.gradle.diff.GradleProjectStructureChangesCalculator"/> - diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/bootstrap/GradleBootstrap.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/bootstrap/GradleBootstrap.java index 8280bcbc400b..6472130b5019 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/bootstrap/GradleBootstrap.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/bootstrap/GradleBootstrap.java @@ -9,7 +9,7 @@ import com.intellij.openapi.wm.ToolWindowAnchor; import com.intellij.openapi.wm.ex.ToolWindowManagerEx; import com.intellij.ui.content.impl.ContentImpl; import org.jetbrains.annotations.NotNull; -import org.jetbrains.plugins.gradle.diff.GradleProjectStructureHelper; +import org.jetbrains.plugins.gradle.diff.PlatformFacade; import org.jetbrains.plugins.gradle.sync.GradleProjectStructureChangesModel; import org.jetbrains.plugins.gradle.sync.GradleProjectStructureChangesPanel; import org.jetbrains.plugins.gradle.ui.GradleIcons; @@ -26,11 +26,11 @@ public class GradleBootstrap extends AbstractProjectComponent { private static final String GRADLE_TOOL_WINDOW_ID = GradleBundle.message("gradle.name"); private final GradleProjectStructureChangesModel myChangesModel; - private final GradleProjectStructureHelper myProjectStructureHelper; + private final PlatformFacade myProjectStructureHelper; public GradleBootstrap(@NotNull Project project, @NotNull GradleProjectStructureChangesModel changesModel, - @NotNull GradleProjectStructureHelper projectStructureHelper) { + @NotNull PlatformFacade projectStructureHelper) { super(project); myChangesModel = changesModel; myProjectStructureHelper = projectStructureHelper; diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleColorAndFontPreviewPanel.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleColorAndFontPreviewPanel.java index 1b4f09513de0..7ee329145955 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleColorAndFontPreviewPanel.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleColorAndFontPreviewPanel.java @@ -7,8 +7,10 @@ import com.intellij.application.options.colors.PreviewPanel; import com.intellij.ide.projectView.PresentationData; import com.intellij.ide.util.treeView.NodeRenderer; import com.intellij.openapi.application.ApplicationNamesInfo; +import com.intellij.openapi.application.ex.ApplicationInfoEx; import com.intellij.openapi.editor.colors.EditorColorsScheme; import com.intellij.openapi.editor.colors.TextAttributesKey; +import com.intellij.openapi.util.IconLoader; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.Ref; import com.intellij.ui.components.JBScrollPane; @@ -59,7 +61,11 @@ public class GradleColorAndFontPreviewPanel implements PreviewPanel { private Pair init() { myContent.removeAll(); String projectName = GradleBundle.message("gradle.settings.color.text.sample.conflict.node.name"); - DefaultMutableTreeNode root = createNode(projectName, GradleIcons.PROJECT_ICON, GradleTextAttributes.GRADLE_CHANGE_CONFLICT); + DefaultMutableTreeNode root = createNode( + projectName, + IconLoader.getIcon(ApplicationInfoEx.getInstanceEx().getSmallIconUrl()), + GradleTextAttributes.GRADLE_CHANGE_CONFLICT + ); String moduleName = GradleBundle.message("gradle.settings.color.text.sample.node.confirmed.name"); DefaultMutableTreeNode module = createNode(moduleName, GradleIcons.MODULE_ICON, GradleTextAttributes.GRADLE_CONFIRMED_CONFLICT); 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 585e30522962..7db8c237d79d 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleToolWindowPanel.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleToolWindowPanel.java @@ -9,7 +9,7 @@ import com.intellij.ui.ScrollPaneFactory; import com.intellij.util.messages.MessageBusConnection; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.plugins.gradle.diff.GradleProjectStructureHelper; +import org.jetbrains.plugins.gradle.diff.PlatformFacade; import org.jetbrains.plugins.gradle.util.GradleBundle; import org.jetbrains.plugins.gradle.ui.RichTextControlBuilder; @@ -43,10 +43,10 @@ public abstract class GradleToolWindowPanel extends SimpleToolWindowPanel { private final JPanel myContent = new JPanel(myLayout); private final Project myProject; - private final GradleProjectStructureHelper myProjectStructureHelper; + private final PlatformFacade myProjectStructureHelper; protected GradleToolWindowPanel(@NotNull Project project, - @Nullable GradleProjectStructureHelper projectStructureHelper, + @Nullable PlatformFacade projectStructureHelper, @NotNull String place) { super(true); @@ -98,7 +98,7 @@ public abstract class GradleToolWindowPanel extends SimpleToolWindowPanel { } @NotNull - public GradleProjectStructureHelper getProjectStructureHelper() { + public PlatformFacade getProjectStructureHelper() { return myProjectStructureHelper; } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleModuleStructureChangesCalculator.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleModuleStructureChangesCalculator.java index 28f5ec482cba..87f9231b289d 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleModuleStructureChangesCalculator.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleModuleStructureChangesCalculator.java @@ -35,10 +35,10 @@ import java.util.Set; public class GradleModuleStructureChangesCalculator implements GradleStructureChangesCalculator { private final GradleLibraryDependencyStructureChangesCalculator myLibraryDependencyCalculator; - private final GradleProjectStructureHelper myStructureHelper; + private final PlatformFacade myStructureHelper; public GradleModuleStructureChangesCalculator(@NotNull GradleLibraryDependencyStructureChangesCalculator libraryDependencyCalculator, - @NotNull GradleProjectStructureHelper structureHelper) + @NotNull PlatformFacade structureHelper) { myLibraryDependencyCalculator = libraryDependencyCalculator; myStructureHelper = structureHelper; diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleProjectStructureChangesCalculator.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleProjectStructureChangesCalculator.java index ad9bc2827854..c8f3236b71de 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleProjectStructureChangesCalculator.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleProjectStructureChangesCalculator.java @@ -21,10 +21,10 @@ import java.util.Set; public class GradleProjectStructureChangesCalculator implements GradleStructureChangesCalculator { private final GradleModuleStructureChangesCalculator myModuleChangesCalculator; - private final GradleProjectStructureHelper myStructureHelper; + private final PlatformFacade myStructureHelper; public GradleProjectStructureChangesCalculator(@NotNull GradleModuleStructureChangesCalculator moduleCalculator, - @NotNull GradleProjectStructureHelper structureHelper) { + @NotNull PlatformFacade structureHelper) { myModuleChangesCalculator = moduleCalculator; myStructureHelper = structureHelper; } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleProjectStructureHelperImpl.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleProjectStructureHelperImpl.java index 6b30b59c57f6..ff3fb2ada17a 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleProjectStructureHelperImpl.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleProjectStructureHelperImpl.java @@ -1,14 +1,17 @@ package org.jetbrains.plugins.gradle.diff; +import com.intellij.openapi.application.ex.ApplicationInfoEx; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.LanguageLevelProjectExtension; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.OrderEntry; +import com.intellij.openapi.util.IconLoader; import com.intellij.pom.java.LanguageLevel; import org.jetbrains.annotations.NotNull; +import javax.swing.*; import java.util.Arrays; import java.util.Collection; @@ -16,7 +19,7 @@ import java.util.Collection; * @author Denis Zhdanov * @since 1/26/12 11:54 AM */ -public class GradleProjectStructureHelperImpl implements GradleProjectStructureHelper { +public class GradleProjectStructureHelperImpl implements PlatformFacade { @NotNull @Override @@ -35,4 +38,10 @@ public class GradleProjectStructureHelperImpl implements GradleProjectStructureH public Collection getOrderEntries(@NotNull Module module) { return Arrays.asList(ModuleRootManager.getInstance(module).getOrderEntries()); } + + @NotNull + @Override + public Icon getProjectIcon() { + return IconLoader.getIcon(ApplicationInfoEx.getInstanceEx().getSmallIconUrl()); + } } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleProjectStructureHelper.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/PlatformFacade.java similarity index 81% rename from plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleProjectStructureHelper.java rename to plugins/gradle/src/org/jetbrains/plugins/gradle/diff/PlatformFacade.java index f0c81df79111..c03c12035d59 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/GradleProjectStructureHelper.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/diff/PlatformFacade.java @@ -6,6 +6,7 @@ import com.intellij.openapi.roots.OrderEntry; import com.intellij.pom.java.LanguageLevel; import org.jetbrains.annotations.NotNull; +import javax.swing.*; import java.util.Collection; /** @@ -17,14 +18,14 @@ import java.util.Collection; * That means that it's not possible to test target classes in isolation if corresponding infrastructure is not set up. * However, we don't want to set it up if we execute a simple standalone test. *

- * This interface is intended to encapsulate access to the underlying project infrastructure. + * This interface is intended to encapsulate access to the underlying IntelliJ functionality. *

* Implementations of this interface are expected to be thread-safe. * * @author Denis Zhdanov * @since 1/26/12 11:32 AM */ -public interface GradleProjectStructureHelper { +public interface PlatformFacade { @NotNull LanguageLevel getLanguageLevel(@NotNull Project project); @@ -34,4 +35,10 @@ public interface GradleProjectStructureHelper { @NotNull Collection getOrderEntries(@NotNull Module module); + + /** + * @return icon that should be used for representation project root node at the tree UI controls used by the gradle integration + */ + @NotNull + Icon getProjectIcon(); } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/importing/wizard/adjust/GradleProjectStructureFactory.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/importing/wizard/adjust/GradleProjectStructureFactory.java index dd51ef3480cf..a488a328071b 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/importing/wizard/adjust/GradleProjectStructureFactory.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/importing/wizard/adjust/GradleProjectStructureFactory.java @@ -1,5 +1,7 @@ package org.jetbrains.plugins.gradle.importing.wizard.adjust; +import com.intellij.openapi.application.ex.ApplicationInfoEx; +import com.intellij.openapi.util.IconLoader; import com.intellij.openapi.util.Ref; import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.gradle.model.*; @@ -35,7 +37,9 @@ public class GradleProjectStructureFactory { entity.invite(new GradleEntityVisitor() { @Override public void visit(@NotNull GradleProject project) { - result.set(new GradleProjectStructureNodeDescriptor(project, project.getName(), GradleIcons.PROJECT_ICON)); + result.set(new GradleProjectStructureNodeDescriptor( + project, project.getName(), IconLoader.getIcon(ApplicationInfoEx.getInstanceEx().getSmallIconUrl()) + )); } @Override 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 65fb40336251..d2bc50a5ff41 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/sync/GradleProjectStructureChangesPanel.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/sync/GradleProjectStructureChangesPanel.java @@ -7,7 +7,7 @@ import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.gradle.config.GradleToolWindowPanel; import org.jetbrains.plugins.gradle.diff.GradleProjectStructureChange; -import org.jetbrains.plugins.gradle.diff.GradleProjectStructureHelper; +import org.jetbrains.plugins.gradle.diff.PlatformFacade; import org.jetbrains.plugins.gradle.util.GradleConstants; import javax.swing.*; @@ -27,7 +27,7 @@ public class GradleProjectStructureChangesPanel extends GradleToolWindowPanel { public GradleProjectStructureChangesPanel(@NotNull Project project, @NotNull GradleProjectStructureChangesModel model, - @NotNull GradleProjectStructureHelper projectStructureHelper) + @NotNull PlatformFacade projectStructureHelper) { super(project, projectStructureHelper, GradleConstants.TOOL_WINDOW_TOOLBAR_PLACE); model.addListener(new GradleProjectStructureChangeListener() { diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/sync/GradleProjectStructureTreeModel.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/sync/GradleProjectStructureTreeModel.java index e851aba7a941..5327468b119c 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/sync/GradleProjectStructureTreeModel.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/sync/GradleProjectStructureTreeModel.java @@ -53,13 +53,13 @@ public class GradleProjectStructureTreeModel extends DefaultTreeModel { private final TreeNode[] myNodeHolder = new TreeNode[1]; private final int[] myIndexHolder = new int[1]; - private final Project myProject; - private final GradleProjectStructureHelper myProjectStructureHelper; + private final Project myProject; + private final PlatformFacade myPlatformFacade; - public GradleProjectStructureTreeModel(@NotNull Project project, @NotNull GradleProjectStructureHelper projectStructureHelper) { + public GradleProjectStructureTreeModel(@NotNull Project project, @NotNull PlatformFacade platformFacade) { super(null); myProject = project; - myProjectStructureHelper = projectStructureHelper; + myPlatformFacade = platformFacade; rebuild(); } @@ -68,7 +68,7 @@ public class GradleProjectStructureTreeModel extends DefaultTreeModel { myModules.clear(); DefaultMutableTreeNode root = new DefaultMutableTreeNode(buildDescriptor(getProject())); - final Collection modules = myProjectStructureHelper.getModules(getProject()); + final Collection modules = myPlatformFacade.getModules(getProject()); RootPolicy policy = new RootPolicy() { @Override public LibraryOrderEntry visitLibraryOrderEntry(LibraryOrderEntry libraryOrderEntry, LibraryOrderEntry value) { @@ -79,7 +79,7 @@ public class GradleProjectStructureTreeModel extends DefaultTreeModel { final DefaultMutableTreeNode moduleNode = new DefaultMutableTreeNode(buildDescriptor(module)); myModules.put(module.getName(), moduleNode); // Assuming that module names are unique. List libraryDependencies = new ArrayList(); - for (OrderEntry orderEntry : myProjectStructureHelper.getOrderEntries(module)) { + for (OrderEntry orderEntry : myPlatformFacade.getOrderEntries(module)) { final LibraryOrderEntry libraryDependency = orderEntry.accept(policy, null); if (libraryDependency != null && !StringUtil.isEmpty(libraryDependency.getLibraryName())) { libraryDependencies.add(libraryDependency); @@ -111,8 +111,8 @@ public class GradleProjectStructureTreeModel extends DefaultTreeModel { return new GradleProjectStructureNodeDescriptor(entity, entity.getName(), icon); } - private static GradleProjectStructureNodeDescriptor buildDescriptor(@NotNull Project project) { - return new GradleProjectStructureNodeDescriptor(project, project.getName(), GradleIcons.PROJECT_ICON); + private GradleProjectStructureNodeDescriptor buildDescriptor(@NotNull Project project) { + return new GradleProjectStructureNodeDescriptor(project, project.getName(), myPlatformFacade.getProjectIcon()); } private static GradleProjectStructureNodeDescriptor buildDescriptor(@NotNull Module module) { diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/ui/GradleIcons.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/ui/GradleIcons.java index 2b096d8a4d2b..0dbc2256ae2b 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/ui/GradleIcons.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/ui/GradleIcons.java @@ -1,6 +1,5 @@ package org.jetbrains.plugins.gradle.ui; -import com.intellij.openapi.application.ex.ApplicationInfoEx; import com.intellij.openapi.util.IconLoader; import javax.swing.*; @@ -13,7 +12,6 @@ public class GradleIcons { public static final Icon GRADLE_ICON = IconLoader.getIcon("/icons/gradle.png"); public static final Icon LIB_ICON = IconLoader.getIcon("/nodes/ppLib.png"); - public static final Icon PROJECT_ICON = IconLoader.getIcon(ApplicationInfoEx.getInstanceEx().getSmallIconUrl()); public static final Icon MODULE_ICON = IconLoader.getIcon("/nodes/ModuleOpen.png"); public static final Icon CONTENT_ROOT_ICON = IconLoader.getIcon("/modules/addContentEntry.png"); diff --git a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/sync/GradleProjectStructureChangesModelTest.groovy b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/sync/GradleProjectStructureChangesModelTest.groovy index c8ec3829baed..a1028db5d50c 100644 --- a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/sync/GradleProjectStructureChangesModelTest.groovy +++ b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/sync/GradleProjectStructureChangesModelTest.groovy @@ -2,10 +2,8 @@ package org.jetbrains.plugins.gradle.sync; import com.intellij.openapi.Disposable -import com.intellij.openapi.application.Application -import com.intellij.openapi.application.ApplicationManager -import com.intellij.openapi.application.ex.ApplicationInfoEx import com.intellij.openapi.project.Project +import com.intellij.openapi.util.Disposer import com.intellij.testFramework.SkipInHeadlessEnvironment import com.intellij.util.containers.ContainerUtil import org.jetbrains.plugins.gradle.testutil.ChangeBuilder @@ -18,7 +16,6 @@ import org.junit.Test import org.picocontainer.defaults.DefaultPicoContainer import org.jetbrains.plugins.gradle.diff.* import static org.junit.Assert.assertEquals -import com.intellij.openapi.util.Disposer /** * @author Denis Zhdanov @@ -44,7 +41,7 @@ public class GradleProjectStructureChangesModelTest { treeChecker = new ProjectStructureChecker() container = new DefaultPicoContainer() container.registerComponentInstance(Project, intellij.project) - container.registerComponentInstance(GradleProjectStructureHelper, intellij.projectStructureHelper as GradleProjectStructureHelper) + container.registerComponentInstance(PlatformFacade, intellij.platformFacade as PlatformFacade) container.registerComponentImplementation(GradleProjectStructureChangesModel) container.registerComponentImplementation(GradleStructureChangesCalculator, GradleProjectStructureChangesCalculator) container.registerComponentImplementation(GradleModuleStructureChangesCalculator) @@ -52,8 +49,6 @@ public class GradleProjectStructureChangesModelTest { container.registerComponentImplementation(GradleProjectStructureTreeModel) changesModel = container.getComponentInstance(GradleProjectStructureChangesModel) as GradleProjectStructureChangesModel - def applicationInfo = [getSmallIconUrl: {"/nodes/ideaProject.png"}] as ApplicationInfoEx - ApplicationManager.setApplication([getComponent: { applicationInfo } ] as Application, disposable) } @After @@ -110,6 +105,7 @@ public class GradleProjectStructureChangesModelTest { } } } } } + @SuppressWarnings("GroovyAssignabilityCheck") private def init(gradleProjectInit, intellijProjectInit) { treeModel = container.getComponentInstance(GradleProjectStructureTreeModel) as GradleProjectStructureTreeModel changesModel.addListener({ old, current -> diff --git a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/testutil/IntellijProjectBuilder.groovy b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/testutil/IntellijProjectBuilder.groovy index 2cea42fa39a7..4948c10dd0cb 100644 --- a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/testutil/IntellijProjectBuilder.groovy +++ b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/testutil/IntellijProjectBuilder.groovy @@ -2,11 +2,12 @@ package org.jetbrains.plugins.gradle.testutil import com.intellij.pom.java.LanguageLevel import com.intellij.openapi.module.Module -import com.intellij.openapi.roots.RootPolicy + import com.intellij.openapi.roots.libraries.Library import com.intellij.openapi.roots.LibraryOrderEntry -import groovy.mock.interceptor.StubFor + import com.intellij.openapi.project.Project +import com.intellij.openapi.util.IconLoader /** * @author Denis Zhdanov @@ -16,15 +17,16 @@ class IntellijProjectBuilder extends AbstractProjectBuilder { def projectStub = [:] def project = projectStub as Project - def projectStructureHelper = [ + def platformFacade = [ getModules: { modules }, - getOrderEntries: { dependencies[it] } + getOrderEntries: { dependencies[it] }, + getProjectIcon: { IconLoader.getIcon("/nodes/ideaProject.png") } ] @Override protected createProject(String name, LanguageLevel languageLevel) { projectStub.getName = { name } - projectStructureHelper.getLanguageLevel = { languageLevel } + platformFacade.getLanguageLevel = { languageLevel } project } -- 2.32.0