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/07/05 08:35:04 UTC
[freemarker-generator] 04/04: FREEMARKER-148 Make usage of
"DataSources" more "Freemarker" like
This is an automated email from the ASF dual-hosted git repository.
sgoeschl pushed a commit to branch FREEMARKER-148
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git
commit 8f498f52a8c47a6ef3bb4dc6e73aecf046fa5a7d
Author: Siegfried Goeschl <si...@gmail.com>
AuthorDate: Sun Jul 5 10:34:43 2020 +0200
FREEMARKER-148 Make usage of "DataSources" more "Freemarker" like
---
freemarker-generator-cli/CHANGELOG.md | 2 ++
.../freemarker/generator/cli/ExamplesTest.java | 24 ++++++++++++++++++++++
freemarker-generator-maven-plugin/pom.xml | 1 +
.../commonscsv/impl/CommonsCSVPrinterFacade.java | 16 +++++++++++++++
pom.xml | 18 ++++++++++++++--
5 files changed, 59 insertions(+), 2 deletions(-)
diff --git a/freemarker-generator-cli/CHANGELOG.md b/freemarker-generator-cli/CHANGELOG.md
index 70d43a1..6b03fc4 100644
--- a/freemarker-generator-cli/CHANGELOG.md
+++ b/freemarker-generator-cli/CHANGELOG.md
@@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file. We try to a
## 0.1.0-SNAPSHOT
### Added
+* [FREEMARKER-148] Make usage of "DataSources" more "Freemarker" like
* [FREEMARKER-149] Support multiple template transformations on the command line
* [FREEMARKER-144] Proof Of Concept for providing DataFrames
* [FREEMARKER-142] Support Transformation Of Directories
@@ -41,4 +42,5 @@ All notable changes to this project will be documented in this file. We try to a
[FREEMARKER-144]: https://issues.apache.org/jira/browse/FREEMARKER-144
[FREEMARKER-146]: https://issues.apache.org/jira/browse/FREEMARKER-146
[FREEMARKER-147]: https://issues.apache.org/jira/browse/FREEMARKER-147
+[FREEMARKER-148]: https://issues.apache.org/jira/browse/FREEMARKER-148
[FREEMARKER-149]: https://issues.apache.org/jira/browse/FREEMARKER-149
\ No newline at end of file
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 e66d457..308d0df 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
@@ -21,6 +21,7 @@ import org.junit.Test;
import java.io.IOException;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -139,6 +140,29 @@ public class ExamplesTest extends AbstractMainTest {
}
@Test
+ public void shouldSupportDataSourcesAccessInFTL() throws IOException {
+ final String args = "examples/data/json/github-users.json examples/data/csv/contract.csv";
+
+ // check FreeMarker directives
+ assertEquals("true", execute(args + " -i ${DataSources?has_content?c}"));
+ assertEquals("2", execute(args + " -i ${DataSources?size}"));
+
+ // check FTL array-style access
+ assertEquals("github-users.json", execute(args + " -i ${DataSources[0].name}"));
+ assertEquals("github-users.json", execute(args + " -i ${DataSources.get(0).name}"));
+
+ // check FTL map-style access
+ assertEquals("github-users.json", execute(args + " -i ${DataSources[\"github-users.json\"].name}"));
+ assertEquals("github-users.json", execute(args + " -i ${DataSources.get(\"github-users.json\").name}"));
+
+ // check arbitrary methods
+ assertEquals("false", execute(args + " -i ${DataSources.empty?c}"));
+ assertEquals("false", execute(args + " -i ${DataSources.isEmpty()?c}"));
+ assertEquals("2", execute(args + " -i ${DataSources.size()}"));
+ assertEquals("worx", execute(args + " -i ${DataSources.close()}worx"));
+ }
+
+ @Test
@Ignore("Manual test to check memory consumption and resource handling")
public void shouldCloseAllResources() throws IOException {
for (int i = 0; i < 500; i++) {
diff --git a/freemarker-generator-maven-plugin/pom.xml b/freemarker-generator-maven-plugin/pom.xml
index be360ec..30442ec 100644
--- a/freemarker-generator-maven-plugin/pom.xml
+++ b/freemarker-generator-maven-plugin/pom.xml
@@ -167,6 +167,7 @@
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<excludes>
+ <exclude>CHANGELOG.md</exclude>
<exclude>README.md</exclude>
<exclude>src/site/markdown/**/*.md</exclude>
<excludde>**/*.json</excludde>
diff --git a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/commonscsv/impl/CommonsCSVPrinterFacade.java b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/commonscsv/impl/CommonsCSVPrinterFacade.java
index c8e8ac5..9909d17 100644
--- a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/commonscsv/impl/CommonsCSVPrinterFacade.java
+++ b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/commonscsv/impl/CommonsCSVPrinterFacade.java
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.apache.freemarker.generator.tools.commonscsv.impl;
import org.apache.commons.csv.CSVFormat;
diff --git a/pom.xml b/pom.xml
index 05fa956..4e132e8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -98,6 +98,9 @@
<organization>ASF</organization>
<organizationUrl>https://www.apache.org</organizationUrl>
</developer>
+ <developer>
+ <name>Benjamin Jackson</name>
+ </developer>
</developers>
<dependencyManagement>
@@ -149,7 +152,7 @@
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
- <version>3.2.0</version>
+ <version>3.2.0</version>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
@@ -169,7 +172,7 @@
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
- <version>3.1.1</version>
+ <version>3.2.0</version>
</plugin>
<plugin>
<artifactId>maven-jxr-plugin</artifactId>
@@ -273,6 +276,17 @@
<linkXRef>false</linkXRef>
</configuration>
</plugin>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <reportSets>
+ <reportSet>
+ <id>default</id>
+ <reports>
+ <report>javadoc</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
</plugins>
</reporting>
</project>
\ No newline at end of file