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 <[email protected]> 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);
