You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2023/02/17 21:36:56 UTC
[maven] branch maven-3.8.x updated: [MNG-7648] Fix locationTracking in DefaultModelBuildingRequest copy constructor (#940)
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch maven-3.8.x
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/maven-3.8.x by this push:
new 91d8c6594 [MNG-7648] Fix locationTracking in DefaultModelBuildingRequest copy constructor (#940)
91d8c6594 is described below
commit 91d8c6594e881151d2feabf8c3d4119d9aa05497
Author: Pavel Horal <pa...@orchitech.cz>
AuthorDate: Thu Dec 29 14:02:33 2022 +0100
[MNG-7648] Fix locationTracking in DefaultModelBuildingRequest copy constructor (#940)
- Fix locationTracking in DefaultModelBuildingRequest copy constructor
- Add location tracking unit test
---
.../apache/maven/project/ProjectBuilderTest.java | 38 ++++++++++++++++-
.../test/projects/project-builder/MNG-7648/pom.xml | 48 ++++++++++++++++++++++
.../org/apache/maven/its/bom/0.1/bom-0.1.pom | 21 ++++++++++
.../org/apache/maven/its/bom/maven-metadata.xml | 11 +++++
.../org/apache/maven/its/parent/0.1/parent-0.1.pom | 22 ++++++++++
.../org/apache/maven/its/parent/maven-metadata.xml | 11 +++++
.../building/DefaultModelBuildingRequest.java | 1 +
7 files changed, 151 insertions(+), 1 deletion(-)
diff --git a/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java b/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java
index aae5f24ba..99e408ffe 100644
--- a/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java
+++ b/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java
@@ -37,6 +37,8 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.apache.maven.AbstractCoreMavenComponentTestCase;
import org.apache.maven.artifact.InvalidArtifactRTException;
import org.apache.maven.execution.MavenSession;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.InputLocation;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.building.FileModelSource;
import org.apache.maven.model.building.ModelBuildingRequest;
@@ -353,8 +355,42 @@ public class ProjectBuilderTest
MavenSession session = createMavenSession( pom );
MavenProject project = session.getCurrentProject();
- for (Plugin buildPlugin : project.getBuildPlugins()) {
+ for ( Plugin buildPlugin : project.getBuildPlugins() )
+ {
assertNotNull( "Missing version for build plugin " + buildPlugin.getKey(), buildPlugin.getVersion() );
}
}
+
+ public void testLocationTrackingResolution()
+ throws Exception
+ {
+ File pom = getProject( "MNG-7648" );
+
+ MavenSession session = createMavenSession( pom );
+ MavenProject project = session.getCurrentProject();
+
+ InputLocation dependencyLocation = null;
+ for ( Dependency dependency : project.getDependencies() )
+ {
+ if ( dependency.getManagementKey().equals( "org.apache.maven.its:a:jar" ) )
+ {
+ dependencyLocation = dependency.getLocation( "version" );
+ }
+ }
+ assertNotNull( "missing dependency", dependencyLocation );
+ assertEquals(
+ "org.apache.maven.its:bom:0.1", dependencyLocation.getSource().getModelId() );
+
+ InputLocation pluginLocation = null;
+ for ( Plugin plugin : project.getBuildPlugins() )
+ {
+ if ( plugin.getKey().equals( "org.apache.maven.plugins:maven-clean-plugin" ) )
+ {
+ pluginLocation = plugin.getLocation( "version" );
+ }
+ }
+ assertNotNull( "missing build plugin", pluginLocation );
+ assertEquals(
+ "org.apache.maven.its:parent:0.1", pluginLocation.getSource().getModelId() );
+ }
}
diff --git a/maven-core/src/test/projects/project-builder/MNG-7648/pom.xml b/maven-core/src/test/projects/project-builder/MNG-7648/pom.xml
new file mode 100644
index 000000000..15453dea0
--- /dev/null
+++ b/maven-core/src/test/projects/project-builder/MNG-7648/pom.xml
@@ -0,0 +1,48 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>parent</artifactId>
+ <version>0.1</version>
+ </parent>
+
+ <artifactId>location-tracking</artifactId>
+ <packaging>jar</packaging>
+
+ <repositories>
+ <repository>
+ <id>remote-repo</id>
+ <url>file://${basedir}/../../src/test/remote-repo</url>
+ </repository>
+ </repositories>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>bom</artifactId>
+ <version>0.1</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>a</artifactId>
+ <!-- version from BOM -->
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <!-- version from parent -->
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/maven-core/src/test/remote-repo/org/apache/maven/its/bom/0.1/bom-0.1.pom b/maven-core/src/test/remote-repo/org/apache/maven/its/bom/0.1/bom-0.1.pom
new file mode 100644
index 000000000..65973c895
--- /dev/null
+++ b/maven-core/src/test/remote-repo/org/apache/maven/its/bom/0.1/bom-0.1.pom
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>bom</artifactId>
+ <version>0.1</version>
+ <packaging>pom</packaging>
+
+ <name>Maven Integration Test :: Dummy BOM</name>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>a</artifactId>
+ <version>0.1</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+</project>
diff --git a/maven-core/src/test/remote-repo/org/apache/maven/its/bom/maven-metadata.xml b/maven-core/src/test/remote-repo/org/apache/maven/its/bom/maven-metadata.xml
new file mode 100644
index 000000000..073330928
--- /dev/null
+++ b/maven-core/src/test/remote-repo/org/apache/maven/its/bom/maven-metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>bom</artifactId>
+ <version>0.1</version>
+ <versioning>
+ <versions>
+ <version>0.1</version>
+ </versions>
+ </versioning>
+</metadata>
diff --git a/maven-core/src/test/remote-repo/org/apache/maven/its/parent/0.1/parent-0.1.pom b/maven-core/src/test/remote-repo/org/apache/maven/its/parent/0.1/parent-0.1.pom
new file mode 100644
index 000000000..8b149f2d7
--- /dev/null
+++ b/maven-core/src/test/remote-repo/org/apache/maven/its/parent/0.1/parent-0.1.pom
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>parent</artifactId>
+ <version>0.1</version>
+ <packaging>pom</packaging>
+
+ <name>Maven Integration Test :: Dummy Parent</name>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <version>0.1</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+</project>
diff --git a/maven-core/src/test/remote-repo/org/apache/maven/its/parent/maven-metadata.xml b/maven-core/src/test/remote-repo/org/apache/maven/its/parent/maven-metadata.xml
new file mode 100644
index 000000000..3a76b19e6
--- /dev/null
+++ b/maven-core/src/test/remote-repo/org/apache/maven/its/parent/maven-metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>parent</artifactId>
+ <version>0.1</version>
+ <versioning>
+ <versions>
+ <version>0.1</version>
+ </versions>
+ </versioning>
+</metadata>
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
index 84a68f74c..14cea3533 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
@@ -92,6 +92,7 @@ public class DefaultModelBuildingRequest
setValidationLevel( request.getValidationLevel() );
setProcessPlugins( request.isProcessPlugins() );
setTwoPhaseBuilding( request.isTwoPhaseBuilding() );
+ setLocationTracking( request.isLocationTracking() );
setProfiles( request.getProfiles() );
setActiveProfileIds( request.getActiveProfileIds() );
setInactiveProfileIds( request.getInactiveProfileIds() );