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

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

commit 57dc39c4d7edfcf9c214292ee59117117e8e9195
Author: Siegfried Goeschl <[email protected]>
AuthorDate: Sat Feb 29 00:13:00 2020 +0100

    FREEMARKER-135 Support user-supplied names for datasources
---
 .../freemarker/generator/base/datasource/Datasource.java      | 11 +++++++++++
 freemarker-generator-cli/templates/info.ftl                   |  2 +-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/Datasource.java
 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/Datasource.java
index 5de9cae..c3c45b8 100644
--- 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/Datasource.java
+++ 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/Datasource.java
@@ -59,6 +59,9 @@ public class Datasource implements Closeable {
     /** Collect all closables handed out to the caller to be closed when the 
datasource is closed itself */
     private final CloseableReaper closables;
 
+    /** Cached content type - UrlDataSource actually opens a connection so we 
should cache the result */
+    private String contentType = null;
+
     public Datasource(String name, DataSource dataSource, String location, 
Charset charset) {
         this.name = requireNonNull(name);
         this.dataSource = requireNonNull(dataSource);
@@ -83,6 +86,14 @@ public class Datasource implements Closeable {
         return charset;
     }
 
+    public synchronized String getContentType() {
+        if (contentType == null) {
+            contentType = dataSource.getContentType();
+        }
+
+        return contentType;
+    }
+
     public String getLocation() {
         return location;
     }
diff --git a/freemarker-generator-cli/templates/info.ftl 
b/freemarker-generator-cli/templates/info.ftl
index 154416e..2000d4e 100644
--- a/freemarker-generator-cli/templates/info.ftl
+++ b/freemarker-generator-cli/templates/info.ftl
@@ -42,7 +42,7 @@ FreeMarker CLI Tools
 FreeMarker CLI Datasources
 ---------------------------------------------------------------------------
 <#list Datasources.list as datasource>
-[${datasource?counter}] ${datasource.name}, ${datasource.location}, 
${datasource.charset}, ${datasource.length} Bytes
+[${datasource?counter}] ${datasource.name}, ${datasource.location}, 
${datasource.charset}, ${datasource.contentType}, ${datasource.length} Bytes
 </#list>
 
 User Supplied Parameters

Reply via email to