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 2024/01/27 13:23:54 UTC
(maven-resolver) branch maven-resolver-1.9.x updated: [1.9.x][MRESOLVER-483] Fix path concatenation logic (#420)
This is an automated email from the ASF dual-hosted git repository.
cstamas pushed a commit to branch maven-resolver-1.9.x
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git
The following commit(s) were added to refs/heads/maven-resolver-1.9.x by this push:
new fc969c25 [1.9.x][MRESOLVER-483] Fix path concatenation logic (#420)
fc969c25 is described below
commit fc969c2570041bb72c3f0141ff4957e8754f365c
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Sat Jan 27 14:23:48 2024 +0100
[1.9.x][MRESOLVER-483] Fix path concatenation logic (#420)
As iterator may have more, but no file check is done
---
https://issues.apache.org/jira/browse/MRESOLVER-483
---
.../AbstractDepthFirstNodeListGenerator.java | 4 +--
...actDepthFirstNodeListGeneratorTestSupport.java} | 40 +++++++++++++++++-----
.../visitor/PostorderNodeListGeneratorTest.java | 20 +----------
.../visitor/PreorderNodeListGeneratorTest.java | 21 +-----------
4 files changed, 35 insertions(+), 50 deletions(-)
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/AbstractDepthFirstNodeListGenerator.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/AbstractDepthFirstNodeListGenerator.java
index 6293dda0..abea94bd 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/AbstractDepthFirstNodeListGenerator.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/AbstractDepthFirstNodeListGenerator.java
@@ -135,10 +135,10 @@ abstract class AbstractDepthFirstNodeListGenerator implements DependencyVisitor
if (node.getDependency() != null) {
Artifact artifact = node.getDependency().getArtifact();
if (artifact.getFile() != null) {
- buffer.append(artifact.getFile().getAbsolutePath());
- if (it.hasNext()) {
+ if (buffer.length() != 0) {
buffer.append(File.pathSeparatorChar);
}
+ buffer.append(artifact.getFile().getAbsolutePath());
}
}
}
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/visitor/PreorderNodeListGeneratorTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/visitor/AbstractDepthFirstNodeListGeneratorTestSupport.java
similarity index 56%
copy from maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/visitor/PreorderNodeListGeneratorTest.java
copy to maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/visitor/AbstractDepthFirstNodeListGeneratorTestSupport.java
index c169d522..ca3b8ddf 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/visitor/PreorderNodeListGeneratorTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/visitor/AbstractDepthFirstNodeListGeneratorTestSupport.java
@@ -18,21 +18,24 @@
*/
package org.eclipse.aether.util.graph.visitor;
+import java.io.File;
import java.util.List;
import org.eclipse.aether.graph.DependencyNode;
+import org.eclipse.aether.graph.DependencyVisitor;
import org.eclipse.aether.internal.test.util.DependencyGraphParser;
import org.junit.Test;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
-public class PreorderNodeListGeneratorTest {
+public abstract class AbstractDepthFirstNodeListGeneratorTestSupport {
- private DependencyNode parse(String resource) throws Exception {
+ protected DependencyNode parse(String resource) throws Exception {
return new DependencyGraphParser("visitor/ordered-list/").parseResource(resource);
}
- private void assertSequence(List<DependencyNode> actual, String... expected) {
+ protected void assertSequence(List<DependencyNode> actual, String... expected) {
assertEquals(actual.toString(), expected.length, actual.size());
for (int i = 0; i < expected.length; i++) {
DependencyNode node = actual.get(i);
@@ -44,22 +47,41 @@ public class PreorderNodeListGeneratorTest {
}
@Test
- public void testOrdering() throws Exception {
+ public void testClasspath() throws Exception {
DependencyNode root = parse("simple.txt");
PreorderNodeListGenerator visitor = new PreorderNodeListGenerator();
root.accept(visitor);
- assertSequence(visitor.getNodes(), "a", "b", "c", "d", "e");
+ assertEquals(visitor.getClassPath(), "");
}
@Test
- public void testDuplicateSuppression() throws Exception {
- DependencyNode root = parse("cycles.txt");
+ public void testFullyResolverClasspath() throws Exception {
+ DependencyNode root = parse("simple.txt");
+
+ DependencyVisitor fileSetter = new DependencyVisitor() {
+ @Override
+ public boolean visitEnter(DependencyNode node) {
+ node.setArtifact(
+ node.getArtifact().setFile(new File(node.getArtifact().getArtifactId())));
+ return true;
+ }
+
+ @Override
+ public boolean visitLeave(DependencyNode node) {
+ return true;
+ }
+ };
+ root.accept(fileSetter);
PreorderNodeListGenerator visitor = new PreorderNodeListGenerator();
root.accept(visitor);
- assertSequence(visitor.getNodes(), "a", "b", "c", "d", "e");
+ String classpath = visitor.getClassPath();
+ assertEquals(5, classpath.split(File.pathSeparator).length);
+ for (File file : visitor.getFiles()) {
+ assertTrue("missing: " + file, classpath.contains(file.getAbsolutePath()));
+ }
}
}
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/visitor/PostorderNodeListGeneratorTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/visitor/PostorderNodeListGeneratorTest.java
index 116c08b1..84fcc3dc 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/visitor/PostorderNodeListGeneratorTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/visitor/PostorderNodeListGeneratorTest.java
@@ -18,30 +18,12 @@
*/
package org.eclipse.aether.util.graph.visitor;
-import java.util.List;
-
import org.eclipse.aether.graph.DependencyNode;
-import org.eclipse.aether.internal.test.util.DependencyGraphParser;
import org.junit.Test;
import static org.junit.Assert.*;
-public class PostorderNodeListGeneratorTest {
-
- private DependencyNode parse(String resource) throws Exception {
- return new DependencyGraphParser("visitor/ordered-list/").parseResource(resource);
- }
-
- private void assertSequence(List<DependencyNode> actual, String... expected) {
- assertEquals(actual.toString(), expected.length, actual.size());
- for (int i = 0; i < expected.length; i++) {
- DependencyNode node = actual.get(i);
- assertEquals(
- actual.toString(),
- expected[i],
- node.getDependency().getArtifact().getArtifactId());
- }
- }
+public class PostorderNodeListGeneratorTest extends AbstractDepthFirstNodeListGeneratorTestSupport {
@Test
public void testOrdering() throws Exception {
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/visitor/PreorderNodeListGeneratorTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/visitor/PreorderNodeListGeneratorTest.java
index c169d522..72576874 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/visitor/PreorderNodeListGeneratorTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/visitor/PreorderNodeListGeneratorTest.java
@@ -18,31 +18,12 @@
*/
package org.eclipse.aether.util.graph.visitor;
-import java.util.List;
-
import org.eclipse.aether.graph.DependencyNode;
-import org.eclipse.aether.internal.test.util.DependencyGraphParser;
import org.junit.Test;
import static org.junit.Assert.*;
-public class PreorderNodeListGeneratorTest {
-
- private DependencyNode parse(String resource) throws Exception {
- return new DependencyGraphParser("visitor/ordered-list/").parseResource(resource);
- }
-
- private void assertSequence(List<DependencyNode> actual, String... expected) {
- assertEquals(actual.toString(), expected.length, actual.size());
- for (int i = 0; i < expected.length; i++) {
- DependencyNode node = actual.get(i);
- assertEquals(
- actual.toString(),
- expected[i],
- node.getDependency().getArtifact().getArtifactId());
- }
- }
-
+public class PreorderNodeListGeneratorTest extends AbstractDepthFirstNodeListGeneratorTestSupport {
@Test
public void testOrdering() throws Exception {
DependencyNode root = parse("simple.txt");