diff --git a/.idea/artifacts/KotlinPlugin.xml b/.idea/artifacts/KotlinPlugin.xml
index 8c817a1fa8f..e62ffdca21b 100644
--- a/.idea/artifacts/KotlinPlugin.xml
+++ b/.idea/artifacts/KotlinPlugin.xml
@@ -49,6 +49,7 @@
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index e3c3a015954..9bd910a6723 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -49,7 +49,7 @@
http://www.w3.org/1999/xhtml
-
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 57d4f630197..930f3191a64 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -45,6 +45,7 @@
+
diff --git a/generators/generators.iml b/generators/generators.iml
index c1adce0e190..99d62ae94da 100644
--- a/generators/generators.iml
+++ b/generators/generators.iml
@@ -37,6 +37,7 @@
+
\ No newline at end of file
diff --git a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt
index 391584a8812..e788d90f21e 100644
--- a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt
+++ b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt
@@ -57,7 +57,7 @@ import org.jetbrains.kotlin.idea.completion.test.handlers.AbstractKeywordComplet
import org.jetbrains.kotlin.idea.completion.test.handlers.AbstractSmartCompletionHandlerTest
import org.jetbrains.kotlin.idea.completion.test.weighers.AbstractBasicCompletionWeigherTest
import org.jetbrains.kotlin.idea.completion.test.weighers.AbstractSmartCompletionWeigherTest
-import org.jetbrains.kotlin.idea.configuration.AbstractConfigureProjectByChangingFileTest
+import org.jetbrains.kotlin.idea.configuration.AbstractMavenConfigureProjectByChangingFileTest
import org.jetbrains.kotlin.idea.conversion.copy.AbstractJavaToKotlinCopyPasteConversionTest
import org.jetbrains.kotlin.idea.coverage.AbstractKotlinCoverageOutputFilesTest
import org.jetbrains.kotlin.idea.debugger.AbstractBeforeExtractFunctionInsertionTest
@@ -491,10 +491,6 @@ fun main(args: Array) {
model("inspections", pattern = "^(inspections\\.test)$", singleClass = true)
}
- testClass {
- model("maven-inspections", pattern = "^([\\w\\-]+).xml$", singleClass = true)
- }
-
testClass() {
model("hierarchy/class/type", extension = null, recursive = false, testMethod = "doTypeClassHierarchyTest")
model("hierarchy/class/super", extension = null, recursive = false, testMethod = "doSuperClassHierarchyTest")
@@ -600,10 +596,8 @@ fun main(args: Array) {
model("multiFileInspections", extension = "test", singleClass = true)
}
- testClass() {
+ testClass() {
model("configuration/gradle", pattern = """(\w+)_before\.gradle$""", testMethod = "doTestGradle")
- model("configuration/maven", extension = null, recursive = false, testMethod = "doTestWithMaven")
- model("configuration/js-maven", extension = null, recursive = false, testMethod = "doTestWithJSMaven")
}
testClass() {
@@ -800,6 +794,17 @@ fun main(args: Array) {
}
}
+ testGroup("idea/idea-maven/test", "idea/idea-maven/testData") {
+ testClass() {
+ model("configurator/jvm", extension = null, recursive = false, testMethod = "doTestWithMaven")
+ model("configurator/js", extension = null, recursive = false, testMethod = "doTestWithJSMaven")
+ }
+
+ testClass {
+ model("maven-inspections", pattern = "^([\\w\\-]+).xml$", singleClass = true)
+ }
+ }
+
testGroup("idea/tests", "compiler/testData") {
testClass() {
model("loadJava/compiledKotlin")
diff --git a/idea/idea-android/tests/org/jetbrains/kotlin/android/configure/AbstractConfigureProjectTest.java b/idea/idea-android/tests/org/jetbrains/kotlin/android/configure/AbstractConfigureProjectTest.java
index 2b157c36a1e..cc47792b96b 100644
--- a/idea/idea-android/tests/org/jetbrains/kotlin/android/configure/AbstractConfigureProjectTest.java
+++ b/idea/idea-android/tests/org/jetbrains/kotlin/android/configure/AbstractConfigureProjectTest.java
@@ -18,8 +18,9 @@ package org.jetbrains.kotlin.android.configure;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.idea.configuration.AbstractConfigureProjectByChangingFileTest;
+import org.jetbrains.kotlin.idea.configuration.AbstractGradleConfigureProjectByChangingFileTest;
-public abstract class AbstractConfigureProjectTest extends AbstractConfigureProjectByChangingFileTest {
+public abstract class AbstractConfigureProjectTest extends AbstractGradleConfigureProjectByChangingFileTest {
public void doTestAndroidGradle(@NotNull String path) throws Exception {
doTest(path, path.replace("before", "after"), new KotlinAndroidGradleModuleConfigurator());
}
diff --git a/idea/idea-maven/idea-maven.iml b/idea/idea-maven/idea-maven.iml
new file mode 100644
index 00000000000..6ed9a20c3ad
--- /dev/null
+++ b/idea/idea-maven/idea-maven.iml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/idea-maven/resources/intentionDescriptions/MavenPluginSourcesMoveToBuild/description.html b/idea/idea-maven/resources/intentionDescriptions/MavenPluginSourcesMoveToBuild/description.html
new file mode 100644
index 00000000000..a0d58e87d94
--- /dev/null
+++ b/idea/idea-maven/resources/intentionDescriptions/MavenPluginSourcesMoveToBuild/description.html
@@ -0,0 +1,5 @@
+
+
+This intention moves source directory from execution's configuration to build the corresponding source directory tag
+
+
\ No newline at end of file
diff --git a/idea/idea-maven/resources/intentionDescriptions/MavenPluginSourcesMoveToExecutionIntention/description.html b/idea/idea-maven/resources/intentionDescriptions/MavenPluginSourcesMoveToExecutionIntention/description.html
new file mode 100644
index 00000000000..2d7bf675eb1
--- /dev/null
+++ b/idea/idea-maven/resources/intentionDescriptions/MavenPluginSourcesMoveToExecutionIntention/description.html
@@ -0,0 +1,6 @@
+
+
+This intention moves source directory from build source directory tag
+to the corresponding kotlin-maven-plugin execution's configuration
+
+
\ No newline at end of file
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJavaMavenConfigurator.java b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinJavaMavenConfigurator.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJavaMavenConfigurator.java
rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinJavaMavenConfigurator.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJavascriptMavenConfigurator.java b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinJavascriptMavenConfigurator.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJavascriptMavenConfigurator.java
rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinJavascriptMavenConfigurator.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProvider.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProvider.kt
rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenConfigurator.java b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenConfigurator.java
similarity index 99%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenConfigurator.java
rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenConfigurator.java
index 44c554c633b..faa7b5ecd6d 100644
--- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenConfigurator.java
+++ b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenConfigurator.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2015 JetBrains s.r.o.
+ * Copyright 2010-2016 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.
@@ -42,7 +42,6 @@ import org.jetbrains.idea.maven.model.MavenPlugin;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.utils.MavenArtifactScope;
-import org.jetbrains.idea.maven.utils.MavenUtil;
import org.jetbrains.kotlin.idea.KotlinPluginUtil;
import org.jetbrains.kotlin.idea.framework.ui.ConfigureDialogWithModulesAndVersion;
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenImporter.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenImporter.kt
similarity index 96%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenImporter.kt
rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenImporter.kt
index 67f957eaca6..64ac29e0656 100644
--- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenImporter.kt
+++ b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenImporter.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2015 JetBrains s.r.o.
+ * Copyright 2010-2016 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.
@@ -16,7 +16,10 @@
package org.jetbrains.kotlin.idea.configuration
-import com.intellij.openapi.components.*
+import com.intellij.openapi.components.PersistentStateComponent
+import com.intellij.openapi.components.State
+import com.intellij.openapi.components.Storage
+import com.intellij.openapi.components.StoragePathMacros
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
import com.intellij.openapi.module.Module
import org.jdom.Element
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenPluginPhaseInspection.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenPluginPhaseInspection.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenPluginPhaseInspection.kt
rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenPluginPhaseInspection.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenUnresolvedReferenceQuickFixProvider.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenUnresolvedReferenceQuickFixProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenUnresolvedReferenceQuickFixProvider.kt
rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenUnresolvedReferenceQuickFixProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/MavenActionsGroup.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/MavenActionsGroup.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/MavenActionsGroup.kt
rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/MavenActionsGroup.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/MavenModulesRelationship.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/MavenModulesRelationship.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/MavenModulesRelationship.kt
rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/MavenModulesRelationship.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/MavenPluginSourcesSwap.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/MavenPluginSourcesSwap.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/MavenPluginSourcesSwap.kt
rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/MavenPluginSourcesSwap.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/PomFile.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/PomFile.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/PomFile.kt
rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/PomFile.kt
diff --git a/idea/idea-maven/test/org/jetbrains/kotlin/idea/configuration/AbstractMavenConfigureProjectByChangingFileTest.kt b/idea/idea-maven/test/org/jetbrains/kotlin/idea/configuration/AbstractMavenConfigureProjectByChangingFileTest.kt
new file mode 100644
index 00000000000..b2d9d44239e
--- /dev/null
+++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/configuration/AbstractMavenConfigureProjectByChangingFileTest.kt
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2010-2016 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.kotlin.idea.configuration
+
+import com.intellij.openapi.module.Module
+import com.intellij.psi.PsiFile
+import org.jetbrains.idea.maven.model.MavenConstants
+
+abstract class AbstractMavenConfigureProjectByChangingFileTest : AbstractConfigureProjectByChangingFileTest() {
+ fun doTestWithMaven(path: String) {
+ val pathWithFile = path + "/" + MavenConstants.POM_XML
+ doTest(pathWithFile, pathWithFile.replace("pom", "pom_after"), KotlinJavaMavenConfigurator())
+ }
+
+ fun doTestWithJSMaven(path: String) {
+ val pathWithFile = path + "/" + MavenConstants.POM_XML
+ doTest(pathWithFile, pathWithFile.replace("pom", "pom_after"), KotlinJavascriptMavenConfigurator())
+ }
+
+ override fun runConfigurator(module: Module, file: PsiFile, configurator: KotlinMavenConfigurator, version: String, collector: NotificationMessageCollector) {
+ configurator.changePomFile(module, file, version, collector)
+ }
+}
diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProviderTest.kt b/idea/idea-maven/test/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProviderTest.kt
similarity index 100%
rename from idea/tests/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProviderTest.kt
rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProviderTest.kt
diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/ConfigureProjectByChangingFileTestGenerated.java b/idea/idea-maven/test/org/jetbrains/kotlin/idea/configuration/MavenConfigureProjectByChangingFileTestGenerated.java
similarity index 100%
rename from idea/tests/org/jetbrains/kotlin/idea/configuration/ConfigureProjectByChangingFileTestGenerated.java
rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/configuration/MavenConfigureProjectByChangingFileTestGenerated.java
diff --git a/idea/tests/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt
similarity index 94%
rename from idea/tests/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt
rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt
index b0833cc240c..0db08d8b0f0 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt
+++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt
@@ -62,9 +62,12 @@ abstract class AbstractKotlinMavenInspectionTest : MavenImportingTestCase() {
mkJavaFile()
}
+ val inspectionClassName = "".toRegex().find(pomText)?.groups?.get(1)?.value ?: KotlinMavenPluginPhaseInspection::class.qualifiedName !!
+ val inspectionClass = Class.forName(inspectionClassName)
+
val matcher = "".toRegex()
val expected = pomText.lines().mapNotNull { matcher.find(it) }.map { SimplifiedProblemDescription(it.groups[2]!!.value.trim(), it.groups[1]!!.value.trim()) }
- val actual = runInspection().sortedBy { it.first.text }
+ val actual = runInspection(inspectionClass).sortedBy { it.first.text }
assertEquals(expected.sortedBy { it.text }, actual.map { it.first })
@@ -147,9 +150,7 @@ abstract class AbstractKotlinMavenInspectionTest : MavenImportingTestCase() {
assertTrue(FileTypeIndex.containsFileOfType(JavaFileType.INSTANCE, myProject.allModules().single().moduleScope))
}
- private inline fun runInspection(): List> {
- val inspectionClass = T::class.java
-
+ private fun runInspection(inspectionClass: Class<*>): List> {
val toolWrapper = LocalInspectionToolWrapper(inspectionClass.newInstance() as LocalInspectionTool)
val scope = AnalysisScope(myProject)
diff --git a/idea/tests/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt
similarity index 99%
rename from idea/tests/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt
rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt
index 751268755cf..2a56de407a8 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt
+++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2015 JetBrains s.r.o.
+ * Copyright 2010-2016 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.
diff --git a/idea/tests/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java
similarity index 81%
rename from idea/tests/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java
rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java
index f99db69a8a6..aeac29d7f01 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java
+++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java
@@ -27,47 +27,47 @@ import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
-@TestMetadata("idea/testData/maven-inspections")
+@TestMetadata("idea/idea-maven/testData/maven-inspections")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public class KotlinMavenInspectionTestGenerated extends AbstractKotlinMavenInspectionTest {
public void testAllFilesPresentInMaven_inspections() throws Exception {
- KotlinTestUtils.assertAllTestsPresentInSingleGeneratedClass(this.getClass(), new File("idea/testData/maven-inspections"), Pattern.compile("^([\\w\\-]+).xml$"));
+ KotlinTestUtils.assertAllTestsPresentInSingleGeneratedClass(this.getClass(), new File("idea/idea-maven/testData/maven-inspections"), Pattern.compile("^([\\w\\-]+).xml$"));
}
@TestMetadata("bothCompileAndTestCompileInTheSameExecution.xml")
public void testBothCompileAndTestCompileInTheSameExecution() throws Exception {
- String fileName = KotlinTestUtils.navigationMetadata("idea/testData/maven-inspections/bothCompileAndTestCompileInTheSameExecution.xml");
+ String fileName = KotlinTestUtils.navigationMetadata("idea/idea-maven/testData/maven-inspections/bothCompileAndTestCompileInTheSameExecution.xml");
doTest(fileName);
}
@TestMetadata("dependencyWithNoExecution.xml")
public void testDependencyWithNoExecution() throws Exception {
- String fileName = KotlinTestUtils.navigationMetadata("idea/testData/maven-inspections/dependencyWithNoExecution.xml");
+ String fileName = KotlinTestUtils.navigationMetadata("idea/idea-maven/testData/maven-inspections/dependencyWithNoExecution.xml");
doTest(fileName);
}
@TestMetadata("missingDependencies.xml")
public void testMissingDependencies() throws Exception {
- String fileName = KotlinTestUtils.navigationMetadata("idea/testData/maven-inspections/missingDependencies.xml");
+ String fileName = KotlinTestUtils.navigationMetadata("idea/idea-maven/testData/maven-inspections/missingDependencies.xml");
doTest(fileName);
}
@TestMetadata("noExecutions.xml")
public void testNoExecutions() throws Exception {
- String fileName = KotlinTestUtils.navigationMetadata("idea/testData/maven-inspections/noExecutions.xml");
+ String fileName = KotlinTestUtils.navigationMetadata("idea/idea-maven/testData/maven-inspections/noExecutions.xml");
doTest(fileName);
}
@TestMetadata("wrongJsExecution.xml")
public void testWrongJsExecution() throws Exception {
- String fileName = KotlinTestUtils.navigationMetadata("idea/testData/maven-inspections/wrongJsExecution.xml");
+ String fileName = KotlinTestUtils.navigationMetadata("idea/idea-maven/testData/maven-inspections/wrongJsExecution.xml");
doTest(fileName);
}
@TestMetadata("wrongPhaseExecution.xml")
public void testWrongPhaseExecution() throws Exception {
- String fileName = KotlinTestUtils.navigationMetadata("idea/testData/maven-inspections/wrongPhaseExecution.xml");
+ String fileName = KotlinTestUtils.navigationMetadata("idea/idea-maven/testData/maven-inspections/wrongPhaseExecution.xml");
doTest(fileName);
}
}
diff --git a/idea/tests/org/jetbrains/kotlin/idea/maven/MavenImportingTestCase.java b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenImportingTestCase.java
similarity index 100%
rename from idea/tests/org/jetbrains/kotlin/idea/maven/MavenImportingTestCase.java
rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenImportingTestCase.java
diff --git a/idea/tests/org/jetbrains/kotlin/idea/maven/MavenTestCase.java b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenTestCase.java
similarity index 99%
rename from idea/tests/org/jetbrains/kotlin/idea/maven/MavenTestCase.java
rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenTestCase.java
index 95552945f7a..470160e8741 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/maven/MavenTestCase.java
+++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenTestCase.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2015 JetBrains s.r.o.
+ * Copyright 2010-2016 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.
diff --git a/idea/tests/org/jetbrains/kotlin/idea/maven/NullMavenConsole.java b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/NullMavenConsole.java
similarity index 100%
rename from idea/tests/org/jetbrains/kotlin/idea/maven/NullMavenConsole.java
rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/NullMavenConsole.java
diff --git a/idea/testData/configuration/js-maven/libraryMissed/pom.xml b/idea/idea-maven/testData/configurator/js/libraryMissed/pom.xml
similarity index 100%
rename from idea/testData/configuration/js-maven/libraryMissed/pom.xml
rename to idea/idea-maven/testData/configurator/js/libraryMissed/pom.xml
diff --git a/idea/testData/configuration/js-maven/libraryMissed/pom_after.xml b/idea/idea-maven/testData/configurator/js/libraryMissed/pom_after.xml
similarity index 100%
rename from idea/testData/configuration/js-maven/libraryMissed/pom_after.xml
rename to idea/idea-maven/testData/configurator/js/libraryMissed/pom_after.xml
diff --git a/idea/testData/configuration/js-maven/pluginMissed/pom.xml b/idea/idea-maven/testData/configurator/js/pluginMissed/pom.xml
similarity index 100%
rename from idea/testData/configuration/js-maven/pluginMissed/pom.xml
rename to idea/idea-maven/testData/configurator/js/pluginMissed/pom.xml
diff --git a/idea/testData/configuration/js-maven/pluginMissed/pom_after.xml b/idea/idea-maven/testData/configurator/js/pluginMissed/pom_after.xml
similarity index 100%
rename from idea/testData/configuration/js-maven/pluginMissed/pom_after.xml
rename to idea/idea-maven/testData/configurator/js/pluginMissed/pom_after.xml
diff --git a/idea/testData/configuration/js-maven/simpleProject/pom.xml b/idea/idea-maven/testData/configurator/js/simpleProject/pom.xml
similarity index 100%
rename from idea/testData/configuration/js-maven/simpleProject/pom.xml
rename to idea/idea-maven/testData/configurator/js/simpleProject/pom.xml
diff --git a/idea/testData/configuration/js-maven/simpleProject/pom_after.xml b/idea/idea-maven/testData/configurator/js/simpleProject/pom_after.xml
similarity index 100%
rename from idea/testData/configuration/js-maven/simpleProject/pom_after.xml
rename to idea/idea-maven/testData/configurator/js/simpleProject/pom_after.xml
diff --git a/idea/testData/configuration/js-maven/simpleProjectSnapshot/pom.xml b/idea/idea-maven/testData/configurator/js/simpleProjectSnapshot/pom.xml
similarity index 100%
rename from idea/testData/configuration/js-maven/simpleProjectSnapshot/pom.xml
rename to idea/idea-maven/testData/configurator/js/simpleProjectSnapshot/pom.xml
diff --git a/idea/testData/configuration/js-maven/simpleProjectSnapshot/pom_after.xml b/idea/idea-maven/testData/configurator/js/simpleProjectSnapshot/pom_after.xml
similarity index 100%
rename from idea/testData/configuration/js-maven/simpleProjectSnapshot/pom_after.xml
rename to idea/idea-maven/testData/configurator/js/simpleProjectSnapshot/pom_after.xml
diff --git a/idea/testData/configuration/maven/fixExisting/pom.xml b/idea/idea-maven/testData/configurator/jvm/fixExisting/pom.xml
similarity index 100%
rename from idea/testData/configuration/maven/fixExisting/pom.xml
rename to idea/idea-maven/testData/configurator/jvm/fixExisting/pom.xml
diff --git a/idea/testData/configuration/maven/fixExisting/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/fixExisting/pom_after.xml
similarity index 100%
rename from idea/testData/configuration/maven/fixExisting/pom_after.xml
rename to idea/idea-maven/testData/configurator/jvm/fixExisting/pom_after.xml
diff --git a/idea/testData/configuration/maven/libraryMissed/pom.xml b/idea/idea-maven/testData/configurator/jvm/libraryMissed/pom.xml
similarity index 100%
rename from idea/testData/configuration/maven/libraryMissed/pom.xml
rename to idea/idea-maven/testData/configurator/jvm/libraryMissed/pom.xml
diff --git a/idea/testData/configuration/maven/libraryMissed/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/libraryMissed/pom_after.xml
similarity index 100%
rename from idea/testData/configuration/maven/libraryMissed/pom_after.xml
rename to idea/idea-maven/testData/configurator/jvm/libraryMissed/pom_after.xml
diff --git a/idea/testData/configuration/maven/pluginMissed/pom.xml b/idea/idea-maven/testData/configurator/jvm/pluginMissed/pom.xml
similarity index 100%
rename from idea/testData/configuration/maven/pluginMissed/pom.xml
rename to idea/idea-maven/testData/configurator/jvm/pluginMissed/pom.xml
diff --git a/idea/testData/configuration/maven/pluginMissed/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/pluginMissed/pom_after.xml
similarity index 100%
rename from idea/testData/configuration/maven/pluginMissed/pom_after.xml
rename to idea/idea-maven/testData/configurator/jvm/pluginMissed/pom_after.xml
diff --git a/idea/testData/configuration/maven/simpleProject/pom.xml b/idea/idea-maven/testData/configurator/jvm/simpleProject/pom.xml
similarity index 100%
rename from idea/testData/configuration/maven/simpleProject/pom.xml
rename to idea/idea-maven/testData/configurator/jvm/simpleProject/pom.xml
diff --git a/idea/testData/configuration/maven/simpleProject/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/simpleProject/pom_after.xml
similarity index 100%
rename from idea/testData/configuration/maven/simpleProject/pom_after.xml
rename to idea/idea-maven/testData/configurator/jvm/simpleProject/pom_after.xml
diff --git a/idea/testData/configuration/maven/simpleProjectSnapshot/pom.xml b/idea/idea-maven/testData/configurator/jvm/simpleProjectSnapshot/pom.xml
similarity index 100%
rename from idea/testData/configuration/maven/simpleProjectSnapshot/pom.xml
rename to idea/idea-maven/testData/configurator/jvm/simpleProjectSnapshot/pom.xml
diff --git a/idea/testData/configuration/maven/simpleProjectSnapshot/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/simpleProjectSnapshot/pom_after.xml
similarity index 100%
rename from idea/testData/configuration/maven/simpleProjectSnapshot/pom_after.xml
rename to idea/idea-maven/testData/configurator/jvm/simpleProjectSnapshot/pom_after.xml
diff --git a/idea/testData/maven-inspections/bothCompileAndTestCompileInTheSameExecution.xml b/idea/idea-maven/testData/maven-inspections/bothCompileAndTestCompileInTheSameExecution.xml
similarity index 100%
rename from idea/testData/maven-inspections/bothCompileAndTestCompileInTheSameExecution.xml
rename to idea/idea-maven/testData/maven-inspections/bothCompileAndTestCompileInTheSameExecution.xml
diff --git a/idea/testData/maven-inspections/dependencyWithNoExecution.fixed.1.xml b/idea/idea-maven/testData/maven-inspections/dependencyWithNoExecution.fixed.1.xml
similarity index 100%
rename from idea/testData/maven-inspections/dependencyWithNoExecution.fixed.1.xml
rename to idea/idea-maven/testData/maven-inspections/dependencyWithNoExecution.fixed.1.xml
diff --git a/idea/testData/maven-inspections/dependencyWithNoExecution.fixed.2.xml b/idea/idea-maven/testData/maven-inspections/dependencyWithNoExecution.fixed.2.xml
similarity index 100%
rename from idea/testData/maven-inspections/dependencyWithNoExecution.fixed.2.xml
rename to idea/idea-maven/testData/maven-inspections/dependencyWithNoExecution.fixed.2.xml
diff --git a/idea/testData/maven-inspections/dependencyWithNoExecution.xml b/idea/idea-maven/testData/maven-inspections/dependencyWithNoExecution.xml
similarity index 100%
rename from idea/testData/maven-inspections/dependencyWithNoExecution.xml
rename to idea/idea-maven/testData/maven-inspections/dependencyWithNoExecution.xml
diff --git a/idea/testData/maven-inspections/missingDependencies.fixed.1.xml b/idea/idea-maven/testData/maven-inspections/missingDependencies.fixed.1.xml
similarity index 100%
rename from idea/testData/maven-inspections/missingDependencies.fixed.1.xml
rename to idea/idea-maven/testData/maven-inspections/missingDependencies.fixed.1.xml
diff --git a/idea/testData/maven-inspections/missingDependencies.fixed.2.xml b/idea/idea-maven/testData/maven-inspections/missingDependencies.fixed.2.xml
similarity index 100%
rename from idea/testData/maven-inspections/missingDependencies.fixed.2.xml
rename to idea/idea-maven/testData/maven-inspections/missingDependencies.fixed.2.xml
diff --git a/idea/testData/maven-inspections/missingDependencies.xml b/idea/idea-maven/testData/maven-inspections/missingDependencies.xml
similarity index 100%
rename from idea/testData/maven-inspections/missingDependencies.xml
rename to idea/idea-maven/testData/maven-inspections/missingDependencies.xml
diff --git a/idea/testData/maven-inspections/noExecutions.fixed.1.xml b/idea/idea-maven/testData/maven-inspections/noExecutions.fixed.1.xml
similarity index 100%
rename from idea/testData/maven-inspections/noExecutions.fixed.1.xml
rename to idea/idea-maven/testData/maven-inspections/noExecutions.fixed.1.xml
diff --git a/idea/testData/maven-inspections/noExecutions.fixed.2.xml b/idea/idea-maven/testData/maven-inspections/noExecutions.fixed.2.xml
similarity index 100%
rename from idea/testData/maven-inspections/noExecutions.fixed.2.xml
rename to idea/idea-maven/testData/maven-inspections/noExecutions.fixed.2.xml
diff --git a/idea/testData/maven-inspections/noExecutions.xml b/idea/idea-maven/testData/maven-inspections/noExecutions.xml
similarity index 100%
rename from idea/testData/maven-inspections/noExecutions.xml
rename to idea/idea-maven/testData/maven-inspections/noExecutions.xml
diff --git a/idea/testData/maven-inspections/wrongJsExecution.xml b/idea/idea-maven/testData/maven-inspections/wrongJsExecution.xml
similarity index 100%
rename from idea/testData/maven-inspections/wrongJsExecution.xml
rename to idea/idea-maven/testData/maven-inspections/wrongJsExecution.xml
diff --git a/idea/testData/maven-inspections/wrongPhaseExecution.fixed.1.xml b/idea/idea-maven/testData/maven-inspections/wrongPhaseExecution.fixed.1.xml
similarity index 100%
rename from idea/testData/maven-inspections/wrongPhaseExecution.fixed.1.xml
rename to idea/idea-maven/testData/maven-inspections/wrongPhaseExecution.fixed.1.xml
diff --git a/idea/testData/maven-inspections/wrongPhaseExecution.xml b/idea/idea-maven/testData/maven-inspections/wrongPhaseExecution.xml
similarity index 100%
rename from idea/testData/maven-inspections/wrongPhaseExecution.xml
rename to idea/idea-maven/testData/maven-inspections/wrongPhaseExecution.xml
diff --git a/idea/idea.iml b/idea/idea.iml
index c812377c270..80f037f3c40 100644
--- a/idea/idea.iml
+++ b/idea/idea.iml
@@ -33,7 +33,6 @@
-
@@ -53,5 +52,6 @@
+
\ No newline at end of file
diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureProjectByChangingFileTest.java b/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureProjectByChangingFileTest.java
index b864e1107de..f4cbf738cf7 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureProjectByChangingFileTest.java
+++ b/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureProjectByChangingFileTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2015 JetBrains s.r.o.
+ * Copyright 2010-2016 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.
@@ -16,51 +16,40 @@
package org.jetbrains.kotlin.idea.configuration;
+import com.intellij.openapi.module.Module;
+import com.intellij.psi.PsiFile;
import com.intellij.testFramework.LightCodeInsightTestCase;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.idea.maven.model.MavenConstants;
import org.jetbrains.kotlin.test.InTextDirectivesUtils;
import org.jetbrains.kotlin.test.KotlinTestUtils;
-import org.jetbrains.plugins.groovy.lang.psi.GroovyFile;
import java.io.File;
-public abstract class AbstractConfigureProjectByChangingFileTest extends LightCodeInsightTestCase {
+public abstract class AbstractConfigureProjectByChangingFileTest extends LightCodeInsightTestCase {
private static final String DEFAULT_VERSION = "default_version";
- public void doTestWithMaven(@NotNull String path) throws Exception {
- String pathWithFile = path + "/" + MavenConstants.POM_XML;
- doTest(pathWithFile, pathWithFile.replace("pom", "pom_after"), new KotlinJavaMavenConfigurator());
- }
-
- public void doTestWithJSMaven(@NotNull String path) throws Exception {
- String pathWithFile = path + "/" + MavenConstants.POM_XML;
- doTest(pathWithFile, pathWithFile.replace("pom", "pom_after"), new KotlinJavascriptMavenConfigurator());
- }
-
- public void doTestGradle(@NotNull String path) throws Exception {
- doTest(path, path.replace("before", "after"), new KotlinGradleModuleConfigurator());
- }
-
- protected void doTest(@NotNull String beforeFile, @NotNull String afterFile, @NotNull KotlinProjectConfigurator configurator) throws Exception {
+ protected void doTest(@NotNull String beforeFile, @NotNull String afterFile, @NotNull C configurator) throws Exception {
configureByFile(beforeFile);
String versionFromFile = InTextDirectivesUtils.findStringWithPrefixes(getFile().getText(), "// VERSION:");
String version = versionFromFile != null ? versionFromFile : DEFAULT_VERSION;
NotificationMessageCollector collector = NotificationMessageCollectorKt.createConfigureKotlinNotificationCollector(getProject());
- if (configurator instanceof KotlinWithGradleConfigurator) {
- ((KotlinWithGradleConfigurator) configurator).changeGradleFile((GroovyFile) getFile(), true, version, collector);
- ((KotlinWithGradleConfigurator) configurator).changeGradleFile((GroovyFile) getFile(), false, version, collector);
- }
- else if (configurator instanceof KotlinMavenConfigurator) {
- ((KotlinMavenConfigurator) configurator).changePomFile(getModule(), getFile(), version, collector);
- }
+
+ runConfigurator(getModule(), getFile(), configurator, version, collector);
+
collector.showNotification();
KotlinTestUtils.assertEqualsToFile(new File(afterFile), getFile().getText().replace(version, "$VERSION$"));
}
+ protected abstract void runConfigurator(
+ Module module, @NotNull PsiFile file,
+ @NotNull C configurator,
+ @NotNull String version,
+ @NotNull NotificationMessageCollector collector
+ );
+
@NotNull
@Override
protected String getTestDataPath() {
diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractGradleConfigureProjectByChangingFileTest.kt b/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractGradleConfigureProjectByChangingFileTest.kt
new file mode 100644
index 00000000000..1ae9014c996
--- /dev/null
+++ b/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractGradleConfigureProjectByChangingFileTest.kt
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2010-2016 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.kotlin.idea.configuration
+
+import com.intellij.openapi.module.Module
+import com.intellij.psi.PsiFile
+import org.jetbrains.plugins.groovy.lang.psi.GroovyFile
+
+abstract class AbstractGradleConfigureProjectByChangingFileTest : AbstractConfigureProjectByChangingFileTest() {
+
+ fun doTestGradle(path: String) {
+ doTest(path, path.replace("before", "after"), KotlinGradleModuleConfigurator())
+ }
+
+ override fun runConfigurator(module: Module, file: PsiFile, configurator: KotlinWithGradleConfigurator, version: String, collector: NotificationMessageCollector) {
+ if (file !is GroovyFile) {
+ fail("file $file is not a GroovyFile")
+ return
+ }
+
+ configurator.changeGradleFile(file, true, version, collector)
+ configurator.changeGradleFile(file, false, version, collector)
+ }
+}
diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/GradleConfigureProjectByChangingFileTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/configuration/GradleConfigureProjectByChangingFileTestGenerated.java
new file mode 100644
index 00000000000..7fe12c8f061
--- /dev/null
+++ b/idea/tests/org/jetbrains/kotlin/idea/configuration/GradleConfigureProjectByChangingFileTestGenerated.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2010-2016 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.kotlin.idea.configuration;
+
+import com.intellij.testFramework.TestDataPath;
+import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
+import org.jetbrains.kotlin.test.KotlinTestUtils;
+import org.jetbrains.kotlin.test.TestMetadata;
+import org.junit.runner.RunWith;
+
+import java.io.File;
+import java.util.regex.Pattern;
+
+/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
+@SuppressWarnings("all")
+@TestMetadata("idea/testData/configuration/gradle")
+@TestDataPath("$PROJECT_ROOT")
+@RunWith(JUnit3RunnerWithInners.class)
+public class GradleConfigureProjectByChangingFileTestGenerated extends AbstractGradleConfigureProjectByChangingFileTest {
+ public void testAllFilesPresentInGradle() throws Exception {
+ KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/configuration/gradle"), Pattern.compile("(\\w+)_before\\.gradle$"), true);
+ }
+
+ @TestMetadata("default_before.gradle")
+ public void testDefault() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/configuration/gradle/default_before.gradle");
+ doTestGradle(fileName);
+ }
+
+ @TestMetadata("missedLibrary_before.gradle")
+ public void testMissedLibrary() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/configuration/gradle/missedLibrary_before.gradle");
+ doTestGradle(fileName);
+ }
+
+ @TestMetadata("plugin_present_before.gradle")
+ public void testPlugin_present() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/configuration/gradle/plugin_present_before.gradle");
+ doTestGradle(fileName);
+ }
+}