This is an automated email from the ASF dual-hosted git repository.

sgoeschl pushed a commit to branch FREEMARKER-188
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git


The following commit(s) were added to refs/heads/FREEMARKER-188 by this push:
     new f8e9b80  FREEMARKER-188 Add "relativeFilePath" to DataSource
f8e9b80 is described below

commit f8e9b80c601161e38a1c6d4517e835e5e1b00ba7
Author: Siegfried Goeschl <[email protected]>
AuthorDate: Tue Sep 7 17:48:57 2021 +0200

    FREEMARKER-188 Add "relativeFilePath" to DataSource
---
 .../base/datasource/DataSourceLoaderFactory.java       |  2 +-
 .../generator/base/datasource/DataSourcesSupplier.java |  2 +-
 .../freemarker/generator/base/util/FileUtils.java      |  9 +++++----
 .../freemarker/generator/util/FileUtilsTest.java       | 18 +++++++++---------
 .../src/app/templates/freemarker-generator/info.ftl    |  4 ++--
 5 files changed, 18 insertions(+), 17 deletions(-)

diff --git 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourceLoaderFactory.java
 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourceLoaderFactory.java
index b7c4a3e..1bdf8d5 100644
--- 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourceLoaderFactory.java
+++ 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourceLoaderFactory.java
@@ -24,7 +24,7 @@ import 
org.apache.freemarker.generator.base.datasource.loader.HttpDataSourceLoad
 import java.util.Arrays;
 
 /**
- * Creates a FreeMarker data source from various sources.
+ * Factory method to create a <code>DataSourceLoader</code>.
  */
 public abstract class DataSourceLoaderFactory {
 
diff --git 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourcesSupplier.java
 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourcesSupplier.java
index 809d861..dbf94e2 100644
--- 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourcesSupplier.java
+++ 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourcesSupplier.java
@@ -39,7 +39,7 @@ import static java.util.stream.Collectors.toList;
 import static 
org.apache.freemarker.generator.base.FreeMarkerConstants.DEFAULT_GROUP;
 
 /**
- * Create a list of <code>DataSource</code> based on a list URIs, directories 
and files.
+ * Supply a list of <code>DataSource</code> based on a list URIs, directories 
and files.
  */
 public class DataSourcesSupplier implements Supplier<List<DataSource>> {
 
diff --git 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/FileUtils.java
 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/FileUtils.java
index e83ee02..8371454 100644
--- 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/FileUtils.java
+++ 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/FileUtils.java
@@ -7,11 +7,11 @@ import java.nio.file.Paths;
 public class FileUtils {
 
     /**
-     * Determines the relative path between a directory and a file within the 
directory (excluding the file name)
+     * Determines the relative path between a directory and a file within the 
directory (excluding the file name).
      *
      * @param directory the directory
      * @param file      the file
-     * @return relative path
+     * @return relative path or an empty string if no relative path exists
      */
     public static String getRelativePath(File directory, File file) {
         Validate.notNull(directory, "directory is null");
@@ -22,10 +22,11 @@ public class FileUtils {
         final Path directoryPath = Paths.get(directory.toURI()).normalize();
         final String relativePath = 
directoryPath.relativize(filePath).normalize().toString();
 
-        if (relativePath.lastIndexOf('/') > 0) {
+        // strip last path segment
+        if (relativePath.lastIndexOf('/') >= 0) {
             return relativePath.substring(0, relativePath.lastIndexOf("/"));
         } else {
-            return ".";
+            return "";
         }
     }
 }
diff --git 
a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/util/FileUtilsTest.java
 
b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/util/FileUtilsTest.java
index 584db0b..f572c3b 100644
--- 
a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/util/FileUtilsTest.java
+++ 
b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/util/FileUtilsTest.java
@@ -11,12 +11,12 @@ public class FileUtilsTest {
 
     @Test
     public void shouldGetRelativePathForSameDirectory() {
-        assertEquals(".", FileUtils.getRelativePath(new File("."), new 
File("pom.xml")));
-        assertEquals(".", FileUtils.getRelativePath(new File("."), new 
File("./pom.xml")));
-        assertEquals(".", FileUtils.getRelativePath(new File("."), new 
File("./pom.xml")));
-        assertEquals(".", FileUtils.getRelativePath(new 
File("../freemarker-generator-base"), new File("pom.xml")));
-        assertEquals(".", FileUtils.getRelativePath(new 
File("../freemarker-generator-base"), new File("./pom.xml")));
-        assertEquals(".", FileUtils.getRelativePath(new 
File("../freemarker-generator-base"), new 
File("../freemarker-generator-base/pom.xml")));
+        assertEquals("", FileUtils.getRelativePath(new File("."), new 
File("pom.xml")));
+        assertEquals("", FileUtils.getRelativePath(new File("."), new 
File("./pom.xml")));
+        assertEquals("", FileUtils.getRelativePath(new File("."), new 
File("./pom.xml")));
+        assertEquals("", FileUtils.getRelativePath(new 
File("../freemarker-generator-base"), new File("pom.xml")));
+        assertEquals("", FileUtils.getRelativePath(new 
File("../freemarker-generator-base"), new File("./pom.xml")));
+        assertEquals("", FileUtils.getRelativePath(new 
File("../freemarker-generator-base"), new 
File("../freemarker-generator-base/pom.xml")));
     }
 
     @Test
@@ -32,9 +32,9 @@ public class FileUtilsTest {
 
     @Test
     public void shouldHandleInvalidArgumentsGracefully() {
-        assertEquals(".", FileUtils.getRelativePath(new File("."), new 
File(".")));
-        assertEquals(".", FileUtils.getRelativePath(new File("pom.xml"), new 
File("pom.xml")));
-        assertEquals(".", FileUtils.getRelativePath(new File("."), new 
File("does-not-exist.xml")));
+        assertEquals("", FileUtils.getRelativePath(new File("."), new 
File(".")));
+        assertEquals("", FileUtils.getRelativePath(new File("pom.xml"), new 
File("pom.xml")));
+        assertEquals("", FileUtils.getRelativePath(new File("."), new 
File("does-not-exist.xml")));
         assertEquals("foo", FileUtils.getRelativePath(new File("."), new 
File("foo/does-not-exist.xml")));
         assertEquals("foo", FileUtils.getRelativePath(new File("."), new 
File("foo/./does-not-exist.xml")));
     }
diff --git 
a/freemarker-generator-cli/src/app/templates/freemarker-generator/info.ftl 
b/freemarker-generator-cli/src/app/templates/freemarker-generator/info.ftl
index 04121ec..487f650 100644
--- a/freemarker-generator-cli/src/app/templates/freemarker-generator/info.ftl
+++ b/freemarker-generator-cli/src/app/templates/freemarker-generator/info.ftl
@@ -28,13 +28,13 @@ Output format          : ${.output_format}
 FreeMarker Command-line Parameters
 ------------------------------------------------------------------------------
 <#list tools.system.getCommandLineArgs() as arg>
-    [#${arg?counter}] ${arg}
+[#${arg?counter}] ${arg}
 </#list>
 
 FreeMarker Generator Template Loader Directories
 ------------------------------------------------------------------------------
 <#list tools.system.getTemplateDirectories() as directory>
-    [#${directory?counter}] ${directory}
+[#${directory?counter}] ${directory}
 </#list>
 
 FreeMarker Generator Data Model

Reply via email to