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/02/29 00:06:12 UTC
[freemarker-generator] 04/06: FREEMARKER-135 Support user-supplied
names for datasources
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 <si...@gmail.com>
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