This is an automated email from the ASF dual-hosted git repository.

sgoeschl pushed a commit to branch FREEMARKER-172
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git


The following commit(s) were added to refs/heads/FREEMARKER-172 by this push:
     new 2c790f7  FREEMARKER-172 [freemarker-generator] Throw an 
IllegalStateException when encountering duplicate names in "DataSources"
2c790f7 is described below

commit 2c790f732a9ca473d3b23686bda914847ca64ea3
Author: Siegfried Goeschl <[email protected]>
AuthorDate: Thu Feb 4 06:58:43 2021 +0100

    FREEMARKER-172 [freemarker-generator] Throw an IllegalStateException when 
encountering duplicate names in "DataSources"
---
 .../apache/freemarker/generator/base/datasource/DataSources.java   | 7 +++++--
 .../freemarker/generator/cli/model/GeneratorObjectWrapper.java     | 1 +
 .../test/java/org/apache/freemarker/generator/cli/ManualTest.java  | 2 +-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSources.java
 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSources.java
index 5af23bf..48bf0fc 100644
--- 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSources.java
+++ 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSources.java
@@ -104,9 +104,12 @@ public class DataSources implements Closeable {
      * @return map of data sources
      */
     public Map<String, DataSource> toMap() {
-        return 
dataSources.stream().collect(Collectors.toMap(DataSource::getName,
+        return dataSources.stream().collect(Collectors.toMap(
+                DataSource::getName,
                 identity(),
-                (v1, v2) -> v1,
+                (ds1, ds2) -> {
+                    throw new IllegalStateException("Duplicate key detected 
when generating map: " + ds1 + ", " + ds2);
+                },
                 LinkedHashMap::new));
     }
 
diff --git 
a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/GeneratorObjectWrapper.java
 
b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/GeneratorObjectWrapper.java
index 289611f..393dcdd 100644
--- 
a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/GeneratorObjectWrapper.java
+++ 
b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/GeneratorObjectWrapper.java
@@ -32,6 +32,7 @@ public class GeneratorObjectWrapper extends 
DefaultObjectWrapper {
     @Override
     protected TemplateModel handleUnknownType(Object obj) throws 
TemplateModelException {
         if (obj instanceof DataSources) {
+            // Expose "DataSources" as map in the FreeMarker data model
             final DataSources dataSources = (DataSources) obj;
             return DefaultMapAdapter.adapt((dataSources).toMap(), this);
         }
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 7d12754..95ab41c 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
@@ -24,7 +24,7 @@ import java.io.IOException;
 public class ManualTest extends AbstractMainTest {
 
     // private static final String CMD = "-V";
-    private static final String CMD = "-t src/app/examples/templates/demo.ftl 
src/test/data";
+    private static final String CMD = "-t 
src/app/templates/freemarker-generator/info.ftl -s 
:csv=src/app/examples/data/csv -s :json=src/app/examples/data/json";
 
     @Override
     public String execute(String commandLine) throws IOException {

Reply via email to