diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.kt index 616be71f8777..718492c209a0 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.kt @@ -1982,7 +1982,7 @@ object MavenUtil { fun isMaven410(xmlns: String?, schemaLocation: String?): Boolean { if (xmlns == null || schemaLocation == null) return false - val schemaLocations = schemaLocation.split(' ') + val schemaLocations = schemaLocation.split(' ', '\n') return (xmlns == MAVEN_4_XMLNS || xmlns == MAVEN_4_XMLNS_HTTPS) && schemaLocations.all { it.isNullOrBlank() || diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/inspections/dom/MavenNewModelVersionInOldSchemaInspectionTest.kt b/plugins/maven/src/test/java/org/jetbrains/idea/maven/inspections/dom/MavenNewModelVersionInOldSchemaInspectionTest.kt index 2505b80956fc..9f1041303b6f 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/inspections/dom/MavenNewModelVersionInOldSchemaInspectionTest.kt +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/inspections/dom/MavenNewModelVersionInOldSchemaInspectionTest.kt @@ -69,6 +69,40 @@ class MavenNewModelVersionInOldSchemaInspectionTest: MavenDomTestCase() { checkHighlighting() } + + @Test + fun testCheckNotHighlightingModel4_1_manySpaces() = runBlocking{ + assumeModel_4_1_0("testing only for model 4.1.0") + setRawPomFile(""" + + 4.1.0 + my.group + artifact + 1.0 + + """.trimIndent()) + checkHighlighting() + } + + @Test + fun testCheckNotHighlightingModel4_1_newLine() = runBlocking{ + assumeModel_4_1_0("testing only for model 4.1.0") + setRawPomFile(""" + + 4.1.0 + my.group + artifact + 1.0 + + """.trimIndent()) + checkHighlighting() + } + @Test fun testCheckNotHighlightingModel4_1_underscore() = runBlocking{ assumeModel_4_1_0("testing only for model 4.1.0") diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/utils/MavenUtilTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/utils/MavenUtilTest.java index 584047d26592..af0507380ab1 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/utils/MavenUtilTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/utils/MavenUtilTest.java @@ -99,4 +99,17 @@ public class MavenUtilTest extends MavenTestCase { Files.writeString(file.toNioPath(), str, StandardCharsets.ISO_8859_1); assertEquals("mytestpath", MavenUtil.getRepositoryFromSettings(file.toNioPath())); } + + public void testIsMaven41() throws IOException { + assertFalse(MavenUtil.INSTANCE.isMaven410(null, null)); + assertFalse(MavenUtil.INSTANCE.isMaven410(null, "http://maven.apache.org/POM/4.1.0 http://maven.apache.org/xsd/maven-4.1.0.xsd")); + assertFalse(MavenUtil.INSTANCE.isMaven410("http://maven.apache.org/POM/4.1.0", null)); + assertFalse(MavenUtil.INSTANCE.isMaven410("http://maven.apache.org/POM/4.1.0", "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd")); + assertFalse(MavenUtil.INSTANCE.isMaven410("http://maven.apache.org/POM/4.0.0", "http://maven.apache.org/POM/4.1.0 http://maven.apache.org/xsd/maven-4.1.0.xsd")); + assertTrue(MavenUtil.INSTANCE.isMaven410("http://maven.apache.org/POM/4.1.0", "http://maven.apache.org/POM/4.1.0 http://maven.apache.org/xsd/maven-4.1.0.xsd")); + assertTrue(MavenUtil.INSTANCE.isMaven410("https://maven.apache.org/POM/4.1.0", "https://maven.apache.org/POM/4.1.0 https://maven.apache.org/xsd/maven-4.1.0.xsd")); + assertTrue(MavenUtil.INSTANCE.isMaven410("https://maven.apache.org/POM/4.1.0", "https://maven.apache.org/POM/4.1.0 https://maven.apache.org/xsd/maven-4.1.0.xsd")); + assertTrue(MavenUtil.INSTANCE.isMaven410("https://maven.apache.org/POM/4.1.0", "https://maven.apache.org/POM/4.1.0 https://maven.apache.org/xsd/maven-4.1.0.xsd https://maven.apache.org/maven-v4_1_0.xsd")); + assertTrue(MavenUtil.INSTANCE.isMaven410("https://maven.apache.org/POM/4.1.0", "https://maven.apache.org/POM/4.1.0\nhttps://maven.apache.org/xsd/maven-4.1.0.xsd\n https://maven.apache.org/maven-v4_1_0.xsd")); + } } \ No newline at end of file