From cad83a246f7177da0619cc60fd04456d5791d765 Mon Sep 17 00:00:00 2001 From: Sergey Evdokimov Date: Thu, 1 Aug 2013 16:28:45 +0400 Subject: [PATCH] IDEA-109913 Maven -> Always Update Snapshots CHECKBOX - Not Aligned --- .../importing/MavenRootModelAdapter.java | 6 +- .../importing/DependenciesImportingTest.java | 75 ++++++++++++------- 2 files changed, 54 insertions(+), 27 deletions(-) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenRootModelAdapter.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenRootModelAdapter.java index 52d434a39469..373161da1286 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenRootModelAdapter.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenRootModelAdapter.java @@ -326,6 +326,10 @@ public class MavenRootModelAdapter { Library.ModifiableModel modifiableModel = library.getModifiableModel(); updateUrl(modifiableModel, OrderRootType.CLASSES, artifact, null, null, true); modifiableModel.commit(); + + if (myOrderEntriesBeforeJdk.contains(libraryName)) { + moveLastOrderEntryBeforeJdk(); + } } public void addLibraryDependency(MavenArtifact artifact, @@ -349,7 +353,7 @@ public class MavenRootModelAdapter { LibraryOrderEntry e = myRootModel.addLibraryEntry(library); e.setScope(scope); - if (myOrderEntriesBeforeJdk.contains(e.getLibraryName())) { + if (myOrderEntriesBeforeJdk.contains(libraryName)) { moveLastOrderEntryBeforeJdk(); } } diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java index 96e625a8719f..390b8f817205 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java @@ -2400,33 +2400,56 @@ public class DependenciesImportingTest extends MavenImportingTestCase { assert "Maven: junit:junit:4.0".equals(((LibraryOrderEntry)orderEntries[1]).getLibraryName()); assert orderEntries[2] instanceof JdkOrderEntry; assert orderEntries[3] instanceof ModuleSourceOrderEntry; + } - //// swap dependencies position - //createModulePom("m1", "test" + - // "m1" + - // "1" + - // - // "" + - // " " + - // " junit" + - // " junit" + - // " 4.0" + - // " " + - // " " + - // " test" + - // " m2" + - // " 1" + - // " " + - // ""); - //importProject(); - // - //// JDK was moved to begin back - //orderEntries = ModuleRootManager.getInstance(getModule("m1")).getOrderEntries(); - //assert orderEntries.length == 4; - //assert orderEntries[0] instanceof JdkOrderEntry; - //assert orderEntries[1] instanceof ModuleSourceOrderEntry; - //assert ((ModuleOrderEntry)orderEntries[2]).getModuleName().equals("m2"); - //assert "Maven: junit:junit:4.0".equals(((LibraryOrderEntry)orderEntries[3]).getLibraryName()); + public void testSaveJdkPositionSystemDependency() throws Exception { + createProjectPom("test" + + "m1" + + "1" + + + "" + + " " + + " test" + + " systemDep" + + " 1" + + " system" + + " ${java.home}/lib/rt.jar" + + " " + + " " + + " junit" + + " junit" + + " 4.0" + + " " + + + ""); + importProject(); + + new WriteAction() { + @Override + protected void run(Result result) throws Throwable { + ModifiableRootModel rootModel = ModuleRootManager.getInstance(getModule("m1")).getModifiableModel(); + OrderEntry[] orderEntries = rootModel.getOrderEntries().clone(); + assert orderEntries.length == 4; + assert orderEntries[0] instanceof JdkOrderEntry; + assert orderEntries[1] instanceof ModuleSourceOrderEntry; + assert "Maven: test:systemDep:1".equals(((LibraryOrderEntry)orderEntries[2]).getLibraryName()); + assert "Maven: junit:junit:4.0".equals(((LibraryOrderEntry)orderEntries[3]).getLibraryName()); + + rootModel.rearrangeOrderEntries(new OrderEntry[]{orderEntries[2], orderEntries[3], orderEntries[0], orderEntries[1]}); + + rootModel.commit(); + } + }.execute(); + + resolveDependenciesAndImport(); + + // JDK position was saved + OrderEntry[] orderEntries = ModuleRootManager.getInstance(getModule("m1")).getOrderEntries(); + assert orderEntries.length == 4; + assert "Maven: test:systemDep:1".equals(((LibraryOrderEntry)orderEntries[0]).getLibraryName()); + assert "Maven: junit:junit:4.0".equals(((LibraryOrderEntry)orderEntries[1]).getLibraryName()); + assert orderEntries[2] instanceof JdkOrderEntry; + assert orderEntries[3] instanceof ModuleSourceOrderEntry; } }