You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2026/07/18 17:26:15 UTC
(maven-build-cache-extension) 01/01: Bug: proper classifier handling
This is an automated email from the ASF dual-hosted git repository.
cstamas pushed a commit to branch proper-classifier-handling
in repository https://gitbox.apache.org/repos/asf/maven-build-cache-extension.git
commit 19f14c4f7b012a116d7b552b613bd5ed2812b8aa
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Sat Jul 18 19:25:48 2026 +0200
Bug: proper classifier handling
Replace the hack, and implement proper classifier handling.
---
.../maven/buildcache/checksum/MavenProjectInput.java | 15 ++++++---------
.../checksum/MavenProjectInputSnapshotResolutionTest.java | 5 +++++
2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java b/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java
index e7a7a8d..04e19c4 100644
--- a/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java
+++ b/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java
@@ -838,15 +838,12 @@ private DigestItem resolveArtifact(final Dependency dependency)
return DtoUtils.createDigestedFile(artifact, hash);
}
- // Handle special dependency types that have implicit classifiers
- String classifier = dependency.getClassifier();
- String extension = null;
-
- // test-jar type requires "tests" classifier and "jar" extension
- if ("test-jar".equals(dependency.getType()) && (classifier == null || classifier.isEmpty())) {
- classifier = "tests";
- extension = "jar";
- }
+ ArtifactHandler handler = artifactHandlerManager.getArtifactHandler(dependency.getType());
+ String classifier = dependency.getClassifier() == null
+ || dependency.getClassifier().trim().isEmpty()
+ ? handler.getClassifier()
+ : dependency.getClassifier();
+ String extension = handler.getExtension();
org.eclipse.aether.artifact.Artifact dependencyArtifact = new org.eclipse.aether.artifact.DefaultArtifact(
dependency.getGroupId(),
diff --git a/src/test/java/org/apache/maven/buildcache/checksum/MavenProjectInputSnapshotResolutionTest.java b/src/test/java/org/apache/maven/buildcache/checksum/MavenProjectInputSnapshotResolutionTest.java
index b10d3a8..a688f5f 100644
--- a/src/test/java/org/apache/maven/buildcache/checksum/MavenProjectInputSnapshotResolutionTest.java
+++ b/src/test/java/org/apache/maven/buildcache/checksum/MavenProjectInputSnapshotResolutionTest.java
@@ -23,6 +23,7 @@
import java.util.List;
import java.util.Properties;
+import org.apache.maven.artifact.handler.DefaultArtifactHandler;
import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.buildcache.MultiModuleSupport;
import org.apache.maven.buildcache.NormalizedModelProvider;
@@ -52,6 +53,7 @@
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -103,6 +105,9 @@ class MavenProjectInputSnapshotResolutionTest {
@BeforeEach
void setUp() {
+ // artifact handler MUST return something
+ when(artifactHandlerManager.getArtifactHandler(anyString())).thenReturn(new DefaultArtifactHandler("jar"));
+
// Setup basic mocks that MavenProjectInput constructor needs
when(session.getRepositorySession()).thenReturn(repositorySystemSession);
when(project.getBasedir()).thenReturn(tempDir.toFile());