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/15 22:26:24 UTC

[freemarker-generator] 03/08: FREEMARKER-141 freemarker-cli: Expose user-supplied parameters in the data model

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 <si...@gmail.com>
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]>