This is an automated email from the ASF dual-hosted git repository. sgoeschl pushed a commit to branch FREEMARKER-141 in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git
commit 64b13894e202018a30172cdb6f9924f9f43b6eb3 Author: Siegfried Goeschl <[email protected]> AuthorDate: Mon Apr 13 20:15:39 2020 +0200 FREEMARKER-141 freemarker-cli: Expose user-supplied parameters in the data model --- .../freemarker/generator/base/uri/NamedUriStringParser.java | 2 +- .../freemarker/generator/datasource/DataSourceFactoryTest.java | 4 +++- .../test/java/org/apache/freemarker/generator/cli/ManualTest.java | 2 +- .../freemarker/generator/cli/config/DataModelSupplierTest.java | 4 ++++ freemarker-generator-cli/templates/csv/fo/transform.ftl | 2 +- freemarker-generator-cli/templates/csv/transform.ftl | 8 ++++---- freemarker-generator-cli/templates/excel/csv/custom.ftl | 2 +- freemarker-generator-cli/templates/excel/csv/transform.ftl | 2 +- 8 files changed, 16 insertions(+), 10 deletions(-) diff --git a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/uri/NamedUriStringParser.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/uri/NamedUriStringParser.java index 76d961d..0da4365 100644 --- a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/uri/NamedUriStringParser.java +++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/uri/NamedUriStringParser.java @@ -42,7 +42,7 @@ public class NamedUriStringParser { private static final String GROUP = "group"; private static final String URI = "uri"; - private static final Pattern NAMED_URI_REGEXP = compile("^(?<name>[a-zA-Z0-9-_]*):?(?<group>[a-zA-Z0-9-_]*)=(?<uri>.*)"); + private static final Pattern NAMED_URI_REGEXP = compile("^(?<name>[a-zA-Z0-9-_$@]*):?(?<group>[a-zA-Z0-9-_$@]*)=(?<uri>.*)"); public static NamedUri parse(String value) { Validate.notEmpty(value, "Named URI is empty"); diff --git a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceFactoryTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceFactoryTest.java index 28062be..d0d665c 100644 --- a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceFactoryTest.java +++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceFactoryTest.java @@ -20,6 +20,7 @@ import org.apache.freemarker.generator.base.datasource.DataSource; import org.apache.freemarker.generator.base.datasource.DataSourceFactory; import org.apache.freemarker.generator.base.uri.NamedUri; import org.apache.freemarker.generator.base.uri.NamedUriStringParser; +import org.junit.Ignore; import org.junit.Test; import java.io.ByteArrayInputStream; @@ -105,6 +106,7 @@ public class DataSourceFactoryTest { } @Test + @Ignore public void shouldCreateDataSourceFromURL() throws IOException { final URL url = new URL("https://jsonplaceholder.typicode.com/posts/2"); final DataSource dataSource = DataSourceFactory.fromUrl("jsonplaceholder.typicode.com", "default", url, null, null); @@ -115,6 +117,7 @@ public class DataSourceFactoryTest { } @Test + @Ignore public void shouldCreateDataSourceFromNamedURL() { final NamedUri namedUri = NamedUriStringParser.parse(ANY_NAMED_URL_STRING); final DataSource dataSource = DataSourceFactory.fromNamedUri(namedUri); @@ -160,5 +163,4 @@ public class DataSourceFactoryTest { assertEquals("env:///PWD", dataSource.getUri().toString()); assertEquals("text/plain", dataSource.getContentType()); } - } 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 46dc60b..c6eb230 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 @@ -28,7 +28,7 @@ public class ManualTest { // private static final String CMD = "-b ./src/test -l de_AT -DFOO=foo -DBAR=bar -t templates/info.ftl site/sample/csv/transactions.csv"; // private static final String CMD = "-b ./src/test -DFOO=foo -PBAR=bar -l de -t templates/demo.ftl site/sample/csv/transactions.csv"; // private static final String CMD = "-b ./src/test -DFOO=foo -PBAR=bar -t templates/demo.ftl site/sample/csv/transactions.csv"; - private static final String CMD = "-b ./src/test -P csv.out.format=TDF -t templates/csv/transform.ftl site/sample/csv/contract.csv"; + private static final String CMD = "-b ./src/test -PCSV_OUT_FORMAT=TDF -t templates/csv/transform.ftl site/sample/csv/contract.csv"; // private static final String CMD = "-t templates/excel/csv/transform.ftl -l de_AT site/sample/excel/test.xlsx"; // private static final String CMD = "-i ${JsonPathTool.parse(DataSources.first).read('$.info.title')} site/sample/json/swagger-spec.json"; // private static final String CMD = "-i ${XmlTool.parse(DataSources.first)['recipients/person[1]/name']} site/sample/xml/recipients.xml"; diff --git a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/DataModelSupplierTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/DataModelSupplierTest.java index 0dc0d78..ef52df4 100644 --- a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/DataModelSupplierTest.java +++ b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/DataModelSupplierTest.java @@ -16,6 +16,7 @@ */ package org.apache.freemarker.generator.cli.config; +import org.junit.Ignore; import org.junit.Test; import java.util.Map; @@ -140,6 +141,7 @@ public class DataModelSupplierTest { // == URL === @Test + @Ignore public void shouldResolveUrlToTopLevelDataModel() { final DataModelSupplier supplier = supplier("post=https://jsonplaceholder.typicode.com/posts/2"); @@ -150,6 +152,7 @@ public class DataModelSupplierTest { } @Test + @Ignore public void shouldResolveUrlToDataModelVariable() { final DataModelSupplier supplier = supplier("https://jsonplaceholder.typicode.com/posts/2"); @@ -159,6 +162,7 @@ public class DataModelSupplierTest { } @Test(expected = RuntimeException.class) + @Ignore public void shouldResolveUrlToDataModelVariables() { supplier("https://jsonplaceholder.typicode.com/posts/does-not-exist").get(); } diff --git a/freemarker-generator-cli/templates/csv/fo/transform.ftl b/freemarker-generator-cli/templates/csv/fo/transform.ftl index 7ce74c8..4efa596 100644 --- a/freemarker-generator-cli/templates/csv/fo/transform.ftl +++ b/freemarker-generator-cli/templates/csv/fo/transform.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign csvFormatName = SystemTool.parameters["csv.format"]!"DEFAULT"> +<#assign csvFormatName = CVS_IN_FORMAT!"DEFAULT"> <#assign cvsFormat = CSVTool.formats[csvFormatName].withHeader()> <#assign csvParser = CSVTool.parse(DataSources.get(0), cvsFormat)> <#assign csvHeaders = csvParser.getHeaderMap()?keys> diff --git a/freemarker-generator-cli/templates/csv/transform.ftl b/freemarker-generator-cli/templates/csv/transform.ftl index b4e21ef..af091ec 100644 --- a/freemarker-generator-cli/templates/csv/transform.ftl +++ b/freemarker-generator-cli/templates/csv/transform.ftl @@ -25,15 +25,15 @@ </#compress> <#function createCsvParser dataSource> - <#assign initialCvsInFormat = CSVTool.formats[SystemTool.getParameter("csv.in.format", "DEFAULT")]> - <#assign csvInDelimiter = CSVTool.toDelimiter(SystemTool.getParameter("csv.in.delimiter", initialCvsInFormat.getDelimiter()))> + <#assign initialCvsInFormat = CSVTool.formats[CSV_IN_FORMAT!"DEFAULT"]> + <#assign csvInDelimiter = CSVTool.toDelimiter(CSV_IN_DELIMITER!initialCvsInFormat.getDelimiter())> <#assign cvsInFormat = initialCvsInFormat.withDelimiter(csvInDelimiter)> <#return CSVTool.parse(dataSource, cvsInFormat)> </#function> <#function createCsvPrinter> - <#assign initialCvsOutFormat = CSVTool.formats[SystemTool.getParameter("csv.out.format", "DEFAULT")]> - <#assign csvOutDelimiter = CSVTool.toDelimiter(SystemTool.getParameter("csv.out.delimiter", initialCvsOutFormat.getDelimiter()))> + <#assign initialCvsOutFormat = CSVTool.formats[CSV_OUT_FORMAT!"DEFAULT"]> + <#assign csvOutDelimiter = CSVTool.toDelimiter(CSV_OUT_DELIMITER!initialCvsOutFormat.getDelimiter())> <#assign cvsOutFormat = initialCvsOutFormat.withDelimiter(csvOutDelimiter)> <#return CSVTool.printer(cvsOutFormat, SystemTool.writer)> </#function> \ No newline at end of file diff --git a/freemarker-generator-cli/templates/excel/csv/custom.ftl b/freemarker-generator-cli/templates/excel/csv/custom.ftl index 542d92b..a045bd3 100644 --- a/freemarker-generator-cli/templates/excel/csv/custom.ftl +++ b/freemarker-generator-cli/templates/excel/csv/custom.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign format = SystemTool.parameters["csv.format"]!"DEFAULT"> +<#assign format = CVS_FORMAT!"DEFAULT"> <#assign salt = SystemTool.parameters["salt"]!"salt"> <#-- Parse the first data source & sheet of the Excel document --> <#assign workbook = ExcelTool.parse(DataSources.get(0))> diff --git a/freemarker-generator-cli/templates/excel/csv/transform.ftl b/freemarker-generator-cli/templates/excel/csv/transform.ftl index d60421c..2455c49 100644 --- a/freemarker-generator-cli/templates/excel/csv/transform.ftl +++ b/freemarker-generator-cli/templates/excel/csv/transform.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign format = SystemTool.parameters["csv.format"]!"DEFAULT"> +<#assign format = CVS_IN_FORMAT!"DEFAULT"> <#-- Parse the first data source & sheet of the Excel document --> <#assign workbook = ExcelTool.parse(DataSources.get(0))> <#assign sheet = ExcelTool.getSheets(workbook)[0]>
