This is an automated email from the ASF dual-hosted git repository. sgoeschl pushed a commit to branch FREEMARKER-195 in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git
commit 2fdcb09641f4d8399e297ad42656a2ee08b1d46d Author: Siegfried Goeschl <[email protected]> AuthorDate: Sun Oct 3 22:30:45 2021 +0200 FREEMARKER-195 [freemarker-generator] Update the FTL sample files --- freemarker-generator-cli/CHANGELOG.md | 4 +-- .../src/app/examples/data/ftl/nginx/nginx.conf.ftl | 2 +- .../templates/accesslog/combined-access.ftl | 2 +- .../templates/csv/csv/gatling-user-credentials.ftl | 2 +- .../app/examples/templates/csv/fo/transactions.ftl | 2 +- .../app/examples/templates/csv/fo/transform.ftl | 2 +- .../examples/templates/csv/html/transactions.ftl | 2 +- .../src/app/examples/templates/csv/md/filter.ftl | 2 +- .../src/app/examples/templates/csv/shell/curl.ftl | 2 +- .../app/examples/templates/dataframe/example.ftl | 2 +- .../examples/templates/dataframe/html/print.ftl | 2 +- .../src/app/examples/templates/datasources.ftl | 6 ++--- .../src/app/examples/templates/demo.ftl | 10 ++++---- .../app/examples/templates/excel/csv/custom.ftl | 2 +- .../templates/excel/dataframe/transform.ftl | 2 +- .../examples/templates/html/csv/dependencies.ftl | 2 +- .../app/examples/templates/html/txt/licence.ftl | 2 +- .../templates/json/csv/swagger-endpoints.ftl | 2 +- .../templates/json/dataframe/github-users.ftl | 2 +- .../examples/templates/json/md/github-users.ftl | 2 +- .../templates/logs/csv/serverlog-to-csv.ftl | 2 +- .../templates/properties/csv/locker-test-users.ftl | 2 +- .../app/examples/templates/tsv/fo/transactions.ftl | 2 +- .../app/examples/templates/xml/txt/recipients.ftl | 2 +- .../app/examples/templates/yaml/txt/transform.ftl | 2 +- .../src/app/scripts/run-examples.bat | 12 ++++----- .../src/app/scripts/run-examples.sh | 12 ++++----- .../src/app/templates/freemarker-generator/cat.ftl | 2 +- .../freemarker-generator/csv/csv/transform.ftl | 2 +- .../freemarker-generator/csv/html/transform.ftl | 2 +- .../freemarker-generator/csv/md/transform.ftl | 2 +- .../freemarker-generator/excel/csv/transform.ftl | 2 +- .../freemarker-generator/excel/html/transform.ftl | 2 +- .../freemarker-generator/excel/md/transform.ftl | 2 +- .../app/templates/freemarker-generator/info.ftl | 2 +- .../freemarker-generator/json/yaml/transform.ftl | 2 +- .../freemarker-generator/yaml/json/transform.ftl | 2 +- .../src/site/markdown/cli/concepts/data-sources.md | 14 +++++----- .../site/markdown/cli/usage/parsing-with-grok.md | 4 +-- .../site/markdown/cli/usage/running-examples.md | 30 +++++++++++----------- .../site/markdown/cli/usage/using-dataframes.md | 6 ++--- .../freemarker/generator/cli/ExamplesTest.java | 12 ++++----- .../src/test/templates/echo.ftl | 2 +- .../src/test/templates/manual.ftl | 8 +++--- .../src/test/templates/tools/csv.ftl | 2 +- 45 files changed, 93 insertions(+), 93 deletions(-) diff --git a/freemarker-generator-cli/CHANGELOG.md b/freemarker-generator-cli/CHANGELOG.md index 7e3ccbc..d74ca0e 100644 --- a/freemarker-generator-cli/CHANGELOG.md +++ b/freemarker-generator-cli/CHANGELOG.md @@ -4,11 +4,11 @@ All notable changes to this project will be documented in this file. We try to a ## 0.2.0-SNAPSHOT -## 0.1.0-SNAPSHOT (unreleased) - ### Changed * [FREEMARKER-195] Improve exposure of DataSources using TemplateHashModelEx2 +## 0.1.0-SNAPSHOT (unreleased) + ### Added * Use `-Xverify:none -XX:TieredStopAtLevel=1` to improve startup time of CLI * [FREEMARKER-188] Support an output "generation" mode to create an output for each `DataSource` diff --git a/freemarker-generator-cli/src/app/examples/data/ftl/nginx/nginx.conf.ftl b/freemarker-generator-cli/src/app/examples/data/ftl/nginx/nginx.conf.ftl index 3cbf310..d74b193 100644 --- a/freemarker-generator-cli/src/app/examples/data/ftl/nginx/nginx.conf.ftl +++ b/freemarker-generator-cli/src/app/examples/data/ftl/nginx/nginx.conf.ftl @@ -1,4 +1,4 @@ -<#assign env = tools.properties.parse(dataSources?values[0])> +<#assign env = tools.properties.parse(dataSources[0])> server { listen 80; 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 944a826..28f7f71 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 @@ -16,7 +16,7 @@ under the License. --> <#assign grok = tools.grok.create("%{COMBINEDAPACHELOG}")> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign lines = dataSource.getLineIterator()> <#compress> 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 aae83f4..46d505b 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 @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#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/fo/transactions.ftl b/freemarker-generator-cli/src/app/examples/templates/csv/fo/transactions.ftl index 9a513ca..089790f 100644 --- a/freemarker-generator-cli/src/app/examples/templates/csv/fo/transactions.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/csv/fo/transactions.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign name = dataSource.name> <#assign cvsFormat = tools.csv.formats.DEFAULT.withDelimiter('\t').withHeader()> <#assign csvParser = tools.csv.parse(dataSource, cvsFormat)> diff --git a/freemarker-generator-cli/src/app/examples/templates/csv/fo/transform.ftl b/freemarker-generator-cli/src/app/examples/templates/csv/fo/transform.ftl index 7e77af2..8f49b72 100644 --- a/freemarker-generator-cli/src/app/examples/templates/csv/fo/transform.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/csv/fo/transform.ftl @@ -17,7 +17,7 @@ --> <#assign csvFormatName = CVS_IN_FORMAT!"DEFAULT"> <#assign cvsFormat = tools.csv.formats[csvFormatName].withHeader()> -<#assign csvParser = tools.csv.parse(dataSources?values[0], cvsFormat)> +<#assign csvParser = tools.csv.parse(dataSources[0], cvsFormat)> <#assign csvHeaders = csvParser.getHeaderMap()?keys> <#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 030cd82..c2eaa05 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 @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign name = dataSource.name> <#assign cvsFormat = tools.csv.formats.DEFAULT.withDelimiter('\t').withHeader()> <#assign csvParser = tools.csv.parse(dataSource, cvsFormat)> diff --git a/freemarker-generator-cli/src/app/examples/templates/csv/md/filter.ftl b/freemarker-generator-cli/src/app/examples/templates/csv/md/filter.ftl index 49beb57..acec8b3 100644 --- a/freemarker-generator-cli/src/app/examples/templates/csv/md/filter.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/csv/md/filter.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign parser = parser(dataSource)> <#assign headers = parser.getHeaderNames()> <#assign column = tools.system.getParameter("column")> 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 114dd4f..4a18ecf 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 @@ -16,7 +16,7 @@ under the License. --> <#assign cvsFormat = tools.csv.formats.DEFAULT.withHeader()> -<#assign csvParser = tools.csv.parse(dataSources?values[0], cvsFormat)> +<#assign csvParser = tools.csv.parse(dataSources[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 3b154ea..7cbf309 100644 --- a/freemarker-generator-cli/src/app/examples/templates/dataframe/example.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/dataframe/example.ftl @@ -14,7 +14,7 @@ specific language governing permissions and limitations under the License. --> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign csvParser = tools.csv.parse(dataSource, tools.csv.formats.DATAFRAME)> <#assign users = tools.dataframe.fromCSVParser(csvParser)> 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 3ae73c8..82343b8 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 @@ -16,7 +16,7 @@ under the License. --> <#assign cvsFormat = tools.csv.formats.DEFAULT.withHeader().withDelimiter(';')> -<#assign csvParser = tools.csv.parse(dataSources?values[0], cvsFormat)> +<#assign csvParser = tools.csv.parse(dataSources[0], cvsFormat)> <#assign dataFrame = tools.dataframe.toDataFrame(csvParser)> <#---------------------------------------------------------------------------> <!DOCTYPE html> diff --git a/freemarker-generator-cli/src/app/examples/templates/datasources.ftl b/freemarker-generator-cli/src/app/examples/templates/datasources.ftl index ec02a83..57445ce 100644 --- a/freemarker-generator-cli/src/app/examples/templates/datasources.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/datasources.ftl @@ -42,7 +42,7 @@ Iterate Over DataSources as Map Iterate Over DataSources as Values ============================================================================== -<#list dataSources?values as dataSource> +<#list dataSources as dataSource> dataSource[${dataSource?index}] => ${dataSource.uri}<#lt> </#list> @@ -69,13 +69,13 @@ Iterate Over DataSources Using Wildcard Search </#if> <#if dataSources?has_content> - <#list dataSources?values as dataSource> + <#list dataSources as dataSource> [#${dataSource?counter}] - ${dataSource.name} ============================================================================== Invoke Arbitrary Methods On DataSource --------------------------------------------------------------------------- - <#assign dataSource=dataSources?values?first> + <#assign dataSource=dataSources?first> Name : ${dataSource.name} Nr of lines : ${dataSource.lines?size} Content Type : ${dataSource.contentType} diff --git a/freemarker-generator-cli/src/app/examples/templates/demo.ftl b/freemarker-generator-cli/src/app/examples/templates/demo.ftl index 879fb3f..ff4f3e2 100644 --- a/freemarker-generator-cli/src/app/examples/templates/demo.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/demo.ftl @@ -48,7 +48,7 @@ java.math.RoundingMode#UP: ${tools.freemarker.enums["java.math.RoundingMode"].UP 6) Display list of data sources --------------------------------------------------------------------------- List all data sources: -<#list dataSources?values as dataSource> +<#list dataSources as dataSource> - Document: name=${dataSource.name} uri=${dataSource.uri} length=${dataSource.length} charset=${dataSource.charset} </#list> @@ -89,22 +89,22 @@ Get the number of data sources: - ${dataSources?size} <#if dataSources?has_content> Get the first data source: -- ${dataSources?values[0].name!"No data sources provided"} +- ${dataSources[0].name!"No data sources provided"} </#if> Get all documents as map: <#list dataSources as name, ds> - ${name} => ${ds.mimeType} </#list> List all data sources containing "test" in the name -<#list dataSources?values?filter(ds -> ds.match("name", "*test*")) as ds> +<#list dataSources?filter(ds -> ds.match("name", "*test*")) as ds> - ${ds.name} </#list> List all data sources having "json" extension -<#list dataSources?values?filter(ds -> ds.match("extension", "json")) as ds> +<#list dataSources?filter(ds -> ds.match("extension", "json")) as ds> - ${ds.name} </#list> List all data sources having "src/test/data/properties" in their file path -<#list dataSources?values?filter(ds -> ds.match("filePath", "*/src/test/data/properties")) as ds> +<#list dataSources?filter(ds -> ds.match("filePath", "*/src/test/data/properties")) as ds> - ${ds.name} </#list> 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 1e2bd06..59ca407 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 @@ -18,7 +18,7 @@ <#assign format = CSV_TARGET_FORMAT!"DEFAULT"> <#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 workbook = tools.excel.parse(dataSources[0])> <#assign sheet = tools.excel.getSheets(workbook)[0]> <#assign records = tools.excel.toTable(sheet)> <#-- Setup CSVPrinter --> diff --git a/freemarker-generator-cli/src/app/examples/templates/excel/dataframe/transform.ftl b/freemarker-generator-cli/src/app/examples/templates/excel/dataframe/transform.ftl index 5b24903..bd5252c 100644 --- a/freemarker-generator-cli/src/app/examples/templates/excel/dataframe/transform.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/excel/dataframe/transform.ftl @@ -14,7 +14,7 @@ specific language governing permissions and limitations under the License. --> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign workbook = tools.excel.parse(dataSource)> <#list tools.excel.getSheets(workbook) as sheet> <#assign table = tools.excel.toTable(sheet)> diff --git a/freemarker-generator-cli/src/app/examples/templates/html/csv/dependencies.ftl b/freemarker-generator-cli/src/app/examples/templates/html/csv/dependencies.ftl index 51fe17e..4c2e2de 100644 --- a/freemarker-generator-cli/src/app/examples/templates/html/csv/dependencies.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/html/csv/dependencies.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign name = dataSource.name> <#assign html = tools.jsoup.parse(dataSource)> diff --git a/freemarker-generator-cli/src/app/examples/templates/html/txt/licence.ftl b/freemarker-generator-cli/src/app/examples/templates/html/txt/licence.ftl index 2807493..d503011 100644 --- a/freemarker-generator-cli/src/app/examples/templates/html/txt/licence.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/html/txt/licence.ftl @@ -17,7 +17,7 @@ <#-- FreeMarker template to create a LICENCE file. --> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign html = tools.jsoup.parse(dataSource)> <#assign dataframe = tools.dataframe.create() .addStringColumn("GroupId") 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 6ab4ce2..a70286c 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 @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign map = tools.gson.parse(dataSources?values[0])> +<#assign map = tools.gson.parse(dataSources[0])> <#assign basePath = map.basePath!"/"> <#assign paths = map.paths!{}> diff --git a/freemarker-generator-cli/src/app/examples/templates/json/dataframe/github-users.ftl b/freemarker-generator-cli/src/app/examples/templates/json/dataframe/github-users.ftl index 480f59a..49c21c2 100644 --- a/freemarker-generator-cli/src/app/examples/templates/json/dataframe/github-users.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/json/dataframe/github-users.ftl @@ -15,6 +15,6 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -<#assign json = tools.gson.parse(dataSources?values[0])> +<#assign json = tools.gson.parse(dataSources[0])> <#assign dataframe = tools.dataframe.fromMaps(json)> ${tools.dataframe.print(dataframe)} diff --git a/freemarker-generator-cli/src/app/examples/templates/json/md/github-users.ftl b/freemarker-generator-cli/src/app/examples/templates/json/md/github-users.ftl index a83d07b..39b37a2 100644 --- a/freemarker-generator-cli/src/app/examples/templates/json/md/github-users.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/json/md/github-users.ftl @@ -15,7 +15,7 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -<#assign json = tools.jsonpath.parse(dataSources?values[0])> +<#assign json = tools.jsonpath.parse(dataSources[0])> <#assign users = json.read("$[*]")> <#---------------------------------------------------------------------------> # GitHub Users diff --git a/freemarker-generator-cli/src/app/examples/templates/logs/csv/serverlog-to-csv.ftl b/freemarker-generator-cli/src/app/examples/templates/logs/csv/serverlog-to-csv.ftl index 544975f..d53e24f 100644 --- a/freemarker-generator-cli/src/app/examples/templates/logs/csv/serverlog-to-csv.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/logs/csv/serverlog-to-csv.ftl @@ -35,7 +35,7 @@ <#compress> TIMESTAMP;MILLIS <#if dataSources?has_content> - <#list dataSources?values as dataSource> + <#list dataSources as dataSource> <#list dataSource.getLineIterator() as line> <#assign parts = grok.match(line).capture()> <#if parts?has_content> 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 8e01dac..32dd5d6 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 @@ -17,7 +17,7 @@ --> <#compress> TENANT,SITE,USER_ID,DISPOSER_ID,PASSWORD,SMS_OTP,NAME,DESCRIPTION - <#list dataSources?values as dataSource> + <#list dataSources as dataSource> <#assign properties = tools.properties.parse(dataSource)> <#assign environments = properties.ENVIRONMENTS!""> <#assign tenant = extractTenant(environments)> 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 5beefc3..46a89de 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 @@ -16,7 +16,7 @@ under the License. --> <#assign cvsFormat = tools.csv.formats.TDF.withHeader()> -<#assign csvParser = tools.csv.parse(dataSources?values[0], cvsFormat)> +<#assign csvParser = tools.csv.parse(dataSources[0], cvsFormat)> <#assign csvHeaders = csvParser.getHeaderMap()?keys> <#assign csvRecords = csvParser.records> <#---------------------------------------------------------------------------> diff --git a/freemarker-generator-cli/src/app/examples/templates/xml/txt/recipients.ftl b/freemarker-generator-cli/src/app/examples/templates/xml/txt/recipients.ftl index b67e8e7..83bf4e5 100644 --- a/freemarker-generator-cli/src/app/examples/templates/xml/txt/recipients.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/xml/txt/recipients.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign xml = tools.xml.parse(dataSources?values[0])> +<#assign xml = tools.xml.parse(dataSources[0])> <#list xml.recipients.person as recipient> To: ${recipient.name} ${recipient.address} diff --git a/freemarker-generator-cli/src/app/examples/templates/yaml/txt/transform.ftl b/freemarker-generator-cli/src/app/examples/templates/yaml/txt/transform.ftl index ebcf525..1e13504 100644 --- a/freemarker-generator-cli/src/app/examples/templates/yaml/txt/transform.ftl +++ b/freemarker-generator-cli/src/app/examples/templates/yaml/txt/transform.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign map = tools.yaml.parse(dataSources?values[0])> +<#assign map = tools.yaml.parse(dataSources[0])> <#---------------------------------------------------------------------------> <#compress> <@print map 1/> diff --git a/freemarker-generator-cli/src/app/scripts/run-examples.bat b/freemarker-generator-cli/src/app/scripts/run-examples.bat index 7adcb91..2b6211b 100644 --- a/freemarker-generator-cli/src/app/scripts/run-examples.bat +++ b/freemarker-generator-cli/src/app/scripts/run-examples.bat @@ -51,12 +51,12 @@ REM ========================================================================= REM Interactive Mode REM ========================================================================= -%FREEMARKER_CMD% -i '${tools.jsonpath.parse(dataSources?values[0]).read("""$.info.title""")}' examples\data\json\swagger-spec.json > target\out\interactive-json.txt -%FREEMARKER_CMD% -i '${tools.xml.parse(dataSources?values[0])["""recipients/person[1]/name"""]}' examples\data\xml\recipients.xml > target\out\interactive-xml.txt -%FREEMARKER_CMD% -i '${tools.jsoup.parse(dataSources?values[0]).select("""a""")[0]}' examples\data\html\dependencies.html > target\out\interactive-html.txt -%FREEMARKER_CMD% -i '${tools.gson.toJson(tools.yaml.parse(dataSources?values[0]))}' examples\data\yaml\swagger-spec.yaml > target\out\interactive-swagger.json -%FREEMARKER_CMD% -i '${tools.yaml.toYaml(tools.gson.parse(dataSources?values[0]))}' examples\data\json\swagger-spec.json > target\out\interactive-swagger.yaml -%FREEMARKER_CMD% -i '${tools.dataframe.print(tools.dataframe.fromMaps(tools.gson.parse(dataSources?values[0])))}' examples\data\json\github-users.json > target\out\interactive-dataframe.txt +%FREEMARKER_CMD% -i '${tools.jsonpath.parse(dataSources[0]).read("""$.info.title""")}' examples\data\json\swagger-spec.json > target\out\interactive-json.txt +%FREEMARKER_CMD% -i '${tools.xml.parse(dataSources[0])["""recipients/person[1]/name"""]}' examples\data\xml\recipients.xml > target\out\interactive-xml.txt +%FREEMARKER_CMD% -i '${tools.jsoup.parse(dataSources[0]).select("""a""")[0]}' examples\data\html\dependencies.html > target\out\interactive-html.txt +%FREEMARKER_CMD% -i '${tools.gson.toJson(tools.yaml.parse(dataSources[0]))}' examples\data\yaml\swagger-spec.yaml > target\out\interactive-swagger.json +%FREEMARKER_CMD% -i '${tools.yaml.toYaml(tools.gson.parse(dataSources[0]))}' examples\data\json\swagger-spec.json > target\out\interactive-swagger.yaml +%FREEMARKER_CMD% -i '${tools.dataframe.print(tools.dataframe.fromMaps(tools.gson.parse(dataSources[0])))}' examples\data\json\github-users.json > target\out\interactive-dataframe.txt REM ========================================================================= REM CSV diff --git a/freemarker-generator-cli/src/app/scripts/run-examples.sh b/freemarker-generator-cli/src/app/scripts/run-examples.sh index 5298eaf..63302fd 100755 --- a/freemarker-generator-cli/src/app/scripts/run-examples.sh +++ b/freemarker-generator-cli/src/app/scripts/run-examples.sh @@ -56,12 +56,12 @@ $FREEMARKER_CMD -t examples/templates/datasources.ftl -s https://xkcd.com/info.0 # Interactive Mode ############################################################################# -$FREEMARKER_CMD -i '${tools.jsonpath.parse(dataSources?values[0]).read("$.info.title")}' examples/data/json/swagger-spec.json > target/out/interactive-json.txt || { echo >&2 "Test failed. Aborting."; exit 1; } -$FREEMARKER_CMD -i '${tools.xml.parse(dataSources?values[0])["recipients/person[1]/name"]}' examples/data/xml/recipients.xml > target/out/interactive-xml.txt || { echo >&2 "Test failed. Aborting."; exit 1; } -$FREEMARKER_CMD -i '${tools.jsoup.parse(dataSources?values[0]).select("a")[0]}' examples/data/html/dependencies.html > target/out/interactive-html.txt || { echo >&2 "Test failed. Aborting."; exit 1; } -$FREEMARKER_CMD -i '${tools.gson.toJson(tools.yaml.parse(dataSources?values[0]))}' examples/data/yaml/swagger-spec.yaml > target/out/interactive-swagger.json || { echo >&2 "Test failed. Aborting."; exit 1; } -$FREEMARKER_CMD -i '${tools.yaml.toYaml(tools.gson.parse(dataSources?values[0]))}' examples/data/json/swagger-spec.json > target/out/interactive-swagger.yaml || { echo >&2 "Test failed. Aborting."; exit 1; } -$FREEMARKER_CMD -i '${tools.dataframe.print(tools.dataframe.fromMaps(tools.gson.parse(dataSources?values[0])))}' examples/data/json/github-users.json > target/out/interactive-dataframe.txt || { echo >&2 "Test failed. Aborting."; exit 1; } +$FREEMARKER_CMD -i '${tools.jsonpath.parse(dataSources[0]).read("$.info.title")}' examples/data/json/swagger-spec.json > target/out/interactive-json.txt || { echo >&2 "Test failed. Aborting."; exit 1; } +$FREEMARKER_CMD -i '${tools.xml.parse(dataSources[0])["recipients/person[1]/name"]}' examples/data/xml/recipients.xml > target/out/interactive-xml.txt || { echo >&2 "Test failed. Aborting."; exit 1; } +$FREEMARKER_CMD -i '${tools.jsoup.parse(dataSources[0]).select("a")[0]}' examples/data/html/dependencies.html > target/out/interactive-html.txt || { echo >&2 "Test failed. Aborting."; exit 1; } +$FREEMARKER_CMD -i '${tools.gson.toJson(tools.yaml.parse(dataSources[0]))}' examples/data/yaml/swagger-spec.yaml > target/out/interactive-swagger.json || { echo >&2 "Test failed. Aborting."; exit 1; } +$FREEMARKER_CMD -i '${tools.yaml.toYaml(tools.gson.parse(dataSources[0]))}' examples/data/json/swagger-spec.json > target/out/interactive-swagger.yaml || { echo >&2 "Test failed. Aborting."; exit 1; } +$FREEMARKER_CMD -i '${tools.dataframe.print(tools.dataframe.fromMaps(tools.gson.parse(dataSources[0])))}' examples/data/json/github-users.json > target/out/interactive-dataframe.txt || { echo >&2 "Test failed. Aborting."; exit 1; } ############################################################################# # CSV diff --git a/freemarker-generator-cli/src/app/templates/freemarker-generator/cat.ftl b/freemarker-generator-cli/src/app/templates/freemarker-generator/cat.ftl index cdbe0fa..f4f82e8 100644 --- a/freemarker-generator-cli/src/app/templates/freemarker-generator/cat.ftl +++ b/freemarker-generator-cli/src/app/templates/freemarker-generator/cat.ftl @@ -14,7 +14,7 @@ specific language governing permissions and limitations under the License. --> -<#list dataSources?values as dataSource> +<#list dataSources as dataSource> <#list dataSource.lineIterator as line> ${line} </#list> diff --git a/freemarker-generator-cli/src/app/templates/freemarker-generator/csv/csv/transform.ftl b/freemarker-generator-cli/src/app/templates/freemarker-generator/csv/csv/transform.ftl index 3941c4c..c999235 100644 --- a/freemarker-generator-cli/src/app/templates/freemarker-generator/csv/csv/transform.ftl +++ b/freemarker-generator-cli/src/app/templates/freemarker-generator/csv/csv/transform.ftl @@ -16,7 +16,7 @@ under the License. --> <#import "/freemarker-generator/lib/commons-csv.ftl" as csv /> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign csvParser = tools.csv.parse(dataSource, csv.sourceFormat())> <#assign csvTargetFormat = csv.targetFormat()> <#assign csvPrinter = tools.csv.printer(csvTargetFormat)> diff --git a/freemarker-generator-cli/src/app/templates/freemarker-generator/csv/html/transform.ftl b/freemarker-generator-cli/src/app/templates/freemarker-generator/csv/html/transform.ftl index d027672..e39a76d 100644 --- a/freemarker-generator-cli/src/app/templates/freemarker-generator/csv/html/transform.ftl +++ b/freemarker-generator-cli/src/app/templates/freemarker-generator/csv/html/transform.ftl @@ -16,7 +16,7 @@ under the License. --> <#import "/freemarker-generator/lib/commons-csv.ftl" as csv /> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign csvParser = tools.csv.parse(dataSource, csv.sourceFormat())> <#assign csvHeaders = csvParser.getHeaderNames()> <#---------------------------------------------------------------------------> diff --git a/freemarker-generator-cli/src/app/templates/freemarker-generator/csv/md/transform.ftl b/freemarker-generator-cli/src/app/templates/freemarker-generator/csv/md/transform.ftl index 6929b31..edd8b3e 100644 --- a/freemarker-generator-cli/src/app/templates/freemarker-generator/csv/md/transform.ftl +++ b/freemarker-generator-cli/src/app/templates/freemarker-generator/csv/md/transform.ftl @@ -15,7 +15,7 @@ under the License. --> <#import "/freemarker-generator/lib/commons-csv.ftl" as csv /> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign csvParser = tools.csv.parse(dataSource, csv.sourceFormat())> <#assign headers = (csvParser.getHeaderMap()!{})?keys> <#assign records = csvParser.records> diff --git a/freemarker-generator-cli/src/app/templates/freemarker-generator/excel/csv/transform.ftl b/freemarker-generator-cli/src/app/templates/freemarker-generator/excel/csv/transform.ftl index 18179f4..22dec59 100644 --- a/freemarker-generator-cli/src/app/templates/freemarker-generator/excel/csv/transform.ftl +++ b/freemarker-generator-cli/src/app/templates/freemarker-generator/excel/csv/transform.ftl @@ -17,7 +17,7 @@ --> <#-- Parse the first data source & sheet of the Excel document --> <#import "/freemarker-generator/lib/commons-csv.ftl" as csv /> -<#assign workbook = tools.excel.parse(dataSources?values[0])> +<#assign workbook = tools.excel.parse(dataSources[0])> <#assign sheet = tools.excel.getSheets(workbook)[0]> <#assign records = tools.excel.toTable(sheet)> <#-- Setup CSVPrinter --> diff --git a/freemarker-generator-cli/src/app/templates/freemarker-generator/excel/html/transform.ftl b/freemarker-generator-cli/src/app/templates/freemarker-generator/excel/html/transform.ftl index 7564751..e1e9409 100644 --- a/freemarker-generator-cli/src/app/templates/freemarker-generator/excel/html/transform.ftl +++ b/freemarker-generator-cli/src/app/templates/freemarker-generator/excel/html/transform.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign name = dataSource.name> <#assign workbook = tools.excel.parse(dataSource)> <#assign date = .now?iso_utc> diff --git a/freemarker-generator-cli/src/app/templates/freemarker-generator/excel/md/transform.ftl b/freemarker-generator-cli/src/app/templates/freemarker-generator/excel/md/transform.ftl index e3fb970..a0e13b7 100644 --- a/freemarker-generator-cli/src/app/templates/freemarker-generator/excel/md/transform.ftl +++ b/freemarker-generator-cli/src/app/templates/freemarker-generator/excel/md/transform.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign name = dataSource.name> <#assign workbook = tools.excel.parse(dataSource)> <#assign date = .now?iso_utc> 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 05eff21..85d41f7 100644 --- a/freemarker-generator-cli/src/app/templates/freemarker-generator/info.ftl +++ b/freemarker-generator-cli/src/app/templates/freemarker-generator/info.ftl @@ -50,7 +50,7 @@ FreeMarker Generator Data Model FreeMarker Generator Data Sources ============================================================================== <#if dataSources?has_content> -<#list dataSources?values as dataSource> +<#list dataSources as dataSource> DataSource #${dataSource?counter} ------------------------------------------------------------------------------ diff --git a/freemarker-generator-cli/src/app/templates/freemarker-generator/json/yaml/transform.ftl b/freemarker-generator-cli/src/app/templates/freemarker-generator/json/yaml/transform.ftl index 6e48945..d5b32f9 100644 --- a/freemarker-generator-cli/src/app/templates/freemarker-generator/json/yaml/transform.ftl +++ b/freemarker-generator-cli/src/app/templates/freemarker-generator/json/yaml/transform.ftl @@ -14,4 +14,4 @@ specific language governing permissions and limitations under the License. --> -${tools.yaml.toYaml(tools.gson.parse(dataSources?values[0]))} \ No newline at end of file +${tools.yaml.toYaml(tools.gson.parse(dataSources[0]))} \ No newline at end of file diff --git a/freemarker-generator-cli/src/app/templates/freemarker-generator/yaml/json/transform.ftl b/freemarker-generator-cli/src/app/templates/freemarker-generator/yaml/json/transform.ftl index 81a704a..d0f0581 100644 --- a/freemarker-generator-cli/src/app/templates/freemarker-generator/yaml/json/transform.ftl +++ b/freemarker-generator-cli/src/app/templates/freemarker-generator/yaml/json/transform.ftl @@ -14,4 +14,4 @@ specific language governing permissions and limitations under the License. --> -${tools.gson.toJson(tools.yaml.parse(dataSources?values[0]))} \ No newline at end of file +${tools.gson.toJson(tools.yaml.parse(dataSources[0]))} \ No newline at end of file diff --git a/freemarker-generator-cli/src/site/markdown/cli/concepts/data-sources.md b/freemarker-generator-cli/src/site/markdown/cli/concepts/data-sources.md index 2e0ba54..2a7d01e 100644 --- a/freemarker-generator-cli/src/site/markdown/cli/concepts/data-sources.md +++ b/freemarker-generator-cli/src/site/markdown/cli/concepts/data-sources.md @@ -98,7 +98,7 @@ URI : system:///stdin After loading one or more `DataSource` they are accessible as `dataSource` map in the FreeMarker model -* `dataSources?values[0]` or `dataSources?values?first` selects the first data source +* `dataSources[0]` or `dataSources?first` selects the first data source * `dataSources["user.csv"]` selects the data source with the name "user.csv" ### Iterating Over DataSources @@ -122,7 +122,7 @@ ${dataSources?size} </#list> <#-- Iterate over a list of data sources --> -<#list dataSources?values as dataSource> +<#list dataSources as dataSource> - [#${dataSource?counter}]: name=${dataSource.name} </#list> ``` @@ -134,22 +134,22 @@ selection of data sources (using Apache Commons IO wild-card matching) ``` <#-- List all data sources containing "test" in the name --> -<#list dataSources?values?filter(ds -> ds.match("name", "*test*")) as ds> +<#list dataSources?filter(ds -> ds.match("name", "*test*")) as ds> - ${ds.name} </#list> <#-- List all data sources having "json" extension --> -<#list dataSources?values?filter(ds -> ds.match("extension", "json")) as ds> +<#list dataSources?filter(ds -> ds.match("extension", "json")) as ds> - ${ds.name} </#list> <#-- List all data sources having "src/test/data/properties" in their file path --> -<#list dataSources?values?filter(ds -> ds.match("filePath", "*/src/test/data/properties")) as ds> +<#list dataSources?filter(ds -> ds.match("filePath", "*/src/test/data/properties")) as ds> - ${ds.name} </#list> <#-- List all data sources of a group --> -<#list dataSources?values?filter(ds -> ds.match("group", "default")) as ds> +<#list dataSources?filter(ds -> ds.match("group", "default")) as ds> - ${ds.name} </#list> @@ -163,7 +163,7 @@ In most cases the data source will be passed to a tool, but there are some usefu Invoke Arbitrary Methods On DataSource --------------------------------------------------------------------------- <#if dataSources?has_content> -<#assign dataSource=dataSources?values?first> +<#assign dataSource=dataSources?first> Name : ${dataSource.name} Nr of lines : ${dataSource.lines?size} Content Type : ${dataSource.contentType} diff --git a/freemarker-generator-cli/src/site/markdown/cli/usage/parsing-with-grok.md b/freemarker-generator-cli/src/site/markdown/cli/usage/parsing-with-grok.md index 5cbadda..7f4404c 100644 --- a/freemarker-generator-cli/src/site/markdown/cli/usage/parsing-with-grok.md +++ b/freemarker-generator-cli/src/site/markdown/cli/usage/parsing-with-grok.md @@ -33,7 +33,7 @@ using the following FreeMarker template ```text <#ftl output_format="plainText" strip_whitespace=true> <#assign grok = tools.grok.create("%{COMBINEDAPACHELOG}")> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign lines = dataSource.getLineIterator()> <#compress> @@ -93,7 +93,7 @@ In technical terms the FTL <#compress> TIMESTAMP;MILLIS <#if dataSources?has_content> - <#list dataSources?values as dataSource> + <#list dataSources as dataSource> <#list dataSource.getLineIterator() as line> <#assign parts = grok.match(line).capture()> <#if parts?has_content> diff --git a/freemarker-generator-cli/src/site/markdown/cli/usage/running-examples.md b/freemarker-generator-cli/src/site/markdown/cli/usage/running-examples.md index e4cc875..9b686a2 100644 --- a/freemarker-generator-cli/src/site/markdown/cli/usage/running-examples.md +++ b/freemarker-generator-cli/src/site/markdown/cli/usage/running-examples.md @@ -92,7 +92,7 @@ Below you see the Apache FreeMarker Template ```text <#ftl output_format="plainText" > -<#assign json = tools.jsonpath.parse(dataSources?values[0])> +<#assign json = tools.jsonpath.parse(dataSources[0])> <#assign users = json.read("$[*]")> <#---------------------------------------------------------------------------> # GitHub Users @@ -130,7 +130,7 @@ The FreeMarker template is shown below ```text <#ftl output_format="plainText"> <#assign cvsFormat = tools.csv.formats["DEFAULT"].withHeader()> -<#assign csvParser = tools.csv.parse(dataSources?values[0], cvsFormat)> +<#assign csvParser = tools.csv.parse(dataSources[0], cvsFormat)> <#assign csvHeaders = csvParser.getHeaderMap()?keys> <#assign csvRecords = csvParser.records> <#---------------------------------------------------------------------------> @@ -167,7 +167,7 @@ using the following template ```text <#ftl output_format="plainText" > -<#assign xml = tools.xml.parse(dataSources?values[0])> +<#assign xml = tools.xml.parse(dataSources[0])> <#list xml.recipients.person as recipient> To: ${recipient.name} ${recipient.address} @@ -214,7 +214,7 @@ One day I was asked a to prepare a CSV files containing REST endpoints described ```text <#ftl output_format="plainText" strip_text="true"> -<#assign json = tools.jsonpath.parse(dataSources?values[0])> +<#assign json = tools.jsonpath.parse(dataSources[0])> <#assign basePath = json.read("$.basePath")> <#assign paths = json.read("$.paths")> @@ -276,7 +276,7 @@ The provided FTL transforms an Excel into a HTML document supporting multiple Ex ```text <#ftl output_format="HTML" > -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign name = dataSource.name> <#assign workbook = tools.excel.parse(dataSource)> <#assign date = .now?iso_utc> @@ -402,7 +402,7 @@ For a POC (proof of concept) I created a sample transformation from CSV to XML-F ```text <#ftl output_format="XML" > -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign name = dataSource.name> <#assign cvsFormat = tools.csv.formats.DEFAULT.withDelimiter('\t').withHeader()> <#assign csvParser = tools.csv.parse(dataSource, cvsFormat)> @@ -523,7 +523,7 @@ Recently I got the rather unusual question how to determine the list of dependen ```text <#ftl output_format="plainText" strip_text="true"> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign html = tools.jsoup.parse(dataSource)> <#compress> @@ -598,7 +598,7 @@ and the final FTL is found below ```text <#ftl output_format="plainText"> <#assign cvsFormat = tools.csv.formats["DEFAULT"].withHeader()> -<#assign csvParser = tools.csv.parse(dataSources?values[0], cvsFormat)> +<#assign csvParser = tools.csv.parse(dataSources[0], cvsFormat)> <#assign records = csvParser.records> <#assign csvMap = tools.csv.toMap(records, "disposer")> <#---------------------------------------------------------------------------> @@ -713,16 +713,16 @@ Sometime you need to apply a CSS, JSON or XPath query in ad ad-hoc way without i > bin/freemarker-generator -i 'Hello ${tools.system.envs["USER"]}'; echo Hello sgoeschl -> bin/freemarker-generator -i '${tools.jsonpath.parse(dataSources?values[0]).read("$.info.title")}' examples/data/json/swagger-spec.json; echo +> bin/freemarker-generator -i '${tools.jsonpath.parse(dataSources[0]).read("$.info.title")}' examples/data/json/swagger-spec.json; echo Swagger Petstore -> bin/freemarker-generator -i 'Post Title : ${tools.jsonpath.parse(dataSources?values[0]).read("$.title")}' https://jsonplaceholder.typicode.com/posts/2; echo +> bin/freemarker-generator -i 'Post Title : ${tools.jsonpath.parse(dataSources[0]).read("$.title")}' https://jsonplaceholder.typicode.com/posts/2; echo Post Title : qui est esse -> bin/freemarker-generator -i '${tools.xml.parse(dataSources?values[0])["recipients/person[1]/name"]}' examples/data/xml/recipients.xml; echo +> bin/freemarker-generator -i '${tools.xml.parse(dataSources[0])["recipients/person[1]/name"]}' examples/data/xml/recipients.xml; echo John Smith -> bin/freemarker-generator -i '${tools.jsoup.parse(dataSources?values[0]).select("a")[0]}' examples/data/html/dependencies.html; echo +> bin/freemarker-generator -i '${tools.jsoup.parse(dataSources[0]).select("a")[0]}' examples/data/html/dependencies.html; echo <a href="${project.url}" title="FreeMarker Generator">FreeMarker Generator</a> > freemarker-generator -i '<#list tools.system.envs as name,value>${name} ==> > ${value}${"\n"}</#list>' @@ -749,7 +749,7 @@ and Apache FreeMarker template ```text <#ftl output_format="plainText" strip_text="true"> -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign parser = parser(dataSource)> <#assign headers = parser.getHeaderNames()> <#assign column = tools.system.getParameter("column")> @@ -835,11 +835,11 @@ Sometimes we simply need to transform a JSON into an equivalent YAML or the othe ``` > freemarker-generator -t freemarker-generator/yaml/json/transform.ftl > examples/data/yaml/swagger-spec.yaml -> freemarker-generator -i '${tools.gson.toJson(tools.yaml.parse(dataSources?values[0]))}' examples/data/yaml/swagger-spec.yaml +> freemarker-generator -i '${tools.gson.toJson(tools.yaml.parse(dataSources[0]))}' examples/data/yaml/swagger-spec.yaml > freemarker-generator -i '${tools.gson.toJson(yaml)}' -m > yaml=examples/data/yaml/swagger-spec.yaml > freemarker-generator -t freemarker-generator/json/yaml/transform.ftl > examples/data/json/swagger-spec.json -> freemarker-generator -i '${tools.yaml.toYaml(tools.gson.parse(dataSources?values[0]))}' examples/data/json/swagger-spec.json +> freemarker-generator -i '${tools.yaml.toYaml(tools.gson.parse(dataSources[0]))}' examples/data/json/swagger-spec.json > freemarker-generator -i '${tools.yaml.toYaml(json)}' -m > json=examples/data/json/swagger-spec.json ``` diff --git a/freemarker-generator-cli/src/site/markdown/cli/usage/using-dataframes.md b/freemarker-generator-cli/src/site/markdown/cli/usage/using-dataframes.md index 9fbf9d2..8866983 100644 --- a/freemarker-generator-cli/src/site/markdown/cli/usage/using-dataframes.md +++ b/freemarker-generator-cli/src/site/markdown/cli/usage/using-dataframes.md @@ -30,7 +30,7 @@ Meier;30;Germany and create a `DateFrame` using the following code snippet ``` -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign csvParser = tools.csv.parse(dataSource, tools.csv.formats["DATAFRAME"])> <#assign users = tools.dataframe.fromCSVParser(csvParser)> ``` @@ -162,7 +162,7 @@ it is a list of maps hence we invoke `tools.dataframe.fromMaps() ``` freemarker-generator \ --i '${tools.dataframe.print(tools.dataframe.fromMaps(tools.gson.parse(dataSources?values[0])))}' \ +-i '${tools.dataframe.print(tools.dataframe.fromMaps(tools.gson.parse(dataSources[0])))}' \ examples/data/json/github-users.json ┌────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┐ @@ -189,7 +189,7 @@ examples/data/json/github-users.json Let's transform an Excel Sheet to a `DataFrame` being printed using the following template ``` -<#assign dataSource = dataSources?values[0]> +<#assign dataSource = dataSources[0]> <#assign workbook = tools.excel.parse(dataSource)> <#list tools.excel.getSheets(workbook) as sheet> <#assign table = tools.excel.toTable(sheet)> diff --git a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java index 7bbe810..d8eb993 100644 --- a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java +++ b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java @@ -126,14 +126,14 @@ public class ExamplesTest extends AbstractMainTest { @Test public void shouldRunInteractiveTemplateExamples() throws IOException { - assertValid(execute("-i ${tools.jsonpath.parse(dataSources?values[0]).read(\"$.info.title\")} src/app/examples/data/json/swagger-spec.json")); - assertValid(execute("-i ${tools.xml.parse(dataSources?values[0])[\"recipients/person[1]/name\"]} src/app/examples/data/xml/recipients.xml")); - assertValid(execute("-i ${tools.jsoup.parse(dataSources?values[0]).select(\"a\")[0]} src/app/examples/data/html/dependencies.html")); - assertValid(execute("-i ${tools.gson.toJson(tools.yaml.parse(dataSources?values[0]))} src/app/examples/data/yaml/swagger-spec.yaml")); + assertValid(execute("-i ${tools.jsonpath.parse(dataSources[0]).read(\"$.info.title\")} src/app/examples/data/json/swagger-spec.json")); + assertValid(execute("-i ${tools.xml.parse(dataSources[0])[\"recipients/person[1]/name\"]} src/app/examples/data/xml/recipients.xml")); + assertValid(execute("-i ${tools.jsoup.parse(dataSources[0]).select(\"a\")[0]} src/app/examples/data/html/dependencies.html")); + assertValid(execute("-i ${tools.gson.toJson(tools.yaml.parse(dataSources[0]))} src/app/examples/data/yaml/swagger-spec.yaml")); assertValid(execute("-i ${tools.gson.toJson(yaml)} -m yaml=src/app/examples/data/yaml/swagger-spec.yaml")); - assertValid(execute("-i ${tools.yaml.toYaml(tools.gson.parse(dataSources?values[0]))} src/app/examples/data/json/swagger-spec.json")); + assertValid(execute("-i ${tools.yaml.toYaml(tools.gson.parse(dataSources[0]))} src/app/examples/data/json/swagger-spec.json")); assertValid(execute("-i ${tools.yaml.toYaml(json)} -m json=src/app/examples/data/json/swagger-spec.json")); - assertValid(execute("-i ${tools.dataframe.print(tools.dataframe.fromMaps(tools.gson.parse(dataSources?values[0])))} src/app/examples/data/json/github-users.json")); + assertValid(execute("-i ${tools.dataframe.print(tools.dataframe.fromMaps(tools.gson.parse(dataSources[0])))} src/app/examples/data/json/github-users.json")); } @Test diff --git a/freemarker-generator-cli/src/test/templates/echo.ftl b/freemarker-generator-cli/src/test/templates/echo.ftl index 38627f4..56c0b56 100644 --- a/freemarker-generator-cli/src/test/templates/echo.ftl +++ b/freemarker-generator-cli/src/test/templates/echo.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#list dataSources?values as ds> +<#list dataSources as ds> ${ds.name}, ${ds.uri} ============================================================================= ${ds.text} diff --git a/freemarker-generator-cli/src/test/templates/manual.ftl b/freemarker-generator-cli/src/test/templates/manual.ftl index c1112be..1e6f5ac 100644 --- a/freemarker-generator-cli/src/test/templates/manual.ftl +++ b/freemarker-generator-cli/src/test/templates/manual.ftl @@ -22,8 +22,8 @@ Nr. of Documents: ${dataSources?size} Use FTL Array-style Access ============================================================================== -${dataSources?values[0].toString()} -${dataSources?values?first.toString()} +${dataSources[0].toString()} +${dataSources?first.toString()} Get Document Names As Keys ============================================================================== @@ -38,13 +38,13 @@ Iterate Over Names & DataSources </#list> <#if dataSources?has_content> - <#list dataSources?values as dataSource> + <#list dataSources as dataSource> [#${dataSource?counter}] - ${dataSource.name} ============================================================================== Invoke Arbitrary Methods On DataSource --------------------------------------------------------------------------- -<#assign dataSource=dataSources?values?first> +<#assign dataSource=dataSources?first> Name : ${dataSource.name} Nr of lines : ${dataSource.lines?size} Content Type : ${dataSource.contentType} diff --git a/freemarker-generator-cli/src/test/templates/tools/csv.ftl b/freemarker-generator-cli/src/test/templates/tools/csv.ftl index 25dfb3b..07c4f43 100644 --- a/freemarker-generator-cli/src/test/templates/tools/csv.ftl +++ b/freemarker-generator-cli/src/test/templates/tools/csv.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign records = tools.csv.parse(dataSources?values[0], CSVFormat.DEFAULT.withHeader()).records> +<#assign records = tools.csv.parse(dataSources[0], CSVFormat.DEFAULT.withHeader()).records> tools.csv.toMap(name) =============================================================================
