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);