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

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

commit b0fdea46b54e6722dbad606f99903a0bf4e9c946
Author: Siegfried Goeschl <[email protected]>
AuthorDate: Sun Feb 7 18:56:59 2021 +0100

    FREEMARKER-173 [freemarker-generator] Remove DataSource#load(source,charset)
---
 .../generator/base/datasource/DataSourceLoader.java       | 15 ++-------------
 .../generator/base/datasource/DataSourcesSupplier.java    |  2 +-
 .../base/datasource/loader/DefaultDataSourceLoader.java   |  7 -------
 .../datasource/loader/EnvironmentDataSourceLoader.java    |  8 --------
 .../base/datasource/loader/FileDataSourceLoader.java      | 11 -----------
 .../base/datasource/loader/HttpDataSourceLoader.java      |  6 ------
 .../apache/freemarker/generator/base/uri/NamedUri.java    |  8 ++++----
 .../generator/datasource/DataSourceLoaderTest.java        | 14 ++++++++------
 .../template/TemplateTransformationsBuilderTest.java      |  2 ++
 .../generator/uri/NamedUriStringParserTest.java           |  7 ++++---
 10 files changed, 21 insertions(+), 59 deletions(-)

diff --git 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourceLoader.java
 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourceLoader.java
index 423b648..4a22137 100644
--- 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourceLoader.java
+++ 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourceLoader.java
@@ -16,14 +16,12 @@
  */
 package org.apache.freemarker.generator.base.datasource;
 
