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