Skip to content

Commit af6b706

Browse files
authored
[MNG-8687] Restore ability to run on JIMFS (#2256)
When worked on apache/maven-resolver@35c2d75 turned out that Resolver "demos" cannot run anymore on JIMFS. Restore that _minimally_ to make sure lowest possible binary compatibility disruption. --- https://issues.apache.org/jira/browse/MNG-8687
1 parent bd066ad commit af6b706

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

Diff for: compat/maven-model-builder/src/main/java/org/apache/maven/model/building/FileModelSource.java

+11-5
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
import java.io.File;
2222
import java.net.URI;
23+
import java.nio.file.Files;
24+
import java.nio.file.Path;
2325

2426
import org.apache.maven.building.FileSource;
2527

@@ -40,6 +42,10 @@ public FileModelSource(File pomFile) {
4042
super(pomFile);
4143
}
4244

45+
public FileModelSource(Path pomFile) {
46+
super(pomFile);
47+
}
48+
4349
/**
4450
*
4551
* @return the file of this source
@@ -55,15 +61,15 @@ public File getPomFile() {
5561
public ModelSource2 getRelatedSource(String relPath) {
5662
relPath = relPath.replace('\\', File.separatorChar).replace('/', File.separatorChar);
5763

58-
File relatedPom = new File(getFile().getParentFile(), relPath);
64+
Path relatedPom = getPath().getParent().resolve(relPath);
5965

60-
if (relatedPom.isDirectory()) {
66+
if (Files.isDirectory(relatedPom)) {
6167
// TODO figure out how to reuse ModelLocator.locatePom(File) here
62-
relatedPom = new File(relatedPom, "pom.xml");
68+
relatedPom = relatedPom.resolve("pom.xml");
6369
}
6470

65-
if (relatedPom.isFile() && relatedPom.canRead()) {
66-
return new FileModelSource(new File(relatedPom.toURI().normalize()));
71+
if (Files.isRegularFile(relatedPom) && Files.isReadable(relatedPom)) {
72+
return new FileModelSource(relatedPom.normalize());
6773
}
6874

6975
return null;

Diff for: compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
*/
1919
package org.apache.maven.repository.internal;
2020

21-
import java.io.File;
21+
import java.nio.file.Path;
2222
import java.util.ArrayList;
2323
import java.util.Collections;
2424
import java.util.HashSet;
@@ -161,7 +161,7 @@ public ModelSource resolveModel(String groupId, String artifactId, String versio
161161
throw new UnresolvableModelException(e.getMessage(), groupId, artifactId, version, e);
162162
}
163163

164-
File pomFile = pomArtifact.getFile();
164+
Path pomFile = pomArtifact.getPath();
165165

166166
return new FileModelSource(pomFile);
167167
}

0 commit comments

Comments
 (0)