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/11 17:29:21 UTC
[isis] branch master updated: ISIS-2426: tooling: add
ProjectDirectory to the ProjectModel
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 a6bb3f6 ISIS-2426: tooling: add ProjectDirectory to the ProjectModel
a6bb3f6 is described below
commit a6bb3f6d2772825b9a7a0458b416d39d497df22b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Sep 11 19:29:03 2020 +0200
ISIS-2426: tooling: add ProjectDirectory to the ProjectModel
---
.../org/apache/isis/tooling/_infra/_Files.java | 23 ++++++++++++++++++++++
.../isis/tooling/projectmodel/ProjectNode.java | 3 ++-
.../tooling/projectmodel/ProjectNodeFactory.java | 2 ++
3 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/tooling/commons/src/main/java/org/apache/isis/tooling/_infra/_Files.java b/tooling/commons/src/main/java/org/apache/isis/tooling/_infra/_Files.java
index c41a80d..11e54a9 100644
--- a/tooling/commons/src/main/java/org/apache/isis/tooling/_infra/_Files.java
+++ b/tooling/commons/src/main/java/org/apache/isis/tooling/_infra/_Files.java
@@ -6,10 +6,14 @@ import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.HashSet;
+import java.util.Optional;
import java.util.Set;
import java.util.function.Consumer;
import java.util.function.Predicate;
+import javax.annotation.Nullable;
+
+import lombok.NonNull;
import lombok.val;
public class _Files {
@@ -48,4 +52,23 @@ public class _Files {
}
}
+ public static Optional<String> canonicalPath(@Nullable File file) {
+ if(file==null) {
+ return Optional.empty();
+ }
+ try {
+ return Optional.of(file.getCanonicalPath());
+ } catch (Exception e) {
+ return Optional.empty();
+ }
+ }
+
+ public static String toRelativePath(@NonNull String commonPath, @NonNull String absolutePath) {
+ if(absolutePath.startsWith(commonPath)) {
+ return absolutePath.substring(commonPath.length());
+ }
+ return absolutePath;
+ }
+
+
}
diff --git a/tooling/project-model/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNode.java b/tooling/project-model/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNode.java
index d361d84..f972adc 100644
--- a/tooling/project-model/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNode.java
+++ b/tooling/project-model/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNode.java
@@ -18,6 +18,7 @@
*/
package org.apache.isis.tooling.projectmodel;
+import java.io.File;
import java.util.TreeSet;
import lombok.Builder;
@@ -36,6 +37,7 @@ public class ProjectNode {
private final ArtifactKey artifactKey;
private final String name;
private final String description;
+ private final File projectDirectory;
public void depthFirst(ProjectVisitor projectVisitor) {
projectVisitor.accept(this);
@@ -43,7 +45,6 @@ public class ProjectNode {
child.depthFirst(projectVisitor);
}
}
-
}
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 df86856..8ed4423 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
@@ -82,6 +82,7 @@ public class ProjectNodeFactory {
.artifactKey(artifactKeyOf(mavenProj))
.name(_Strings.nullToEmpty(mavenProj.getName()))
.description(_Strings.nullToEmpty(mavenProj.getDescription()))
+ .projectDirectory(mavenProj.getProjectDirectory())
.build();
mavenProj.getDependencies()
@@ -150,6 +151,7 @@ public class ProjectNodeFactory {
.artifactKey(artifactKeyOf(gradleProj))
.name(_Strings.nullToEmpty(gradleProj.getName()))
.description(_Strings.nullToEmpty(gradleProj.getDescription()))
+ .projectDirectory(gradleProj.getProjectDirectory())
.build();
if(parent!=null) {
parent.getChildren().add(projNode);