You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2021/03/28 13:22:46 UTC

[maven-integration-testing] branch MNG-6772_2 updated (5bc2e70 -> 9b5ca70)

This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a change to branch MNG-6772_2
in repository https://gitbox.apache.org/repos/asf/maven-integration-testing.git.


 discard 5bc2e70  [MNG-6772] Project repositories should only be used by direct dependencies, not transitive dependencies
     add 379faa9  [MNG-7051] When an optional profile could not be found, an info message should be thrown instead of a warning.
     add 70a45ce  [MNG-7110] Different behavior of extensions
     add c18cf64  Merge branch 'MNG-7110'
     add 1735a9e  Revert "[MNG-7046] Revert MNG-5639 and make repo config static only"
     add 0b9e6e6  Fix syntax error
     add c9f83d9  [MNG-6075] Increase the model validation level to the next minor level version
     add 9be9c24  [MNG-6511] Testing whether projects can be marked optional during (de)selection using --projects.
     add 39b9af7  [MNG-7128] test blocked HTTP repository in pom.xml
     new c07085a  [MNG-6772] Project repositories should only be used by direct dependencies, not transitive dependencies
     new 9b5ca70  simplify test and rename BOMs to bom-a and bom-b

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (5bc2e70)
            \
             N -- N -- N   refs/heads/MNG-6772_2 (9b5ca70)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/maven/it/IntegrationTestSuite.java  |   3 +
 ...venITmng1021EqualAttachmentBuildNumberTest.java |  30 +++---
 .../it/MavenITmng1701DuplicatePluginTest.java      |  27 ++++--
 .../it/MavenITmng3719PomExecutionOrderingTest.java |   2 +-
 .../it/MavenITmng4005UniqueDependencyKeyTest.java  |  27 ++++--
 ...MavenITmng5639ImportScopePomResolutionTest.java |   2 +-
 ...MavenITmng6511OptionalProjectSelectionTest.java | 104 +++++++++++++++++++++
 ...mng6772NestedImportScopeRepositoryOverride.java |  96 ++-----------------
 ...avenITmng7051OptionalProfileActivationTest.java |   8 +-
 .../it/MavenITmng7110ExtensionClassloader.java     |  66 +++++++++++++
 ...MavenITmng7128BlockExternalHttpReactorTest.java |  62 ++++++++++++
 .../bootstrap/{group-9 => group-13}/pom.xml        |  16 +---
 .../src/test/resources/bootstrap/group-8/pom.xml   |   5 -
 core-it-suite/src/test/resources/bootstrap/pom.xml |   1 +
 core-it-suite/src/test/resources/mng-1021/pom.xml  |   2 +-
 .../src/test/resources/mng-3259/module1/pom.xml    |   2 +-
 .../src/test/resources/mng-3259/module2/pom.xml    |   2 +-
 .../src/test/resources/mng-3259/module3/pom.xml    |   2 +-
 .../src/test/resources/mng-3259/module4/pom.xml    |   2 +-
 .../src/test/resources/mng-3259/module5/pom.xml    |   2 +-
 .../src/test/resources/mng-3259/parent/pom.xml     |   2 +-
 core-it-suite/src/test/resources/mng-3259/pom.xml  |   2 +-
 .../.mvn/.gitkeep                                  |   0
 .../existing-module}/pom.xml                       |  27 +++---
 .../src/main/java/org/apache/its/mng6511}/App.java |   6 +-
 .../pom.xml                                        |  25 +----
 .../{pom-template.xml => pom.xml}                  |   7 +-
 .../apache/maven/its/mng6772/a/0.1/a-0.1.pom.md5   |   1 -
 .../apache/maven/its/mng6772/a/0.1/a-0.1.pom.sha1  |   1 -
 .../apache/maven/its/mng6772/b/0.1/b-0.1.pom.md5   |   1 -
 .../apache/maven/its/mng6772/b/0.1/b-0.1.pom.sha1  |   1 -
 .../{a/0.1/a-0.1.pom => bom-a/0.1/bom-a-0.1.pom}   |  10 +-
 .../maven/its/mng6772/bom-a/0.1/bom-a-0.1.pom.sha1 |   1 +
 .../{b/0.1/b-0.1.pom => bom-b/0.1/bom-b-0.1.pom}   |   2 +-
 .../maven/its/mng6772/bom-b/0.1/bom-b-0.1.pom.sha1 |   1 +
 .../bom}/pom.xml                                   |  26 +++---
 .../extension}/pom.xml                             |   9 +-
 .../extension/src/main/resources/extension.txt}    |   9 +-
 .../lib}/pom.xml                                   |   9 +-
 .../lib/src/main/resources/lib.txt}                |   9 +-
 .../module}/pom.xml                                |  50 ++++++----
 .../parent}/pom.xml                                |  44 +++++----
 .../mng-7128-block-external-http-reactor/pom.xml   |  44 +++++++++
 .../settings.xml}                                  |  16 ++--
 run-its.sh                                         |   2 +-
 45 files changed, 485 insertions(+), 281 deletions(-)
 create mode 100644 core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6511OptionalProjectSelectionTest.java
 create mode 100644 core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7110ExtensionClassloader.java
 create mode 100644 core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7128BlockExternalHttpReactorTest.java
 copy core-it-suite/src/test/resources/bootstrap/{group-9 => group-13}/pom.xml (76%)
 copy core-it-suite/src/test/resources/{mng-6118-submodule-invocation-full-reactor => mng-6511-optional-project-selection}/.mvn/.gitkeep (100%)
 copy core-it-suite/src/test/resources/{mng-5230-make-reactor-with-excludes => mng-6511-optional-project-selection/existing-module}/pom.xml (75%)
 copy core-it-suite/src/test/resources/{mng-5868/src/main/java/org/apache/maven/its/mng5338 => mng-6511-optional-project-selection/existing-module/src/main/java/org/apache/its/mng6511}/App.java (93%)
 copy core-it-suite/src/test/resources/{mng-6118-submodule-invocation-full-reactor => mng-6511-optional-project-selection}/pom.xml (74%)
 rename core-it-suite/src/test/resources/mng-6772-override-in-project/{pom-template.xml => pom.xml} (83%)
 delete mode 100644 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
 delete mode 100644 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
 delete mode 100644 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
 delete mode 100644 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
 rename core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/{a/0.1/a-0.1.pom => bom-a/0.1/bom-a-0.1.pom} (79%)
 create mode 100644 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
 rename core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/{b/0.1/b-0.1.pom => bom-b/0.1/bom-b-0.1.pom} (97%)
 create mode 100644 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
 copy core-it-suite/src/test/resources/{mng-6352-print-version/module-2 => mng-7110-extensionclassloader/bom}/pom.xml (73%)
 copy core-it-suite/src/test/resources/{mng-5591-workspace-reader/basic/module-b => mng-7110-extensionclassloader/extension}/pom.xml (79%)
 copy core-it-suite/src/test/resources/{mng-6772-override-in-project/settings-override.xml => mng-7110-extensionclassloader/extension/src/main/resources/extension.txt} (88%)
 copy core-it-suite/src/test/resources/{mng-5591-workspace-reader/basic/module-b => mng-7110-extensionclassloader/lib}/pom.xml (79%)
 copy core-it-suite/src/test/resources/{mng-6772-override-in-project/settings-override.xml => mng-7110-extensionclassloader/lib/src/main/resources/lib.txt} (88%)
 copy core-it-suite/src/test/resources/{mng-0985 => mng-7110-extensionclassloader/module}/pom.xml (52%)
 copy core-it-suite/src/test/resources/{mng-6981-pl-should-include-children => mng-7110-extensionclassloader/parent}/pom.xml (64%)
 create mode 100644 core-it-suite/src/test/resources/mng-7128-block-external-http-reactor/pom.xml
 copy core-it-suite/src/test/resources/{mng-2865/central/settings-template.xml => mng-7128-block-external-http-reactor/settings.xml} (58%)