-import java.nio.charset.Charset;
-
 public interface DataSourceLoader {
 
     /**
-     * Check if the source would be accepted
+     * Check if the data source can be loaded by this instance.
      *
-     * @param source source
+     * @param source source to be loaded from
      * @return true if the instance wold be able to load a data source
      */
     boolean accept(String source);
@@ -35,13 +33,4 @@ public interface DataSourceLoader {
      * @return DataSource
      */
     DataSource load(String source);
-
-    /**
-     * Load a DataSource using the given charset.
-     *
-     * @param source source of the data source
-     * @param charset charset to use
-     * @return DataSource
-     */
-    DataSource load(String source, Charset charset);
 }
diff --git 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourcesSupplier.java
 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourcesSupplier.java
index c2604ba..9e22d81 100644
--- 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourcesSupplier.java
+++ 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourcesSupplier.java
@@ -123,7 +123,7 @@ public class DataSourcesSupplier implements 
Supplier<List<DataSource>> {
     }
 
     private static Charset getCharsetOrElse(NamedUri namedUri, Charset def) {
-        return Charset.forName(namedUri.getParameter(NamedUri.CHARSET, 
def.name()));
+        return namedUri.getCharsetOrElse(def);
     }
 
     private static boolean isHttpUri(String value) {
diff --git 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/DefaultDataSourceLoader.java
 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/DefaultDataSourceLoader.java
index 467531c..2067aa2 100644
--- 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/DefaultDataSourceLoader.java
+++ 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/DefaultDataSourceLoader.java
@@ -19,7 +19,6 @@ package 
org.apache.freemarker.generator.base.datasource.loader;
 import org.apache.freemarker.generator.base.datasource.DataSource;
 import org.apache.freemarker.generator.base.datasource.DataSourceLoader;
 
-import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -47,16 +46,10 @@ public class DefaultDataSourceLoader implements 
DataSourceLoader {
         return get(source).load(source);
     }
 
-    @Override
-    public DataSource load(String source, Charset charset) {
-        return get(source).load(source, charset);
-    }
-
     private DataSourceLoader get(String source) {
         return dataSourceLoaders.stream()
                 .filter(loader -> loader.accept(source))
                 .findFirst()
                 .orElseThrow(() -> new IllegalArgumentException("Don't know 
how to load: " + source));
     }
-
 }
diff --git 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/EnvironmentDataSourceLoader.java
 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/EnvironmentDataSourceLoader.java
index 41eeeef..775b7cc 100644
--- 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/EnvironmentDataSourceLoader.java
+++ 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/EnvironmentDataSourceLoader.java
@@ -25,8 +25,6 @@ import org.apache.freemarker.generator.base.uri.NamedUri;
 import org.apache.freemarker.generator.base.uri.NamedUriStringParser;
 import org.apache.freemarker.generator.base.util.StringUtils;
 
-import java.nio.charset.Charset;
-
 import static 
org.apache.freemarker.generator.base.FreeMarkerConstants.DEFAULT_GROUP;
 import static 
org.apache.freemarker.generator.base.util.StringUtils.firstNonEmpty;
 import static org.apache.freemarker.generator.base.util.StringUtils.isNotEmpty;
@@ -57,12 +55,6 @@ public class EnvironmentDataSourceLoader implements 
DataSourceLoader {
         }
     }
 
-    @Override
-    public DataSource load(String source, Charset charset) {
-        // We already habe internal strings so we can ignore the charset
-        return load(source);
-    }
-
     /**
      * Environment variables come with a leading "/" to be removed.
      */
diff --git 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/FileDataSourceLoader.java
 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/FileDataSourceLoader.java
index 1ee8b66..413e782 100644
--- 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/FileDataSourceLoader.java
+++ 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/FileDataSourceLoader.java
@@ -22,7 +22,6 @@ import 
org.apache.freemarker.generator.base.datasource.DataSourceFactory;
 import org.apache.freemarker.generator.base.datasource.DataSourceLoader;
 import org.apache.freemarker.generator.base.uri.NamedUri;
 import org.apache.freemarker.generator.base.uri.NamedUriStringParser;
-import org.apache.freemarker.generator.base.util.UriUtils;
 
 import java.io.File;
 import java.nio.charset.Charset;
@@ -46,14 +45,4 @@ public class FileDataSourceLoader implements 
DataSourceLoader {
         final String name = namedUri.getNameOrElse(file.getName());
         return DataSourceFactory.fromFile(name, group, file, charset);
     }
-
-    @Override
-    public DataSource load(String source, Charset charset) {
-        final NamedUri namedUri = NamedUriStringParser.parse(source);
-        final String group = 
namedUri.getGroupOrElse(FreeMarkerConstants.DEFAULT_GROUP);
-        final File file = namedUri.getFile();
-        final String name = 
namedUri.getNameOrElse(UriUtils.toStringWithoutFragment(file.toURI()));
-        return DataSourceFactory.fromFile(name, group, file, charset);
-    }
-
 }
diff --git 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/HttpDataSourceLoader.java
 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/HttpDataSourceLoader.java
index 10755f9..1684f58 100644
--- 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/HttpDataSourceLoader.java
+++ 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/HttpDataSourceLoader.java
@@ -50,12 +50,6 @@ public class HttpDataSourceLoader implements 
DataSourceLoader {
         return DataSourceFactory.fromUrl(name, group, url, mimeType, charset);
     }
 
-    @Override
-    public DataSource load(String source, Charset charset) {
-        // We should pick up the charset from the HTTP server
-        return load(source);
-    }
-
     private static URL toUrl(URI uri) {
         try {
             return uri.toURL();
diff --git 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/uri/NamedUri.java
 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/uri/NamedUri.java
index 6003d3c..cbe2b01 100644
--- 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/uri/NamedUri.java
+++ 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/uri/NamedUri.java
@@ -32,8 +32,8 @@ import static 
org.apache.freemarker.generator.base.util.StringUtils.isEmpty;
  */
 public class NamedUri {
 
-    public static final String CHARSET = "charset";
-    public static final String MIMETYPE = "mimeType";
+    private static final String CHARSET = "charset";
+    private static final String MIMETYPE = "mimeType";
 
     /** User-supplied name */
     private final String name;
@@ -89,7 +89,7 @@ public class NamedUri {
         return parameters.get(key);
     }
 
-    public String getParameter(String key, String defaultValue) {
+    public String getParameterOrElse(String key, String defaultValue) {
         return parameters.getOrDefault(key, defaultValue);
     }
 
@@ -110,7 +110,7 @@ public class NamedUri {
     }
 
     public String getMimeTypeOrElse(String def) {
-        return getParameter(NamedUri.MIMETYPE, def);
+        return getParameterOrElse(NamedUri.MIMETYPE, def);
     }
 
     public Charset getCharset() {
diff --git 
a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceLoaderTest.java
 
b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceLoaderTest.java
index 1567699..2bc284e 100644
--- 
a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceLoaderTest.java
+++ 
b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceLoaderTest.java
@@ -26,7 +26,6 @@ import org.junit.Test;
 import java.io.File;
 
 import static java.lang.String.format;
-import static java.nio.charset.StandardCharsets.UTF_16;
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static junit.framework.TestCase.assertFalse;
 import static 
org.apache.freemarker.generator.base.FreeMarkerConstants.DEFAULT_GROUP;
@@ -174,11 +173,14 @@ public class DataSourceLoaderTest {
 
     @Test
     public void shouldLoadDataSourceWithCharset() {
-        final DataSource utf8DataSource = 
dataSourceLoader().load("./src/test/data/txt/utf8.txt", UTF_8);
-        final DataSource utf16DataSource = 
dataSourceLoader().load("./src/test/data/txt/utf16.txt", UTF_16);
-
-        // skip the first line before comparing
-        assertEquals(utf8DataSource.getLines().subList(1, 5), 
utf16DataSource.getLines().subList(1, 5));
+        final String utf8Uri = "./src/test/data/txt/utf8.txt#charset=UTF-8";
+        final String utf16Uri = "./src/test/data/txt/utf16.txt#charset=UTF-16";
+        try (DataSource utf8DataSource = dataSourceLoader().load(utf8Uri)) {
+            try (DataSource utf16DataSource = 
dataSourceLoader().load(utf16Uri)) {
+                // skip the first line before comparing
+                assertEquals(utf8DataSource.getLines().subList(1, 5), 
utf16DataSource.getLines().subList(1, 5));
+            }
+        }
     }
 
     private DataSourceLoader dataSourceLoader() {
diff --git 
a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/template/TemplateTransformationsBuilderTest.java
 
b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/template/TemplateTransformationsBuilderTest.java
index 822b66a..7170cd7 100644
--- 
a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/template/TemplateTransformationsBuilderTest.java
+++ 
b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/template/TemplateTransformationsBuilderTest.java
@@ -23,6 +23,7 @@ import 
org.apache.freemarker.generator.base.template.TemplateSource.Origin;
 import org.apache.freemarker.generator.base.template.TemplateTransformation;
 import 
org.apache.freemarker.generator.base.template.TemplateTransformationsBuilder;
 import org.apache.freemarker.generator.base.util.NonClosableWriterWrapper;
+import org.junit.Ignore;
 import org.junit.Test;
 
 import java.io.BufferedWriter;
@@ -181,6 +182,7 @@ public class TemplateTransformationsBuilderTest {
     // === Template URL ===============================================
 
     @Test
+    @Ignore("Requires internet access")
     public void shouldCreateFromTemplateUrl() {
         final List<TemplateTransformation> transformations = builder()
                 .setTemplateSource(ANY_TEMPLATE_URL)
diff --git 
a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/uri/NamedUriStringParserTest.java
 
b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/uri/NamedUriStringParserTest.java
index ebcb84e..01e68bb 100644
--- 
a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/uri/NamedUriStringParserTest.java
+++ 
b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/uri/NamedUriStringParserTest.java
@@ -240,13 +240,14 @@ public class NamedUriStringParserTest {
 
     @Test
     public void shouldParseNamedGroupUrlWithQueryAndFragment() {
-        final NamedUri namedURI = 
parse("google:web=http://google.com?foo=bar#charset=UTF-16";);
+        final NamedUri namedURI = 
parse("google:web=http://google.com?foo=bar#charset=UTF-16&name=value";);
 
         assertEquals("google", namedURI.getName());
         assertEquals("web", namedURI.getGroup());
-        assertEquals("http://google.com?foo=bar#charset=UTF-16";, 
namedURI.getUri().toString());
-        assertEquals(1, namedURI.getParameters().size());
+        assertEquals("http://google.com?foo=bar#charset=UTF-16&name=value";, 
namedURI.getUri().toString());
+        assertEquals(2, namedURI.getParameters().size());
         assertEquals("UTF-16", namedURI.getParameters().get("charset"));
+        assertEquals("value", namedURI.getParameters().get("name"));
     }
 
     @Test(expected = RuntimeException.class)

Reply via email to