You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/09/09 11:41:08 UTC
[isis] branch master updated: ISIS-2426: tooling: fix relative path
resolution when building maven tree
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 5d201cf ISIS-2426: tooling: fix relative path resolution when building maven tree
5d201cf is described below
commit 5d201cf1f65e701e6da2c82f8af3c3589d60d4a2
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Sep 9 13:40:49 2020 +0200
ISIS-2426: tooling: fix relative path resolution when building maven
tree
---
.../tooling/projectmodel/ProjectNodeFactory.java | 8 +++++--
.../projectmodel/maven/SimpleModelResolver.java | 26 +++++++++++++++-------
.../project-model/src/main/resources/log4j2.xml | 2 +-
3 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/tooling/project-model/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory.java b/tooling/project-model/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory.java
index a4ec7ab..4fad900 100644
--- a/tooling/project-model/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory.java
+++ b/tooling/project-model/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory.java
@@ -21,6 +21,7 @@ package org.apache.isis.tooling.projectmodel;
import java.io.File;
import java.util.Objects;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
import org.apache.maven.model.Model;
import org.gradle.tooling.GradleConnector;
@@ -82,8 +83,11 @@ public class ProjectNodeFactory {
}
private static Iterable<Model> childrenOf(Model mavenProj, SimpleModelResolver modelResolver) {
- return mavenProj.getModules()
- .stream()
+
+ return Stream.<String>concat(
+ mavenProj.getProfiles().stream().flatMap(profile->profile.getModules().stream()),
+ mavenProj.getModules().stream())
+ .distinct()
.map(name->modelResolver.lookupCatalogForSubmoduleOf(mavenProj, name))
.filter(Objects::nonNull)
.collect(Collectors.toList());
diff --git a/tooling/project-model/src/main/java/org/apache/isis/tooling/projectmodel/maven/SimpleModelResolver.java b/tooling/project-model/src/main/java/org/apache/isis/tooling/projectmodel/maven/SimpleModelResolver.java
index c7309ae..7901686 100644
--- a/tooling/project-model/src/main/java/org/apache/isis/tooling/projectmodel/maven/SimpleModelResolver.java
+++ b/tooling/project-model/src/main/java/org/apache/isis/tooling/projectmodel/maven/SimpleModelResolver.java
@@ -19,6 +19,7 @@
package org.apache.isis.tooling.projectmodel.maven;
import java.io.File;
+import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import java.util.HashSet;
@@ -51,10 +52,13 @@ public class SimpleModelResolver implements ModelResolver {
private final Map<String, Model> projectPomCatalog = new HashMap<>();
private final Map<String, String> pathToArtifactMap = new HashMap<>();
private final Map<String, Repository> repositories = new LinkedHashMap<>();
+ private final Set<String> directoriesToIgnore = new HashSet<>();
@Getter private Model rootModel;
public SimpleModelResolver(final File projectRoot) {
+ directoriesToIgnore.add("target");
+ directoriesToIgnore.add("target-ide");
populateCatalogs(projectRoot);
}
@@ -138,10 +142,17 @@ public class SimpleModelResolver implements ModelResolver {
return this;
}
- public Model lookupCatalogForSubmoduleOf(Model mavenProj, String name) {
+
+ public Model lookupCatalogForSubmoduleOf(Model mavenProj, String realtivePath) {
- val localPath = new File(mavenProj.getPomFile().getParentFile(), name)
- .getAbsolutePath();
+ final String localPath;
+ try {
+ localPath = new File(mavenProj.getPomFile().getParentFile(), realtivePath)
+ .getCanonicalPath();
+ } catch (IOException e) {
+ log.error("cannot resolve local path {} relative to {}", realtivePath, mavenProj.getPomFile().getParent(), e);
+ return null;
+ }
val artifactKey = pathToArtifactMap.get(localPath);
if(artifactKey==null) {
@@ -161,7 +172,9 @@ public class SimpleModelResolver implements ModelResolver {
val localRootPath = projectRoot.getAbsolutePath();
_Files.searchFiles(projectRoot,
- file->!"target".equals(file.getName()),
+ file->
+ !file.getName().startsWith(".")
+ && !directoriesToIgnore.contains(file.getName()),
file->"pom.xml".equals(file.getName()))
.stream()
.forEach(pomFile->{
@@ -181,10 +194,7 @@ public class SimpleModelResolver implements ModelResolver {
pathToArtifactMap.put(localPath, artifactKey);
}
});
+
}
-
-
-
-
}
diff --git a/tooling/project-model/src/main/resources/log4j2.xml b/tooling/project-model/src/main/resources/log4j2.xml
index 5cea1c5..9f54e77 100644
--- a/tooling/project-model/src/main/resources/log4j2.xml
+++ b/tooling/project-model/src/main/resources/log4j2.xml
@@ -6,7 +6,7 @@
</Console>
</Appenders>
<Loggers>
- <Logger name="org.apache.isis.tooling" level="info" additivity="true">
+ <Logger name="org.apache.isis.tooling" level="info" additivity="false">
<appender-ref ref="console" />
</Logger>
<Root level="warn" additivity="false">