[maven-integration-testing] 02/02: simplify test and rename BOMs to bom-a and bom-b

Posted by hb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to branch MNG-6772_2
in repository https://gitbox.apache.org/repos/asf/maven-integration-testing.git

commit 9b5ca701a6c002e21eb414f3eed4ca47bec07749
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Sun Mar 28 14:57:04 2021 +0200

    simplify test and rename BOMs to bom-a and bom-b
---
 ...mng6772NestedImportScopeRepositoryOverride.java | 96 ++--------------------
 .../{pom-template.xml => pom.xml}                  |  7 +-
 .../apache/maven/its/mng6772/a/0.1/a-0.1.pom.md5   |  1 -
 .../apache/maven/its/mng6772/a/0.1/a-0.1.pom.sha1  |  1 -
 .../apache/maven/its/mng6772/b/0.1/b-0.1.pom.md5   |  1 -
 .../apache/maven/its/mng6772/b/0.1/b-0.1.pom.sha1  |  1 -
 .../{a/0.1/a-0.1.pom => bom-a/0.1/bom-a-0.1.pom}   | 10 ++-
 .../maven/its/mng6772/bom-a/0.1/bom-a-0.1.pom.sha1 |  1 +
 .../{b/0.1/b-0.1.pom => bom-b/0.1/bom-b-0.1.pom}   |  2 +-
 .../maven/its/mng6772/bom-b/0.1/bom-b-0.1.pom.sha1 |  1 +
 10 files changed, 22 insertions(+), 99 deletions(-)

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 @@ package org.apache.maven.it;
  */
 
 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 BOM POMs can only be found in the repository defined in the project POM, that overrides central repository.
  *
