This is an automated email from the ASF dual-hosted git repository. sgoeschl pushed a commit to branch FREEMARKER-138 in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git
commit c6c6339524eade9f1bbcbfd18c69f88e1f228dbe Author: Siegfried Goeschl <[email protected]> AuthorDate: Fri Mar 13 20:49:59 2020 +0100 FREEMARKER-138 freemarker-generator: Rename Datasource to DataSource --- CHANGELOG.md | 12 ++- freemarker-generator-base/README.md | 4 +- .../generator/base/FreeMarkerConstants.java | 4 +- .../{Datasource.java => DataSource.java} | 19 +++-- ...tasourceFactory.java => DataSourceFactory.java} | 25 +++--- .../{Datasources.java => DataSources.java} | 81 ++++++++++--------- ...urcesSupplier.java => DataSourcesSupplier.java} | 20 ++--- .../datasource/DatasourceFactoryTest.java | 52 ++++++------ .../generator/datasource/DatasourceTest.java | 90 ++++++++++----------- .../datasource/DatasourcesSupplierTest.java | 16 ++-- .../generator/datasource/DatasourcesTest.java | 94 +++++++++++----------- .../freemarker/generator/datasource/UriTest.java | 1 - freemarker-generator-cli/README.md | 90 ++++++++++----------- .../org/apache/freemarker/generator/cli/Main.java | 18 ++--- .../freemarker/generator/cli/config/Settings.java | 22 ++--- .../freemarker/generator/cli/config/Suppliers.java | 6 +- .../generator/cli/task/FreeMarkerTask.java | 34 ++++---- .../freemarker/generator/cli/PicocliTest.java | 14 ++-- .../generator/cli/config/SettingsTest.java | 4 +- .../src/test/templates/echo.ftl | 6 +- .../src/test/templates/tools/csv.ftl | 2 +- .../templates/accesslog/combined-access.ftl | 4 +- freemarker-generator-cli/templates/cat.ftl | 4 +- .../templates/csv/csv/gatling-user-credentials.ftl | 4 +- .../templates/csv/fo/transactions.ftl | 6 +- .../templates/csv/fo/transform.ftl | 2 +- .../templates/csv/html/transactions.ftl | 6 +- .../templates/csv/html/transform.ftl | 6 +- .../templates/csv/md/filter.ftl | 14 ++-- .../templates/csv/md/transform.ftl | 2 +- .../templates/csv/shell/curl.ftl | 2 +- .../templates/csv/transform.ftl | 6 +- freemarker-generator-cli/templates/demo.ftl | 28 +++---- .../templates/excel/csv/custom.ftl | 4 +- .../templates/excel/csv/transform.ftl | 4 +- .../templates/excel/html/transform.ftl | 6 +- .../templates/excel/md/transform.ftl | 6 +- .../templates/html/csv/dependencies.ftl | 6 +- freemarker-generator-cli/templates/info.ftl | 8 +- .../templates/json/csv/swagger-endpoints.ftl | 2 +- .../templates/json/md/github-users.ftl | 2 +- .../templates/properties/csv/locker-test-users.ftl | 4 +- .../templates/tsv/fo/transactions.ftl | 2 +- .../templates/xml/txt/recipients.ftl | 2 +- .../templates/yaml/txt/transform.ftl | 2 +- freemarker-generator-tools/README.md | 4 +- .../generator/tools/commonscsv/CommonsCSVTool.java | 20 ++--- .../generator/tools/excel/ExcelTool.java | 12 +-- .../generator/tools/jsonpath/JsonPathTool.java | 6 +- .../generator/tools/jsoup/JsoupTool.java | 10 +-- .../generator/tools/properties/PropertiesTool.java | 8 +- .../generator/tools/snakeyaml/SnakeYamlTool.java | 8 +- .../freemarker/generator/tools/xml/XmlTool.java | 8 +- .../tools/commonscsv/CommonsCSVToolTest.java | 26 +++--- .../generator/tools/excel/ExcelToolTest.java | 10 +-- .../tools/properties/PropertiesToolTest.java | 12 +-- .../tools/snakeyaml/SnakeYamlToolTest.java | 12 +-- .../generator/tools/xml/XmlToolTest.java | 12 +-- 58 files changed, 449 insertions(+), 445 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c76d3ff..aad20cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,13 +5,15 @@ All notable changes to this project will be documented in this file. We try to a ## 0.1.0-SNAPSHOT ### Added -* [FREEMARKER-135] Support user-supplied names for `Datasource` on the command line -* [FREEMARKER-129] Support `Datasource` exclude pattern in addition to include pattern +* [FREEMARKER-135] Support user-supplied names for `DataSource` on the command line +* [FREEMARKER-129] Support `DataSource` exclude pattern in addition to include pattern * [FREEMARKER-129] User-defined parameters are passed as `-Pkey=value` instead of using system properties -* [FREEMARKER-129] Add `freemarker-generator-maven-plugin-sample` for better testing +* [FREEMARKER-129] Add `freemarker-generator-maven-plugin-sample` for better testing of the Maven plugin * [FREEMARKER-129] Migrate `freemarker-cli` into `freemarker-generator` project (see [https://github.com/sgoeschl/freemarker-cli](https://github.com/sgoeschl/freemarker-cli)) ### Changed +* [FREEMARKER-138] freemarker-generator: Rename `Datasource` to `DataSource` +* [FREEMARKER-136] Fix broken `site:stage` build * [FREEMARKER-134] Rename `Document` to `Datasource` which also changes `--document` to `--datasource` * [FREEMARKER-129] Use `freemarker.configuration.setting` in `freemarker-cli.properties` to configure FreeMarker * [FREEMARKER-129] Provide a `toString()` metheod for all tools @@ -28,4 +30,6 @@ All notable changes to this project will be documented in this file. We try to a [FREEMARKER-128]: https://issues.apache.org/jira/browse/FREEMARKER-128 [FREEMARKER-129]: https://issues.apache.org/jira/browse/FREEMARKER-129 [FREEMARKER-134]: https://issues.apache.org/jira/browse/FREEMARKER-134 -[FREEMARKER-135]: https://issues.apache.org/jira/browse/FREEMARKER-135 \ No newline at end of file +[FREEMARKER-135]: https://issues.apache.org/jira/browse/FREEMARKER-135 +[FREEMARKER-136]: https://issues.apache.org/jira/browse/FREEMARKER-136 +[FREEMARKER-138]: https://issues.apache.org/jira/browse/FREEMARKER-1386 \ No newline at end of file diff --git a/freemarker-generator-base/README.md b/freemarker-generator-base/README.md index 3a17212..0a420f6 100644 --- a/freemarker-generator-base/README.md +++ b/freemarker-generator-base/README.md @@ -3,7 +3,7 @@ This module provides common functionality for `freemarker-generator-cli` and `freemarker-generator-maven-plugin` such as * Various implementation of `javax.activation.DataSources` -* Implementation of `Datasource` and utitity methods -* Creating `Datasources` +* Implementation of `DataSource` and utitity methods +* Creating `DataSources` The code actually does not depend on Apache FreeMarker since it useful for other command line tools as well. \ No newline at end of file diff --git a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/FreeMarkerConstants.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/FreeMarkerConstants.java index 42fa045..f11b636 100644 --- a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/FreeMarkerConstants.java +++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/FreeMarkerConstants.java @@ -42,7 +42,7 @@ public class FreeMarkerConstants { /* Default encoding for textual content */ public static final Charset DEFAULT_CHARSET = UTF_8; - /* Default group name for datasources */ + /* Default group name for data sources */ public static final String DEFAULT_GROUP = "default"; public enum GeneratorMode { @@ -83,7 +83,7 @@ public class FreeMarkerConstants { private Model() { } - public static final String DATASOURCES = "Datasources"; + public static final String DATASOURCES = "DataSources"; public static final String FREEMARKER_CLI_ARGS = "freemarker.cli.args"; public static final String FREEMARKER_LOCALE = "freemarker.locale"; 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 similarity index 93% rename from freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/Datasource.java rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSource.java index ed038b0..9b9354f 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 @@ -23,7 +23,6 @@ import org.apache.freemarker.generator.base.activation.ByteArrayDataSource; import org.apache.freemarker.generator.base.activation.StringDataSource; import org.apache.freemarker.generator.base.util.CloseableReaper; -import javax.activation.DataSource; import javax.activation.FileDataSource; import java.io.Closeable; import java.io.IOException; @@ -43,27 +42,27 @@ import static org.apache.freemarker.generator.base.util.StringUtils.emptyToNull; * a template. When accessing content it is loaded on demand on not * kept in memory to allow processing of large volumes of data. */ -public class Datasource implements Closeable { +public class DataSource implements Closeable { - /** Human-readable name of the datasource */ + /** Human-readable name of the data source */ private final String name; - /** Optional group of datasource */ + /** Optional group of data source */ private final String group; /** Charset for directly accessing text-based content */ private final Charset charset; /** The underlying "javax.activation.DataSource" */ - private final DataSource dataSource; + private final javax.activation.DataSource dataSource; /** The location of the content, e.g. file name */ private final String location; - /** Collect all closables handed out to the caller to be closed when the datasource is closed itself */ + /** Collect all closables handed out to the caller to be closed when the data source is closed itself */ private final CloseableReaper closables; - public Datasource(String name, String group, DataSource dataSource, String location, Charset charset) { + public DataSource(String name, String group, javax.activation.DataSource dataSource, String location, Charset charset) { this.name = requireNonNull(name); this.group = emptyToNull(group); this.dataSource = requireNonNull(dataSource); @@ -103,7 +102,7 @@ public class Datasource implements Closeable { /** * Try to get the length lazily, efficient and without consuming the input stream. * - * @return Length of datasource or UNKNOWN_LENGTH + * @return Length of data source or UNKNOWN_LENGTH */ public long getLength() { if (dataSource instanceof FileDataSource) { @@ -118,7 +117,7 @@ public class Datasource implements Closeable { } /** - * Get an input stream which is closed together with this datasource. + * Get an input stream which is closed together with this data source. * * @return InputStream * @throws IOException Operation failed @@ -206,7 +205,7 @@ public class Datasource implements Closeable { /** * Some tools create a {@link java.io.Closeable} which can bound to the - * lifecycle of the datasource. When the datasource is closed all the + * lifecycle of the data source. When the data source is closed all the * associated {@link java.io.Closeable} are closed as well. * * @param closeable Closable diff --git a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DatasourceFactory.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourceFactory.java similarity index 80% rename from freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DatasourceFactory.java rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourceFactory.java index 8cf721e..78a5556 100644 --- a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DatasourceFactory.java +++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourceFactory.java @@ -22,7 +22,6 @@ import org.apache.freemarker.generator.base.activation.InputStreamDataSource; import org.apache.freemarker.generator.base.activation.MimetypesFileTypeMapFactory; import org.apache.freemarker.generator.base.activation.StringDataSource; -import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.activation.URLDataSource; import java.io.File; @@ -36,54 +35,54 @@ import static org.apache.freemarker.generator.base.FreeMarkerConstants.DEFAULT_G /** * Creates a Datasource from various sources. */ -public class DatasourceFactory { +public class DataSourceFactory { - private DatasourceFactory() { + private DataSourceFactory() { } - public static Datasource create(URL url) { + public static DataSource create(URL url) { final String location = url.toString(); final URLDataSource dataSource = new URLDataSource(url); return create(url.getHost(), DEFAULT_GROUP, dataSource, location, UTF_8); } - public static Datasource create(String name, String group, URL url, Charset charset) { + public static DataSource create(String name, String group, URL url, Charset charset) { final String location = url.toString(); final URLDataSource dataSource = new URLDataSource(url); return create(name, group, dataSource, location, charset); } - public static Datasource create(String name, String group, String content) { + public static DataSource create(String name, String group, String content) { final StringDataSource dataSource = new StringDataSource(name, content, UTF_8); return create(name, group, dataSource, Location.STRING, UTF_8); } - public static Datasource create(File file, Charset charset) { + public static DataSource create(File file, Charset charset) { return create(file.getName(), DEFAULT_GROUP, file, charset); } - public static Datasource create(String name, String group, File file, Charset charset) { + public static DataSource create(String name, String group, File file, Charset charset) { final FileDataSource dataSource = new FileDataSource(file); dataSource.setFileTypeMap(MimetypesFileTypeMapFactory.create()); return create(name, group, dataSource, file.getAbsolutePath(), charset); } - public static Datasource create(String name, String group, byte[] content) { + public static DataSource create(String name, String group, byte[] content) { final ByteArrayDataSource dataSource = new ByteArrayDataSource(name, content); return create(name, group, dataSource, Location.BYTES, UTF_8); } - public static Datasource create(String name, String group, InputStream is, Charset charset) { + public static DataSource create(String name, String group, InputStream is, Charset charset) { final InputStreamDataSource dataSource = new InputStreamDataSource(name, is); return create(name, group, dataSource, Location.INPUTSTREAM, charset); } - public static Datasource create(String name, String group, InputStream is, String location, Charset charset) { + public static DataSource create(String name, String group, InputStream is, String location, Charset charset) { final InputStreamDataSource dataSource = new InputStreamDataSource(name, is); return create(name, group, dataSource, location, charset); } - public static Datasource create(String name, String group, DataSource dataSource, String location, Charset charset) { - return new Datasource(name, group, dataSource, location, charset); + public static DataSource create(String name, String group, javax.activation.DataSource dataSource, String location, Charset charset) { + return new DataSource(name, group, dataSource, location, charset); } } 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 similarity index 55% rename from freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/Datasources.java rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSources.java index 5c55c6b..cda71cb 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 @@ -28,37 +28,37 @@ import static java.util.stream.Collectors.toList; import static org.apache.commons.io.FilenameUtils.wildcardMatch; /** - * Container for datasources with a couple of convenience functions to select - * a subset of datasources. + * Container for data sources with a couple of convenience functions to select + * a subset of data sources. */ -public class Datasources implements Closeable { +public class DataSources implements Closeable { - private final List<Datasource> datasources; + private final List<DataSource> dataSources; - public Datasources(Collection<Datasource> datasources) { - this.datasources = new ArrayList<>(datasources); + public DataSources(Collection<DataSource> dataSources) { + this.dataSources = new ArrayList<>(dataSources); } /** - * Get the names of all datasources. + * Get the names of all data sources. * - * @return datasource names + * @return datas ource names */ public List<String> getNames() { - return datasources.stream() - .map(Datasource::getName) + return dataSources.stream() + .map(DataSource::getName) .filter(StringUtils::isNotEmpty) .collect(toList()); } /** - * Get the groups of all datasources. + * Get the groups of all data sources. * - * @return datasource names + * @return data source names */ public List<String> getGroups() { - return datasources.stream() - .map(Datasource::getGroup) + return dataSources.stream() + .map(DataSource::getGroup) .filter(StringUtils::isNotEmpty) .sorted() .distinct() @@ -66,79 +66,82 @@ public class Datasources implements Closeable { } public int size() { - return datasources.size(); + return dataSources.size(); } public boolean isEmpty() { - return datasources.isEmpty(); + return dataSources.isEmpty(); } - public Datasource getFirst() { - return datasources.get(0); + public DataSource getFirst() { + return dataSources.get(0); } - public List<Datasource> getList() { - return new ArrayList<>(datasources); + public List<DataSource> getList() { + return new ArrayList<>(dataSources); } - public Datasource get(int index) { - return datasources.get(index); + public DataSource get(int index) { + return dataSources.get(index); } /** - * Get exactly one datasource. If not exactly one datasource + * Get exactly one data source. If not exactly one data source * is found an exception is thrown. * - * @param name name of the datasource - * @return datasource + * @param name name of the data source + * @return data source */ - public Datasource get(String name) { - final List<Datasource> list = find(name); + public DataSource get(String name) { + final List<DataSource> list = find(name); if (list.isEmpty()) { - throw new IllegalArgumentException("Datasource not found : " + name); + throw new IllegalArgumentException("Data source not found : " + name); } if (list.size() > 1) { - throw new IllegalArgumentException("More than one datasource found : " + name); + throw new IllegalArgumentException("More than one data source found : " + name); } return list.get(0); } /** - * Find datasources based on their name and globbing pattern. + * Find data sources based on their name and globbing pattern. * * @param wildcard globbing pattern - * @return list of mathching datasources + * @return list of matching data sources */ - public List<Datasource> find(String wildcard) { - return datasources.stream() + public List<DataSource> find(String wildcard) { + return dataSources.stream() .filter(d -> wildcardMatch(d.getName(), wildcard)) .collect(toList()); } /** - * Find datasources based on their group and and globbing pattern. + * Find data sources based on their group and and globbing pattern. * * @param wildcard globbing pattern - * @return list of mathching datasources + * @return list of mathching data sources */ - public List<Datasource> findByGroup(String wildcard) { - return datasources.stream() + public List<DataSource> findByGroup(String wildcard) { + return dataSources.stream() .filter(d -> wildcardMatch(d.getGroup(), wildcard)) .collect(toList()); } @Override public void close() { - datasources.forEach(ClosableUtils::closeQuietly); + dataSources.forEach(ClosableUtils::closeQuietly); } @Override public String toString() { return "Datasources{" + - "datasources=" + datasources + + "dataSources=" + dataSources + + ", names=" + getNames() + + ", groups=" + getGroups() + + ", size=" + size() + '}'; } } 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 similarity index 89% rename from freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DatasourcesSupplier.java rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSourcesSupplier.java index 0f0f740..d137d1b 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 @@ -36,10 +36,10 @@ import static java.util.stream.Collectors.toList; import static org.apache.freemarker.generator.base.FreeMarkerConstants.DEFAULT_GROUP; /** - * Create a list of <code>Datasource</code> based on a list of sources consisting of + * Create a list of <code>DataSource</code> based on a list of sources consisting of * URLs, directories and files. */ -public class DatasourcesSupplier implements Supplier<List<Datasource>> { +public class DataSourcesSupplier implements Supplier<List<DataSource>> { /** List of source files and/or directories */ private final Collection<String> sources; @@ -61,7 +61,7 @@ public class DatasourcesSupplier implements Supplier<List<Datasource>> { * @param exclude Optional exclude pattern for resolving source files or directory * @param charset The charset for loading text files */ - public DatasourcesSupplier(Collection<String> sources, String include, String exclude, Charset charset) { + public DataSourcesSupplier(Collection<String> sources, String include, String exclude, Charset charset) { this.sources = new ArrayList<>(sources); this.include = include; this.exclude = exclude; @@ -69,14 +69,14 @@ public class DatasourcesSupplier implements Supplier<List<Datasource>> { } @Override - public List<Datasource> get() { + public List<DataSource> get() { return sources.stream() .map(this::get) .flatMap(Collection::stream) .collect(toList()); } - private List<Datasource> get(String source) { + private List<DataSource> get(String source) { try { if (isHttpUrl(source)) { return singletonList(resolveHttpUrl(source)); @@ -84,27 +84,27 @@ public class DatasourcesSupplier implements Supplier<List<Datasource>> { return resolveFile(source, include, exclude, charset); } } catch (RuntimeException e) { - throw new RuntimeException("Unable to create the datasource: " + source, e); + throw new RuntimeException("Unable to create the data source: " + source, e); } } - private static Datasource resolveHttpUrl(String source) { + private static DataSource resolveHttpUrl(String source) { final NamedUri namedUri = NamedUriParser.parse(source); final URI uri = namedUri.getUri(); final String name = getNameOrElse(namedUri, uri.toString()); final String group = getGroupOrElse(namedUri, DEFAULT_GROUP); final Charset currCharset = getCharsetOrElse(namedUri, UTF_8); - return DatasourceFactory.create(name, group, toUrl(uri), currCharset); + return DataSourceFactory.create(name, group, toUrl(uri), currCharset); } - private static List<Datasource> resolveFile(String source, String include, String exclude, Charset charset) { + private static List<DataSource> resolveFile(String source, String include, String exclude, Charset charset) { final NamedUri namedUri = NamedUriParser.parse(source); final String path = namedUri.getUri().getPath(); final String name = getNameOrElse(namedUri, path); final String group = getGroupOrElse(namedUri, DEFAULT_GROUP); final Charset currCharset = getCharsetOrElse(namedUri, charset); return fileResolver(path, include, exclude).get().stream() - .map(file -> DatasourceFactory.create(name, group, file, currCharset)) + .map(file -> DataSourceFactory.create(name, group, file, currCharset)) .collect(toList()); } diff --git a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourceFactoryTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourceFactoryTest.java index c3bb493..cdebe2a 100644 --- a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourceFactoryTest.java +++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourceFactoryTest.java @@ -16,8 +16,8 @@ */ package org.apache.freemarker.generator.datasource; -import org.apache.freemarker.generator.base.datasource.Datasource; -import org.apache.freemarker.generator.base.datasource.DatasourceFactory; +import org.apache.freemarker.generator.base.datasource.DataSource; +import org.apache.freemarker.generator.base.datasource.DataSourceFactory; import org.junit.Test; import java.io.ByteArrayInputStream; @@ -39,47 +39,47 @@ public class DatasourceFactoryTest { @Test public void shouldCreateFileBasedDatasource() throws IOException { - final Datasource datasource = DatasourceFactory.create(ANY_FILE, ANY_CHAR_SET); + final DataSource dataSource = DataSourceFactory.create(ANY_FILE, ANY_CHAR_SET); - assertEquals(ANY_FILE_NAME, datasource.getName()); - assertEquals(UTF_8, datasource.getCharset()); - assertEquals(ANY_FILE.getAbsolutePath(), datasource.getLocation()); - assertTrue(!datasource.getLines().isEmpty()); + assertEquals(ANY_FILE_NAME, dataSource.getName()); + assertEquals(UTF_8, dataSource.getCharset()); + assertEquals(ANY_FILE.getAbsolutePath(), dataSource.getLocation()); + assertTrue(!dataSource.getLines().isEmpty()); } @Test public void shouldCreateStringBasedDatasource() throws IOException { - final Datasource datasource = DatasourceFactory.create("test.txt", "default", ANY_TEXT); + final DataSource dataSource = DataSourceFactory.create("test.txt", "default", ANY_TEXT); - assertEquals("test.txt", datasource.getName()); - assertEquals("default", datasource.getGroup()); - assertEquals(UTF_8, datasource.getCharset()); - assertEquals("string", datasource.getLocation()); - assertEquals(ANY_TEXT, datasource.getText()); - assertEquals(1, datasource.getLines().size()); + assertEquals("test.txt", dataSource.getName()); + assertEquals("default", dataSource.getGroup()); + assertEquals(UTF_8, dataSource.getCharset()); + assertEquals("string", dataSource.getLocation()); + assertEquals(ANY_TEXT, dataSource.getText()); + assertEquals(1, dataSource.getLines().size()); } @Test public void shouldCreateByteArrayBasedDatasource() throws IOException { - final Datasource datasource = DatasourceFactory.create("test.txt", "default", ANY_TEXT.getBytes(UTF_8)); + final DataSource dataSource = DataSourceFactory.create("test.txt", "default", ANY_TEXT.getBytes(UTF_8)); - assertEquals("test.txt", datasource.getName()); - assertEquals("default", datasource.getGroup()); - assertEquals(UTF_8, datasource.getCharset()); - assertEquals("bytes", datasource.getLocation()); - assertEquals(ANY_TEXT, datasource.getText()); - assertEquals(1, datasource.getLines().size()); + assertEquals("test.txt", dataSource.getName()); + assertEquals("default", dataSource.getGroup()); + assertEquals(UTF_8, dataSource.getCharset()); + assertEquals("bytes", dataSource.getLocation()); + assertEquals(ANY_TEXT, dataSource.getText()); + assertEquals(1, dataSource.getLines().size()); } @Test public void shouldCreateInputStreamBasedDatasource() throws IOException { final InputStream is = new ByteArrayInputStream(ANY_TEXT.getBytes(UTF_8)); - final Datasource datasource = DatasourceFactory.create("test.txt", "default", is, UTF_8); + final DataSource dataSource = DataSourceFactory.create("test.txt", "default", is, UTF_8); - assertEquals("test.txt", datasource.getName()); - assertEquals(UTF_8, datasource.getCharset()); - assertEquals("inputstream", datasource.getLocation()); - assertEquals(ANY_TEXT, datasource.getText()); + assertEquals("test.txt", dataSource.getName()); + assertEquals(UTF_8, dataSource.getCharset()); + assertEquals("inputstream", dataSource.getLocation()); + assertEquals(ANY_TEXT, dataSource.getText()); } } diff --git a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourceTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourceTest.java index a1b73cd..5fe5f72 100644 --- a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourceTest.java +++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourceTest.java @@ -17,8 +17,8 @@ package org.apache.freemarker.generator.datasource; import org.apache.commons.io.LineIterator; -import org.apache.freemarker.generator.base.datasource.Datasource; -import org.apache.freemarker.generator.base.datasource.DatasourceFactory; +import org.apache.freemarker.generator.base.datasource.DataSource; +import org.apache.freemarker.generator.base.datasource.DataSourceFactory; import org.junit.Ignore; import org.junit.Test; @@ -45,54 +45,54 @@ public class DatasourceTest { @Test public void shouldSupportTextDatasource() throws IOException { - try (Datasource datasource = DatasourceFactory.create("stdin", ANY_GROUP, ANY_TEXT)) { - assertEquals("stdin", datasource.getName()); - assertEquals(ANY_GROUP, datasource.getGroup()); - assertEquals("stdin", datasource.getBaseName()); - assertEquals("", datasource.getExtension()); - assertEquals("string", datasource.getLocation()); - assertEquals(UTF_8, datasource.getCharset()); - assertEquals("plain/text", datasource.getContentType()); - assertTrue(datasource.getLength() > 0); - assertEquals(ANY_TEXT, datasource.getText()); + try (DataSource dataSource = DataSourceFactory.create("stdin", ANY_GROUP, ANY_TEXT)) { + assertEquals("stdin", dataSource.getName()); + assertEquals(ANY_GROUP, dataSource.getGroup()); + assertEquals("stdin", dataSource.getBaseName()); + assertEquals("", dataSource.getExtension()); + assertEquals("string", dataSource.getLocation()); + assertEquals(UTF_8, dataSource.getCharset()); + assertEquals("plain/text", dataSource.getContentType()); + assertTrue(dataSource.getLength() > 0); + assertEquals(ANY_TEXT, dataSource.getText()); } } @Test public void shouldSupportFileDatasource() throws IOException { - try (Datasource datasource = DatasourceFactory.create(ANY_FILE, ANY_CHAR_SET)) { - assertEquals(ANY_FILE_NAME, datasource.getName()); - assertEquals(DEFAULT_GROUP, datasource.getGroup()); - assertEquals("pom", datasource.getBaseName()); - assertEquals("xml", datasource.getExtension()); - assertEquals(ANY_FILE.getAbsolutePath(), datasource.getLocation()); - assertEquals(Charset.defaultCharset(), datasource.getCharset()); - assertEquals("application/xml", datasource.getContentType()); - assertTrue(datasource.getLength() > 0); - assertFalse(datasource.getText().isEmpty()); + try (DataSource dataSource = DataSourceFactory.create(ANY_FILE, ANY_CHAR_SET)) { + assertEquals(ANY_FILE_NAME, dataSource.getName()); + assertEquals(DEFAULT_GROUP, dataSource.getGroup()); + assertEquals("pom", dataSource.getBaseName()); + assertEquals("xml", dataSource.getExtension()); + assertEquals(ANY_FILE.getAbsolutePath(), dataSource.getLocation()); + assertEquals(Charset.defaultCharset(), dataSource.getCharset()); + assertEquals("application/xml", dataSource.getContentType()); + assertTrue(dataSource.getLength() > 0); + assertFalse(dataSource.getText().isEmpty()); } } @Ignore("Requires internet conenection") @Test public void shouldSupportUrlDatasource() throws IOException { - try (Datasource datasource = DatasourceFactory.create(new URL("https://google.com?foo=bar"))) { - assertEquals("google.com", datasource.getName()); - assertEquals(DEFAULT_GROUP, datasource.getGroup()); - assertEquals("google", datasource.getBaseName()); - assertEquals("com", datasource.getExtension()); - assertEquals("https://google.com", datasource.getLocation()); - assertEquals("text/html; charset=ISO-8859-1", datasource.getContentType()); - assertEquals(UTF_8, datasource.getCharset()); - assertEquals(-1, datasource.getLength()); - assertFalse(datasource.getText().isEmpty()); + try (DataSource dataSource = DataSourceFactory.create(new URL("https://google.com?foo=bar"))) { + assertEquals("google.com", dataSource.getName()); + assertEquals(DEFAULT_GROUP, dataSource.getGroup()); + assertEquals("google", dataSource.getBaseName()); + assertEquals("com", dataSource.getExtension()); + assertEquals("https://google.com", dataSource.getLocation()); + assertEquals("text/html; charset=ISO-8859-1", dataSource.getContentType()); + assertEquals(UTF_8, dataSource.getCharset()); + assertEquals(-1, dataSource.getLength()); + assertFalse(dataSource.getText().isEmpty()); } } @Test public void shouldSupportLineIterator() throws IOException { - try (Datasource datasource = textDatasource()) { - try (LineIterator iterator = datasource.getLineIterator(ANY_CHAR_SET.name())) { + try (DataSource dataSource = textDataSource()) { + try (LineIterator iterator = dataSource.getLineIterator(ANY_CHAR_SET.name())) { assertEquals(1, count(iterator)); } } @@ -100,26 +100,26 @@ public class DatasourceTest { @Test public void shouldReadLines() throws IOException { - try (Datasource datasource = textDatasource()) { - assertEquals(1, datasource.getLines().size()); - assertEquals(ANY_TEXT, datasource.getLines().get(0)); + try (DataSource dataSource = textDataSource()) { + assertEquals(1, dataSource.getLines().size()); + assertEquals(ANY_TEXT, dataSource.getLines().get(0)); } } @Test public void shouldGetBytes() throws IOException { - try (Datasource datasource = textDatasource()) { - assertEquals(11, datasource.getBytes().length); + try (DataSource dataSource = textDataSource()) { + assertEquals(11, dataSource.getBytes().length); } } @Test public void shouldCloseDatasource() { - final Datasource datasource = textDatasource(); - final TestClosable closable1 = datasource.addClosable(new TestClosable()); - final TestClosable closable2 = datasource.addClosable(new TestClosable()); + final DataSource dataSource = textDataSource(); + final TestClosable closable1 = dataSource.addClosable(new TestClosable()); + final TestClosable closable2 = dataSource.addClosable(new TestClosable()); - datasource.close(); + dataSource.close(); assertTrue(closable1.isClosed()); assertTrue(closable2.isClosed()); @@ -134,8 +134,8 @@ public class DatasourceTest { return count; } - private static Datasource textDatasource() { - return DatasourceFactory.create("stdin", "default", ANY_TEXT); + private static DataSource textDataSource() { + return DataSourceFactory.create("stdin", "default", ANY_TEXT); } private static final class TestClosable implements Closeable { diff --git a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourcesSupplierTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourcesSupplierTest.java index d06f16f..5f985c3 100644 --- a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourcesSupplierTest.java +++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourcesSupplierTest.java @@ -16,8 +16,8 @@ */ package org.apache.freemarker.generator.datasource; -import org.apache.freemarker.generator.base.datasource.Datasource; -import org.apache.freemarker.generator.base.datasource.DatasourcesSupplier; +import org.apache.freemarker.generator.base.datasource.DataSource; +import org.apache.freemarker.generator.base.datasource.DataSourcesSupplier; import org.junit.Test; import java.nio.charset.Charset; @@ -85,8 +85,8 @@ public class DatasourcesSupplierTest { @Test public void shouldResolveLargeDirectory() { - final List<Datasource> datasources = supplier(".", null, null).get(); - assertFalse(datasources.isEmpty()); + final List<DataSource> dataSources = supplier(".", null, null).get(); + assertFalse(dataSources.isEmpty()); } @Test(expected = RuntimeException.class) @@ -100,11 +100,11 @@ public class DatasourcesSupplierTest { assertEquals(2, supplier(sources, "*.xml", null).get().size()); } - private static DatasourcesSupplier supplier(String directory, String include, String exclude) { - return new DatasourcesSupplier(singletonList(directory), include, exclude, Charset.defaultCharset()); + private static DataSourcesSupplier supplier(String directory, String include, String exclude) { + return new DataSourcesSupplier(singletonList(directory), include, exclude, Charset.defaultCharset()); } - private static DatasourcesSupplier supplier(List<String> files, String include, String exclude) { - return new DatasourcesSupplier(files, include, exclude, Charset.defaultCharset()); + private static DataSourcesSupplier supplier(List<String> files, String include, String exclude) { + return new DataSourcesSupplier(files, include, exclude, Charset.defaultCharset()); } } diff --git a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourcesTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourcesTest.java index de78af5..1b64b56 100644 --- a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourcesTest.java +++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DatasourcesTest.java @@ -16,9 +16,9 @@ */ package org.apache.freemarker.generator.datasource; -import org.apache.freemarker.generator.base.datasource.Datasource; -import org.apache.freemarker.generator.base.datasource.DatasourceFactory; -import org.apache.freemarker.generator.base.datasource.Datasources; +import org.apache.freemarker.generator.base.datasource.DataSource; +import org.apache.freemarker.generator.base.datasource.DataSourceFactory; +import org.apache.freemarker.generator.base.datasource.DataSources; import org.junit.Test; import java.io.File; @@ -44,95 +44,95 @@ public class DatasourcesTest { @Test public void shouldFindByName() { - final Datasources datasources = datasources(); + final DataSources dataSources = dataSources(); - assertEquals(0, datasources.find(null).size()); - assertEquals(0, datasources.find("").size()); - assertEquals(0, datasources.find("*.bar").size()); - assertEquals(0, datasources.find("foo.*").size()); - assertEquals(0, datasources.find("foo.bar").size()); + assertEquals(0, dataSources.find(null).size()); + assertEquals(0, dataSources.find("").size()); + assertEquals(0, dataSources.find("*.bar").size()); + assertEquals(0, dataSources.find("foo.*").size()); + assertEquals(0, dataSources.find("foo.bar").size()); - assertEquals(2, datasources.find("*.*").size()); - assertEquals(1, datasources.find("*." + ANY_FILE_EXTENSION).size()); - assertEquals(1, datasources.find("*.???").size()); - assertEquals(1, datasources.find("*om*").size()); - assertEquals(1, datasources.find("*o*.xml").size()); + assertEquals(2, dataSources.find("*.*").size()); + assertEquals(1, dataSources.find("*." + ANY_FILE_EXTENSION).size()); + assertEquals(1, dataSources.find("*.???").size()); + assertEquals(1, dataSources.find("*om*").size()); + assertEquals(1, dataSources.find("*o*.xml").size()); - assertEquals(1, datasources.find(ANY_FILE_NAME).size()); - assertEquals(1, datasources.find(ANY_FILE_NAME.charAt(0) + "*").size()); + assertEquals(1, dataSources.find(ANY_FILE_NAME).size()); + assertEquals(1, dataSources.find(ANY_FILE_NAME.charAt(0) + "*").size()); - assertEquals(3, datasources.find("*").size()); + assertEquals(3, dataSources.find("*").size()); } @Test public void shouldFindByGroup() { - final Datasources datasources = datasources(); + final DataSources dataSources = dataSources(); - assertEquals(0, datasources.findByGroup(null).size()); - assertEquals(0, datasources.findByGroup("").size()); + assertEquals(0, dataSources.findByGroup(null).size()); + assertEquals(0, dataSources.findByGroup("").size()); - assertEquals(0, datasources.findByGroup("unknown").size()); + assertEquals(0, dataSources.findByGroup("unknown").size()); - assertEquals(3, datasources.findByGroup("*").size()); - assertEquals(3, datasources.findByGroup("default").size()); - assertEquals(3, datasources.findByGroup("d*").size()); - assertEquals(3, datasources.findByGroup("d??????").size()); + assertEquals(3, dataSources.findByGroup("*").size()); + assertEquals(3, dataSources.findByGroup("default").size()); + assertEquals(3, dataSources.findByGroup("d*").size()); + assertEquals(3, dataSources.findByGroup("d??????").size()); } @Test public void shouldGetDatasource() { - assertNotNull(datasources().get(ANY_FILE_NAME)); + assertNotNull(dataSources().get(ANY_FILE_NAME)); } @Test public void shouldGetAllDatasources() { - final Datasources datasources = datasources(); - - assertEquals("unknown", datasources().get(0).getName()); - assertEquals("pom.xml", datasources().get(1).getName()); - assertEquals("server.invalid", datasources().get(2).getName()); - assertEquals("unknown", datasources().getFirst().getName()); - assertEquals(3, datasources.getList().size()); - assertEquals(3, datasources.size()); - assertFalse(datasources.isEmpty()); + final DataSources dataSources = dataSources(); + + assertEquals("unknown", dataSources().get(0).getName()); + assertEquals("pom.xml", dataSources().get(1).getName()); + assertEquals("server.invalid", dataSources().get(2).getName()); + assertEquals("unknown", dataSources().getFirst().getName()); + assertEquals(3, dataSources.getList().size()); + assertEquals(3, dataSources.size()); + assertFalse(dataSources.isEmpty()); } @Test public void shouldGetNames() { - assertEquals(asList("unknown", "pom.xml", "server.invalid"), datasources().getNames()); + assertEquals(asList("unknown", "pom.xml", "server.invalid"), dataSources().getNames()); } @Test public void shouldGetGroups() { - assertEquals(singletonList(DEFAULT_GROUP), datasources().getGroups()); + assertEquals(singletonList(DEFAULT_GROUP), dataSources().getGroups()); } @Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionWhenGetDoesNotFindDatasource() { - datasources().get("file-does-not-exist"); + dataSources().get("file-does-not-exist"); } @Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionWhenGetFindsMultipleDatasources() { - datasources().get("*"); + dataSources().get("*"); } - private static Datasources datasources() { - return new Datasources(asList(textDatasource(), fileDatasource(), urlDatasource())); + private static DataSources dataSources() { + return new DataSources(asList(textDatasource(), fileDatasource(), urlDatasource())); } - private static Datasource textDatasource() { - return DatasourceFactory.create(UNKNOWN, DEFAULT_GROUP, ANY_TEXT); + private static DataSource textDatasource() { + return DataSourceFactory.create(UNKNOWN, DEFAULT_GROUP, ANY_TEXT); } - private static Datasource fileDatasource() { - return DatasourceFactory.create(ANY_FILE, UTF_8); + private static DataSource fileDatasource() { + return DataSourceFactory.create(ANY_FILE, UTF_8); } - private static Datasource urlDatasource() { + private static DataSource urlDatasource() { try { - return DatasourceFactory.create(new URL(ANY_URL)); + return DataSourceFactory.create(new URL(ANY_URL)); } catch (MalformedURLException e) { throw new RuntimeException(e); } diff --git a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/UriTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/UriTest.java index bf5f865..cce6273 100644 --- a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/UriTest.java +++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/UriTest.java @@ -20,7 +20,6 @@ import org.junit.Test; import java.net.URI; -import static junit.framework.TestCase.assertNull; import static org.junit.Assert.assertEquals; public class UriTest { diff --git a/freemarker-generator-cli/README.md b/freemarker-generator-cli/README.md index 524f7b3..0bd0a95 100644 --- a/freemarker-generator-cli/README.md +++ b/freemarker-generator-cli/README.md @@ -58,7 +58,7 @@ Some years later the not-so-small-any-longer-and-not-having-tests Groovy script * Support transformation of HTML using [JSoup](https://jsoup.org) * Support transformation of structured logfiles using [Grok](https://github.com/thekrakken/java-grok) * XML & XPath is supported by FreeMarker [out-of-the-box](http://freemarker.org/docs/xgui.html) -* Support for reading a datasource content from STDIN to integrate with command line tools +* Support for reading a data source content from STDIN to integrate with command line tools * Support execution of arbitrary commands using [Apache Commons Exec](https://commons.apache.org/proper/commons-exec/) * Add some commonly useful information such as `System Properties`, `Enviroment Variables` * Support embedding the code in existing applications @@ -106,7 +106,7 @@ FreeMarker CLI Tools - XmlTool : Process XML files using Apache FreeMarker (see https://freemarker.apache.org/docs/xgui.html) - YamlTool : Process YAML files using SnakeYAML(see https://bitbucket.org/asomov/snakeyaml/wiki/Home) -FreeMarker CLI Datasources +FreeMarker CLI DataSources --------------------------------------------------------------------------- User Supplied Parameters @@ -204,21 +204,21 @@ Apache FreeMarker CLI -D, --system-property=<String=String> Set system property -e, --input-encoding=<inputEncoding> - Encoding of datasource + Encoding of data source -E, --expose-env Expose environment variables and user-supplied properties globally - --exclude=<exclude> File pattern for datasource input directory + --exclude=<exclude> File pattern for data source input directory -h, --help Show this help message and exit. -i, --interactive=<interactiveTemplate> Interactive FreeMarker template - --include=<include> File pattern for datasource input directory + --include=<include> File pattern for data source input directory -l, --locale=<locale> Locale being used for the output, e.g. 'en_US' -o, --output=<outputFile> Output file --output-encoding=<outputEncoding> Encoding of output, e.g. UTF-8 -P, --param=<String=String> Set parameter - --stdin Read datasource from stdin + --stdin Read data source from stdin -t, --template=<template> FreeMarker template to render --times=<times> Re-run X times for profiling -V, --version Print version information and exit. @@ -255,7 +255,7 @@ or pipe a cURL response ```text <#ftl output_format="plainText" > -<#assign json = JsonPathTool.parse(Datasources.get(0))> +<#assign json = JsonPathTool.parse(DataSources.get(0))> <#assign users = json.read("$[*]")> <#---------------------------------------------------------------------------> # GitHub Users @@ -293,7 +293,7 @@ The FreeMarker template is shown below ```text <#ftl output_format="plainText"> <#assign cvsFormat = CSVTool.formats["DEFAULT"].withHeader()> -<#assign csvParser = CSVTool.parse(Datasources.get(0), cvsFormat)> +<#assign csvParser = CSVTool.parse(DataSources.get(0), cvsFormat)> <#assign csvHeaders = csvParser.getHeaderMap()?keys> <#assign csvRecords = csvParser.records> <#---------------------------------------------------------------------------> @@ -330,7 +330,7 @@ using the following template ```text <#ftl output_format="plainText" > -<#assign xml = XmlTool.parse(Datasources.get(0))> +<#assign xml = XmlTool.parse(DataSources.get(0))> <#list xml.recipients.person as recipient> To: ${recipient.name} ${recipient.address} @@ -377,7 +377,7 @@ One day I was asked a to prepare a CSV files containing REST endpoints described ```text <#ftl output_format="plainText" strip_text="true"> -<#assign json = JsonPathTool.parse(Datasources.get(0))> +<#assign json = JsonPathTool.parse(DataSources.get(0))> <#assign basePath = json.read("$.basePath")> <#assign paths = json.read("$.paths")> @@ -439,9 +439,9 @@ The provided FTL transforms an Excel into a HTML document supporting multiple Ex ```text <#ftl output_format="HTML" > -<#assign datasource = Datasources.get(0)> -<#assign name = datasource.name> -<#assign workbook = ExcelTool.parse(datasource)> +<#assign dataSource = DataSources.get(0)> +<#assign name = dataSource.name> +<#assign workbook = ExcelTool.parse(dataSource)> <#assign date = .now?iso_utc> <#---------------------------------------------------------------------------> <!DOCTYPE html> @@ -535,8 +535,8 @@ The FTL uses a couple of interesting features <#ftl output_format="plainText" strip_text="true"> <#compress> TENANT,SITE,USER_ID,DISPOSER_ID,PASSWORD,SMS_OTP,NAME,DESCRIPTION - <#list Datasources.list as datasource> - <#assign properties = PropertiesTool.parse(datasource)> + <#list DataSources.list as dataSource> + <#assign properties = PropertiesTool.parse(dataSource)> <#assign environments = properties["ENVIRONMENTS"]!""> <#assign tenant = extractTenant(environments)> <#assign site = extractSite(environments)> @@ -565,10 +565,10 @@ For a POC (proof of concept) I created a sample transformation from CSV to XML-F ```text <#ftl output_format="XML" > -<#assign datasource = Datasources.get(0)> -<#assign name = datasource.name> +<#assign dataSource = DataSources.get(0)> +<#assign name = dataSource.name> <#assign cvsFormat = CSVTool.formats.DEFAULT.withDelimiter('\t').withHeader()> -<#assign csvParser = CSVTool.parse(datasource, cvsFormat)> +<#assign csvParser = CSVTool.parse(dataSource, cvsFormat)> <#assign csvHeaders = csvParser.getHeaderMap()?keys> <#assign csvRecords = csvParser.records> <#---------------------------------------------------------------------------> @@ -686,8 +686,8 @@ Recently I got the rather unusual question how to determine the list of dependen ```text <#ftl output_format="plainText" strip_text="true"> -<#assign datasource = Datasources.get(0)> -<#assign html = JsoupTool.parse(datasource)> +<#assign dataSource = DataSources.get(0)> +<#assign html = JsoupTool.parse(dataSource)> <#compress> <@writeHeader/> @@ -761,7 +761,7 @@ and the final FTL is found below ```text <#ftl output_format="plainText"> <#assign cvsFormat = CSVTool.formats["DEFAULT"].withHeader()> -<#assign csvParser = CSVTool.parse(Datasources.get(0), cvsFormat)> +<#assign csvParser = CSVTool.parse(DataSources.get(0), cvsFormat)> <#assign records = csvParser.records> <#assign csvMap = CSVTool.toMap(records, "disposer")> <#---------------------------------------------------------------------------> @@ -845,8 +845,8 @@ using the following FreeMarker template ```text <#ftl output_format="plainText" strip_whitespace=true> <#assign grok = GrokTool.compile("%{COMBINEDAPACHELOG}")> -<#assign datasource = Datasources.get(0)> -<#assign lines = datasource.getLineIterator()> +<#assign dataSource = DataSources.get(0)> +<#assign lines = dataSource.getLineIterator()> <#compress> TIMESTAMP;VERB;REQUEST;HTTPVERSION @@ -864,7 +864,7 @@ using the following FreeMarker template While this looks small and tidy there are some nifty features * `GrokTool.compile("%{COMBINEDAPACHELOG}")` builds the `Grok` instance to parse access logs in `Combined Format` -* The datasource is streamed line by line and not loaded into memory in one piece +* The data source is streamed line by line and not loaded into memory in one piece * This also works for using `stdin` so are able to parse GB of access log or other files ## 6.11 CSV Transformation @@ -877,7 +877,7 @@ renders the following template ```text <#ftl output_format="plainText" strip_text="true"> -<#assign csvParser = createCsvParser(Datasources.get(0))> +<#assign csvParser = createCsvParser(DataSources.get(0))> <#assign csvPrinter = createCsvPrinter()> <#-- Print each line without materializing the CSV in memory --> <#compress> @@ -886,11 +886,11 @@ renders the following template </#list> </#compress> -<#function createCsvParser datasource> +<#function createCsvParser dataSource> <#assign initialCvsInFormat = CSVTool.formats[SystemTool.getParameter("csv.in.format", "DEFAULT")]> <#assign csvInDelimiter = CSVTool.toDelimiter(SystemTool.getParameter("csv.in.delimiter", initialCvsInFormat.getDelimiter()))> <#assign cvsInFormat = initialCvsInFormat.withDelimiter(csvInDelimiter)> - <#return CSVTool.parse(datasource, cvsInFormat)> + <#return CSVTool.parse(dataSource, cvsInFormat)> </#function> <#function createCsvPrinter> @@ -980,16 +980,16 @@ Sometime you need to apply a CSS, JSON or XPath query in ad ad-hoc way without i > bin/freemarker-cli -i 'Hello ${SystemTool.envs["USER"]}'; echo Hello sgoeschl -> bin/freemarker-cli -i '${JsonPathTool.parse(Datasources.first).read("$.info.title")}' site/sample/json/swagger-spec.json; echo +> bin/freemarker-cli -i '${JsonPathTool.parse(DataSources.first).read("$.info.title")}' site/sample/json/swagger-spec.json; echo Swagger Petstore -> bin/freemarker-cli -i 'Post Title : ${JsonPathTool.parse(Datasources.first).read("$.title")}' https://jsonplaceholder.typicode.com/posts/2 +> bin/freemarker-cli -i 'Post Title : ${JsonPathTool.parse(DataSources.first).read("$.title")}' https://jsonplaceholder.typicode.com/posts/2 Post Title : qui est esse -> bin/freemarker-cli -i '${XmlTool.parse(Datasources.first)["recipients/person[1]/name"]}' site/sample/xml/recipients.xml; echo +> bin/freemarker-cli -i '${XmlTool.parse(DataSources.first)["recipients/person[1]/name"]}' site/sample/xml/recipients.xml; echo John Smith -> bin/freemarker-cli -i '${JsoupTool.parse(Datasources.first).select("a")[0]}' site/sample/html/dependencies.html; echo +> bin/freemarker-cli -i '${JsoupTool.parse(DataSources.first).select("a")[0]}' site/sample/html/dependencies.html; echo <a href="${project.url}" title="FreeMarker CLI">FreeMarker CLI</a> > ./bin/freemarker-cli -i '<#list SystemTool.envs as name,value>${name} ==> > ${value}${"\n"}</#list>' @@ -1018,8 +1018,8 @@ and Apache FreeMarker template ```text <#ftl output_format="plainText" strip_text="true"> -<#assign datasource = Datasources.get(0)> -<#assign parser = parser(datasource)> +<#assign dataSource = DataSources.get(0)> +<#assign parser = parser(dataSource)> <#assign headers = parser.getHeaderNames()> <#assign column = SystemTool.getProperty("column")> <#assign values = SystemTool.getProperty("values")?split(",")> @@ -1027,7 +1027,7 @@ and Apache FreeMarker template <#-- Process each line without materializing the whole file in memory --> <#compress> - <@writePageHeader datasource/> + <@writePageHeader dataSource/> <#list parser.iterator() as record> <#if filter(record)> <@writeCsvRecord headers record/> @@ -1035,18 +1035,18 @@ and Apache FreeMarker template </#list> </#compress> -<#function parser datasource> +<#function parser dataSource> <#assign format = CSVTool.formats[SystemTool.getProperty("format", "DEFAULT")]> <#assign delimiter = CSVTool.toDelimiter(SystemTool.getProperty("delimiter", format.getDelimiter()))> - <#return CSVTool.parse(datasource, format.withFirstRecordAsHeader().withDelimiter(delimiter))> + <#return CSVTool.parse(dataSource, format.withFirstRecordAsHeader().withDelimiter(delimiter))> </#function> <#function filter record> <#return values?seq_contains(record.get(column))> </#function> -<#macro writePageHeader datasource> - # ${datasource.name} +<#macro writePageHeader dataSource> + # ${dataSource.name} </#macro> <#macro writeCsvRecord headers record> @@ -1191,13 +1191,13 @@ user.home : /Users/sgoeschl - java.vendor.url ==> http://java.oracle.com/ - java.vm.name ==> Java HotSpot(TM) 64-Bit Server VM -11) Access Datasources +11) Access DataSources --------------------------------------------------------------------------- -Get the number of datasources: +Get the number of data sources: - 0 List all files containing "README" in the name List all files having "md" extension -Get all datasources +Get all data sources 12) FreeMarker CLI Tools --------------------------------------------------------------------------- @@ -1217,7 +1217,7 @@ Get all datasources 13) Document Data Model --------------------------------------------------------------------------- - CSVTool -- Datasources +- DataSources - ExcelTool - ExecTool - FreeMarkerTool @@ -1257,19 +1257,19 @@ Sat Feb 22 16:54:20 CET 2020 ## 7.1 How It Works * The user-supplied files are loaded or input is read from `stdin` -* The FreeMarker data model containing the datasources and tools is created and passed to the template +* The FreeMarker data model containing the data sources and tools is created and passed to the template * The generated output is written to the user-supplied file or to `stdout` ## 7.2 FreeMarker Data Model -Within the script a FreeMarker data model is set up and passed to the template - it contains the datasources to be processed and the following tools +Within the script a FreeMarker data model is set up and passed to the template - it contains the data sources to be processed and the following tools | Entry | Description | |-----------------------|-----------------------------------------------------------------------------------------------------------| | CSVTool | Process CSV files using [Apache Commons CSV](https://commons.apache.org/proper/commons-csv/) | | ExecTool | Execute command line tools using [Apache Commons Exec](https://commons.apache.org/proper/commons-exec/) | | ExcelTool | Process Excels files (XLS, XLSX) using [Apache POI](https://poi.apache.org) | -| Datasources | Helper class to find datasources, e.g. by name, extension or index | +| DataSources | Helper class to find data sources, e.g. by name, extension or index | | FreeMarkerTool | Expose useful FreeMarker classes | | GrokTool | Process text files using [Grok](https://github.com/thekrakken/java-grok) instead of regular expressions | | JsonPathTool | Process JSON file using [Java JSON Path](https://github.com/json-path/JsonPath) | diff --git a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/Main.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/Main.java index 406c70e..798c803 100644 --- a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/Main.java +++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/Main.java @@ -68,13 +68,13 @@ public class Main implements Callable<Integer> { @Option(names = { "-b", "--basedir" }, description = "Optional template base directory") String baseDir; - @Option(names = { "-d", "--datasource" }, description = "Datasource used for rendering") - List<String> datasources; + @Option(names = { "-d", "--data-source" }, description = "Datasource used for rendering") + List<String> dataSources; @Option(names = { "-D", "--system-property" }, description = "Set system property") Properties systemProperties; - @Option(names = { "-e", "--input-encoding" }, description = "Encoding of datasource", defaultValue = "UTF-8") + @Option(names = { "-e", "--input-encoding" }, description = "Encoding of data source", defaultValue = "UTF-8") String inputEncoding; @Option(names = { "-E", "--expose-env" }, description = "Expose environment variables and user-supplied properties globally") @@ -95,16 +95,16 @@ public class Main implements Callable<Integer> { @Option(names = { "--config" }, defaultValue = FREEMARKER_CLI_PROPERTY_FILE, description = "FreeMarker CLI configuration file") String configFile; - @Option(names = { "--include" }, description = "File pattern for datasource input directory") + @Option(names = { "--include" }, description = "File pattern for data source input directory") String include; - @Option(names = { "--exclude" }, description = "File pattern for datasource input directory") + @Option(names = { "--exclude" }, description = "File pattern for data source input directory") String exclude; @Option(names = { "--output-encoding" }, description = "Encoding of output, e.g. UTF-8", defaultValue = "UTF-8") String outputEncoding; - @Option(names = { "--stdin" }, description = "Read datasource from stdin") + @Option(names = { "--stdin" }, description = "Read data source from stdin") boolean readFromStdin; @Option(names = { "--times" }, defaultValue = "1", description = "Re-run X times for profiling") @@ -192,7 +192,7 @@ public class Main implements Callable<Integer> { .setOutputEncoding(outputEncoding) .setOutputFile(outputFile) .setParameters(parameters != null ? parameters : new HashMap<>()) - .setDatasources(getCombindedDatasources()) + .setDataSources(getCombindedDatasources()) .setSystemProperties(systemProperties != null ? systemProperties : new Properties()) .setTemplateDirectories(templateDirectories) .setTemplateName(templateSourceOptions.template) @@ -224,11 +224,11 @@ public class Main implements Callable<Integer> { * Datasources can be passed via command line option and/or * positional parameter so we need to merge them. * - * @return List of datasources + * @return List of data sources */ private List<String> getCombindedDatasources() { if (isTemplateDrivenGeneration()) { - return Stream.of(datasources, sources) + return Stream.of(dataSources, sources) .filter(Objects::nonNull) .flatMap(Collection::stream) .collect(Collectors.toList()); diff --git a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/Settings.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/Settings.java index 5facf82..30f6d9c 100644 --- a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/Settings.java +++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/Settings.java @@ -86,7 +86,7 @@ public class Settings { private final boolean isEnvironmentExposed; /** User-supplied list of source files or directories */ - private final List<String> datasources; + private final List<String> dataSources; /** User-supplied parameters */ private final Map<String, String> parameters; @@ -112,7 +112,7 @@ public class Settings { Locale locale, boolean isReadFromStdin, boolean isEnvironmentExposed, - List<String> datasources, + List<String> dataSources, Map<String, String> parameters, Properties sytemProperties, Writer writer) { @@ -133,7 +133,7 @@ public class Settings { this.locale = requireNonNull(locale); this.isReadFromStdin = isReadFromStdin; this.isEnvironmentExposed = isEnvironmentExposed; - this.datasources = requireNonNull(datasources); + this.dataSources = requireNonNull(dataSources); this.parameters = requireNonNull(parameters); this.sytemProperties = requireNonNull(sytemProperties); this.configuration = requireNonNull(configuration); @@ -204,8 +204,8 @@ public class Settings { return isEnvironmentExposed; } - public List<String> getDatasources() { - return datasources; + public List<String> getDataSources() { + return dataSources; } public Map<String, String> getParameters() { @@ -262,7 +262,7 @@ public class Settings { ", locale=" + locale + ", isReadFromStdin=" + isReadFromStdin + ", isEnvironmentExposed=" + isEnvironmentExposed + - ", datasources=" + datasources + + ", dataSources=" + dataSources + ", properties=" + parameters + ", sytemProperties=" + sytemProperties + ", writer=" + writer + @@ -288,7 +288,7 @@ public class Settings { private String locale; private boolean isReadFromStdin; private boolean isEnvironmentExposed; - private List<String> datasources; + private List<String> dataSources; private Map<String, String> parameters; private Properties systemProperties; private Properties configuration; @@ -302,7 +302,7 @@ public class Settings { this.systemProperties = new Properties(); this.setInputEncoding(DEFAULT_CHARSET.name()); this.setOutputEncoding(DEFAULT_CHARSET.name()); - this.datasources = emptyList(); + this.dataSources = emptyList(); this.templateDirectories = emptyList(); } @@ -380,8 +380,8 @@ public class Settings { return this; } - public SettingsBuilder setDatasources(List<String> datasources) { - this.datasources = datasources; + public SettingsBuilder setDataSources(List<String> dataSources) { + this.dataSources = dataSources; return this; } @@ -432,7 +432,7 @@ public class Settings { LocaleUtils.parseLocale(currLocale), isReadFromStdin, isEnvironmentExposed, - datasources, + dataSources, parameters, systemProperties, writer diff --git a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/Suppliers.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/Suppliers.java index 06dede4..0766ad3 100644 --- a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/Suppliers.java +++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/Suppliers.java @@ -17,7 +17,7 @@ package org.apache.freemarker.generator.cli.config; import freemarker.cache.TemplateLoader; -import org.apache.freemarker.generator.base.datasource.DatasourcesSupplier; +import org.apache.freemarker.generator.base.datasource.DataSourcesSupplier; import org.apache.freemarker.generator.base.file.PropertiesClassPathSupplier; import org.apache.freemarker.generator.base.file.PropertiesFileSystemSupplier; import org.apache.freemarker.generator.base.file.PropertiesSupplier; @@ -49,8 +49,8 @@ public class Suppliers { return new ToolsSupplier(settings.getConfiguration(), settings.toMap()); } - public static DatasourcesSupplier datasourcesSupplier(Settings settings) { - return new DatasourcesSupplier(settings.getDatasources(), + public static DataSourcesSupplier dataSourcesSupplier(Settings settings) { + return new DataSourcesSupplier(settings.getDataSources(), settings.getInclude(), settings.getExclude(), settings.getInputEncoding()); diff --git a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/task/FreeMarkerTask.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/task/FreeMarkerTask.java index b59bb62..7271644 100644 --- a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/task/FreeMarkerTask.java +++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/task/FreeMarkerTask.java @@ -20,9 +20,9 @@ import freemarker.template.Configuration; import freemarker.template.Template; import org.apache.commons.io.FileUtils; import org.apache.freemarker.generator.base.FreeMarkerConstants.Location; -import org.apache.freemarker.generator.base.datasource.Datasource; -import org.apache.freemarker.generator.base.datasource.DatasourceFactory; -import org.apache.freemarker.generator.base.datasource.Datasources; +import org.apache.freemarker.generator.base.datasource.DataSource; +import org.apache.freemarker.generator.base.datasource.DataSourceFactory; +import org.apache.freemarker.generator.base.datasource.DataSources; import org.apache.freemarker.generator.cli.config.Settings; import java.io.File; @@ -41,7 +41,7 @@ import static org.apache.freemarker.generator.base.FreeMarkerConstants.DEFAULT_G import static org.apache.freemarker.generator.base.FreeMarkerConstants.Location.STDIN; import static org.apache.freemarker.generator.base.FreeMarkerConstants.Model.DATASOURCES; import static org.apache.freemarker.generator.cli.config.Suppliers.configurationSupplier; -import static org.apache.freemarker.generator.cli.config.Suppliers.datasourcesSupplier; +import static org.apache.freemarker.generator.cli.config.Suppliers.dataSourcesSupplier; import static org.apache.freemarker.generator.cli.config.Suppliers.toolsSupplier; /** @@ -53,28 +53,28 @@ public class FreeMarkerTask implements Callable<Integer> { private final Settings settings; private final Supplier<Map<String, Object>> toolsSupplier; - private final Supplier<List<Datasource>> datasourcesSupplier; + private final Supplier<List<DataSource>> dataSourcesSupplier; private final Supplier<Configuration> configurationSupplier; public FreeMarkerTask(Settings settings) { - this(settings, toolsSupplier(settings), datasourcesSupplier(settings), configurationSupplier(settings)); + this(settings, toolsSupplier(settings), dataSourcesSupplier(settings), configurationSupplier(settings)); } public FreeMarkerTask(Settings settings, Supplier<Map<String, Object>> toolsSupplier, - Supplier<List<Datasource>> datasourcesSupplier, + Supplier<List<DataSource>> dataSourcesSupplier, Supplier<Configuration> configurationSupplier) { this.settings = requireNonNull(settings); this.toolsSupplier = requireNonNull(toolsSupplier); - this.datasourcesSupplier = requireNonNull(datasourcesSupplier); + this.dataSourcesSupplier = requireNonNull(dataSourcesSupplier); this.configurationSupplier = requireNonNull(configurationSupplier); } @Override public Integer call() { final Template template = template(settings, configurationSupplier); - try (Writer writer = settings.getWriter(); Datasources datasources = datasources(settings, datasourcesSupplier)) { - final Map<String, Object> dataModel = dataModel(settings, datasources, toolsSupplier); + try (Writer writer = settings.getWriter(); DataSources dataSources = dataSources(settings, dataSourcesSupplier)) { + final Map<String, Object> dataModel = dataModel(settings, dataSources, toolsSupplier); template.process(dataModel, writer); return SUCCESS; } catch (RuntimeException e) { @@ -84,16 +84,16 @@ public class FreeMarkerTask implements Callable<Integer> { } } - private static Datasources datasources(Settings settings, Supplier<List<Datasource>> datasourcesSupplier) { - final List<Datasource> datasources = new ArrayList<>(datasourcesSupplier.get()); + private static DataSources dataSources(Settings settings, Supplier<List<DataSource>> dataSourcesSupplier) { + final List<DataSource> dataSources = new ArrayList<>(dataSourcesSupplier.get()); - // Add optional datasource from STDIN at the start of the list since + // Add optional data source from STDIN at the start of the list since // this allows easy sequence slicing in FreeMarker. if (settings.isReadFromStdin()) { - datasources.add(0, DatasourceFactory.create(STDIN, DEFAULT_GROUP, System.in, STDIN, UTF_8)); + dataSources.add(0, DataSourceFactory.create(STDIN, DEFAULT_GROUP, System.in, STDIN, UTF_8)); } - return new Datasources(datasources); + return new DataSources(dataSources); } /** @@ -123,10 +123,10 @@ public class FreeMarkerTask implements Callable<Integer> { } } - private static Map<String, Object> dataModel(Settings settings, Datasources datasources, Supplier<Map<String, Object>> tools) { + private static Map<String, Object> dataModel(Settings settings, DataSources dataSources, Supplier<Map<String, Object>> tools) { final Map<String, Object> dataModel = new HashMap<>(); - dataModel.put(DATASOURCES, datasources); + dataModel.put(DATASOURCES, dataSources); if (settings.isEnvironmentExposed()) { // add all system & user-supplied properties as top-level entries diff --git a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/PicocliTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/PicocliTest.java index 95662f0..2c54c44 100644 --- a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/PicocliTest.java +++ b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/PicocliTest.java @@ -34,7 +34,7 @@ public class PicocliTest { @Test public void testSinglePositionalParameter() { assertEquals(ANY_FILE_URI, parse("-t", TEMPLATE, ANY_FILE_URI).sources.get(0)); - assertNull(ANY_FILE, parse("-t", TEMPLATE, ANY_FILE_URI).datasources); + assertNull(ANY_FILE, parse("-t", TEMPLATE, ANY_FILE_URI).dataSources); } @Test @@ -52,17 +52,17 @@ public class PicocliTest { @Test public void testSingleNamedDatasource() { assertEquals(ANY_FILE, parse("-t", TEMPLATE, ANY_FILE).sources.get(0)); - assertEquals(ANY_FILE, parse("-t", TEMPLATE, "-d", ANY_FILE).datasources.get(0)); - assertEquals(ANY_FILE, parse("-t", TEMPLATE, "--datasource", ANY_FILE).datasources.get(0)); - assertEquals(ANY_FILE_URI, parse("-t", TEMPLATE, "--datasource", ANY_FILE_URI).datasources.get(0)); + assertEquals(ANY_FILE, parse("-t", TEMPLATE, "-d", ANY_FILE).dataSources.get(0)); + assertEquals(ANY_FILE, parse("-t", TEMPLATE, "--data-source", ANY_FILE).dataSources.get(0)); + assertEquals(ANY_FILE_URI, parse("-t", TEMPLATE, "--data-source", ANY_FILE_URI).dataSources.get(0)); } @Test public void testMultipleNamedDatasource() { - final Main main = parse("-t", TEMPLATE, "-d", ANY_FILE, "--datasource", OTHER_FILE_URI); + final Main main = parse("-t", TEMPLATE, "-d", ANY_FILE, "--data-source", OTHER_FILE_URI); - assertEquals(ANY_FILE, main.datasources.get(0)); - assertEquals(OTHER_FILE_URI, main.datasources.get(1)); + assertEquals(ANY_FILE, main.dataSources.get(0)); + assertEquals(OTHER_FILE_URI, main.dataSources.get(1)); assertNull(main.sources); } diff --git a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/SettingsTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/SettingsTest.java index 655fdf6..3c71276 100644 --- a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/SettingsTest.java +++ b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/SettingsTest.java @@ -56,7 +56,7 @@ public class SettingsTest { assertEquals(ANY_OUTPUT_ENCODING, settings.getOutputEncoding().name()); assertEquals(ANY_OUTPUT_FILE, settings.getOutputFile().getName()); assertEquals(ANY_TEMPLATE_NAME, settings.getTemplateName()); - assertNotNull(settings.getDatasources()); + assertNotNull(settings.getDataSources()); assertNotNull(settings.getParameters()); assertNotNull(settings.getSytemProperties()); assertTrue(settings.isReadFromStdin()); @@ -78,7 +78,7 @@ public class SettingsTest { .setOutputEncoding(ANY_OUTPUT_ENCODING) .setOutputFile(ANY_OUTPUT_FILE) .setParameters(ANY_USER_PARAMETERS) - .setDatasources(ANY_SOURCES) + .setDataSources(ANY_SOURCES) .setSystemProperties(ANY_SYSTEM_PROPERTIES) .setTemplateName(ANY_TEMPLATE_NAME) .setWriter(new StringWriter()) diff --git a/freemarker-generator-cli/src/test/templates/echo.ftl b/freemarker-generator-cli/src/test/templates/echo.ftl index bbd148f..b7c7b88 100644 --- a/freemarker-generator-cli/src/test/templates/echo.ftl +++ b/freemarker-generator-cli/src/test/templates/echo.ftl @@ -15,8 +15,8 @@ specific language governing permissions and limitations under the License. --> -<#list Datasources.list as datasource> -${datasource.name}, ${datasource.location} +<#list DataSources.list as dataSource> +${dataSource.name}, ${dataSource.location} ============================================================================= -${datasource.text} +${dataSource.text} </#list> \ No newline at end of file diff --git a/freemarker-generator-cli/src/test/templates/tools/csv.ftl b/freemarker-generator-cli/src/test/templates/tools/csv.ftl index d069b57..f34cb6a 100644 --- a/freemarker-generator-cli/src/test/templates/tools/csv.ftl +++ b/freemarker-generator-cli/src/test/templates/tools/csv.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign records = CSVTool.parse(Datasources.get(0), CSVFormat.DEFAULT.withHeader()).records> +<#assign records = CSVTool.parse(DataSources.get(0), CSVFormat.DEFAULT.withHeader()).records> CSVTool.toMap(name) ============================================================================= diff --git a/freemarker-generator-cli/templates/accesslog/combined-access.ftl b/freemarker-generator-cli/templates/accesslog/combined-access.ftl index 817ec59..ea92b68 100644 --- a/freemarker-generator-cli/templates/accesslog/combined-access.ftl +++ b/freemarker-generator-cli/templates/accesslog/combined-access.ftl @@ -16,8 +16,8 @@ under the License. --> <#assign grok = GrokTool.compile("%{COMBINEDAPACHELOG}")> -<#assign datasource = Datasources.get(0)> -<#assign lines = datasource.getLineIterator()> +<#assign dataSource = DataSources.get(0)> +<#assign lines = dataSource.getLineIterator()> <#compress> TIMESTAMP;VERB;REQUEST;HTTPVERSION diff --git a/freemarker-generator-cli/templates/cat.ftl b/freemarker-generator-cli/templates/cat.ftl index a42b02b..a878261 100644 --- a/freemarker-generator-cli/templates/cat.ftl +++ b/freemarker-generator-cli/templates/cat.ftl @@ -15,8 +15,8 @@ specific language governing permissions and limitations under the License. --> -<#list Datasources.list as datasource> -<#list datasource.lineIterator as line> +<#list DataSources.list as dataSource> +<#list dataSource.lineIterator as line> ${line} </#list> </#list> diff --git a/freemarker-generator-cli/templates/csv/csv/gatling-user-credentials.ftl b/freemarker-generator-cli/templates/csv/csv/gatling-user-credentials.ftl index 19bb9b9..6186b62 100644 --- a/freemarker-generator-cli/templates/csv/csv/gatling-user-credentials.ftl +++ b/freemarker-generator-cli/templates/csv/csv/gatling-user-credentials.ftl @@ -15,9 +15,9 @@ specific language governing permissions and limitations under the License. --> -<#assign datasource = Datasources.get(0)> +<#assign dataSource = DataSources.get(0)> <#assign cvsFormat = CSVTool.formats["DEFAULT"].withDelimiter(';')> -<#assign csvParser = CSVTool.parse(datasource, cvsFormat)> +<#assign csvParser = CSVTool.parse(dataSource, cvsFormat)> <#assign csvRecords = csvParser.records> <#compress> diff --git a/freemarker-generator-cli/templates/csv/fo/transactions.ftl b/freemarker-generator-cli/templates/csv/fo/transactions.ftl index ff9c009..48a6416 100644 --- a/freemarker-generator-cli/templates/csv/fo/transactions.ftl +++ b/freemarker-generator-cli/templates/csv/fo/transactions.ftl @@ -15,10 +15,10 @@ specific language governing permissions and limitations under the License. --> -<#assign datasource = Datasources.get(0)> -<#assign name = datasource.name> +<#assign dataSource = DataSources.get(0)> +<#assign name = dataSource.name> <#assign cvsFormat = CSVTool.formats.DEFAULT.withDelimiter('\t').withHeader()> -<#assign csvParser = CSVTool.parse(datasource, cvsFormat)> +<#assign csvParser = CSVTool.parse(dataSource, cvsFormat)> <#assign csvHeaders = csvParser.getHeaderMap()?keys> <#assign csvRecords = csvParser.records> <#---------------------------------------------------------------------------> diff --git a/freemarker-generator-cli/templates/csv/fo/transform.ftl b/freemarker-generator-cli/templates/csv/fo/transform.ftl index d20f625..7ce74c8 100644 --- a/freemarker-generator-cli/templates/csv/fo/transform.ftl +++ b/freemarker-generator-cli/templates/csv/fo/transform.ftl @@ -17,7 +17,7 @@ --> <#assign csvFormatName = SystemTool.parameters["csv.format"]!"DEFAULT"> <#assign cvsFormat = CSVTool.formats[csvFormatName].withHeader()> -<#assign csvParser = CSVTool.parse(Datasources.get(0), cvsFormat)> +<#assign csvParser = CSVTool.parse(DataSources.get(0), cvsFormat)> <#assign csvHeaders = csvParser.getHeaderMap()?keys> <#assign csvRecords = csvParser.records> <#---------------------------------------------------------------------------> diff --git a/freemarker-generator-cli/templates/csv/html/transactions.ftl b/freemarker-generator-cli/templates/csv/html/transactions.ftl index 9fae075..d9b32ca 100644 --- a/freemarker-generator-cli/templates/csv/html/transactions.ftl +++ b/freemarker-generator-cli/templates/csv/html/transactions.ftl @@ -15,10 +15,10 @@ specific language governing permissions and limitations under the License. --> -<#assign datasource = Datasources.get(0)> -<#assign name = datasource.name> +<#assign dataSource = DataSources.get(0)> +<#assign name = dataSource.name> <#assign cvsFormat = CSVTool.formats["DEFAULT"].withDelimiter('\t').withHeader()> -<#assign csvParser = CSVTool.parse(datasource, cvsFormat)> +<#assign csvParser = CSVTool.parse(dataSource, cvsFormat)> <#assign csvHeaders = csvParser.getHeaderMap()?keys> <#assign csvRecords = csvParser.records> <#---------------------------------------------------------------------------> diff --git a/freemarker-generator-cli/templates/csv/html/transform.ftl b/freemarker-generator-cli/templates/csv/html/transform.ftl index 5985857..65eb4f1 100644 --- a/freemarker-generator-cli/templates/csv/html/transform.ftl +++ b/freemarker-generator-cli/templates/csv/html/transform.ftl @@ -15,10 +15,10 @@ specific language governing permissions and limitations under the License. --> -<#assign datasource = Datasources.get(0)> -<#assign name = datasource.name> +<#assign dataSource = DataSources.get(0)> +<#assign name = dataSource.name> <#assign cvsFormat = CSVTool.formats["DEFAULT"].withHeader()> -<#assign csvParser = CSVTool.parse(datasource, cvsFormat)> +<#assign csvParser = CSVTool.parse(dataSource, cvsFormat)> <#assign csvHeaders = csvParser.getHeaderNames()> <#---------------------------------------------------------------------------> <!DOCTYPE html> diff --git a/freemarker-generator-cli/templates/csv/md/filter.ftl b/freemarker-generator-cli/templates/csv/md/filter.ftl index 92a0304..57f990d 100644 --- a/freemarker-generator-cli/templates/csv/md/filter.ftl +++ b/freemarker-generator-cli/templates/csv/md/filter.ftl @@ -15,14 +15,14 @@ specific language governing permissions and limitations under the License. --> -<#assign datasource = Datasources.get(0)> -<#assign parser = parser(datasource)> +<#assign dataSource = DataSources.get(0)> +<#assign parser = parser(dataSource)> <#assign headers = parser.getHeaderNames()> <#assign column = SystemTool.getParameter("column")> <#assign values = SystemTool.getParameter("values")?split(",")> <#compress> - <@writePageHeader datasource/> + <@writePageHeader dataSource/> <#-- Process each line without materializing the whole file in memory --> <#list parser.iterator() as record> <#if filter(record)> @@ -31,18 +31,18 @@ </#list> </#compress> -<#function parser datasource> +<#function parser dataSource> <#assign format = CSVTool.formats[SystemTool.getParameter("format", "DEFAULT")]> <#assign delimiter = CSVTool.toDelimiter(SystemTool.getParameter("delimiter", format.getDelimiter()))> - <#return CSVTool.parse(datasource, format.withFirstRecordAsHeader().withDelimiter(delimiter))> + <#return CSVTool.parse(dataSource, format.withFirstRecordAsHeader().withDelimiter(delimiter))> </#function> <#function filter record> <#return values?seq_contains(record.get(column))> </#function> -<#macro writePageHeader datasource> - # ${datasource.name} +<#macro writePageHeader dataSource> + # ${dataSource.name} </#macro> <#macro writeCsvRecord headers record> diff --git a/freemarker-generator-cli/templates/csv/md/transform.ftl b/freemarker-generator-cli/templates/csv/md/transform.ftl index 994e3f3..fca0bc5 100644 --- a/freemarker-generator-cli/templates/csv/md/transform.ftl +++ b/freemarker-generator-cli/templates/csv/md/transform.ftl @@ -16,7 +16,7 @@ under the License. --> <#assign cvsFormat = CSVTool.formats["DEFAULT"].withHeader()> -<#assign csvParser = CSVTool.parse(Datasources.get(0), cvsFormat)> +<#assign csvParser = CSVTool.parse(DataSources.get(0), cvsFormat)> <#assign csvHeaders = csvParser.getHeaderMap()?keys> <#assign csvRecords = csvParser.records> <#---------------------------------------------------------------------------> diff --git a/freemarker-generator-cli/templates/csv/shell/curl.ftl b/freemarker-generator-cli/templates/csv/shell/curl.ftl index d7c75c9..b8fa109 100644 --- a/freemarker-generator-cli/templates/csv/shell/curl.ftl +++ b/freemarker-generator-cli/templates/csv/shell/curl.ftl @@ -16,7 +16,7 @@ under the License. --> <#assign cvsFormat = CSVTool.formats["DEFAULT"].withHeader()> -<#assign csvParser = CSVTool.parse(Datasources.get(0), cvsFormat)> +<#assign csvParser = CSVTool.parse(DataSources.get(0), cvsFormat)> <#assign records = csvParser.records> <#assign csvMap = CSVTool.toMap(records, "disposer")> <#---------------------------------------------------------------------------> diff --git a/freemarker-generator-cli/templates/csv/transform.ftl b/freemarker-generator-cli/templates/csv/transform.ftl index e13c9b5..b4e21ef 100644 --- a/freemarker-generator-cli/templates/csv/transform.ftl +++ b/freemarker-generator-cli/templates/csv/transform.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign csvParser = createCsvParser(Datasources.get(0))> +<#assign csvParser = createCsvParser(DataSources.get(0))> <#assign csvPrinter = createCsvPrinter()> <#-- Print each line without materializing the CSV in memory --> <#compress> @@ -24,11 +24,11 @@ </#list> </#compress> -<#function createCsvParser datasource> +<#function createCsvParser dataSource> <#assign initialCvsInFormat = CSVTool.formats[SystemTool.getParameter("csv.in.format", "DEFAULT")]> <#assign csvInDelimiter = CSVTool.toDelimiter(SystemTool.getParameter("csv.in.delimiter", initialCvsInFormat.getDelimiter()))> <#assign cvsInFormat = initialCvsInFormat.withDelimiter(csvInDelimiter)> - <#return CSVTool.parse(datasource, cvsInFormat)> + <#return CSVTool.parse(dataSource, cvsInFormat)> </#function> <#function createCsvPrinter> diff --git a/freemarker-generator-cli/templates/demo.ftl b/freemarker-generator-cli/templates/demo.ftl index f981a9e..06359f4 100644 --- a/freemarker-generator-cli/templates/demo.ftl +++ b/freemarker-generator-cli/templates/demo.ftl @@ -45,11 +45,11 @@ java.math.RoundingMode#UP: ${FreeMarkerTool.enums["java.math.RoundingMode"].UP} - java.math.RoundingMode.${roundingMode}<#lt> </#list> -6) Display list of datasources +6) Display list of data sources --------------------------------------------------------------------------- -List all datasources: -<#list Datasources.list as datasource> -- Document: name=${datasource.name} location=${datasource.location} length=${datasource.length} encoding=${datasource.encoding!""} +List all data sources: +<#list DataSources.list as dataSource> +- Document: name=${dataSource.name} location=${dataSource.location} length=${dataSource.length} encoding=${dataSource.encoding!""} </#list> 7) SystemTool @@ -83,25 +83,25 @@ user.home : ${SystemTool.systemProperties["user.home"]!""} - ${name} ==> ${value}<#lt> </#list> -11) Access Datasources +11) Access DataSources --------------------------------------------------------------------------- Get the number of documents: -- ${Datasources.size()} -<#if !Datasources.isEmpty()> +- ${DataSources.size()} +<#if !DataSources.isEmpty()> Get the first document -- ${Datasources.get(0)!"NA"} +- ${DataSources.get(0)!"NA"} </#if> List all files containing "README" in the name -<#list Datasources.find("*README*") as datasource> -- ${datasource.name} +<#list DataSources.find("*README*") as dataSource> +- ${dataSource.name} </#list> List all files having "md" extension -<#list Datasources.find("*.md") as datasource> -- ${datasource.name} +<#list DataSources.find("*.md") as dataSource> +- ${dataSource.name} </#list> Get all documents -<#list Datasources.list as datasource> -- ${datasource.name} => ${datasource.location} +<#list DataSources.list as dataSource> +- ${dataSource.name} => ${dataSource.location} </#list> 12) FreeMarker CLI Tools diff --git a/freemarker-generator-cli/templates/excel/csv/custom.ftl b/freemarker-generator-cli/templates/excel/csv/custom.ftl index 6d6f90a..542d92b 100644 --- a/freemarker-generator-cli/templates/excel/csv/custom.ftl +++ b/freemarker-generator-cli/templates/excel/csv/custom.ftl @@ -17,8 +17,8 @@ --> <#assign format = SystemTool.parameters["csv.format"]!"DEFAULT"> <#assign salt = SystemTool.parameters["salt"]!"salt"> -<#-- Parse the first datasource & sheet of the Excel document --> -<#assign workbook = ExcelTool.parse(Datasources.get(0))> +<#-- Parse the first data source & sheet of the Excel document --> +<#assign workbook = ExcelTool.parse(DataSources.get(0))> <#assign sheet = ExcelTool.getSheets(workbook)[0]> <#assign records = ExcelTool.toTable(sheet)> <#-- Setup CSVPrinter --> diff --git a/freemarker-generator-cli/templates/excel/csv/transform.ftl b/freemarker-generator-cli/templates/excel/csv/transform.ftl index 4ddc529..d60421c 100644 --- a/freemarker-generator-cli/templates/excel/csv/transform.ftl +++ b/freemarker-generator-cli/templates/excel/csv/transform.ftl @@ -16,8 +16,8 @@ under the License. --> <#assign format = SystemTool.parameters["csv.format"]!"DEFAULT"> -<#-- Parse the first datasource & sheet of the Excel document --> -<#assign workbook = ExcelTool.parse(Datasources.get(0))> +<#-- Parse the first data source & sheet of the Excel document --> +<#assign workbook = ExcelTool.parse(DataSources.get(0))> <#assign sheet = ExcelTool.getSheets(workbook)[0]> <#assign records = ExcelTool.toTable(sheet)> <#-- Setup CSVPrinter --> diff --git a/freemarker-generator-cli/templates/excel/html/transform.ftl b/freemarker-generator-cli/templates/excel/html/transform.ftl index a261410..68ccc42 100644 --- a/freemarker-generator-cli/templates/excel/html/transform.ftl +++ b/freemarker-generator-cli/templates/excel/html/transform.ftl @@ -15,9 +15,9 @@ specific language governing permissions and limitations under the License. --> -<#assign datasource = Datasources.get(0)> -<#assign name = datasource.name> -<#assign workbook = ExcelTool.parse(datasource)> +<#assign dataSource = DataSources.get(0)> +<#assign name = dataSource.name> +<#assign workbook = ExcelTool.parse(dataSource)> <#assign date = .now?iso_utc> <#---------------------------------------------------------------------------> <!DOCTYPE html> diff --git a/freemarker-generator-cli/templates/excel/md/transform.ftl b/freemarker-generator-cli/templates/excel/md/transform.ftl index 9b3a068..8f84165 100644 --- a/freemarker-generator-cli/templates/excel/md/transform.ftl +++ b/freemarker-generator-cli/templates/excel/md/transform.ftl @@ -15,9 +15,9 @@ specific language governing permissions and limitations under the License. --> -<#assign datasource = Datasources.get(0)> -<#assign name = datasource.name> -<#assign workbook = ExcelTool.parse(datasource)> +<#assign dataSource = DataSources.get(0)> +<#assign name = dataSource.name> +<#assign workbook = ExcelTool.parse(dataSource)> <#assign date = .now?iso_utc> <#compress> diff --git a/freemarker-generator-cli/templates/html/csv/dependencies.ftl b/freemarker-generator-cli/templates/html/csv/dependencies.ftl index b0df23e..8664eae 100644 --- a/freemarker-generator-cli/templates/html/csv/dependencies.ftl +++ b/freemarker-generator-cli/templates/html/csv/dependencies.ftl @@ -15,9 +15,9 @@ specific language governing permissions and limitations under the License. --> -<#assign datasource = Datasources.get(0)> -<#assign name = datasource.name> -<#assign html = JsoupTool.parse(datasource)> +<#assign dataSource = DataSources.get(0)> +<#assign name = dataSource.name> +<#assign html = JsoupTool.parse(dataSource)> <#compress> <@writeHeader/> diff --git a/freemarker-generator-cli/templates/info.ftl b/freemarker-generator-cli/templates/info.ftl index 6b9380b..e25f960 100644 --- a/freemarker-generator-cli/templates/info.ftl +++ b/freemarker-generator-cli/templates/info.ftl @@ -39,11 +39,11 @@ FreeMarker CLI Tools </#if> </#list> -FreeMarker CLI Datasources +FreeMarker CLI DataSources ------------------------------------------------------------------------------ -<#list Datasources.list as datasource> -[#${datasource?counter}], name=${datasource.name}, group=${datasource.group}, charset=${datasource.charset}, length= ${datasource.length} Bytes -Location : ${datasource.location} +<#list DataSources.list as dataSource> +[#${dataSource?counter}], name=${dataSource.name}, group=${dataSource.group}, charset=${dataSource.charset}, length= ${dataSource.length} Bytes +Location : ${dataSource.location} </#list> User Supplied Parameters diff --git a/freemarker-generator-cli/templates/json/csv/swagger-endpoints.ftl b/freemarker-generator-cli/templates/json/csv/swagger-endpoints.ftl index 61b9f78..7fab37f 100644 --- a/freemarker-generator-cli/templates/json/csv/swagger-endpoints.ftl +++ b/freemarker-generator-cli/templates/json/csv/swagger-endpoints.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign json = JsonPathTool.parse(Datasources.get(0))> +<#assign json = JsonPathTool.parse(DataSources.get(0))> <#assign basePath = json.read("$.basePath")> <#assign paths = json.read("$.paths")> diff --git a/freemarker-generator-cli/templates/json/md/github-users.ftl b/freemarker-generator-cli/templates/json/md/github-users.ftl index 5aecf18..29efbc3 100644 --- a/freemarker-generator-cli/templates/json/md/github-users.ftl +++ b/freemarker-generator-cli/templates/json/md/github-users.ftl @@ -15,7 +15,7 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -<#assign json = JsonPathTool.parse(Datasources.get(0))> +<#assign json = JsonPathTool.parse(DataSources.get(0))> <#assign users = json.read("$[*]")> <#---------------------------------------------------------------------------> # GitHub Users diff --git a/freemarker-generator-cli/templates/properties/csv/locker-test-users.ftl b/freemarker-generator-cli/templates/properties/csv/locker-test-users.ftl index 237b71f..52ac65f 100644 --- a/freemarker-generator-cli/templates/properties/csv/locker-test-users.ftl +++ b/freemarker-generator-cli/templates/properties/csv/locker-test-users.ftl @@ -17,8 +17,8 @@ --> <#compress> TENANT,SITE,USER_ID,DISPOSER_ID,PASSWORD,SMS_OTP,NAME,DESCRIPTION - <#list Datasources.list as datasource> - <#assign properties = PropertiesTool.parse(datasource)> + <#list DataSources.list as dataSource> + <#assign properties = PropertiesTool.parse(dataSource)> <#assign environments = properties["ENVIRONMENTS"]!""> <#assign tenant = extractTenant(environments)> <#assign site = extractSite(environments)> diff --git a/freemarker-generator-cli/templates/tsv/fo/transactions.ftl b/freemarker-generator-cli/templates/tsv/fo/transactions.ftl index 99b7a1c..e1840d1 100644 --- a/freemarker-generator-cli/templates/tsv/fo/transactions.ftl +++ b/freemarker-generator-cli/templates/tsv/fo/transactions.ftl @@ -16,7 +16,7 @@ under the License. --> <#assign cvsFormat = CSVTool.formats["TDF"].withHeader()> -<#assign csvParser = CSVTool.parse(Datasources.get(0), cvsFormat)> +<#assign csvParser = CSVTool.parse(DataSources.get(0), cvsFormat)> <#assign csvHeaders = csvParser.getHeaderMap()?keys> <#assign csvRecords = csvParser.records> <#---------------------------------------------------------------------------> diff --git a/freemarker-generator-cli/templates/xml/txt/recipients.ftl b/freemarker-generator-cli/templates/xml/txt/recipients.ftl index 87a9f57..43b51b4 100644 --- a/freemarker-generator-cli/templates/xml/txt/recipients.ftl +++ b/freemarker-generator-cli/templates/xml/txt/recipients.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign xml = XmlTool.parse(Datasources.get(0))> +<#assign xml = XmlTool.parse(DataSources.get(0))> <#list xml.recipients.person as recipient> To: ${recipient.name} ${recipient.address} diff --git a/freemarker-generator-cli/templates/yaml/txt/transform.ftl b/freemarker-generator-cli/templates/yaml/txt/transform.ftl index 07160cf..fdba743 100644 --- a/freemarker-generator-cli/templates/yaml/txt/transform.ftl +++ b/freemarker-generator-cli/templates/yaml/txt/transform.ftl @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. --> -<#assign map = YamlTool.parse(Datasources.get(0))> +<#assign map = YamlTool.parse(DataSources.get(0))> <#---------------------------------------------------------------------------> <#compress> <@print map 1/> diff --git a/freemarker-generator-tools/README.md b/freemarker-generator-tools/README.md index 6a1e74e..e624eb2 100644 --- a/freemarker-generator-tools/README.md +++ b/freemarker-generator-tools/README.md @@ -7,9 +7,9 @@ Design Considerations ------------------------------------------------------------------------------ * A tool shall expose a default constructor and/or a constructor taking a `Map<String, Object> settings` -* A tool processing datasources shall provide a `parse(Datasource)` method +* A tool processing data sources shall provide a `parse(Datasource)` method * A tool shall be stateless, multi-thread safe and potentially long-lived to enable usage in a different context -* A tool shall support arbitrary large source datasources and process them efficiently +* A tool shall support arbitrary large source data sources and process them efficiently * A tool shall expose a `toString()` method for documentation purposes Available Tools diff --git a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/commonscsv/CommonsCSVTool.java b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/commonscsv/CommonsCSVTool.java index 56e4bb9..31c5d7c 100644 --- a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/commonscsv/CommonsCSVTool.java +++ b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/commonscsv/CommonsCSVTool.java @@ -21,7 +21,7 @@ import org.apache.commons.csv.CSVParser; import org.apache.commons.csv.CSVPrinter; import org.apache.commons.csv.CSVRecord; import org.apache.commons.io.input.BOMInputStream; -import org.apache.freemarker.generator.base.datasource.Datasource; +import org.apache.freemarker.generator.base.datasource.DataSource; import org.apache.freemarker.generator.base.util.StringUtils; import java.io.IOException; @@ -44,23 +44,23 @@ import static org.apache.commons.io.IOUtils.toInputStream; public class CommonsCSVTool { - public CSVParser parse(Datasource datasource) { - return parse(datasource, CSVFormat.DEFAULT); + public CSVParser parse(DataSource dataSource) { + return parse(dataSource, CSVFormat.DEFAULT); } - public CSVParser parse(Datasource datasource, CSVFormat format) { - if (datasource == null) { - throw new IllegalArgumentException("No datasource was provided"); + public CSVParser parse(DataSource dataSource, CSVFormat format) { + if (dataSource == null) { + throw new IllegalArgumentException("No data source was provided"); } try { // As stated in the documentation : "If you do not read all records from the given {@code reader}, // you should call {@link #close()} on the parser, unless you close the {@code reader}." - // The underlying input stream is closed by the datasource by its "CloseableReaper". - final InputStream is = new BOMInputStream(datasource.getInputStream(), false); - return parse(is, datasource.getCharset(), format); + // The underlying input stream is closed by the data source by its "CloseableReaper". + final InputStream is = new BOMInputStream(dataSource.getInputStream(), false); + return parse(is, dataSource.getCharset(), format); } catch (IOException e) { - throw new RuntimeException("Failed to parse CSV: " + datasource, e); + throw new RuntimeException("Failed to parse CSV: " + dataSource, e); } } diff --git a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/excel/ExcelTool.java b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/excel/ExcelTool.java index 8f2d635..f03df80 100644 --- a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/excel/ExcelTool.java +++ b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/excel/ExcelTool.java @@ -16,7 +16,7 @@ */ package org.apache.freemarker.generator.tools.excel; -import org.apache.freemarker.generator.base.datasource.Datasource; +import org.apache.freemarker.generator.base.datasource.DataSource; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.DataFormatter; @@ -47,13 +47,13 @@ public class ExcelTool { private static final SimpleDateFormat TIME_DATE_FORMAT = new SimpleDateFormat("HH:mm:ss"); private static final SimpleDateFormat YEAR_TIME_FORMAT = new SimpleDateFormat("yyyy"); - public Workbook parse(Datasource datasource) { - try (InputStream is = datasource.getUnsafeInputStream()) { + public Workbook parse(DataSource dataSource) { + try (InputStream is = dataSource.getUnsafeInputStream()) { final Workbook workbook = WorkbookFactory.create(is); - // make sure that the workbook is closed together with the datasource - return datasource.addClosable(workbook); + // make sure that the workbook is closed together with the data source + return dataSource.addClosable(workbook); } catch (IOException e) { - throw new RuntimeException("Failed to parse Ecxel datasource: " + datasource, e); + throw new RuntimeException("Failed to parse Ecxel data source: " + dataSource, e); } } diff --git a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/jsonpath/JsonPathTool.java b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/jsonpath/JsonPathTool.java index 1859428..8bd38e7 100644 --- a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/jsonpath/JsonPathTool.java +++ b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/jsonpath/JsonPathTool.java @@ -20,15 +20,15 @@ import com.jayway.jsonpath.Configuration; import com.jayway.jsonpath.DocumentContext; import com.jayway.jsonpath.JsonPath; import com.jayway.jsonpath.Option; -import org.apache.freemarker.generator.base.datasource.Datasource; +import org.apache.freemarker.generator.base.datasource.DataSource; import java.io.IOException; import java.io.InputStream; public class JsonPathTool { - public DocumentContext parse(Datasource datasource) throws IOException { - try (InputStream is = datasource.getUnsafeInputStream()) { + public DocumentContext parse(DataSource dataSource) throws IOException { + try (InputStream is = dataSource.getUnsafeInputStream()) { return JsonPath.using(configuration()).parse(is); } } diff --git a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/jsoup/JsoupTool.java b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/jsoup/JsoupTool.java index 0e18ad8..6a9d23e 100644 --- a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/jsoup/JsoupTool.java +++ b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/jsoup/JsoupTool.java @@ -16,7 +16,7 @@ */ package org.apache.freemarker.generator.tools.jsoup; -import org.apache.freemarker.generator.base.datasource.Datasource; +import org.apache.freemarker.generator.base.datasource.DataSource; import org.jsoup.Jsoup; import java.io.IOException; @@ -24,11 +24,11 @@ import java.io.InputStream; public class JsoupTool { - public org.jsoup.nodes.Document parse(Datasource datasource) { - try (InputStream is = datasource.getUnsafeInputStream()) { - return Jsoup.parse(is, datasource.getCharset().name(), ""); + public org.jsoup.nodes.Document parse(DataSource dataSource) { + try (InputStream is = dataSource.getUnsafeInputStream()) { + return Jsoup.parse(is, dataSource.getCharset().name(), ""); } catch (IOException e) { - throw new RuntimeException("Failed to parse HTML datasource: " + datasource, e); + throw new RuntimeException("Failed to parse HTML data source: " + dataSource, e); } } diff --git a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/properties/PropertiesTool.java b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/properties/PropertiesTool.java index 09d2549..6656e2d 100644 --- a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/properties/PropertiesTool.java +++ b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/properties/PropertiesTool.java @@ -16,7 +16,7 @@ */ package org.apache.freemarker.generator.tools.properties; -import org.apache.freemarker.generator.base.datasource.Datasource; +import org.apache.freemarker.generator.base.datasource.DataSource; import org.apache.freemarker.generator.base.util.PropertiesFactory; import java.io.IOException; @@ -25,11 +25,11 @@ import java.util.Properties; public class PropertiesTool { - public Properties parse(Datasource datasource) { - try (InputStream is = datasource.getUnsafeInputStream()) { + public Properties parse(DataSource dataSource) { + try (InputStream is = dataSource.getUnsafeInputStream()) { return PropertiesFactory.create(is); } catch (IOException e) { - throw new RuntimeException("Failed to parse properties: " + datasource, e); + throw new RuntimeException("Failed to parse properties: " + dataSource, e); } } diff --git a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/snakeyaml/SnakeYamlTool.java b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/snakeyaml/SnakeYamlTool.java index 1ee005d..6d1b56a 100644 --- a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/snakeyaml/SnakeYamlTool.java +++ b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/snakeyaml/SnakeYamlTool.java @@ -16,7 +16,7 @@ */ package org.apache.freemarker.generator.tools.snakeyaml; -import org.apache.freemarker.generator.base.datasource.Datasource; +import org.apache.freemarker.generator.base.datasource.DataSource; import org.yaml.snakeyaml.Yaml; import java.io.IOException; @@ -25,11 +25,11 @@ import java.util.Map; public class SnakeYamlTool { - public Map<String, Object> parse(Datasource datasource) { - try (InputStream is = datasource.getUnsafeInputStream()) { + public Map<String, Object> parse(DataSource dataSource) { + try (InputStream is = dataSource.getUnsafeInputStream()) { return new Yaml().load(is); } catch (IOException e) { - throw new RuntimeException("Failed to load YAML datasource: " + datasource, e); + throw new RuntimeException("Failed to load YAML data source: " + dataSource, e); } } diff --git a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/xml/XmlTool.java b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/xml/XmlTool.java index a80b579..ddacf1c 100644 --- a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/xml/XmlTool.java +++ b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/xml/XmlTool.java @@ -17,7 +17,7 @@ package org.apache.freemarker.generator.tools.xml; import freemarker.ext.dom.NodeModel; -import org.apache.freemarker.generator.base.datasource.Datasource; +import org.apache.freemarker.generator.base.datasource.DataSource; import org.xml.sax.InputSource; import java.io.InputStream; @@ -25,11 +25,11 @@ import java.io.StringReader; public class XmlTool { - public NodeModel parse(Datasource datasource) { - try (InputStream is = datasource.getUnsafeInputStream()) { + public NodeModel parse(DataSource dataSource) { + try (InputStream is = dataSource.getUnsafeInputStream()) { return NodeModel.parse(new InputSource(is)); } catch (Exception e) { - throw new RuntimeException("Failed to parse XML datasource: " + datasource, e); + throw new RuntimeException("Failed to parse XML data source: " + dataSource, e); } } diff --git a/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/commonscsv/CommonsCSVToolTest.java b/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/commonscsv/CommonsCSVToolTest.java index d60a070..368f54c 100644 --- a/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/commonscsv/CommonsCSVToolTest.java +++ b/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/commonscsv/CommonsCSVToolTest.java @@ -20,8 +20,8 @@ import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVParser; import org.apache.commons.csv.CSVPrinter; import org.apache.commons.csv.CSVRecord; -import org.apache.freemarker.generator.base.datasource.Datasource; -import org.apache.freemarker.generator.base.datasource.DatasourceFactory; +import org.apache.freemarker.generator.base.datasource.DataSource; +import org.apache.freemarker.generator.base.datasource.DataSourceFactory; import org.junit.Test; import java.io.File; @@ -48,7 +48,7 @@ public class CommonsCSVToolTest { @Test public void shallParseCvsFile() throws IOException { - try (CSVParser parser = commonsCsvTool().parse(datasource(), DEFAULT.withHeader())) { + try (CSVParser parser = commonsCsvTool().parse(dataSource(), DEFAULT.withHeader())) { assertNotNull(parser); assertEquals(32, parser.getHeaderMap().size()); assertEquals(22, parser.getRecords().size()); @@ -57,7 +57,7 @@ public class CommonsCSVToolTest { @Test public void shallParseCvsString() throws IOException { - try (CSVParser parser = commonsCsvTool().parse(datasource().getText(), DEFAULT.withHeader())) { + try (CSVParser parser = commonsCsvTool().parse(dataSource().getText(), DEFAULT.withHeader())) { assertNotNull(parser); assertEquals(32, parser.getHeaderMap().size()); assertEquals(22, parser.getRecords().size()); @@ -69,7 +69,7 @@ public class CommonsCSVToolTest { final CommonsCSVTool commonsCsvTool = commonsCsvTool(); final List<String> keys; - try (CSVParser parser = commonsCsvTool.parse(datasource(), DEFAULT.withHeader())) { + try (CSVParser parser = commonsCsvTool.parse(dataSource(), DEFAULT.withHeader())) { keys = commonsCsvTool.toKeys(parser.getRecords(), CONTRACT_ID); } @@ -89,7 +89,7 @@ public class CommonsCSVToolTest { final CommonsCSVTool commonsCsvTool = commonsCsvTool(); final Map<String, CSVRecord> map; - try (CSVParser parser = commonsCsvTool.parse(datasource(), DEFAULT.withHeader())) { + try (CSVParser parser = commonsCsvTool.parse(dataSource(), DEFAULT.withHeader())) { map = commonsCsvTool.toMap(parser.getRecords(), CONTRACT_ID); } @@ -102,7 +102,7 @@ public class CommonsCSVToolTest { final CommonsCSVTool commonsCsvTool = commonsCsvTool(); final Map<String, List<CSVRecord>> map; - try (CSVParser parser = commonsCsvTool.parse(datasource(), DEFAULT.withHeader())) { + try (CSVParser parser = commonsCsvTool.parse(dataSource(), DEFAULT.withHeader())) { map = commonsCsvTool.toMultiMap(parser.getRecords(), CONTRACT_ID); } @@ -116,7 +116,7 @@ public class CommonsCSVToolTest { final CSVFormat cvsFormat = DEFAULT.withHeader(); final Writer writer = new StringWriter(); - try (CSVParser parser = commonsCsvTool.parse(datasource(), cvsFormat)) { + try (CSVParser parser = commonsCsvTool.parse(dataSource(), cvsFormat)) { try (CSVPrinter printer = commonsCsvTool.printer(cvsFormat, writer)) { printer.printRecord(parser.getHeaderMap()); } @@ -127,7 +127,7 @@ public class CommonsCSVToolTest { @Test public void shallStripBomFromCsvFile() throws IOException { - try (CSVParser parser = commonsCsvTool().parse(datasource(BOM_CSV), EXCEL.withHeader().withDelimiter(';'))) { + try (CSVParser parser = commonsCsvTool().parse(dataSource(BOM_CSV), EXCEL.withHeader().withDelimiter(';'))) { assertEquals("Text", parser.getHeaderNames().get(0)); } } @@ -139,12 +139,12 @@ public class CommonsCSVToolTest { assertEquals('^', commonsCsvTool().toDelimiter("^")); } - private Datasource datasource() { - return datasource(TEST_CSV); + private DataSource dataSource() { + return dataSource(TEST_CSV); } - private Datasource datasource(File file) { - return DatasourceFactory.create(file, UTF_8); + private DataSource dataSource(File file) { + return DataSourceFactory.create(file, UTF_8); } private CommonsCSVTool commonsCsvTool() { diff --git a/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/excel/ExcelToolTest.java b/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/excel/ExcelToolTest.java index 1583001..7694a95 100644 --- a/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/excel/ExcelToolTest.java +++ b/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/excel/ExcelToolTest.java @@ -16,8 +16,8 @@ */ package org.apache.freemarker.generator.tools.excel; -import org.apache.freemarker.generator.base.datasource.Datasource; -import org.apache.freemarker.generator.base.datasource.DatasourceFactory; +import org.apache.freemarker.generator.base.datasource.DataSource; +import org.apache.freemarker.generator.base.datasource.DataSourceFactory; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.junit.Test; @@ -102,14 +102,14 @@ public class ExcelToolTest { } private Workbook workbook(File file) { - return excelTool().parse(datasource(file)); + return excelTool().parse(dataSource(file)); } private ExcelTool excelTool() { return new ExcelTool(); } - private Datasource datasource(File file) { - return DatasourceFactory.create(file, UTF_8); + private DataSource dataSource(File file) { + return DataSourceFactory.create(file, UTF_8); } } diff --git a/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/properties/PropertiesToolTest.java b/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/properties/PropertiesToolTest.java index 5a9fc79..388c1a5 100644 --- a/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/properties/PropertiesToolTest.java +++ b/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/properties/PropertiesToolTest.java @@ -16,8 +16,8 @@ */ package org.apache.freemarker.generator.tools.properties; -import org.apache.freemarker.generator.base.datasource.Datasource; -import org.apache.freemarker.generator.base.datasource.DatasourceFactory; +import org.apache.freemarker.generator.base.datasource.DataSource; +import org.apache.freemarker.generator.base.datasource.DataSourceFactory; import org.junit.Test; import static junit.framework.TestCase.assertEquals; @@ -29,8 +29,8 @@ public class PropertiesToolTest { @Test public void shallParsePropertiesDatasource() { - try (Datasource datasource = datasource(ANY_PROPERTIES_STRING)) { - assertEquals("bar", propertiesTool().parse(datasource).getProperty("foo")); + try (DataSource dataSource = dataSource(ANY_PROPERTIES_STRING)) { + assertEquals("bar", propertiesTool().parse(dataSource).getProperty("foo")); } } @@ -43,7 +43,7 @@ public class PropertiesToolTest { return new PropertiesTool(); } - private Datasource datasource(String value) { - return DatasourceFactory.create("test.properties", ANY_GROUP, value); + private DataSource dataSource(String value) { + return DataSourceFactory.create("test.properties", ANY_GROUP, value); } } diff --git a/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/snakeyaml/SnakeYamlToolTest.java b/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/snakeyaml/SnakeYamlToolTest.java index 90be879..0f3375c 100644 --- a/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/snakeyaml/SnakeYamlToolTest.java +++ b/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/snakeyaml/SnakeYamlToolTest.java @@ -16,8 +16,8 @@ */ package org.apache.freemarker.generator.tools.snakeyaml; -import org.apache.freemarker.generator.base.datasource.Datasource; -import org.apache.freemarker.generator.base.datasource.DatasourceFactory; +import org.apache.freemarker.generator.base.datasource.DataSource; +import org.apache.freemarker.generator.base.datasource.DataSourceFactory; import org.junit.Test; import java.util.List; @@ -37,8 +37,8 @@ public class SnakeYamlToolTest { @Test public void shallParseYamlDatasource() { - try (Datasource datasource = datasource(ANY_YAML_STRING)) { - final Map<String, Object> map = snakeYamlTool().parse(datasource); + try (DataSource dataSource = dataSource(ANY_YAML_STRING)) { + final Map<String, Object> map = snakeYamlTool().parse(dataSource); assertEquals(1, map.size()); assertEquals(3, ((List<?>) map.get("docker")).size()); @@ -57,7 +57,7 @@ public class SnakeYamlToolTest { return new SnakeYamlTool(); } - private Datasource datasource(String value) { - return DatasourceFactory.create("test.yml", ANY_GROUP, value); + private DataSource dataSource(String value) { + return DataSourceFactory.create("test.yml", ANY_GROUP, value); } } diff --git a/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/xml/XmlToolTest.java b/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/xml/XmlToolTest.java index c2b16fa..42f9dfd 100644 --- a/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/xml/XmlToolTest.java +++ b/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/xml/XmlToolTest.java @@ -17,8 +17,8 @@ package org.apache.freemarker.generator.tools.xml; import freemarker.ext.dom.NodeModel; -import org.apache.freemarker.generator.base.datasource.Datasource; -import org.apache.freemarker.generator.base.datasource.DatasourceFactory; +import org.apache.freemarker.generator.base.datasource.DataSource; +import org.apache.freemarker.generator.base.datasource.DataSourceFactory; import org.junit.Test; import static junit.framework.TestCase.assertEquals; @@ -38,8 +38,8 @@ public class XmlToolTest { @Test public void shallParseXmlDatasource() throws Exception { - try (Datasource datasource = datasource(ANY_XML_STRING)) { - final NodeModel model = xmlTool().parse(datasource); + try (DataSource dataSource = dataSource(ANY_XML_STRING)) { + final NodeModel model = xmlTool().parse(dataSource); assertNotNull(model); assertEquals(1, model.getChildNodes().size()); @@ -58,7 +58,7 @@ public class XmlToolTest { return new XmlTool(); } - private Datasource datasource(String value) { - return DatasourceFactory.create("test.xml", ANY_GROUP, value); + private DataSource dataSource(String value) { + return DataSourceFactory.create("test.xml", ANY_GROUP, value); } }
