This is an automated email from the ASF dual-hosted git repository.
sjaranowski pushed a commit to branch maven-3.9.x
in repository https://gitbox.apache.org/repos/asf/maven-integration-testing.git
The following commit(s) were added to refs/heads/maven-3.9.x by this push:
new 1027fef32 [MNG-7758] Report dependency problems for all repository -
extends ITs
1027fef32 is described below
commit 1027fef32ee0fa1537933298447749869ca1747e
Author: Slawomir Jaranowski <[email protected]>
AuthorDate: Wed Jun 12 09:48:43 2024 +0200
[MNG-7758] Report dependency problems for all repository - extends ITs
(cherry picked from commit aaf6d01bf23b0c739f0daf970307d61a39e5b276)
---
...ng3477DependencyResolutionErrorMessageTest.java | 113 ++++++++++++++++++---
.../mng-3477/{settings.xml => pom-plugin.xml} | 59 ++++++-----
.../{settings.xml => settings-template.xml} | 16 ++-
3 files changed, 143 insertions(+), 45 deletions(-)
diff --git
a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java
b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java
index 5fcdab5dd..746e3311e 100644
---
a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java
+++
b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java
@@ -19,20 +19,25 @@
package org.apache.maven.it;
import java.io.File;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.maven.shared.verifier.VerificationException;
import org.apache.maven.shared.verifier.Verifier;
import org.apache.maven.shared.verifier.util.ResourceExtractor;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Server;
import org.junit.jupiter.api.Test;
/**
* This is a test set for <a
href="https://issues.apache.org/jira/browse/MNG-3477">MNG-3477</a>.
+ * and extends for <a
href="https://issues.apache.org/jira/browse/MNG-7758">MNG-7758</a>
*/
-public class MavenITmng3477DependencyResolutionErrorMessageTest extends
AbstractMavenIntegrationTestCase {
+class MavenITmng3477DependencyResolutionErrorMessageTest extends
AbstractMavenIntegrationTestCase {
public MavenITmng3477DependencyResolutionErrorMessageTest() {
- super("[2.1.0,3.0-alpha-1),[3.0-beta-1,)");
+ super("[3.9.8,)");
}
/**
@@ -40,29 +45,111 @@ public class
MavenITmng3477DependencyResolutionErrorMessageTest extends Abstract
*
* @throws Exception in case of failure
*/
- @Test
- public void testit() throws Exception {
+ void testit(int port, String[] logExpectPatterns, String projectFile)
throws Exception {
File testDir = ResourceExtractor.simpleExtractResources(getClass(),
"/mng-3477");
Verifier verifier = newVerifier(testDir.getAbsolutePath());
+
+ Map<String, String> filterProps = new HashMap<>();
+ filterProps.put("@port@", Integer.toString(port));
+ verifier.filterFile("settings-template.xml", "settings.xml", "UTF-8",
filterProps);
+
verifier.setAutoclean(false);
verifier.deleteArtifacts("org.apache.maven.its.mng3477");
- verifier.addCliArgument("--settings");
- verifier.addCliArgument("settings.xml");
+ verifier.addCliArgument("-U");
+ verifier.addCliArguments("--settings", "settings.xml");
+ verifier.addCliArguments("-f", projectFile);
+ verifier.addCliArgument("validate");
+ verifier.setLogFileName("log-" + projectFile + "-" + port + ".txt");
try {
- verifier.addCliArgument("validate");
verifier.execute();
fail("Build should have failed to resolve dependency");
} catch (VerificationException e) {
- boolean foundCause = false;
List<String> lines = verifier.loadLines(verifier.getLogFileName(),
"UTF-8");
- for (String line : lines) {
- if
(line.matches(".*org.apache.maven.its.mng3477:dep:.*:1.0.*Connection.*refused.*"))
{
- foundCause = true;
- break;
+ for (String pattern : logExpectPatterns) {
+ boolean foundCause = false;
+ for (String line : lines) {
+ if (line.matches(pattern)) {
+ foundCause = true;
+ break;
+ }
}
+ assertTrue("Transfer error cause was not found - " + pattern,
foundCause);
+ }
+ }
+ }
+
+ /**
+ * Only one exception is returned by
DependencyCollectionException.getResult().getExceptions()
+ *
+ * @throws Exception
+ */
+ @Test
+ void connectionProblems() throws Exception {
+ testit(54312, new String[]
{".*org.apache.maven.its.mng3477:dep:.*:1.0.*Connection.*refused.*"},
"pom.xml");
+ }
+
+ @Test
+ void connectionProblemsPlugin() throws Exception {
+ testit(
+ 54312,
+ new String[] {
+ ".*The following artifacts could not be resolved:
org.apache.maven.its.plugins:maven-it-plugin-not-exists:pom:1.2.3 \\(absent\\):
Could not transfer artifact
org.apache.maven.its.plugins:maven-it-plugin-not-exists:pom:1.2.3 from/to .*
\\(http://localhost:.*/repo\\): Connect.* .*refused.*"
+ },
+ "pom-plugin.xml");
+ }
+
+ @Test
+ void notFoundProblems() throws Exception {
+ Server server = null;
+ try {
+ server = new Server(0);
+ server.start();
+ if (server.isFailed()) {
+ fail("Couldn't bind the server socket to a free port!");
+ }
+
+ int port = ((NetworkConnector)
server.getConnectors()[0]).getLocalPort();
+ testit(
+ port,
+ new String[] {
+ ".*Could not find artifact
org.apache.maven.its.mng3477:dep:.*:1.0 in central
\\(http://localhost:.*/repo\\).*",
+ ".*Could not find artifact
org.apache.maven.its.mng3477:dep:.*:1.0 in maven-core-it
\\(http://localhost:.*/repo\\).*"
+ },
+ "pom.xml");
+
+ } finally {
+ if (server != null) {
+ server.stop();
+ server.join();
+ }
+ }
+ }
+
+ @Test
+ void notFoundProblemsPlugin() throws Exception {
+ Server server = null;
+ try {
+ server = new Server(0);
+ server.start();
+ if (server.isFailed()) {
+ fail("Couldn't bind the server socket to a free port!");
+ }
+
+ int port = ((NetworkConnector)
server.getConnectors()[0]).getLocalPort();
+ testit(
+ port,
+ new String[] {
+ ".*Could not find artifact
org.apache.maven.its.plugins:maven-it-plugin-not-exists:jar:1.2.3 in central
\\(http://localhost:.*/repo\\).*",
+ ".*Could not find artifact
org.apache.maven.its.plugins:maven-it-plugin-not-exists:jar:1.2.3 in
maven-core-it \\(http://localhost:.*/repo\\).*"
+ },
+ "pom-plugin.xml");
+
+ } finally {
+ if (server != null) {
+ server.stop();
+ server.join();
}
- assertTrue("Transfer error cause was not found", foundCause);
}
}
}
diff --git a/core-it-suite/src/test/resources/mng-3477/settings.xml
b/core-it-suite/src/test/resources/mng-3477/pom-plugin.xml
similarity index 50%
copy from core-it-suite/src/test/resources/mng-3477/settings.xml
copy to core-it-suite/src/test/resources/mng-3477/pom-plugin.xml
index f55f2d030..b267e306d 100644
--- a/core-it-suite/src/test/resources/mng-3477/settings.xml
+++ b/core-it-suite/src/test/resources/mng-3477/pom-plugin.xml
@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
@@ -18,33 +17,33 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
+<project>
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven.its.mng3477</groupId>
+ <artifactId>test</artifactId>
+ <version>1</version>
+ <packaging>jar</packaging>
+
+ <name>Maven Integration Test :: MNG-3477</name>
+ <description>Tests that dependency resolution errors tell the underlying
transport issue.</description>
-<settings>
- <mirrors>
- <mirror>
- <id>central</id>
- <url>http://localhost:54312/repo</url>
- <mirrorOf>central</mirrorOf>
- </mirror>
- </mirrors>
- <profiles>
- <profile>
- <id>maven-core-it-repo</id>
- <repositories>
- <repository>
- <id>maven-core-it</id>
- <url>http://localhost:54312/repo</url>
- <releases>
- <checksumPolicy>ignore</checksumPolicy>
- </releases>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- </repositories>
- </profile>
- </profiles>
- <activeProfiles>
- <activeProfile>maven-core-it-repo</activeProfile>
- </activeProfiles>
-</settings>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.its.plugins</groupId>
+ <artifactId>maven-it-plugin-not-exists</artifactId>
+ <version>1.2.3</version>
+ <executions>
+ <execution>
+ <id>test</id>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ <phase>validate</phase>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3477/settings.xml
b/core-it-suite/src/test/resources/mng-3477/settings-template.xml
similarity index 75%
rename from core-it-suite/src/test/resources/mng-3477/settings.xml
rename to core-it-suite/src/test/resources/mng-3477/settings-template.xml
index f55f2d030..5d27e2d5b 100644
--- a/core-it-suite/src/test/resources/mng-3477/settings.xml
+++ b/core-it-suite/src/test/resources/mng-3477/settings-template.xml
@@ -23,7 +23,7 @@ under the License.
<mirrors>
<mirror>
<id>central</id>
- <url>http://localhost:54312/repo</url>
+ <url>http://localhost:@port@/repo</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
@@ -33,7 +33,7 @@ under the License.
<repositories>
<repository>
<id>maven-core-it</id>
- <url>http://localhost:54312/repo</url>
+ <url>http://localhost:@port@/repo</url>
<releases>
<checksumPolicy>ignore</checksumPolicy>
</releases>
@@ -42,6 +42,18 @@ under the License.
</snapshots>
</repository>
</repositories>
+ <pluginRepositories>
+ <pluginRepository>
+ <id>maven-core-it</id>
+ <url>http://localhost:@port@/repo</url>
+ <releases>
+ <checksumPolicy>ignore</checksumPolicy>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </pluginRepository>
+ </pluginRepositories>
</profile>
</profiles>
<activeProfiles>