You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2023/01/01 12:41:17 UTC
[maven] branch maven-3.9.x updated: [MNG-7648] Fix locationTracking in DefaultModelBuildingRequest copy constructor (#940)
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.git
The following commit(s) were added to refs/heads/maven-3.9.x by this push:
new 86d6e2aef [MNG-7648] Fix locationTracking in DefaultModelBuildingRequest copy constructor (#940)
86d6e2aef is described below
commit 86d6e2aeffb7dd0692207e68ac68cf9efd0fbd77
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 | 29 +++++++++++++
.../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, 143 insertions(+)
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 76b5669bc..e99094915 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
@@ -36,6 +36,8 @@ import org.apache.commons.io.FileUtils;
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;
@@ -308,4 +310,31 @@ public class ProjectBuilderTest extends AbstractCoreMavenComponentTestCase {
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 03737eeb6..09ddb82c7 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
@@ -85,6 +85,7 @@ public class DefaultModelBuildingRequest implements ModelBuildingRequest {
setValidationLevel(request.getValidationLevel());
setProcessPlugins(request.isProcessPlugins());
setTwoPhaseBuilding(request.isTwoPhaseBuilding());
+ setLocationTracking(request.isLocationTracking());
setProfiles(request.getProfiles());
setActiveProfileIds(request.getActiveProfileIds());
setInactiveProfileIds(request.getInactiveProfileIds());