This is an automated email from the ASF dual-hosted git repository. sgoeschl pushed a commit to branch FREEMARKER-155 in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git
commit c9c7346d360076aa0f1b738c45da195fd2e71023 Author: Siegfried Goeschl <[email protected]> AuthorDate: Mon Aug 24 20:55:46 2020 +0200 FREEMARKER-155 Migrate the FTL code to terser dotter form --- freemarker-generator-cli/CHANGELOG.md | 4 +++- .../templates/accesslog/combined-access.ftl | 8 +++---- .../templates/csv/csv/gatling-user-credentials.ftl | 2 +- .../examples/templates/csv/html/transactions.ftl | 2 +- .../src/app/examples/templates/csv/shell/curl.ftl | 2 +- .../app/examples/templates/dataframe/example.ftl | 6 ++--- .../examples/templates/dataframe/html/print.ftl | 2 +- .../src/app/examples/templates/demo.ftl | 2 +- .../app/examples/templates/excel/csv/custom.ftl | 2 +- .../templates/json/csv/swagger-endpoints.ftl | 10 ++++---- .../templates/properties/csv/locker-test-users.ftl | 14 +++++------ .../app/examples/templates/tsv/fo/transactions.ftl | 2 +- .../freemarker/generator/cli/ManualTest.java | 27 +++++++++++----------- 13 files changed, 42 insertions(+), 41 deletions(-) diff --git a/freemarker-generator-cli/CHANGELOG.md b/freemarker-generator-cli/CHANGELOG.md index 6fca548..d095c1c 100644 --- a/freemarker-generator-cli/CHANGELOG.md +++ b/freemarker-generator-cli/CHANGELOG.md @@ -17,6 +17,7 @@ All notable changes to this project will be documented in this file. We try to a * [FREEMARKER-129] Migrate `freemarker-cli` into `freemarker-generator` project (see [https://github.com/sgoeschl/freemarker-cli](https://github.com/sgoeschl/freemarker-cli)) ### Changed +* [FREEMARKER-155] Migrate the FTL code to terser dotter form * [FREEMARKER-153] Packaged templates are now prefixed with `freemarker-generator`, e.g. `freemarker-generator/info.ftl` * [FREEMARKER-153] Renamed `--basedir` command line option to `--template-dir` * [FREEMARKER-153] Renamed `freemarker-cli` to `freemarker-generator` @@ -54,4 +55,5 @@ All notable changes to this project will be documented in this file. We try to a [FREEMARKER-148]: https://issues.apache.org/jira/browse/FREEMARKER-148 [FREEMARKER-149]: https://issues.apache.org/jira/browse/FREEMARKER-149 [FREEMARKER-151]: https://issues.apache.org/jira/browse/FREEMARKER-151 -[FREEMARKER-153]: https://issues.apache.org/jira/browse/FREEMARKER-151 \ No newline at end of file +[FREEMARKER-153]: https://issues.apache.org/jira/browse/FREEMARKER-153 +[FREEMARKER-155]: https://issues.apache.org/jira/browse/FREEMARKER-155 \ No newline at end of file diff --git a/freemarker-generator-cli/src/app/examples/templates/accesslog/combined-access.ftl b/freemarker-generator-cli/src/app/examples/templates/accesslog/combined-access.ftl index 56d7f21..af78768 100644 --- a/freemarker-generator-cli/src/app/examples/templates/accesslog/combined-access.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/accesslog/combined-access.ftl @@ -23,10 +23,10 @@ TIMESTAMP;VERB;REQUEST;HTTPVERSION <#list lines as line> <#assign parts = grok.match(line)> - <#assign timestamp = parts["timestamp"]> - <#assign verb = parts["verb"]> - <#assign request = parts["request"]> - <#assign httpversion = parts["httpversion"]> + <#assign timestamp = parts.timestamp> + <#assign verb = parts.verb> + <#assign request = parts.request> + <#assign httpversion = parts.httpversion> ${timestamp};${verb};${request};${httpversion} </#list> </#compress> \ No newline at end of file diff --git a/freemarker-generator-cli/src/app/examples/templates/csv/csv/gatling-user-credentials.ftl b/freemarker-generator-cli/src/app/examples/templates/csv/csv/gatling-user-credentials.ftl index 3bf2f68..aae83f4 100644 --- a/freemarker-generator-cli/src/app/examples/templates/csv/csv/gatling-user-credentials.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/csv/csv/gatling-user-credentials.ftl @@ -16,7 +16,7 @@ under the License. --> <#assign dataSource = dataSources?values[0]> -<#assign cvsFormat = tools.csv.formats["DEFAULT"].withDelimiter(';')> +<#assign cvsFormat = tools.csv.formats.DEFAULT.withDelimiter(';')> <#assign csvParser = tools.csv.parse(dataSource, cvsFormat)> <#assign csvRecords = csvParser.records> diff --git a/freemarker-generator-cli/src/app/examples/templates/csv/html/transactions.ftl b/freemarker-generator-cli/src/app/examples/templates/csv/html/transactions.ftl index ef2dc5c..030cd82 100644 --- a/freemarker-generator-cli/src/app/examples/templates/csv/html/transactions.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/csv/html/transactions.ftl @@ -17,7 +17,7 @@ --> <#assign dataSource = dataSources?values[0]> <#assign name = dataSource.name> -<#assign cvsFormat = tools.csv.formats["DEFAULT"].withDelimiter('\t').withHeader()> +<#assign cvsFormat = tools.csv.formats.DEFAULT.withDelimiter('\t').withHeader()> <#assign csvParser = tools.csv.parse(dataSource, cvsFormat)> <#assign csvHeaders = csvParser.getHeaderMap()?keys> <#assign csvRecords = csvParser.records> diff --git a/freemarker-generator-cli/src/app/examples/templates/csv/shell/curl.ftl b/freemarker-generator-cli/src/app/examples/templates/csv/shell/curl.ftl index aaae7a6..114dd4f 100644 --- a/freemarker-generator-cli/src/app/examples/templates/csv/shell/curl.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/csv/shell/curl.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign cvsFormat = tools.csv.formats["DEFAULT"].withHeader()> +<#assign cvsFormat = tools.csv.formats.DEFAULT.withHeader()> <#assign csvParser = tools.csv.parse(dataSources?values[0], cvsFormat)> <#assign records = csvParser.records> <#assign csvMap = tools.csv.toMap(records, "disposer")> diff --git a/freemarker-generator-cli/src/app/examples/templates/dataframe/example.ftl b/freemarker-generator-cli/src/app/examples/templates/dataframe/example.ftl index da26004..3b154ea 100644 --- a/freemarker-generator-cli/src/app/examples/templates/dataframe/example.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/dataframe/example.ftl @@ -15,7 +15,7 @@ under the License. --> <#assign dataSource = dataSources?values[0]> -<#assign csvParser = tools.csv.parse(dataSource, tools.csv.formats["DATAFRAME"])> +<#assign csvParser = tools.csv.parse(dataSource, tools.csv.formats.DATAFRAME)> <#assign users = tools.dataframe.fromCSVParser(csvParser)> Original Data @@ -31,7 +31,7 @@ Select By Name & Country <#assign country = "Germany"> ${tools.dataframe.print(users .select("(name == 'Schmitt' || name == 'Meier') && country == '${country}'") -.sort("name", tools.dataframe.sortOrder["ASCENDING"]))} +.sort("name", tools.dataframe.sortOrder.ASCENDING))} Head of Users ============================================================================= @@ -39,7 +39,7 @@ ${tools.dataframe.print(users.head(2))} Count Column Values ============================================================================= -${tools.dataframe.print(users.getColumn("country").transform(tools.dataframe.transformer["COUNT"]))} +${tools.dataframe.print(users.getColumn("country").transform(tools.dataframe.transformer.COUNT))} Group By Age & Country ============================================================================= diff --git a/freemarker-generator-cli/src/app/examples/templates/dataframe/html/print.ftl b/freemarker-generator-cli/src/app/examples/templates/dataframe/html/print.ftl index e542b1c..3ae73c8 100644 --- a/freemarker-generator-cli/src/app/examples/templates/dataframe/html/print.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/dataframe/html/print.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign cvsFormat = tools.csv.formats["DEFAULT"].withHeader().withDelimiter(';')> +<#assign cvsFormat = tools.csv.formats.DEFAULT.withHeader().withDelimiter(';')> <#assign csvParser = tools.csv.parse(dataSources?values[0], cvsFormat)> <#assign dataFrame = tools.dataframe.toDataFrame(csvParser)> <#---------------------------------------------------------------------------> diff --git a/freemarker-generator-cli/src/app/examples/templates/demo.ftl b/freemarker-generator-cli/src/app/examples/templates/demo.ftl index f6d52af..8ec3ac4 100644 --- a/freemarker-generator-cli/src/app/examples/templates/demo.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/demo.ftl @@ -58,7 +58,7 @@ Host name : ${tools.system.getHostName()} Command line : ${tools.system.getCommandLineArgs()?join(", ")} System property : ${tools.system.getSystemProperty("user.name", "N.A.")} Timestamp : ${tools.system.currentTimeMillis?c} -Environment : ${tools.system.envs["USER"]!"N.A."} +Environment : ${tools.system.envs.USER!"N.A."} 8) Access System Properties --------------------------------------------------------------------------- diff --git a/freemarker-generator-cli/src/app/examples/templates/excel/csv/custom.ftl b/freemarker-generator-cli/src/app/examples/templates/excel/csv/custom.ftl index feda79a..1e2bd06 100644 --- a/freemarker-generator-cli/src/app/examples/templates/excel/csv/custom.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/excel/csv/custom.ftl @@ -16,7 +16,7 @@ under the License. --> <#assign format = CSV_TARGET_FORMAT!"DEFAULT"> -<#assign salt = tools.system.parameters["salt"]!"salt"> +<#assign salt = tools.system.parameters.salt!"salt"> <#-- Parse the first data source & sheet of the Excel document --> <#assign workbook = tools.excel.parse(dataSources?values[0])> <#assign sheet = tools.excel.getSheets(workbook)[0]> diff --git a/freemarker-generator-cli/src/app/examples/templates/json/csv/swagger-endpoints.ftl b/freemarker-generator-cli/src/app/examples/templates/json/csv/swagger-endpoints.ftl index 474fd5a..6ab4ce2 100644 --- a/freemarker-generator-cli/src/app/examples/templates/json/csv/swagger-endpoints.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/json/csv/swagger-endpoints.ftl @@ -26,11 +26,11 @@ <#assign names = metadata?keys?sort> <#list names as name> <#assign method = paths[endpoint][name]> - <#assign summary = sanitize(method["summary"]!"")> - <#assign description = sanitize(method["description"]!"")> - <#assign consumes = join(method["consumes"]![])> - <#assign produces = join(method["produces"]![])> - <#assign parameters = method["parameters"]> + <#assign summary = sanitize(method.summary!"")> + <#assign description = sanitize(method.description!"")> + <#assign consumes = join(method.consumes![])> + <#assign produces = join(method.produces![])> + <#assign parameters = method.parameters> ${url};${name?upper_case};${consumes};${produces};${parameters?size};${summary};${description} </#list> </#list> diff --git a/freemarker-generator-cli/src/app/examples/templates/properties/csv/locker-test-users.ftl b/freemarker-generator-cli/src/app/examples/templates/properties/csv/locker-test-users.ftl index 1d2d21f..8e01dac 100644 --- a/freemarker-generator-cli/src/app/examples/templates/properties/csv/locker-test-users.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/properties/csv/locker-test-users.ftl @@ -19,15 +19,15 @@ TENANT,SITE,USER_ID,DISPOSER_ID,PASSWORD,SMS_OTP,NAME,DESCRIPTION <#list dataSources?values as dataSource> <#assign properties = tools.properties.parse(dataSource)> - <#assign environments = properties["ENVIRONMENTS"]!""> + <#assign environments = properties.ENVIRONMENTS!""> <#assign tenant = extractTenant(environments)> <#assign site = extractSite(environments)> - <#assign userId = properties["USER_ID"]!""> - <#assign disposerId = properties["USER_ID"]!""> - <#assign password = properties["PASSWORD"]!""> - <#assign smsOtp = properties["SMS_OTP"]!""> - <#assign name = properties["NAME"]!""> - <#assign description = properties["DESCRIPTION"]!""> + <#assign userId = properties.USER_ID!""> + <#assign disposerId = properties.USER_ID!""> + <#assign password = properties.PASSWORD!""> + <#assign smsOtp = properties.SMS_OTP!""> + <#assign name = properties.NAME!""> + <#assign description = properties.DESCRIPTION!""> ${tenant},${site},${userId},${disposerId},${password},${smsOtp},${name},${description} </#list> </#compress> diff --git a/freemarker-generator-cli/src/app/examples/templates/tsv/fo/transactions.ftl b/freemarker-generator-cli/src/app/examples/templates/tsv/fo/transactions.ftl index 51c2be4..5beefc3 100644 --- a/freemarker-generator-cli/src/app/examples/templates/tsv/fo/transactions.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/tsv/fo/transactions.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign cvsFormat = tools.csv.formats["TDF"].withHeader()> +<#assign cvsFormat = tools.csv.formats.TDF.withHeader()> <#assign csvParser = tools.csv.parse(dataSources?values[0], cvsFormat)> <#assign csvHeaders = csvParser.getHeaderMap()?keys> <#assign csvRecords = csvParser.records> diff --git a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ManualTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ManualTest.java index 06f8714..7d12754 100644 --- a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ManualTest.java +++ b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ManualTest.java @@ -16,28 +16,27 @@ */ package org.apache.freemarker.generator.cli; -import java.util.Arrays; +import java.io.IOException; /** * Invoke freemarker-cli and dump the output for ad-hoc manual testing. */ -public class ManualTest { +public class ManualTest extends AbstractMainTest { - private static final String SPACE = " "; // private static final String CMD = "-V"; - // private static final String CMD = "-PCSV_SOURCE_FORMAT=DATAFRAME -t examples/templates/dataframe/example.ftl https://raw.githubusercontent.com/nRo/DataFrame/master/src/test/resources/users.csv"; - // private static final String CMD = "-PCSV_SOURCE_WITH_HEADER=false -PCSV_SOURCE_FORMAT=DEFAULT -PCSV_TARGET_FORMAT=EXCEL -PCSV_TARGET_WITH_HEADER=true -t templates/csv/csv/transform.ftl examples/data/csv/contract.csv"; - // private static final String CMD = "-t examples/templates/json/dataframe/github-users.ftl examples/data/json/github-users.json"; - // private static final String CMD = "-t templates/csv/md/transform.ftl -o target/contract.md -t templates/csv/html/transform.ftl examples/data/csv/contract.csv"; - private static final String CMD = "-t examples/templates/demo.ftl src/test/data"; + private static final String CMD = "-t src/app/examples/templates/demo.ftl src/test/data"; - - public static void main(String[] args) { - Main.execute(toArgs(CMD)); + @Override + public String execute(String commandLine) throws IOException { + return super.execute(commandLine); } - private static String[] toArgs(String line) { - // map a "%20" to space to protect system property values containing a space - return Arrays.stream(line.split(SPACE)).map(s -> s.replace("%20", " ")).toArray(String[]::new); + public static void main(String[] args) { + try { + final String output = new ManualTest().execute(CMD); + System.out.println(output); + } catch (IOException e) { + throw new RuntimeException("Executing the manual test failed: " + CMD, e); + } } }
