From db9582d5aac3bac9cfbe5d948020062dff98468e Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Tue, 18 Jul 2023 10:29:41 +0200 Subject: [PATCH] [MNG-5862] Add an IT for xml entities and xinclude # Conflicts: # core-it-suite/src/test/java/org/apache/maven/it/TestSuiteOrdering.java --- core-it-suite/pom.xml | 2 + .../it/MavenITmng5862EntitiesAndXInclude.java | 55 +++++++++++++++++++ .../apache/maven/it/TestSuiteOrdering.java | 1 + .../src/test/resources-filtered/bootstrap.txt | 1 + .../mng-5862-entities-xinclude/child/pom.xml | 36 ++++++++++++ .../mng-5862-entities-xinclude/foo.dtd | 20 +++++++ .../mng-5862-entities-xinclude/pom.xml | 39 +++++++++++++ .../mng-5862-entities-xinclude/snippets.xml | 31 +++++++++++ .../mng-5862-entities-xinclude/version.xml | 19 +++++++ 9 files changed, 204 insertions(+) create mode 100644 core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5862EntitiesAndXInclude.java create mode 100644 core-it-suite/src/test/resources/mng-5862-entities-xinclude/child/pom.xml create mode 100644 core-it-suite/src/test/resources/mng-5862-entities-xinclude/foo.dtd create mode 100644 core-it-suite/src/test/resources/mng-5862-entities-xinclude/pom.xml create mode 100644 core-it-suite/src/test/resources/mng-5862-entities-xinclude/snippets.xml create mode 100644 core-it-suite/src/test/resources/mng-5862-entities-xinclude/version.xml diff --git a/core-it-suite/pom.xml b/core-it-suite/pom.xml index e963c24e4..18faa6347 100644 --- a/core-it-suite/pom.xml +++ b/core-it-suite/pom.xml @@ -518,6 +518,8 @@ under the License. src/test/resources/mng-2254/latin-1/pom.xml src/test/resources/mng-2362/latin-1/pom.xml src/test/resources/mng-3839/pom.xml + src/test/resources/mng-5862-entities-xinclude/pom.xml + src/test/resources/mng-5862-entities-xinclude/child/pom.xml diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5862EntitiesAndXInclude.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5862EntitiesAndXInclude.java new file mode 100644 index 000000000..289cb837c --- /dev/null +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5862EntitiesAndXInclude.java @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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.apache.maven.it; + +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.stream.Collectors; + +import org.apache.maven.shared.verifier.Verifier; +import org.apache.maven.shared.verifier.util.ResourceExtractor; +import org.junit.jupiter.api.Test; + +public class MavenITmng5862EntitiesAndXInclude extends AbstractMavenIntegrationTestCase { + + public MavenITmng5862EntitiesAndXInclude() { + super("(4.0.0-alpha-7,)"); + } + + @Test + public void testRelativePathPointsToWrongVersion() throws Exception { + File testDir = ResourceExtractor.simpleExtractResources(getClass(), "/mng-5862-entities-xinclude"); + + Verifier verifier = newVerifier(testDir.getPath()); + verifier.addCliArgument("install"); + verifier.execute(); + verifier.verifyErrorFreeLog(); + + String path = verifier.getArtifactPath("org.apache.maven.it5862", "parent", "1.0-SNAPSHOT", "pom"); + String content = Files.lines(Paths.get(path)).collect(Collectors.joining(System.lineSeparator())); + assertFalse(content.contains("&version;")); + assertFalse(content.contains("xi:include")); + + path = verifier.getArtifactPath("org.apache.maven.it5862", "child", "1.0-SNAPSHOT", "pom"); + content = Files.lines(Paths.get(path)).collect(Collectors.joining(System.lineSeparator())); + assertFalse(content.contains("&version;")); + assertFalse(content.contains("xi:include")); + } +} diff --git a/core-it-suite/src/test/java/org/apache/maven/it/TestSuiteOrdering.java b/core-it-suite/src/test/java/org/apache/maven/it/TestSuiteOrdering.java index 39faaec32..efafb1260 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/TestSuiteOrdering.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/TestSuiteOrdering.java @@ -120,6 +120,7 @@ public TestSuiteOrdering() { * the tests are to finishing. Newer tests are also more likely to fail, so this is * a fail fast technique as well. */ + suite.addTestSuite(MavenITmng5862EntitiesAndXInclude.class); suite.addTestSuite(MavenITmng7967ArtifactHandlerLanguageTest.class); suite.addTestSuite(MavenITmng7965PomDuplicateTagsTest.class); suite.addTestSuite(MavenITmng7939PluginsValidationExcludesTest.class); diff --git a/core-it-suite/src/test/resources-filtered/bootstrap.txt b/core-it-suite/src/test/resources-filtered/bootstrap.txt index e043c2617..34e62a73d 100644 --- a/core-it-suite/src/test/resources-filtered/bootstrap.txt +++ b/core-it-suite/src/test/resources-filtered/bootstrap.txt @@ -111,6 +111,7 @@ org.apache.maven.plugins:maven-resources-plugin:3.2.0 org.apache.maven.plugins:maven-resources-plugin:3.3.0 org.apache.maven.plugins:maven-site-plugin:${stubPluginVersion} org.apache.maven.plugins:maven-site-plugin:3.9.1 +org.apache.maven.plugins:maven-site-plugin:3.12.0 org.apache.maven.plugins:maven-shade-plugin:3.5.0 org.apache.maven.plugins:maven-source-plugin:${stubPluginVersion} org.apache.maven.plugins:maven-surefire-plugin:${stubPluginVersion} diff --git a/core-it-suite/src/test/resources/mng-5862-entities-xinclude/child/pom.xml b/core-it-suite/src/test/resources/mng-5862-entities-xinclude/child/pom.xml new file mode 100644 index 000000000..937dc6888 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-5862-entities-xinclude/child/pom.xml @@ -0,0 +1,36 @@ + + + + + + + 4.0.0 + + + + &groupId; + child + &version; + jar + + \ No newline at end of file diff --git a/core-it-suite/src/test/resources/mng-5862-entities-xinclude/foo.dtd b/core-it-suite/src/test/resources/mng-5862-entities-xinclude/foo.dtd new file mode 100644 index 000000000..a854e4a5c --- /dev/null +++ b/core-it-suite/src/test/resources/mng-5862-entities-xinclude/foo.dtd @@ -0,0 +1,20 @@ + + + + diff --git a/core-it-suite/src/test/resources/mng-5862-entities-xinclude/pom.xml b/core-it-suite/src/test/resources/mng-5862-entities-xinclude/pom.xml new file mode 100644 index 000000000..14c499834 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-5862-entities-xinclude/pom.xml @@ -0,0 +1,39 @@ + + + + + + + 4.0.0 + + &groupId; + parent + &version; + + pom + + + child + + + \ No newline at end of file diff --git a/core-it-suite/src/test/resources/mng-5862-entities-xinclude/snippets.xml b/core-it-suite/src/test/resources/mng-5862-entities-xinclude/snippets.xml new file mode 100644 index 000000000..04f725033 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-5862-entities-xinclude/snippets.xml @@ -0,0 +1,31 @@ + + + + +]> + + + + &groupId; + parent + &version; + + + \ No newline at end of file diff --git a/core-it-suite/src/test/resources/mng-5862-entities-xinclude/version.xml b/core-it-suite/src/test/resources/mng-5862-entities-xinclude/version.xml new file mode 100644 index 000000000..d0d54b033 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-5862-entities-xinclude/version.xml @@ -0,0 +1,19 @@ + + +1.0-SNAPSHOT \ No newline at end of file