simplify test and rename BOMs to bom-a and bom-b
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6772NestedImportScopeRepositoryOverride.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6772NestedImportScopeRepositoryOverride.java
index 65a9933..636beba 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6772NestedImportScopeRepositoryOverride.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6772NestedImportScopeRepositoryOverride.java
@@ -20,24 +20,17 @@
*/
import java.io.File;
-import java.nio.file.Files;
-import java.util.ArrayList;
-import java.util.List;
import org.apache.maven.it.util.ResourceExtractor;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.endsWith;
-import static org.hamcrest.Matchers.startsWith;
-
/**
* This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-6772">MNG-6772</a>:
*
- * The test POM references an import scope POM, which also has a dependency on an import scope POM.
+ * The pom.xml project POM imports dependencyManagement from bom-a POM, which also imports dependencyManagement from another bom-b POM.
*
- * Both import POMs can only be found in the repository defined in the test POM.
- * It has a parent POM that defines the same repository with a different location.
- * The test confirms that the dominant repository definition (child) wins while resolving the import POMs.
+ * Both BOM POMs can only be found in the repository defined in the project POM, that overrides central repository.
+ *
+ * The test checks that central repository override from project pom.xml remains used to get bom-b POM.
*
*/
public class MavenITmng6772NestedImportScopeRepositoryOverride
@@ -46,7 +39,7 @@
public MavenITmng6772NestedImportScopeRepositoryOverride()
{
- super( "[3.0,)" );
+ super( "[4.0.0-alpha-1,)" );
}
// This will test the behavior using ProjectModelResolver
@@ -59,83 +52,8 @@
overrideSettings( testDir, verifier );
verifier.deleteArtifacts( "org.apache.maven.its.mng6772" );
- verifier.filterFile( "pom-template.xml", "pom.xml", "UTF-8", verifier.newDefaultFilterProperties() );
-
- try
- {
- verifier.executeGoal( "validate" );
- fail( "Shouldn't be able to find b-0.1.pom in Central " );
- }
- catch( VerificationException e )
- {
- }
-
- List<String> logLines = Files.readAllLines( testDir.toPath().resolve( verifier.getLogFileName() ) );
-
- List<String> downloadLines = new ArrayList<>( 3 );
- for ( String line : logLines )
- {
- if ( line.startsWith( "[INFO] Downloading from central:" ) )
- {
- downloadLines.add( line );
- }
- }
-
- assertEquals( 2, downloadLines.size() );
-
- assertThat( downloadLines.get( 0 ), endsWith( "/a-0.1.pom" ) );
- assertThat( downloadLines.get( 0 ), startsWith( "[INFO] Downloading from central: file" ) );
-
- assertThat( downloadLines.get( 1 ), endsWith( "/b-0.1.pom" ) );
- assertThat( downloadLines.get( 1 ), startsWith( "[INFO] Downloading from central: http" ) );
-
- verifier.resetStreams();
- }
-
- // This will test the behavior using DefaultModelResolver
- public void testitInDependency()
- throws Exception
- {
- final File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-6772-override-in-dependency" );
-
- final Verifier verifier = newVerifier( testDir.getAbsolutePath(), null );
- overrideSettings( testDir, verifier );
- verifier.deleteArtifacts( "org.apache.maven.its.mng6772" );
-
- verifier.filterFile( "pom-template.xml", "pom.xml", "UTF-8", verifier.newDefaultFilterProperties() );
-
- try
- {
- verifier.executeGoal( "compile" );
- fail( "Shouldn't be able to find b-0.1.pom in Central " );
- }
- catch( VerificationException e )
- {
- }
-
- List<String> logLines = Files.readAllLines( testDir.toPath().resolve( verifier.getLogFileName() ) );
-
- List<String> downloadLines = new ArrayList<>( 3 );
- for ( String line : logLines )
- {
- if ( line.startsWith( "[INFO] Downloading from central:" ) )
- {
- downloadLines.add( line );
- }
- }
-
- assertEquals( 3, downloadLines.size() );
-
- assertThat( downloadLines.get( 0 ), endsWith( "/dependency-0.1.pom" ) );
- assertThat( downloadLines.get( 0 ), startsWith( "[INFO] Downloading from central: file" ) );
-
- // this might be a bug, shouldn't it be using the repository defined in dependency-0.1.pom, even though it is a BOM
- assertThat( downloadLines.get( 1 ), endsWith( "/a-0.1.pom" ) );
- assertThat( downloadLines.get( 1 ), startsWith( "[INFO] Downloading from central: file" ) );
-
- assertThat( downloadLines.get( 2 ), endsWith( "/b-0.1.pom" ) );
- assertThat( downloadLines.get( 2 ), startsWith( "[INFO] Downloading from central: http" ) );
-
+ verifier.executeGoal( "validate" );
+ verifier.verifyErrorFreeLog();
verifier.resetStreams();
}
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/pom-template.xml b/core-it-suite/src/test/resources/mng-6772-override-in-project/pom.xml
similarity index 83%
rename from core-it-suite/src/test/resources/mng-6772-override-in-project/pom-template.xml
rename to core-it-suite/src/test/resources/mng-6772-override-in-project/pom.xml
index 19149cd..8d89632 100644
--- a/core-it-suite/src/test/resources/mng-6772-override-in-project/pom-template.xml
+++ b/core-it-suite/src/test/resources/mng-6772-override-in-project/pom.xml
@@ -29,14 +29,15 @@
<name>Maven Integration Test :: MNG-6772</name>
<description>
- Checks that overriding the central repository always wins over the super POM.
+ Checks that overriding the central repository in build pom.xml wins again transitive dependencyManagement imports
+ (both against overrides done in a BOM and against default url from super POM).
</description>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.maven.its.mng6772</groupId>
- <artifactId>a</artifactId>
+ <artifactId>bom-a</artifactId>
<version>0.1</version>
<type>pom</type>
<scope>import</scope>
@@ -47,7 +48,7 @@
<repositories>
<repository>
<id>central</id>
- <url>@baseurl@/repo</url>
+ <url>${project.baseUri}/repo</url>
</repository>
</repositories>
</project>
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom.md5
deleted file mode 100644
index 9fd5ca2..0000000
--- a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-0e871be0b2826cd1b685c08c1ac592b7
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom.sha1
deleted file mode 100644
index a8b0235..0000000
--- a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e4661f80f5265a892f65aad88613b39ac25b3265
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom.md5
deleted file mode 100644
index 10cf264..0000000
--- a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-41e65e1263946b235faf620172565687
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom.sha1
deleted file mode 100644
index 23f7629..0000000
--- a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d2c3318bde4e19f9b4d8aedd01bf2edf061f73b9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-a/0.1/bom-a-0.1.pom
similarity index 79%
rename from core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom
rename to core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-a/0.1/bom-a-0.1.pom
index 5420f7b..5e473bd 100644
--- a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-a/0.1/bom-a-0.1.pom
@@ -23,7 +23,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.its.mng6772</groupId>
- <artifactId>a</artifactId>
+ <artifactId>bom-a</artifactId>
<version>0.1</version>
<packaging>pom</packaging>
@@ -31,11 +31,17 @@
<dependencies>
<dependency>
<groupId>org.apache.maven.its.mng6772</groupId>
- <artifactId>b</artifactId>
+ <artifactId>bom-b</artifactId>
<version>0.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
+ <!--repositories> future addition: this repository definition should be ignored when downloading bom-b
+ <repository>
+ <id>central</id>
+ <url>http://0.0.0.0/defined-in/bom-a</url>
+ </repository>
+ </repositories-->
</project>
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-a/0.1/bom-a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-a/0.1/bom-a-0.1.pom.sha1
new file mode 100644
index 0000000..bc13ac7
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-a/0.1/bom-a-0.1.pom.sha1
@@ -0,0 +1 @@
+f6654f53a3d96b2655ca496d1dc14cde11420dfb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-b/0.1/bom-b-0.1.pom
similarity index 96%
rename from core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom
rename to core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-b/0.1/bom-b-0.1.pom
index 4387411..da33c8f 100644
--- a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-b/0.1/bom-b-0.1.pom
@@ -23,7 +23,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.its.mng6772</groupId>
- <artifactId>b</artifactId>
+ <artifactId>bom-b</artifactId>
<version>0.1</version>
<packaging>pom</packaging>
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-b/0.1/bom-b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-b/0.1/bom-b-0.1.pom.sha1
new file mode 100644
index 0000000..561e01e
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-b/0.1/bom-b-0.1.pom.sha1
@@ -0,0 +1 @@
+73824ba3535c90baceeced927dc0a1b23cf4714d
\ No newline at end of file