You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by sg...@apache.org on 2020/04/05 22:03:57 UTC

[freemarker-generator] 08/11: FREEMARKER-140 freemarker-cli: Expose DataSources directly in the data model

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

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

commit 9175e88f60e7e34d36af8967d56c3a8d53e30363
Author: Siegfried Goeschl <si...@gmail.com>
AuthorDate: Sun Apr 5 22:56:28 2020 +0200

    FREEMARKER-140 freemarker-cli: Expose DataSources directly in the data model
---
 .../org/apache/freemarker/generator/cli/Main.java     | 14 +++++++-------
 .../apache/freemarker/generator/cli/PicocliTest.java  | 19 +++++++++++++++++--
 2 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/Main.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/Main.java
index 6522c85..e3b17b4 100644
--- a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/Main.java
+++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/Main.java
@@ -71,9 +71,6 @@ public class Main implements Callable<Integer> {
     @Option(names = { "-b", "--basedir" }, description = "Optional template base directory")
     String baseDir;
 
-    @Option(names = { "-d", "--data-source" }, description = "Data source used for rendering")
-    List<String> dataSources;
-
     @Option(names = { "-D", "--system-property" }, description = "Set system property")
     Properties systemProperties;
 
@@ -86,8 +83,8 @@ public class Main implements Callable<Integer> {
     @Option(names = { "-l", "--locale" }, description = "Locale being used for the output, e.g. 'en_US'")
     String locale;
 
-    @Option(names = { "--mode" }, description = "[template|datasource]", defaultValue = "TEMPLATE")
-    GeneratorMode mode;
+    @Option(names = { "-m", "--data-model" }, description = "Data model used for rendering")
+    List<String> dataModels;
 
     @Option(names = { "-o", "--output" }, description = "Output file")
     String outputFile;
@@ -95,8 +92,8 @@ public class Main implements Callable<Integer> {
     @Option(names = { "-P", "--param" }, description = "Set parameter")
     Map<String, String> parameters;
 
-    @Option(names = { "-m", "--data-model" }, description = "Data model used for rendering")
-    List<String> dataModels;
+    @Option(names = { "-s", "--data-source" }, description = "Data source used for rendering")
+    List<String> dataSources;
 
     @Option(names = { "--config" }, defaultValue = FREEMARKER_CLI_PROPERTY_FILE, description = "FreeMarker CLI configuration file")
     String configFile;
@@ -110,6 +107,9 @@ public class Main implements Callable<Integer> {
     @Option(names = { "--output-encoding" }, description = "Encoding of output, e.g. UTF-8", defaultValue = "UTF-8")
     String outputEncoding;
 
+    @Option(names = { "--mode" }, description = "[template|datasource]", defaultValue = "TEMPLATE")
+    GeneratorMode mode;
+
     @Option(names = { "--stdin" }, description = "Read data  source from stdin")
     boolean readFromStdin;
 
diff --git a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/PicocliTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/PicocliTest.java
index fdd7fc2..d5e15d6 100644
--- a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/PicocliTest.java
+++ b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/PicocliTest.java
@@ -52,20 +52,35 @@ public class PicocliTest {
     @Test
     public void testSingleNamedDataSource() {
         assertEquals(ANY_FILE, parse("-t", TEMPLATE, ANY_FILE).sources.get(0));
-        assertEquals(ANY_FILE, parse("-t", TEMPLATE, "-d", ANY_FILE).dataSources.get(0));
+        assertEquals(ANY_FILE, parse("-t", TEMPLATE, "-s", ANY_FILE).dataSources.get(0));
         assertEquals(ANY_FILE, parse("-t", TEMPLATE, "--data-source", ANY_FILE).dataSources.get(0));
         assertEquals(ANY_FILE_URI, parse("-t", TEMPLATE, "--data-source", ANY_FILE_URI).dataSources.get(0));
     }
 
     @Test
     public void testMultipleNamedDataSource() {
-        final Main main = parse("-t", TEMPLATE, "-d", ANY_FILE, "--data-source", OTHER_FILE_URI);
+        final Main main = parse("-t", TEMPLATE, "-s", ANY_FILE, "--data-source", OTHER_FILE_URI);
 
         assertEquals(ANY_FILE, main.dataSources.get(0));
         assertEquals(OTHER_FILE_URI, main.dataSources.get(1));
         assertNull(main.sources);
     }
 
+    @Test
+    public void testSingleDataModel() {
+        assertEquals(ANY_FILE, parse("-t", TEMPLATE, "-m", ANY_FILE).dataModels.get(0));
+        assertEquals(ANY_FILE, parse("-t", TEMPLATE, "--data-model", ANY_FILE).dataModels.get(0));
+    }
+
+    @Test
+    public void testMultipleDataModels() {
+        final Main main = parse("-t", TEMPLATE, "-m", ANY_FILE, "--data-model", OTHER_FILE_URI);
+
+        assertEquals(ANY_FILE, main.dataModels.get(0));
+        assertEquals(OTHER_FILE_URI, main.dataModels.get(1));
+        assertNull(main.sources);
+    }
+
     private static Main parse(String... args) {
         final Main main = new Main();
         new CommandLine(main).parseArgs(args);