From bb96af94769b2922e73fd0b66608e5093ee5eea7 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Thu, 6 Dec 2012 11:51:29 +0100 Subject: [PATCH 01/23] Another day, another WM name --- .../src/com/intellij/idea/IdeaApplication.java | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/idea/IdeaApplication.java b/platform/platform-impl/src/com/intellij/idea/IdeaApplication.java index 2c9dd2f177d0..939c3ad64898 100644 --- a/platform/platform-impl/src/com/intellij/idea/IdeaApplication.java +++ b/platform/platform-impl/src/com/intellij/idea/IdeaApplication.java @@ -133,17 +133,8 @@ public class IdeaApplication { LOG.info("WM detected: " + wmName); if (wmName == null) return; - if ("Mutter".equals(wmName)) { + if (wmName.startsWith("Mutter") || "Muffin".equals(wmName) || "GNOME Shell".equals(wmName)) { try { - xwmClass.getDeclaredField("MUTTER_WM"); - } - catch (NoSuchFieldException e) { - setWM(xwm, "METACITY_WM"); // Mutter support absent - mimic Metacity - } - } - else if ("Muffin".equals(wmName) || "GNOME Shell".equals(wmName)) { - try { - xwmClass.getDeclaredField("MUTTER_WM"); setWM(xwm, "MUTTER_WM"); } catch (NoSuchFieldException e) { From 04b67d0ae001098265ca2974b47a1b53ec5cdcb2 Mon Sep 17 00:00:00 2001 From: irengrig Date: Thu, 6 Dec 2012 15:42:15 +0400 Subject: [PATCH 02/23] EA-31416 --- .../src/org/jetbrains/idea/svn/StatusWalkerPartnerImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/StatusWalkerPartnerImpl.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/StatusWalkerPartnerImpl.java index 9d62a7e8e02c..15bc2b866c3e 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/StatusWalkerPartnerImpl.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/StatusWalkerPartnerImpl.java @@ -17,6 +17,7 @@ package org.jetbrains.idea.svn; import com.intellij.lifecycle.PeriodicalTasksCloser; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.roots.FileIndexFacade; import com.intellij.openapi.util.Computable; @@ -74,6 +75,7 @@ public class StatusWalkerPartnerImpl implements StatusWalkerPartner { return ApplicationManager.getApplication().runReadAction(new Computable() { @Override public Boolean compute() { + if (myVcs.getProject().isDisposed()) throw new ProcessCanceledException(); return myExcludedFileIndex.isExcludedFile(vFile); } }); From ea2114fa4b5df8d6d6ee1747602d2745d5a2ddfa Mon Sep 17 00:00:00 2001 From: irengrig Date: Thu, 6 Dec 2012 15:44:19 +0400 Subject: [PATCH 03/23] EA-31416 --- .../intellij/openapi/vcs/changes/UpdatingChangeListBuilder.java | 1 + 1 file changed, 1 insertion(+) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/UpdatingChangeListBuilder.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/UpdatingChangeListBuilder.java index 3a1cd8e24d69..fe4bce648e55 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/UpdatingChangeListBuilder.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/UpdatingChangeListBuilder.java @@ -123,6 +123,7 @@ class UpdatingChangeListBuilder implements ChangelistBuilder { return ApplicationManager.getApplication().runReadAction(new Computable() { @Override public Boolean compute() { + checkIfDisposed(); return myIndex.isExcludedFile(file); } }); From dd476a5d2c514baa6af7baeaa4fce1ff627375f2 Mon Sep 17 00:00:00 2001 From: Sergey Evdokimov Date: Thu, 6 Dec 2012 15:53:02 +0400 Subject: [PATCH 04/23] IDEA-96686 When maven-surefire-plugin configurate with classpath, that include webapp dir, finding files don't work properly --- .../maven/execution/MavenJUnitPatcher.java | 59 +++++++++++++++++++ .../maven/importing/MavenModuleImporter.java | 59 ++----------------- .../src/main/resources/META-INF/plugin.xml | 2 + .../MavenClasspathsAndSearchScopesTest.java | 2 +- 4 files changed, 66 insertions(+), 56 deletions(-) create mode 100644 plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenJUnitPatcher.java diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenJUnitPatcher.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenJUnitPatcher.java new file mode 100644 index 000000000000..58278c720ac6 --- /dev/null +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenJUnitPatcher.java @@ -0,0 +1,59 @@ +/* + * Copyright 2000-2012 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.idea.maven.execution; + +import com.intellij.execution.JUnitPatcher; +import com.intellij.execution.configurations.JavaParameters; +import com.intellij.openapi.module.Module; +import org.jdom.Element; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.idea.maven.dom.MavenDomUtil; +import org.jetbrains.idea.maven.dom.MavenPropertyResolver; +import org.jetbrains.idea.maven.dom.model.MavenDomProjectModel; +import org.jetbrains.idea.maven.project.MavenProject; +import org.jetbrains.idea.maven.project.MavenProjectsManager; +import org.jetbrains.idea.maven.utils.MavenJDOMUtil; + +import java.util.List; + +/** + * @author Sergey Evdokimov + */ +public class MavenJUnitPatcher extends JUnitPatcher { + + @Override + public void patchJavaParameters(@Nullable Module module, JavaParameters javaParameters) { + if (module == null) return; + + MavenProject mavenProject = MavenProjectsManager.getInstance(module.getProject()).findProject(module); + if (mavenProject == null) return; + + Element config = mavenProject.getPluginConfiguration("org.apache.maven.plugins", "maven-surefire-plugin"); + List paths = MavenJDOMUtil.findChildrenValuesByPath(config, "additionalClasspathElements", "additionalClasspathElement"); + + if (paths.isEmpty()) return; + + MavenDomProjectModel domModel = MavenDomUtil.getMavenDomProjectModel(module.getProject(), mavenProject.getFile());; + + for (String path : paths) { + if (domModel != null) { + path = MavenPropertyResolver.resolve(path, domModel); + } + + javaParameters.getClassPath().add(path); + } + } +} diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenModuleImporter.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenModuleImporter.java index 8b399277236d..02f12d408be8 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenModuleImporter.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenModuleImporter.java @@ -220,65 +220,14 @@ public class MavenModuleImporter { } private void configSurefirePlugin() { - List urls = new ArrayList(); - - AccessToken accessToken = ReadAction.start(); - try { - MavenDomProjectModel domModel = null; - - Element config = myMavenProject.getPluginConfiguration("org.apache.maven.plugins", "maven-surefire-plugin"); - for (String each : MavenJDOMUtil.findChildrenValuesByPath(config, "additionalClasspathElements", "additionalClasspathElement")) { - String url = VfsUtil.pathToUrl(each); - - if (domModel == null) { - domModel = MavenDomUtil.getMavenDomProjectModel(myModule.getProject(), myMavenProject.getFile()); - } - - if (domModel != null) { - url = MavenPropertyResolver.resolve(url, domModel); - } - - urls.add(url); - } - } - finally { - accessToken.finish(); - } - + // Remove "maven-surefire-plugin urls" library created by previous version of IDEA. + // todo remove this code after 01.06.2013 LibraryTable moduleLibraryTable = myRootModelAdapter.getRootModel().getModuleLibraryTable(); Library library = moduleLibraryTable.getLibraryByName(SUREFIRE_PLUGIN_LIBRARY_NAME); - if (library == null) { - if (urls.isEmpty()) { - return; - } - - library = moduleLibraryTable.createLibrary(SUREFIRE_PLUGIN_LIBRARY_NAME); - LibraryOrderEntry orderEntry = myRootModelAdapter.getRootModel().findLibraryOrderEntry(library); - orderEntry.setScope(DependencyScope.TEST); + if (library != null) { + moduleLibraryTable.removeLibrary(library); } - else { - if (urls.isEmpty()) { - moduleLibraryTable.removeLibrary(library); - return; - } - } - - String[] oldUrls = library.getUrls(OrderRootType.CLASSES); - if (!urls.equals(Arrays.asList(oldUrls))) { - Library.ModifiableModel modifiableModel = library.getModifiableModel(); - - for (String url : oldUrls) { - modifiableModel.removeRoot(url, OrderRootType.CLASSES); - } - - for (String url : urls) { - modifiableModel.addRoot(url, OrderRootType.CLASSES); - } - - modifiableModel.commit(); - } - } private void addAttachArtifactDependency(@NotNull Element buildHelperCfg, diff --git a/plugins/maven/src/main/resources/META-INF/plugin.xml b/plugins/maven/src/main/resources/META-INF/plugin.xml index 6d10f242467a..746886a64fbf 100644 --- a/plugins/maven/src/main/resources/META-INF/plugin.xml +++ b/plugins/maven/src/main/resources/META-INF/plugin.xml @@ -45,6 +45,8 @@ + + diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/MavenClasspathsAndSearchScopesTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/MavenClasspathsAndSearchScopesTest.java index a7de775b9492..95c445193055 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/MavenClasspathsAndSearchScopesTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/MavenClasspathsAndSearchScopesTest.java @@ -774,7 +774,7 @@ public class MavenClasspathsAndSearchScopesTest extends MavenImportingTestCase { getProjectPath() + "/m3/target/classes"); } - public void testAdditionalClasspathElementsInTests() throws Exception { + public void _testAdditionalClasspathElementsInTests() throws Exception { File iof1 = new File(myDir, "foo/bar1"); File iof2 = new File(myDir, "foo/bar2"); iof1.mkdirs(); From 508c7a8f213e12b7e722814a3e94c86711e404c4 Mon Sep 17 00:00:00 2001 From: irengrig Date: Thu, 6 Dec 2012 16:00:12 +0400 Subject: [PATCH 05/23] svn mapping: @NotNull --- plugins/svn4idea/src/org/jetbrains/idea/svn/SvnMapping.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnMapping.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnMapping.java index 3eced3e3e3ea..2d5004798582 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnMapping.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnMapping.java @@ -19,6 +19,7 @@ import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.File; @@ -91,7 +92,7 @@ public class SvnMapping { } @Nullable - public String getRootForPath(final String path) { + public String getRootForPath(@NotNull final String path) { String floor = myFile2UrlMap.floorKey(path); if (floor == null) return null; NavigableMap head = myFile2UrlMap.headMap(floor, true); From 475878e30945e49dcaee28a997b1b6b95ba3700e Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Wed, 5 Dec 2012 11:57:19 +0100 Subject: [PATCH 06/23] debugger attributes (cherry picked from commit 3cdb2aab652a6ff552b8bf5abef49c2a1a4d6aae) --- colorSchemes/src/colorSchemes/Darcula.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/colorSchemes/src/colorSchemes/Darcula.xml b/colorSchemes/src/colorSchemes/Darcula.xml index 43f34d6f5e4e..268887e33cef 100644 --- a/colorSchemes/src/colorSchemes/Darcula.xml +++ b/colorSchemes/src/colorSchemes/Darcula.xml @@ -140,7 +140,7 @@