- * 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.
+ * 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 class MavenITmng6772NestedImportScopeRepositoryOverride
 
     public MavenITmng6772NestedImportScopeRepositoryOverride()
     {
-        super( "[3.0,)" );
+        super( "[4.0.0-alpha-1,)" );
     }
 
     // This will test the behavior using ProjectModelResolver
@@ -59,83 +52,8 @@ public class MavenITmng6772NestedImportScopeRepositoryOverride
         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 @@ under the License.
 
     <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 @@ under the License.
     <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 @@ under the License.
     <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 @@ under the License.
         <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 97%
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 @@ under the License.
     <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

[maven-integration-testing] 01/02: [MNG-6772] Project repositories should only be used by direct dependencies, not transitive dependencies

Posted by hb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to branch MNG-6772_2
in repository https://gitbox.apache.org/repos/asf/maven-integration-testing.git

commit c07085ae3c56d3f66444c7e7a9a283c330a82a50
Author: rfscholte <rf...@apache.org>
AuthorDate: Sat Jan 16 14:41:17 2021 +0100

    [MNG-6772] Project repositories should only be used by direct dependencies, not transitive dependencies
---
 ...mng6772NestedImportScopeRepositoryOverride.java | 94 +++++++++++++++++++---
 1 file changed, 84 insertions(+), 10 deletions(-)

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 398da08..65a9933 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
@@ -1,7 +1,5 @@
 package org.apache.maven.it;
 
-import java.io.File;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -21,8 +19,17 @@ import java.io.File;
  * under the License.
  */
 
+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>:
  *
@@ -39,7 +46,7 @@ public class MavenITmng6772NestedImportScopeRepositoryOverride
 
     public MavenITmng6772NestedImportScopeRepositoryOverride()
     {
-        super( "(,4.0.0-alpha-1),[4.0.0-alpha-1,)" );
+        super( "[3.0,)" );
     }
 
     // This will test the behavior using ProjectModelResolver
@@ -49,13 +56,39 @@ public class MavenITmng6772NestedImportScopeRepositoryOverride
         final File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-6772-override-in-project" );
 
         final Verifier verifier = newVerifier( testDir.getAbsolutePath(), null );
-        overrideGlobalSettings( testDir, verifier );
+        overrideSettings( testDir, verifier );
         verifier.deleteArtifacts( "org.apache.maven.its.mng6772" );
 
         verifier.filterFile( "pom-template.xml", "pom.xml", "UTF-8", verifier.newDefaultFilterProperties() );
 
-        verifier.executeGoal( "validate" );
-        verifier.verifyErrorFreeLog();
+        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();
     }
 
@@ -66,21 +99,52 @@ public class MavenITmng6772NestedImportScopeRepositoryOverride
         final File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-6772-override-in-dependency" );
 
         final Verifier verifier = newVerifier( testDir.getAbsolutePath(), null );
-        overrideGlobalSettings( testDir, verifier );
+        overrideSettings( testDir, verifier );
         verifier.deleteArtifacts( "org.apache.maven.its.mng6772" );
 
         verifier.filterFile( "pom-template.xml", "pom.xml", "UTF-8", verifier.newDefaultFilterProperties() );
 
-        verifier.executeGoal( "compile" );
-        verifier.verifyErrorFreeLog();
+        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.resetStreams();
     }
 
     // central must not be defined in any settings.xml or super POM will never be in play.
-    private void overrideGlobalSettings( final File testDir, final Verifier verifier )
+    private void overrideSettings( final File testDir, final Verifier verifier )
     {
         final File settingsFile = new File( testDir, "settings-override.xml" );
         final String path = settingsFile.getAbsolutePath();
+
         verifier.getCliOptions().add( "--global-settings" );
         if ( path.indexOf( ' ' ) < 0 )
         {
@@ -90,6 +154,16 @@ public class MavenITmng6772NestedImportScopeRepositoryOverride
         {
             verifier.getCliOptions().add( '"' + path + '"' );
         }
+
+        verifier.getCliOptions().add( "--settings" );
+        if ( path.indexOf( ' ' ) < 0 )
+        {
+            verifier.getCliOptions().add( path );
+        }
+        else
+        {
+            verifier.getCliOptions().add( '"' + path + '"' );
+        }
     }
 
 }