You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by sg...@apache.org on 2020/02/05 07:22:30 UTC

[freemarker-generator] branch FREEMARKER-129 updated (aea5403 -> 6b8ec56)

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

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


    from aea5403  FREEMARKER-129 Extract submodule "freemarker-generator-base"
     new 1c5c9ba  FREEMARKER-129 Rename / move things around
     new 6b8ec56  FREEMARKER-129 Rename / move things around

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.md                                       |  17 ++
 maven-plugin/LICENSE => LICENSE                    |   0
 base/LICENSE                                       | 201 ---------------------
 cli/CHANGELOG.md                                   |  80 --------
 cli/LICENSE                                        | 201 ---------------------
 freemarker-generator-base/README.md                |   6 +
 {base => freemarker-generator-base}/pom.xml        |   2 +-
 .../base/activation/ByteArrayDataSource.java       |   1 +
 .../base/activation/InputStreamDataSource.java     |   4 +
 .../base/activation/StringDataSource.java          |   4 +
 .../generator/base/document/Document.java          |   8 +-
 .../generator/base/document/DocumentFactory.java   |   0
 .../generator/base/document/Documents.java         |   2 +-
 .../generator/base/document/DocumentsSupplier.java |  21 ++-
 .../base/file/PropertiesFileSupplier.java          |  32 ++--
 .../generator/base/file/RecursiveFileSupplier.java |  14 +-
 .../generator/base/util/ClosableUtils.java         |   0
 .../generator/base/util/CloseableReaper.java       |   0
 .../generator/base/util/StringUtils.java           |   0
 .../src/test/data/csv/file_01.csv                  |   0
 .../src/test/data/csv/file_02.csv                  |   0
 .../src/test/data/properties/test.properties       |   1 +
 .../src/test/data/txt/file_01.txt                  |   0
 .../generator/document/DocumentFactoryTest.java    |   0
 .../generator/document/DocumentTest.java           |   0
 .../generator/document/DocumentsSupplierTest.java  |  32 ++--
 .../generator/document/DocumentsTest.java          |   0
 .../generator/file/PropertiesFileSupplierTest.java |  30 +--
 .../generator/file}/RecursiveFileResolverTest.java |  30 +--
 {cli => freemarker-generator-cli}/README.md        |   0
 {cli => freemarker-generator-cli}/pom.xml          |   2 +-
 {cli => freemarker-generator-cli}/run-samples.sh   |   0
 .../site/image/contract.png                        | Bin
 .../site/image/excel-to-html.png                   | Bin
 .../site/image/github.png                          | Bin
 .../site/image/locker-test-users-pdf.png           | Bin
 .../site/image/transactions.png                    | Bin
 .../site/sample/accesslog/combined-access.log      |   0
 .../site/sample/csv/contract.csv                   |   0
 .../site/sample/csv/excel-export-utf8.csv          |   0
 .../site/sample/csv/locker-test-users.csv          |   0
 .../site/sample/csv/transactions.csv               |   0
 .../site/sample/csv/user.csv                       |   0
 .../site/sample/excel/test-multiple-sheets.xlsx    | Bin
 .../site/sample/excel/test.xls                     | Bin
 .../site/sample/excel/test.xlsx                    | Bin
 .../site/sample/html/dependencies.html             |   0
 .../site/sample/json/github-users.json             |   0
 .../site/sample/json/swagger-spec.json             |   0
 .../site/sample/properties/user_0001.properties    |   0
 .../site/sample/properties/user_0002.properties    |   0
 .../site/sample/properties/user_0003.properties    |   0
 .../site/sample/properties/user_0004.properties    |   0
 .../site/sample/xml/recipients.xml                 |   0
 .../site/sample/yaml/customer.yaml                 |   0
 .../src/main/assembly/app.xml                      |   0
 .../src/main/assembly/dist.xml                     |   0
 .../src/main/assembly/small.xml                    |   0
 .../src/main/config}/freemarker-cli.properties     |   0
 .../freemarker/generator/cli/FreeMarkerTask.java   |   4 +-
 .../org/apache/freemarker/generator/cli/Main.java  |   6 +-
 .../generator/cli/impl/ConfigurationSupplier.java  |   0
 .../cli/impl/TemplateDirectorySupplier.java        |   0
 .../generator/cli/impl/TemplateLoaderSupplier.java |   0
 .../generator/cli/impl/ToolsSupplier.java          |   2 +-
 .../freemarker/generator/cli/model/Settings.java   |   4 +-
 .../generator/cli/picocli/GitVersionProvider.java  |   0
 .../cli/tools/commonscsv/CommonsCSVTool.java       |   0
 .../cli/tools/commonsexec/CommonsExecTool.java     |   0
 .../generator/cli/tools/excel/ExcelTool.java       |   0
 .../cli/tools/freemarker/FreeMarkerTool.java       |   0
 .../generator/cli/tools/grok/GrokTool.java         |   0
 .../generator/cli/tools/grok/GrokWrapper.java      |   0
 .../generator/cli/tools/jsonpath/JsonPathTool.java |   0
 .../generator/cli/tools/jsoup/JsoupTool.java       |   0
 .../cli/tools/properties/PropertiesTool.java       |   0
 .../cli/tools/snakeyaml/SnakeYamlTool.java         |   0
 .../generator/cli/tools/system/SystemTool.java     |   0
 .../generator/cli/tools/uuid/UUIDTool.java         |   0
 .../generator/cli/tools/xml/XmlTool.java           |   0
 .../generator/cli}/util/LocaleUtils.java           |   4 +-
 .../cli}/util/NonClosableWriterWrapper.java        |   2 +-
 .../src/main/resources}/freemarker-cli.properties  |   0
 .../src/main/resources/patterns/firewalls          |   0
 .../src/main/resources/patterns/haproxy            |   0
 .../src/main/resources/patterns/java               |   0
 .../src/main/resources/patterns/linux-syslog       |   0
 .../src/main/resources/patterns/nagios             |   0
 .../src/main/resources/patterns/patterns           |   0
 .../src/main/resources/patterns/postfix            |   0
 .../src/main/resources/patterns/ruby               |   0
 .../src/main/scripts/run-samples.sh                |   0
 .../src/test/data/encoding/utf16.txt               | Bin
 .../src/test/data/encoding/utf8.txt                |   0
 .../freemarker/generator/cli/AbstractMainTest.java |   0
 .../freemarker/generator/cli/ExamplesTest.java     |   0
 .../freemarker/generator/cli/ManualTest.java       |   0
 .../generator/cli/SecurityRelatedTest.java         |   0
 .../generator/cli/SourceEncodingTest.java          |   0
 .../generator/cli/TemplateLoadingTest.java         |   0
 .../generator/cli/UserSuppliedLocaleTest.java      |   0
 .../cli/tools/commonscsv/CommonsCSVToolTest.java   |   0
 .../cli/tools/commonsexec/CommonsExecToolTest.java |   0
 .../generator/cli/tools/excel/ExcelToolTest.java   |   0
 .../cli/tools/freemarker/FreeMarkerToolTest.java   |   0
 .../generator/cli/tools/grok/GrokToolTest.java     |   0
 .../cli/tools/jsonpath/JsonPathToolTest.java       |   0
 .../generator/cli/tools/jsoup/JsoupToolTest.java   |   0
 .../cli/tools/properties/PropertiesToolTest.java   |   0
 .../cli/tools/snakeyaml/SnakeYamlToolTest.java     |   0
 .../generator/cli/tools/system/SystemToolTest.java |   0
 .../generator/cli/tools/uuid/UUIDToolTest.java     |   0
 .../generator/cli/tools/xml/XmlToolTest.java       |   0
 .../src/test/templates/echo.ftl                    |   0
 .../src/test/templates/environment.ftl             |   0
 .../src/test/templates/locale.ftl                  |   0
 .../src/test/templates/manual.ftl                  |   0
 .../src/test/templates/security/api.ftl            |   0
 .../src/test/templates/security/new.ftl            |   0
 .../src/test/templates/tools/csv.ftl               |   0
 .../templates/accesslog/combined-access.ftl        |   0
 .../templates/cat.ftl                              |   0
 .../templates/csv/csv/gatling-user-credentials.ftl |   0
 .../templates/csv/fo/transactions.ftl              |   0
 .../templates/csv/fo/transform.ftl                 |   0
 .../templates/csv/html/transactions.ftl            |   0
 .../templates/csv/html/transform.ftl               |   0
 .../templates/csv/md/transform.ftl                 |   0
 .../templates/csv/shell/curl.ftl                   |   0
 .../templates/csv/transform.ftl                    |   0
 .../templates/demo.ftl                             |   0
 .../templates/excel/csv/custom.ftl                 |   0
 .../templates/excel/csv/transform.ftl              |   0
 .../templates/excel/html/transform.ftl             |   0
 .../templates/excel/md/transform.ftl               |   0
 .../templates/html/csv/dependencies.ftl            |   0
 .../templates/info.ftl                             |   0
 .../templates/json/csv/swagger-endpoints.ftl       |   0
 .../templates/json/md/github-users.ftl             |   0
 .../templates/properties/csv/locker-test-users.ftl |   0
 .../templates/tsv/fo/transactions.ftl              |   0
 .../templates/xml/txt/recipients.ftl               |   0
 .../templates/yaml/txt/transform.ftl               |   0
 .../README.md                                      |   0
 .../pom.xml                                        |   2 +-
 .../freemarker/generator/maven/FactoryUtil.java    |   0
 .../freemarker/generator/maven/FreeMarkerMojo.java |   0
 .../generator/maven/GeneratingFileVisitor.java     |   0
 .../generator/maven/JsonPropertiesProvider.java    |   0
 .../generator/maven/OutputGenerator.java           |   0
 .../maven/OutputGeneratorPropertiesProvider.java   |   0
 .../test/data/freemarker-mojo/data/test.txt.json   |   0
 .../data/freemarker-mojo/freemarker.properties     |   0
 .../test/data/freemarker-mojo/template/test.ftl    |   0
 .../badPath/success-test.txt.json                  |   0
 .../data/badParent/bad-parent-test.txt.json        |   0
 .../data/mydir/bad-extension-test.txt              |   0
 .../data/mydir/bad-template-name.txt.json          |   0
 .../data/mydir/missing-template-name.txt.json      |   0
 .../data/mydir/missing-var-test.txt.json           |   0
 .../data/mydir/success-test-2.txt.json             |   0
 .../data/mydir/success-test.txt.json               |   0
 .../template/test-pom-only.ftl                     |   0
 .../data/generating-file-visitor/template/test.ftl |   0
 .../generator/maven/FreeMarkerMojoTest.java        |   0
 .../generator/maven/GeneratingFileVisitorTest.java |   0
 .../maven/JsonPropertiesProviderTest.java          |   0
 .../generator/maven/OutputGeneratorTest.java       |   0
 maven-plugin/CHANGELOG.md                          |  15 --
 maven-plugin/NOTICE                                |   5 -
 pom.xml                                            |   8 +-
 171 files changed, 141 insertions(+), 599 deletions(-)
 create mode 100644 CHANGELOG.md
 rename maven-plugin/LICENSE => LICENSE (100%)
 delete mode 100644 base/LICENSE
 delete mode 100644 cli/CHANGELOG.md
 delete mode 100644 cli/LICENSE
 create mode 100644 freemarker-generator-base/README.md
 rename {base => freemarker-generator-base}/pom.xml (97%)
 rename {base => freemarker-generator-base}/src/main/java/org/apache/freemarker/generator/base/activation/ByteArrayDataSource.java (99%)
 rename {base => freemarker-generator-base}/src/main/java/org/apache/freemarker/generator/base/activation/InputStreamDataSource.java (95%)
 rename {base => freemarker-generator-base}/src/main/java/org/apache/freemarker/generator/base/activation/StringDataSource.java (97%)
 rename {base => freemarker-generator-base}/src/main/java/org/apache/freemarker/generator/base/document/Document.java (96%)
 rename {base => freemarker-generator-base}/src/main/java/org/apache/freemarker/generator/base/document/DocumentFactory.java (100%)
 rename {base => freemarker-generator-base}/src/main/java/org/apache/freemarker/generator/base/document/Documents.java (97%)
 rename base/src/main/java/org/apache/freemarker/generator/base/document/DocumentSupplier.java => freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/document/DocumentsSupplier.java (76%)
 rename cli/src/main/java/org/apache/freemarker/generator/cli/impl/PropertiesFileResolver.java => freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/file/PropertiesFileSupplier.java (71%)
 rename base/src/main/java/org/apache/freemarker/generator/base/config/RecursiveFileResolver.java => freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/file/RecursiveFileSupplier.java (90%)
 rename {base => freemarker-generator-base}/src/main/java/org/apache/freemarker/generator/base/util/ClosableUtils.java (100%)
 rename {base => freemarker-generator-base}/src/main/java/org/apache/freemarker/generator/base/util/CloseableReaper.java (100%)
 rename {base => freemarker-generator-base}/src/main/java/org/apache/freemarker/generator/base/util/StringUtils.java (100%)
 rename {base => freemarker-generator-base}/src/test/data/csv/file_01.csv (100%)
 rename {base => freemarker-generator-base}/src/test/data/csv/file_02.csv (100%)
 create mode 100644 freemarker-generator-base/src/test/data/properties/test.properties
 rename {base => freemarker-generator-base}/src/test/data/txt/file_01.txt (100%)
 rename {base => freemarker-generator-base}/src/test/java/org/apache/freemarker/generator/document/DocumentFactoryTest.java (100%)
 rename {base => freemarker-generator-base}/src/test/java/org/apache/freemarker/generator/document/DocumentTest.java (100%)
 rename base/src/test/java/org/apache/freemarker/generator/document/DocumentsResolverTest.java => freemarker-generator-base/src/test/java/org/apache/freemarker/generator/document/DocumentsSupplierTest.java (71%)
 rename {base => freemarker-generator-base}/src/test/java/org/apache/freemarker/generator/document/DocumentsTest.java (100%)
 copy cli/src/test/java/org/apache/freemarker/generator/cli/TemplateLoadingTest.java => freemarker-generator-base/src/test/java/org/apache/freemarker/generator/file/PropertiesFileSupplierTest.java (51%)
 rename {base/src/test/java/org/apache/freemarker/generator/resolver => freemarker-generator-base/src/test/java/org/apache/freemarker/generator/file}/RecursiveFileResolverTest.java (73%)
 rename {cli => freemarker-generator-cli}/README.md (100%)
 rename {cli => freemarker-generator-cli}/pom.xml (99%)
 rename {cli => freemarker-generator-cli}/run-samples.sh (100%)
 rename {cli => freemarker-generator-cli}/site/image/contract.png (100%)
 rename {cli => freemarker-generator-cli}/site/image/excel-to-html.png (100%)
 rename {cli => freemarker-generator-cli}/site/image/github.png (100%)
 rename {cli => freemarker-generator-cli}/site/image/locker-test-users-pdf.png (100%)
 rename {cli => freemarker-generator-cli}/site/image/transactions.png (100%)
 rename {cli => freemarker-generator-cli}/site/sample/accesslog/combined-access.log (100%)
 rename {cli => freemarker-generator-cli}/site/sample/csv/contract.csv (100%)
 rename {cli => freemarker-generator-cli}/site/sample/csv/excel-export-utf8.csv (100%)
 rename {cli => freemarker-generator-cli}/site/sample/csv/locker-test-users.csv (100%)
 rename {cli => freemarker-generator-cli}/site/sample/csv/transactions.csv (100%)
 rename {cli => freemarker-generator-cli}/site/sample/csv/user.csv (100%)
 rename {cli => freemarker-generator-cli}/site/sample/excel/test-multiple-sheets.xlsx (100%)
 rename {cli => freemarker-generator-cli}/site/sample/excel/test.xls (100%)
 rename {cli => freemarker-generator-cli}/site/sample/excel/test.xlsx (100%)
 rename {cli => freemarker-generator-cli}/site/sample/html/dependencies.html (100%)
 rename {cli => freemarker-generator-cli}/site/sample/json/github-users.json (100%)
 rename {cli => freemarker-generator-cli}/site/sample/json/swagger-spec.json (100%)
 rename {cli => freemarker-generator-cli}/site/sample/properties/user_0001.properties (100%)
 rename {cli => freemarker-generator-cli}/site/sample/properties/user_0002.properties (100%)
 rename {cli => freemarker-generator-cli}/site/sample/properties/user_0003.properties (100%)
 rename {cli => freemarker-generator-cli}/site/sample/properties/user_0004.properties (100%)
 rename {cli => freemarker-generator-cli}/site/sample/xml/recipients.xml (100%)
 rename {cli => freemarker-generator-cli}/site/sample/yaml/customer.yaml (100%)
 rename {cli => freemarker-generator-cli}/src/main/assembly/app.xml (100%)
 rename {cli => freemarker-generator-cli}/src/main/assembly/dist.xml (100%)
 rename {cli => freemarker-generator-cli}/src/main/assembly/small.xml (100%)
 rename {cli/src/main/resources => freemarker-generator-cli/src/main/config}/freemarker-cli.properties (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/FreeMarkerTask.java (97%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/Main.java (97%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/impl/ConfigurationSupplier.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/impl/TemplateDirectorySupplier.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/impl/TemplateLoaderSupplier.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/impl/ToolsSupplier.java (98%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/model/Settings.java (98%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/picocli/GitVersionProvider.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/tools/commonscsv/CommonsCSVTool.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/tools/commonsexec/CommonsExecTool.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/tools/excel/ExcelTool.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/tools/freemarker/FreeMarkerTool.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/tools/grok/GrokTool.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/tools/grok/GrokWrapper.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/tools/jsonpath/JsonPathTool.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/tools/jsoup/JsoupTool.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/tools/properties/PropertiesTool.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/tools/snakeyaml/SnakeYamlTool.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/tools/system/SystemTool.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/tools/uuid/UUIDTool.java (100%)
 rename {cli => freemarker-generator-cli}/src/main/java/org/apache/freemarker/generator/cli/tools/xml/XmlTool.java (100%)
 rename {base/src/main/java/org/apache/freemarker/generator/base => freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli}/util/LocaleUtils.java (91%)
 rename {base/src/main/java/org/apache/freemarker/generator/base => freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli}/util/NonClosableWriterWrapper.java (98%)
 rename {cli/src/main/config => freemarker-generator-cli/src/main/resources}/freemarker-cli.properties (100%)
 rename {cli => freemarker-generator-cli}/src/main/resources/patterns/firewalls (100%)
 rename {cli => freemarker-generator-cli}/src/main/resources/patterns/haproxy (100%)
 rename {cli => freemarker-generator-cli}/src/main/resources/patterns/java (100%)
 rename {cli => freemarker-generator-cli}/src/main/resources/patterns/linux-syslog (100%)
 rename {cli => freemarker-generator-cli}/src/main/resources/patterns/nagios (100%)
 rename {cli => freemarker-generator-cli}/src/main/resources/patterns/patterns (100%)
 rename {cli => freemarker-generator-cli}/src/main/resources/patterns/postfix (100%)
 rename {cli => freemarker-generator-cli}/src/main/resources/patterns/ruby (100%)
 rename {cli => freemarker-generator-cli}/src/main/scripts/run-samples.sh (100%)
 rename {cli => freemarker-generator-cli}/src/test/data/encoding/utf16.txt (100%)
 rename {cli => freemarker-generator-cli}/src/test/data/encoding/utf8.txt (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/AbstractMainTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/ManualTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/SecurityRelatedTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/SourceEncodingTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/TemplateLoadingTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/UserSuppliedLocaleTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/tools/commonscsv/CommonsCSVToolTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/tools/commonsexec/CommonsExecToolTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/tools/excel/ExcelToolTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/tools/freemarker/FreeMarkerToolTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/tools/grok/GrokToolTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/tools/jsonpath/JsonPathToolTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/tools/jsoup/JsoupToolTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/tools/properties/PropertiesToolTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/tools/snakeyaml/SnakeYamlToolTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/tools/system/SystemToolTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/tools/uuid/UUIDToolTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/java/org/apache/freemarker/generator/cli/tools/xml/XmlToolTest.java (100%)
 rename {cli => freemarker-generator-cli}/src/test/templates/echo.ftl (100%)
 rename {cli => freemarker-generator-cli}/src/test/templates/environment.ftl (100%)
 rename {cli => freemarker-generator-cli}/src/test/templates/locale.ftl (100%)
 rename {cli => freemarker-generator-cli}/src/test/templates/manual.ftl (100%)
 rename {cli => freemarker-generator-cli}/src/test/templates/security/api.ftl (100%)
 rename {cli => freemarker-generator-cli}/src/test/templates/security/new.ftl (100%)
 rename {cli => freemarker-generator-cli}/src/test/templates/tools/csv.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/accesslog/combined-access.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/cat.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/csv/csv/gatling-user-credentials.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/csv/fo/transactions.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/csv/fo/transform.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/csv/html/transactions.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/csv/html/transform.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/csv/md/transform.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/csv/shell/curl.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/csv/transform.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/demo.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/excel/csv/custom.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/excel/csv/transform.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/excel/html/transform.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/excel/md/transform.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/html/csv/dependencies.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/info.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/json/csv/swagger-endpoints.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/json/md/github-users.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/properties/csv/locker-test-users.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/tsv/fo/transactions.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/xml/txt/recipients.ftl (100%)
 rename {cli => freemarker-generator-cli}/templates/yaml/txt/transform.ftl (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/README.md (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/pom.xml (99%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/main/java/org/apache/freemarker/generator/maven/FactoryUtil.java (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/main/java/org/apache/freemarker/generator/maven/FreeMarkerMojo.java (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/main/java/org/apache/freemarker/generator/maven/GeneratingFileVisitor.java (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/main/java/org/apache/freemarker/generator/maven/JsonPropertiesProvider.java (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/main/java/org/apache/freemarker/generator/maven/OutputGenerator.java (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/main/java/org/apache/freemarker/generator/maven/OutputGeneratorPropertiesProvider.java (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/data/freemarker-mojo/data/test.txt.json (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/data/freemarker-mojo/freemarker.properties (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/data/freemarker-mojo/template/test.ftl (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/data/generating-file-visitor/badPath/success-test.txt.json (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/data/generating-file-visitor/data/badParent/bad-parent-test.txt.json (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/data/generating-file-visitor/data/mydir/bad-extension-test.txt (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/data/generating-file-visitor/data/mydir/bad-template-name.txt.json (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/data/generating-file-visitor/data/mydir/missing-template-name.txt.json (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/data/generating-file-visitor/data/mydir/missing-var-test.txt.json (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/data/generating-file-visitor/data/mydir/success-test-2.txt.json (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/data/generating-file-visitor/data/mydir/success-test.txt.json (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/data/generating-file-visitor/template/test-pom-only.ftl (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/data/generating-file-visitor/template/test.ftl (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/java/org/apache/freemarker/generator/maven/FreeMarkerMojoTest.java (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/java/org/apache/freemarker/generator/maven/GeneratingFileVisitorTest.java (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/java/org/apache/freemarker/generator/maven/JsonPropertiesProviderTest.java (100%)
 rename {maven-plugin => freemarker-generator-maven-plugin}/src/test/java/org/apache/freemarker/generator/maven/OutputGeneratorTest.java (100%)
 delete mode 100644 maven-plugin/CHANGELOG.md
 delete mode 100644 maven-plugin/NOTICE


[freemarker-generator] 01/02: FREEMARKER-129 Rename / move things around

Posted by sg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 1c5c9ba20f6ff2e86f4b25811b24ff7498317cf5
Author: Siegfried Goeschl <si...@gmail.com>
AuthorDate: Wed Feb 5 07:57:55 2020 +0100

    FREEMARKER-129 Rename / move things around
---
 CHANGELOG.md                                       |  17 ++
 maven-plugin/LICENSE => LICENSE                    |   0
 base/LICENSE                                       | 201 ---------------------
 cli/CHANGELOG.md                                   |  80 --------
 cli/LICENSE                                        | 201 ---------------------
 freemarker-generator-base/README.md                |   6 +
 {base => freemarker-generator-base}/pom.xml        |   2 +-
 .../base/activation/ByteArrayDataSource.java       |   1 +
 .../base/activation/InputStreamDataSource.java     |   4 +
 .../base/activation/StringDataSource.java          |   4 +
 .../generator/base/document/Document.java          |   8 +-
 .../generator/base/document/DocumentFactory.java   |   0
 .../generator/base/document/Documents.java         |   2 +-
 .../generator/base/document/DocumentsSupplier.java |  21 ++-
 .../base/file/PropertiesFileSupplier.java          |  32 ++--
 .../generator/base/file/RecursiveFileSupplier.java |  14 +-
 .../generator/base/util/ClosableUtils.java         |   0
 .../generator/base/util/CloseableReaper.java       |   0
 .../generator/base/util/StringUtils.java           |   0
 .../src/test/data/csv/file_01.csv                  |   0
 .../src/test/data/csv/file_02.csv                  |   0
 .../src/test/data/properties/test.properties       |   1 +
 .../src/test/data/txt/file_01.txt                  |   0
 .../generator/document/DocumentFactoryTest.java    |   0
 .../generator/document/DocumentTest.java           |   0
 .../generator/document/DocumentsSupplierTest.java  |  32 ++--
 .../generator/document/DocumentsTest.java          |   0
 .../generator/file/PropertiesFileSupplierTest.java |  30 +--
 .../generator/file}/RecursiveFileResolverTest.java |  30 +--
 {cli => freemarker-generator-cli}/README.md        |   0
 {cli => freemarker-generator-cli}/pom.xml          |   0
 {cli => freemarker-generator-cli}/run-samples.sh   |   0
 .../site/image/contract.png                        | Bin
 .../site/image/excel-to-html.png                   | Bin
 .../site/image/github.png                          | Bin
 .../site/image/locker-test-users-pdf.png           | Bin
 .../site/image/transactions.png                    | Bin
 .../site/sample/accesslog/combined-access.log      |   0
 .../site/sample/csv/contract.csv                   |   0
 .../site/sample/csv/excel-export-utf8.csv          |   0
 .../site/sample/csv/locker-test-users.csv          |   0
 .../site/sample/csv/transactions.csv               |   0
 .../site/sample/csv/user.csv                       |   0
 .../site/sample/excel/test-multiple-sheets.xlsx    | Bin
 .../site/sample/excel/test.xls                     | Bin
 .../site/sample/excel/test.xlsx                    | Bin
 .../site/sample/html/dependencies.html             |   0
 .../site/sample/json/github-users.json             |   0
 .../site/sample/json/swagger-spec.json             |   0
 .../site/sample/properties/user_0001.properties    |   0
 .../site/sample/properties/user_0002.properties    |   0
 .../site/sample/properties/user_0003.properties    |   0
 .../site/sample/properties/user_0004.properties    |   0
 .../site/sample/xml/recipients.xml                 |   0
 .../site/sample/yaml/customer.yaml                 |   0
 .../src/main/assembly/app.xml                      |   0
 .../src/main/assembly/dist.xml                     |   0
 .../src/main/assembly/small.xml                    |   0
 .../src/main/config}/freemarker-cli.properties     |   0
 .../freemarker/generator/cli/FreeMarkerTask.java   |   4 +-
 .../org/apache/freemarker/generator/cli/Main.java  |   6 +-
 .../generator/cli/impl/ConfigurationSupplier.java  |   0
 .../cli/impl/TemplateDirectorySupplier.java        |   0
 .../generator/cli/impl/TemplateLoaderSupplier.java |   0
 .../generator/cli/impl/ToolsSupplier.java          |   2 +-
 .../freemarker/generator/cli/model/Settings.java   |   4 +-
 .../generator/cli/picocli/GitVersionProvider.java  |   0
 .../cli/tools/commonscsv/CommonsCSVTool.java       |   0
 .../cli/tools/commonsexec/CommonsExecTool.java     |   0
 .../generator/cli/tools/excel/ExcelTool.java       |   0
 .../cli/tools/freemarker/FreeMarkerTool.java       |   0
 .../generator/cli/tools/grok/GrokTool.java         |   0
 .../generator/cli/tools/grok/GrokWrapper.java      |   0
 .../generator/cli/tools/jsonpath/JsonPathTool.java |   0
 .../generator/cli/tools/jsoup/JsoupTool.java       |   0
 .../cli/tools/properties/PropertiesTool.java       |   0
 .../cli/tools/snakeyaml/SnakeYamlTool.java         |   0
 .../generator/cli/tools/system/SystemTool.java     |   0
 .../generator/cli/tools/uuid/UUIDTool.java         |   0
 .../generator/cli/tools/xml/XmlTool.java           |   0
 .../generator/cli}/util/LocaleUtils.java           |   4 +-
 .../cli}/util/NonClosableWriterWrapper.java        |   2 +-
 .../src/main/resources}/freemarker-cli.properties  |   0
 .../src/main/resources/patterns/firewalls          |   0
 .../src/main/resources/patterns/haproxy            |   0
 .../src/main/resources/patterns/java               |   0
 .../src/main/resources/patterns/linux-syslog       |   0
 .../src/main/resources/patterns/nagios             |   0
 .../src/main/resources/patterns/patterns           |   0
 .../src/main/resources/patterns/postfix            |   0
 .../src/main/resources/patterns/ruby               |   0
 .../src/main/scripts/run-samples.sh                |   0
 .../src/test/data/encoding/utf16.txt               | Bin
 .../src/test/data/encoding/utf8.txt                |   0
 .../freemarker/generator/cli/AbstractMainTest.java |   0
 .../freemarker/generator/cli/ExamplesTest.java     |   0
 .../freemarker/generator/cli/ManualTest.java       |   0
 .../generator/cli/SecurityRelatedTest.java         |   0
 .../generator/cli/SourceEncodingTest.java          |   0
 .../generator/cli/TemplateLoadingTest.java         |   0
 .../generator/cli/UserSuppliedLocaleTest.java      |   0
 .../cli/tools/commonscsv/CommonsCSVToolTest.java   |   0
 .../cli/tools/commonsexec/CommonsExecToolTest.java |   0
 .../generator/cli/tools/excel/ExcelToolTest.java   |   0
 .../cli/tools/freemarker/FreeMarkerToolTest.java   |   0
 .../generator/cli/tools/grok/GrokToolTest.java     |   0
 .../cli/tools/jsonpath/JsonPathToolTest.java       |   0
 .../generator/cli/tools/jsoup/JsoupToolTest.java   |   0
 .../cli/tools/properties/PropertiesToolTest.java   |   0
 .../cli/tools/snakeyaml/SnakeYamlToolTest.java     |   0
 .../generator/cli/tools/system/SystemToolTest.java |   0
 .../generator/cli/tools/uuid/UUIDToolTest.java     |   0
 .../generator/cli/tools/xml/XmlToolTest.java       |   0
 .../src/test/templates/echo.ftl                    |   0
 .../src/test/templates/environment.ftl             |   0
 .../src/test/templates/locale.ftl                  |   0
 .../src/test/templates/manual.ftl                  |   0
 .../src/test/templates/security/api.ftl            |   0
 .../src/test/templates/security/new.ftl            |   0
 .../src/test/templates/tools/csv.ftl               |   0
 .../templates/accesslog/combined-access.ftl        |   0
 .../templates/cat.ftl                              |   0
 .../templates/csv/csv/gatling-user-credentials.ftl |   0
 .../templates/csv/fo/transactions.ftl              |   0
 .../templates/csv/fo/transform.ftl                 |   0
 .../templates/csv/html/transactions.ftl            |   0
 .../templates/csv/html/transform.ftl               |   0
 .../templates/csv/md/transform.ftl                 |   0
 .../templates/csv/shell/curl.ftl                   |   0
 .../templates/csv/transform.ftl                    |   0
 .../templates/demo.ftl                             |   0
 .../templates/excel/csv/custom.ftl                 |   0
 .../templates/excel/csv/transform.ftl              |   0
 .../templates/excel/html/transform.ftl             |   0
 .../templates/excel/md/transform.ftl               |   0
 .../templates/html/csv/dependencies.ftl            |   0
 .../templates/info.ftl                             |   0
 .../templates/json/csv/swagger-endpoints.ftl       |   0
 .../templates/json/md/github-users.ftl             |   0
 .../templates/properties/csv/locker-test-users.ftl |   0
 .../templates/tsv/fo/transactions.ftl              |   0
 .../templates/xml/txt/recipients.ftl               |   0
 .../templates/yaml/txt/transform.ftl               |   0
 .../README.md                                      |   0
 .../pom.xml                                        |   0
 .../freemarker/generator/maven/FactoryUtil.java    |   0
 .../freemarker/generator/maven/FreeMarkerMojo.java |   0
 .../generator/maven/GeneratingFileVisitor.java     |   0
 .../generator/maven/JsonPropertiesProvider.java    |   0
 .../generator/maven/OutputGenerator.java           |   0
 .../maven/OutputGeneratorPropertiesProvider.java   |   0
 .../test/data/freemarker-mojo/data/test.txt.json   |   0
 .../data/freemarker-mojo/freemarker.properties     |   0
 .../test/data/freemarker-mojo/template/test.ftl    |   0
 .../badPath/success-test.txt.json                  |   0
 .../data/badParent/bad-parent-test.txt.json        |   0
 .../data/mydir/bad-extension-test.txt              |   0
 .../data/mydir/bad-template-name.txt.json          |   0
 .../data/mydir/missing-template-name.txt.json      |   0
 .../data/mydir/missing-var-test.txt.json           |   0
 .../data/mydir/success-test-2.txt.json             |   0
 .../data/mydir/success-test.txt.json               |   0
 .../template/test-pom-only.ftl                     |   0
 .../data/generating-file-visitor/template/test.ftl |   0
 .../generator/maven/FreeMarkerMojoTest.java        |   0
 .../generator/maven/GeneratingFileVisitorTest.java |   0
 .../maven/JsonPropertiesProviderTest.java          |   0
 .../generator/maven/OutputGeneratorTest.java       |   0
 maven-plugin/CHANGELOG.md                          |  15 --
 maven-plugin/NOTICE                                |   5 -
 pom.xml                                            |   8 +-
 171 files changed, 139 insertions(+), 597 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..a476f73
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,17 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. We try to adhere to https://github.com/olivierlacan/keep-a-changelog.
+
+## 0.1.0-SNAPSHOT
+
+### Added
+
+### Changed
+
+[FREEMARKER-129] freemarker-generator: Merge "freemarker-cli" into "freemarker-generator"
+
+### Deleted
+
+### Fixed 
+
+[FREEMARKER-129]: https://issues.apache.org/jira/browse/FREEMARKER-129
\ No newline at end of file
diff --git a/maven-plugin/LICENSE b/LICENSE
similarity index 100%
rename from maven-plugin/LICENSE
rename to LICENSE
diff --git a/base/LICENSE b/base/LICENSE
deleted file mode 100644
index 8dada3e..0000000
--- a/base/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} {name of copyright owner}
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md
deleted file mode 100644
index 649506c..0000000
--- a/cli/CHANGELOG.md
+++ /dev/null
@@ -1,80 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. We try to adhere to https://github.com/olivierlacan/keep-a-changelog.
-
-## 2.0.0-BETA-6-SNAPSHOT - TBA
-
-### Changed
-- Improve Swagger JSON to CSV example
-- Using `ALLOWS_NOTHING_RESOLVER` built-in class resolver
-- Silently skipped tools whose implementation classes can't be even loaded 
-
-## [2.0.0-BETA-5] - 2019-12-22
-
-### Added
-- Support interactive mode (`-i` or `--interactive`) to supply FreeMarker templates on the command line
-- `UUIDTool` to create random and named UUIDs
-- `ExcelTool` returns raw table consisting of the underlying Java data type
-- `Document#getUnsafeInputStream` to get a input stream which needs to be closed by the caller
-- `CSVTool` allows parsing plain string CSV
-- Tools are loaded from `freemarker-cli.properties` and freely configurable
-- Add RAT & PMD report to Maven site generation
-- Add `-times` command line option to execute the transformation N times
-
-### Changed
-- Renamed `ExcelTool#parseSheet` to `ExcelTool#toTable`
-- Removed various Tool constructors taking `Settings`
-- Do not use `documents[0]` as top-level variable - use `Documents.get(0)` instead
-- Available CSV formats are exposed using the CSVTool and not the global data model
-- Expose user-supplied system properties as top-level variables when using `-E`
-- Keep track of all `Closables` created & handed out to FreeMarker template rendering
-- Move `ObjectConstructor`, `Statics` and `Enums` into `FreeMarkerTool`
-
-### Deleted
-- `Environment` & `SystemProperties` were deleted and the functionality moved to `SystemTool`
-- All `DataModel` classes were deleted
-
-## [2.0.0-BETA-4] - 2019-11-12
-
-### Added
-- Support executing arbitrary command based on Apache Commons Exec
-- The `JsonPathTool` supports parsing a string
-
-## [2.0.0-BETA-3] - 2019-10-20
-
-### Added
-- Keeping track of internally created "Closables" of a document and closing them after rendering
-- Define CSV delimiters using symbolic symbolic names, e.g. "COMMA", "TAB", etc.
-
-### Fixed
-- Use expected order of FreeMarker MultiTemplateLoader to reolve a template
-
-## [2.0.0-BETA-2] - 2019-10-15
-
-### Added
-- Add "-E" command line option to expose all environment variable as top-level entry in the data model 
-- Support for [Grok](https://github.com/thekrakken/java-grok) as better alternative for regular expressions
-- Support for streaming textual content over `System.in` to allow processing of arbitrary large source files
-- Display Git version information when using `-V` command line option
-
-### Fixed
-- ExcelTool uses MissingCellPolicy.CREATE_NULL_AS_BLANK to handle missing cells
-- Pass the correct output encoding to writer
-- Allow absolute template file names which are loaded directly instead of using TemplateLoaders
-
-## [2.0.0-BETA-1] - 2019-10-12
-
-### Added
-- Support for YAML files using SnakeYAML
-
-### Changed
-- Upgraded dependencies
-- Migrated from Groovy to plain old JDK 1.8
-- Works as standalone application with OS wrapper scripts
-- Existing templates will break due to naming changes of injected helper classes
-
-[2.0.0-BETA-5]: https://github.com/sgoeschl/freemarker-cli/releases/tag/v2.0.0-BETA-5
-[2.0.0-BETA-4]: https://github.com/sgoeschl/freemarker-cli/releases/tag/v2.0.0-BETA-4
-[2.0.0-BETA-3]: https://github.com/sgoeschl/freemarker-cli/releases/tag/v2.0.0-BETA-3
-[2.0.0-BETA-2]: https://github.com/sgoeschl/freemarker-cli/releases/tag/v2.0.0-BETA-2
-[2.0.0-BETA-1]: https://github.com/sgoeschl/freemarker-cli/releases/tag/v2.0.0-BETA-1
diff --git a/cli/LICENSE b/cli/LICENSE
deleted file mode 100644
index 8dada3e..0000000
--- a/cli/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} {name of copyright owner}
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/freemarker-generator-base/README.md b/freemarker-generator-base/README.md
new file mode 100644
index 0000000..1d6a45f
--- /dev/null
+++ b/freemarker-generator-base/README.md
@@ -0,0 +1,6 @@
+# Overview
+
+This module provides common functionality for `freemarker-generator-cli` and `freemarker-generator-maven-plugin` such as
+
+* Various implementation of `DataSources`
+* Implementation of `Document` and their handling
diff --git a/base/pom.xml b/freemarker-generator-base/pom.xml
similarity index 97%
rename from base/pom.xml
rename to freemarker-generator-base/pom.xml
index 64f46da..d86e3d3 100644
--- a/base/pom.xml
+++ b/freemarker-generator-base/pom.xml
@@ -27,7 +27,7 @@
 
     <artifactId>freemarker-generator-base</artifactId>
     <packaging>jar</packaging>
-    <name>Apache FreeMarker Generator: CLI Base</name>
+    <name>Apache FreeMarker Generator: Base</name>
     <description>Command-line client for Apache FreeMarker</description>
     <inceptionYear>2020</inceptionYear>
 
diff --git a/base/src/main/java/org/apache/freemarker/generator/base/activation/ByteArrayDataSource.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/activation/ByteArrayDataSource.java
similarity index 99%
rename from base/src/main/java/org/apache/freemarker/generator/base/activation/ByteArrayDataSource.java
rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/activation/ByteArrayDataSource.java
index a58328b..ef9aaf3 100644
--- a/base/src/main/java/org/apache/freemarker/generator/base/activation/ByteArrayDataSource.java
+++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/activation/ByteArrayDataSource.java
@@ -25,6 +25,7 @@ import java.io.OutputStream;
 import static java.util.Objects.requireNonNull;
 
 public class ByteArrayDataSource implements DataSource {
+
     private static final String DEFAULT_CONTENT_TYPE = "application/octet-stream";
 
     private final String name;
diff --git a/base/src/main/java/org/apache/freemarker/generator/base/activation/InputStreamDataSource.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/activation/InputStreamDataSource.java
similarity index 95%
rename from base/src/main/java/org/apache/freemarker/generator/base/activation/InputStreamDataSource.java
rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/activation/InputStreamDataSource.java
index 72c0ecb..fa404fe 100644
--- a/base/src/main/java/org/apache/freemarker/generator/base/activation/InputStreamDataSource.java
+++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/activation/InputStreamDataSource.java
@@ -22,6 +22,10 @@ import java.io.OutputStream;
 
 import static java.util.Objects.requireNonNull;
 
+/**
+ * Wraps an InputStream into a DataSource. Please note that the input stream
+ * can be consumed only once.
+ */
 public class InputStreamDataSource implements DataSource {
 
     private static final String DEFAULT_CONTENT_TYPE = "application/octet-stream";
diff --git a/base/src/main/java/org/apache/freemarker/generator/base/activation/StringDataSource.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/activation/StringDataSource.java
similarity index 97%
rename from base/src/main/java/org/apache/freemarker/generator/base/activation/StringDataSource.java
rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/activation/StringDataSource.java
index 3c871c5..aea906f 100644
--- a/base/src/main/java/org/apache/freemarker/generator/base/activation/StringDataSource.java
+++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/activation/StringDataSource.java
@@ -65,6 +65,10 @@ public class StringDataSource implements DataSource {
         return content;
     }
 
+    public Charset getCharset() {
+        return charset;
+    }
+
     @Override
     public String toString() {
         return "StringDataSource{" +
diff --git a/base/src/main/java/org/apache/freemarker/generator/base/document/Document.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/document/Document.java
similarity index 96%
rename from base/src/main/java/org/apache/freemarker/generator/base/document/Document.java
rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/document/Document.java
index b5bed63..36c51b1 100644
--- a/base/src/main/java/org/apache/freemarker/generator/base/document/Document.java
+++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/document/Document.java
@@ -103,7 +103,7 @@ public class Document implements Closeable {
      * @throws IOException Operation failed
      */
     public InputStream getInputStream() throws IOException {
-        return closables.add(dataSource.getInputStream());
+        return closables.add(getUnsafeInputStream());
     }
 
     /**
@@ -122,7 +122,7 @@ public class Document implements Closeable {
 
     public String getText(String charsetName) throws IOException {
         final StringWriter writer = new StringWriter();
-        try (InputStream is = dataSource.getInputStream()) {
+        try (InputStream is = getUnsafeInputStream()) {
             IOUtils.copy(is, writer, forName(charsetName));
             return writer.toString();
         }
@@ -148,7 +148,7 @@ public class Document implements Closeable {
      * @throws IOException if an I/O error occurs
      */
     public List<String> getLines(String charsetName) throws IOException {
-        try (InputStream inputStream = dataSource.getInputStream()) {
+        try (InputStream inputStream = getUnsafeInputStream()) {
             return IOUtils.readLines(inputStream, charsetName);
         }
     }
@@ -179,7 +179,7 @@ public class Document implements Closeable {
     }
 
     public byte[] getBytes() throws IOException {
-        try (InputStream inputStream = dataSource.getInputStream()) {
+        try (InputStream inputStream = getUnsafeInputStream()) {
             return IOUtils.toByteArray(inputStream);
         }
     }
diff --git a/base/src/main/java/org/apache/freemarker/generator/base/document/DocumentFactory.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/document/DocumentFactory.java
similarity index 100%
rename from base/src/main/java/org/apache/freemarker/generator/base/document/DocumentFactory.java
rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/document/DocumentFactory.java
diff --git a/base/src/main/java/org/apache/freemarker/generator/base/document/Documents.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/document/Documents.java
similarity index 97%
rename from base/src/main/java/org/apache/freemarker/generator/base/document/Documents.java
rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/document/Documents.java
index f92681c..51fe18d 100644
--- a/base/src/main/java/org/apache/freemarker/generator/base/document/Documents.java
+++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/document/Documents.java
@@ -28,7 +28,7 @@ import static java.util.stream.Collectors.toList;
 import static org.apache.commons.io.FilenameUtils.wildcardMatch;
 
 /**
- * Container for documents with a couple of convinience functions to select
+ * Container for documents with a couple of convenience functions to select
  * a subset of documents.
  */
 public class Documents implements Closeable {
diff --git a/base/src/main/java/org/apache/freemarker/generator/base/document/DocumentSupplier.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/document/DocumentsSupplier.java
similarity index 76%
rename from base/src/main/java/org/apache/freemarker/generator/base/document/DocumentSupplier.java
rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/document/DocumentsSupplier.java
index 7a04522..0e0af1d 100644
--- a/base/src/main/java/org/apache/freemarker/generator/base/document/DocumentSupplier.java
+++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/document/DocumentsSupplier.java
@@ -17,7 +17,7 @@
 package org.apache.freemarker.generator.base.document;
 
 
-import org.apache.freemarker.generator.base.config.RecursiveFileResolver;
+import org.apache.freemarker.generator.base.file.RecursiveFileSupplier;
 
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -31,9 +31,10 @@ import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toList;
 
 /**
- * Supplies a list of input files &amp; directories.
+ * Create a list of <code>Document</code> based on a list of sources consisting of
+ * URLs, directories and files.
  */
-public class DocumentSupplier implements Supplier<List<Document>> {
+public class DocumentsSupplier implements Supplier<List<Document>> {
 
     /** List of input files and/or directories */
     private final Collection<String> sources;
@@ -41,10 +42,10 @@ public class DocumentSupplier implements Supplier<List<Document>> {
     /** Include pattern for resolving files from a directory */
     private final String include;
 
-    /** The charset to use for loading a text file */
+    /** The charset to use for loading text files */
     private final Charset charset;
 
-    public DocumentSupplier(Collection<String> sources, String include, Charset charset) {
+    public DocumentsSupplier(Collection<String> sources, String include, Charset charset) {
         this.sources = requireNonNull(sources);
         this.include = include;
         this.charset = charset;
@@ -66,18 +67,18 @@ public class DocumentSupplier implements Supplier<List<Document>> {
         }
     }
 
-    private Document resolveUrl(String url) {
+    private static Document resolveUrl(String url) {
         return DocumentFactory.create(toUrl(url));
     }
 
-    private List<Document> resolveFile(String source, String include, Charset charset) {
-        return fileResolver(source, include).resolve().stream()
+    private static List<Document> resolveFile(String source, String include, Charset charset) {
+        return fileResolver(source, include).get().stream()
                 .map(file -> DocumentFactory.create(file, charset))
                 .collect(toList());
     }
 
-    private RecursiveFileResolver fileResolver(String source, String include) {
-        return new RecursiveFileResolver(source, include);
+    private static RecursiveFileSupplier fileResolver(String source, String include) {
+        return new RecursiveFileSupplier(singletonList(source), include);
     }
 
     private static boolean isUrl(String value) {
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/impl/PropertiesFileResolver.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/file/PropertiesFileSupplier.java
similarity index 71%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/impl/PropertiesFileResolver.java
rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/file/PropertiesFileSupplier.java
index 935d365..67141b9 100644
--- a/cli/src/main/java/org/apache/freemarker/generator/cli/impl/PropertiesFileResolver.java
+++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/file/PropertiesFileSupplier.java
@@ -14,29 +14,35 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.freemarker.generator.cli.impl;
+package org.apache.freemarker.generator.base.file;
 
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Properties;
+import java.util.function.Supplier;
 
 import static java.util.Objects.requireNonNull;
 
 /**
- * Resolve a given properties file either from the file system or the classapth.
+ * Resolve a given properties file either from the file system or the classpath.
  */
-public class PropertiesFileResolver {
+public class PropertiesFileSupplier implements Supplier<Properties> {
 
     private final String fileName;
 
-    public PropertiesFileResolver(String fileName) {
+    public PropertiesFileSupplier(String fileName) {
         this.fileName = requireNonNull(fileName);
     }
 
-    public Properties resolve() throws IOException {
-        return resolveFromFileSystemOrClassPath(fileName);
+    @Override
+    public Properties get() {
+        try {
+            return resolveFromFileSystemOrClassPath(fileName);
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to supply properties file:" + fileName);
+        }
     }
 
     private static Properties resolveFromFileSystemOrClassPath(String fileName) throws IOException {
@@ -46,26 +52,28 @@ public class PropertiesFileResolver {
 
     private static Properties resolveFromClassPath(String fileName) throws IOException {
         final Properties properties = new Properties();
-        final InputStream stream = PropertiesFileResolver.class.getResourceAsStream(resourceName(fileName));
+        final InputStream is = PropertiesFileSupplier.class.getResourceAsStream(resourceName(fileName));
 
-        if (stream == null) {
+        if (is == null) {
             return null;
         }
 
         try {
-            properties.load(stream);
+            properties.load(is);
             return properties;
         } finally {
-            stream.close();
+            is.close();
         }
     }
 
     private static Properties resolveFromFileSystem(String fileName) throws IOException {
-        if (!new File(fileName).exists()) {
+        final File file = new File(fileName);
+
+        if (!file.exists()) {
             return null;
         }
 
-        try (InputStream input = new FileInputStream("fileName")) {
+        try (InputStream input = new FileInputStream(file)) {
             final Properties properties = new Properties();
             properties.load(input);
             return properties;
diff --git a/base/src/main/java/org/apache/freemarker/generator/base/config/RecursiveFileResolver.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/file/RecursiveFileSupplier.java
similarity index 90%
rename from base/src/main/java/org/apache/freemarker/generator/base/config/RecursiveFileResolver.java
rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/file/RecursiveFileSupplier.java
index 467494b..b896383 100644
--- a/base/src/main/java/org/apache/freemarker/generator/base/config/RecursiveFileResolver.java
+++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/file/RecursiveFileSupplier.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.freemarker.generator.base.config;
+package org.apache.freemarker.generator.base.file;
 
 import org.apache.commons.io.filefilter.AndFileFilter;
 import org.apache.commons.io.filefilter.IOFileFilter;
@@ -24,6 +24,7 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.function.Supplier;
 
 import static java.util.Collections.emptyList;
 import static java.util.Collections.singletonList;
@@ -36,7 +37,7 @@ import static org.apache.commons.io.filefilter.HiddenFileFilter.VISIBLE;
  * Resolve a list of files or directories recursively and
  * skip hidden files &amp; directories.
  */
-public class RecursiveFileResolver {
+public class RecursiveFileSupplier implements Supplier<List<File>> {
 
     public static final String MATCH_ALL = "*";
 
@@ -44,17 +45,14 @@ public class RecursiveFileResolver {
     private final IOFileFilter fileFilter;
     private final IOFileFilter directoryFilter;
 
-    public RecursiveFileResolver(String source, String includes) {
-        this(singletonList(source), includes);
-    }
-
-    public RecursiveFileResolver(Collection<String> sources, String includes) {
+    public RecursiveFileSupplier(Collection<String> sources, String includes) {
         this.sources = requireNonNull(sources);
         this.fileFilter = fileFilter(includes);
         this.directoryFilter = directoryFilter();
     }
 
-    public List<File> resolve() {
+    @Override
+    public List<File> get() {
         return sources.stream()
                 .map(this::resolve)
                 .flatMap(Collection::stream)
diff --git a/base/src/main/java/org/apache/freemarker/generator/base/util/ClosableUtils.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/ClosableUtils.java
similarity index 100%
rename from base/src/main/java/org/apache/freemarker/generator/base/util/ClosableUtils.java
rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/ClosableUtils.java
diff --git a/base/src/main/java/org/apache/freemarker/generator/base/util/CloseableReaper.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/CloseableReaper.java
similarity index 100%
rename from base/src/main/java/org/apache/freemarker/generator/base/util/CloseableReaper.java
rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/CloseableReaper.java
diff --git a/base/src/main/java/org/apache/freemarker/generator/base/util/StringUtils.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/StringUtils.java
similarity index 100%
rename from base/src/main/java/org/apache/freemarker/generator/base/util/StringUtils.java
rename to freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/StringUtils.java
diff --git a/base/src/test/data/csv/file_01.csv b/freemarker-generator-base/src/test/data/csv/file_01.csv
similarity index 100%
rename from base/src/test/data/csv/file_01.csv
rename to freemarker-generator-base/src/test/data/csv/file_01.csv
diff --git a/base/src/test/data/csv/file_02.csv b/freemarker-generator-base/src/test/data/csv/file_02.csv
similarity index 100%
rename from base/src/test/data/csv/file_02.csv
rename to freemarker-generator-base/src/test/data/csv/file_02.csv
diff --git a/freemarker-generator-base/src/test/data/properties/test.properties b/freemarker-generator-base/src/test/data/properties/test.properties
new file mode 100644
index 0000000..c9f0304
--- /dev/null
+++ b/freemarker-generator-base/src/test/data/properties/test.properties
@@ -0,0 +1 @@
+foo=bar
\ No newline at end of file
diff --git a/base/src/test/data/txt/file_01.txt b/freemarker-generator-base/src/test/data/txt/file_01.txt
similarity index 100%
rename from base/src/test/data/txt/file_01.txt
rename to freemarker-generator-base/src/test/data/txt/file_01.txt
diff --git a/base/src/test/java/org/apache/freemarker/generator/document/DocumentFactoryTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/document/DocumentFactoryTest.java
similarity index 100%
rename from base/src/test/java/org/apache/freemarker/generator/document/DocumentFactoryTest.java
rename to freemarker-generator-base/src/test/java/org/apache/freemarker/generator/document/DocumentFactoryTest.java
diff --git a/base/src/test/java/org/apache/freemarker/generator/document/DocumentTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/document/DocumentTest.java
similarity index 100%
rename from base/src/test/java/org/apache/freemarker/generator/document/DocumentTest.java
rename to freemarker-generator-base/src/test/java/org/apache/freemarker/generator/document/DocumentTest.java
diff --git a/base/src/test/java/org/apache/freemarker/generator/document/DocumentsResolverTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/document/DocumentsSupplierTest.java
similarity index 71%
rename from base/src/test/java/org/apache/freemarker/generator/document/DocumentsResolverTest.java
rename to freemarker-generator-base/src/test/java/org/apache/freemarker/generator/document/DocumentsSupplierTest.java
index 1e148da..b052e0d 100644
--- a/base/src/test/java/org/apache/freemarker/generator/document/DocumentsResolverTest.java
+++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/document/DocumentsSupplierTest.java
@@ -17,7 +17,7 @@
 package org.apache.freemarker.generator.document;
 
 import org.apache.freemarker.generator.base.document.Document;
-import org.apache.freemarker.generator.base.document.DocumentSupplier;
+import org.apache.freemarker.generator.base.document.DocumentsSupplier;
 import org.junit.Test;
 
 import java.nio.charset.Charset;
@@ -25,11 +25,11 @@ import java.util.Arrays;
 import java.util.List;
 
 import static java.util.Collections.singletonList;
-import static org.apache.freemarker.generator.base.config.RecursiveFileResolver.MATCH_ALL;
+import static org.apache.freemarker.generator.base.file.RecursiveFileSupplier.MATCH_ALL;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-public class DocumentsResolverTest {
+public class DocumentsSupplierTest {
 
     private static final String ANY_FILE = "./pom.xml";
     private static final String ANY_DIRECTORY = "./src/test/data";
@@ -41,21 +41,21 @@ public class DocumentsResolverTest {
 
     @Test
     public void shouldResolveMultipleFiles() {
-        final List<String> sources = Arrays.asList("pom.xml", "LICENSE");
+        final List<String> sources = Arrays.asList("pom.xml", "README.md");
         assertEquals(2, supplier(sources, null).get().size());
         assertEquals(2, supplier(sources, "").get().size());
         assertEquals(2, supplier(sources, "*").get().size());
         assertEquals(1, supplier(sources, "*.xml").get().size());
         assertEquals(1, supplier(sources, "*.x**").get().size());
-        assertEquals(1, supplier(sources, "LICENSE").get().size());
+        assertEquals(1, supplier(sources, "*.md").get().size());
         assertEquals(0, supplier(sources, "*.bin").get().size());
     }
 
     @Test
     public void shouldResolveDirectory() {
-        assertEquals(3, supplier(ANY_DIRECTORY, null).get().size());
-        assertEquals(3, supplier(ANY_DIRECTORY, "").get().size());
-        assertEquals(3, supplier(ANY_DIRECTORY, "*").get().size());
+        assertEquals(4, supplier(ANY_DIRECTORY, null).get().size());
+        assertEquals(4, supplier(ANY_DIRECTORY, "").get().size());
+        assertEquals(4, supplier(ANY_DIRECTORY, "*").get().size());
         assertEquals(2, supplier(ANY_DIRECTORY, "*.csv").get().size());
         assertEquals(1, supplier(ANY_DIRECTORY, "*.t*").get().size());
         assertEquals(0, supplier(ANY_DIRECTORY, "*.bin").get().size());
@@ -63,10 +63,10 @@ public class DocumentsResolverTest {
 
     @Test
     public void shouldResolveFilesAndDirectory() {
-        final List<String> sources = Arrays.asList("pom.xml", "LICENSE", ANY_DIRECTORY);
-        assertEquals(5, supplier(sources, null).get().size());
-        assertEquals(5, supplier(sources, "").get().size());
-        assertEquals(5, supplier(sources, "*").get().size());
+        final List<String> sources = Arrays.asList("pom.xml", "README.md", ANY_DIRECTORY);
+        assertEquals(6, supplier(sources, null).get().size());
+        assertEquals(6, supplier(sources, "").get().size());
+        assertEquals(6, supplier(sources, "*").get().size());
         assertEquals(2, supplier(sources, "*.csv").get().size());
         assertEquals(1, supplier(sources, "*.t*").get().size());
         assertEquals(1, supplier(sources, "*.xml").get().size());
@@ -84,12 +84,12 @@ public class DocumentsResolverTest {
         assertEquals(0, supplier("/does-not-exist", MATCH_ALL).get().size());
     }
 
-    private static DocumentSupplier supplier(String directory, String include) {
-        return new DocumentSupplier(singletonList(directory), include, Charset.defaultCharset());
+    private static DocumentsSupplier supplier(String directory, String include) {
+        return new DocumentsSupplier(singletonList(directory), include, Charset.defaultCharset());
     }
 
-    private static DocumentSupplier supplier(List<String> files, String include) {
-        return new DocumentSupplier(files, include, Charset.defaultCharset());
+    private static DocumentsSupplier supplier(List<String> files, String include) {
+        return new DocumentsSupplier(files, include, Charset.defaultCharset());
     }
 
 }
diff --git a/base/src/test/java/org/apache/freemarker/generator/document/DocumentsTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/document/DocumentsTest.java
similarity index 100%
rename from base/src/test/java/org/apache/freemarker/generator/document/DocumentsTest.java
rename to freemarker-generator-base/src/test/java/org/apache/freemarker/generator/document/DocumentsTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/TemplateLoadingTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/file/PropertiesFileSupplierTest.java
similarity index 51%
copy from cli/src/test/java/org/apache/freemarker/generator/cli/TemplateLoadingTest.java
copy to freemarker-generator-base/src/test/java/org/apache/freemarker/generator/file/PropertiesFileSupplierTest.java
index 723f4a8..eb44fc3 100644
--- a/cli/src/test/java/org/apache/freemarker/generator/cli/TemplateLoadingTest.java
+++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/file/PropertiesFileSupplierTest.java
@@ -14,33 +14,35 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.freemarker.generator.cli;
+package org.apache.freemarker.generator.file;
 
-import org.apache.commons.io.output.NullWriter;
+import org.apache.freemarker.generator.base.file.PropertiesFileSupplier;
 import org.junit.Test;
 
-import java.io.File;
+import java.util.Properties;
 
+import static junit.framework.TestCase.assertNull;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 
-public class TemplateLoadingTest extends AbstractMainTest {
+public class PropertiesFileSupplierTest {
 
-    private static final int SUCCESS = 0;
-    private static final String ANY_TEMPLATE_NAME = "templates/info.ftl";
-    private static final String CURR_DIR = System.getProperty("user.dir", ".");
+    private static final String ANY_PROPERTIES_FILE = "./src/test/data/properties/test.properties";
 
     @Test
-    public void shouldLoadRelativeTemplate() {
-        final String[] args = new String[] { "-t", ANY_TEMPLATE_NAME };
+    public void shouldResolveFileBasedPropertyFile() {
+        final Properties properties = supplier(ANY_PROPERTIES_FILE).get();
 
-        assertEquals(SUCCESS, Main.execute(args, new NullWriter()));
+        assertNotNull(properties);
+        assertEquals("bar", properties.getProperty("foo"));
     }
 
     @Test
-    public void shouldLoadAbsoluteTemplate() {
-        final String absoluteFileName = new File(CURR_DIR, ANY_TEMPLATE_NAME).getAbsolutePath();
-        final String[] args = new String[] { "-t", absoluteFileName };
+    public void shouldReturnNullForNonExistingPropertiesFile() {
+        assertNull(supplier("unknown.properties").get());
+    }
 
-        assertEquals(SUCCESS, Main.execute(args, new NullWriter()));
+    private static PropertiesFileSupplier supplier(String fileName) {
+        return new PropertiesFileSupplier(fileName);
     }
 }
diff --git a/base/src/test/java/org/apache/freemarker/generator/resolver/RecursiveFileResolverTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/file/RecursiveFileResolverTest.java
similarity index 73%
rename from base/src/test/java/org/apache/freemarker/generator/resolver/RecursiveFileResolverTest.java
rename to freemarker-generator-base/src/test/java/org/apache/freemarker/generator/file/RecursiveFileResolverTest.java
index dc619bf..dc215a7 100644
--- a/base/src/test/java/org/apache/freemarker/generator/resolver/RecursiveFileResolverTest.java
+++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/file/RecursiveFileResolverTest.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.freemarker.generator.resolver;
+package org.apache.freemarker.generator.file;
 
-import org.apache.freemarker.generator.base.config.RecursiveFileResolver;
+import org.apache.freemarker.generator.base.file.RecursiveFileSupplier;
 import org.junit.Test;
 
 import java.io.File;
@@ -35,13 +35,13 @@ public class RecursiveFileResolverTest {
 
     @Test
     public void shouldResolveAllFilesOfDirectory() {
-        assertEquals(3, fileResolver(ANY_DIRECTORY, null).resolve().size());
-        assertTrue(fileResolver(ANY_DIRECTORY, UNKNOWN_FILE_NAME).resolve().isEmpty());
+        assertEquals(4, fileResolver(ANY_DIRECTORY, null).get().size());
+        assertTrue(fileResolver(ANY_DIRECTORY, UNKNOWN_FILE_NAME).get().isEmpty());
     }
 
     @Test
     public void shouldResolveSingleMatchingFile() {
-        final List<File> files = fileResolver(ANY_DIRECTORY, ANY_FILE_NAME).resolve();
+        final List<File> files = fileResolver(ANY_DIRECTORY, ANY_FILE_NAME).get();
 
         assertEquals(1, files.size());
         assertEquals(ANY_FILE_NAME, files.get(0).getName());
@@ -49,18 +49,18 @@ public class RecursiveFileResolverTest {
 
     @Test
     public void shouldResolveMultipleFiles() {
-        final List<String> sources = Arrays.asList("pom.xml", "LICENSE");
-        final List<File> files = fileResolver(sources, "*").resolve();
+        final List<String> sources = Arrays.asList("pom.xml", "README.md");
+        final List<File> files = fileResolver(sources, "*").get();
 
         assertEquals(2, files.size());
         assertEquals("pom.xml", files.get(0).getName());
-        assertEquals("LICENSE", files.get(1).getName());
+        assertEquals("README.md", files.get(1).getName());
     }
 
     @Test
     public void shouldResolveMultipleFilesWithIncludeFilter() {
-        final List<String> sources = Arrays.asList("pom.xml", "LICENSE");
-        final List<File> files = fileResolver(sources, "*.xml").resolve();
+        final List<String> sources = Arrays.asList("pom.xml", "README.md");
+        final List<File> files = fileResolver(sources, "*.xml").get();
 
         assertEquals(1, files.size());
         assertEquals("pom.xml", files.get(0).getName());
@@ -68,17 +68,17 @@ public class RecursiveFileResolverTest {
 
     @Test
     public void shouldResolveMultipleFilesRecursivelyWithIncludes() {
-        final List<File> files = fileResolver(ANY_DIRECTORY, "*.csv").resolve();
+        final List<File> files = fileResolver(ANY_DIRECTORY, "*.csv").get();
 
         assertEquals(2, files.size());
     }
 
-    private static RecursiveFileResolver fileResolver(String directory, String include) {
-        return new RecursiveFileResolver(singletonList(directory), include);
+    private static RecursiveFileSupplier fileResolver(String source, String include) {
+        return new RecursiveFileSupplier(singletonList(source), include);
     }
 
-    private static RecursiveFileResolver fileResolver(List<String> sources, String include) {
-        return new RecursiveFileResolver(sources, include);
+    private static RecursiveFileSupplier fileResolver(List<String> sources, String include) {
+        return new RecursiveFileSupplier(sources, include);
     }
 
 }
diff --git a/cli/README.md b/freemarker-generator-cli/README.md
similarity index 100%
rename from cli/README.md
rename to freemarker-generator-cli/README.md
diff --git a/cli/pom.xml b/freemarker-generator-cli/pom.xml
similarity index 100%
rename from cli/pom.xml
rename to freemarker-generator-cli/pom.xml
diff --git a/cli/run-samples.sh b/freemarker-generator-cli/run-samples.sh
similarity index 100%
rename from cli/run-samples.sh
rename to freemarker-generator-cli/run-samples.sh
diff --git a/cli/site/image/contract.png b/freemarker-generator-cli/site/image/contract.png
similarity index 100%
rename from cli/site/image/contract.png
rename to freemarker-generator-cli/site/image/contract.png
diff --git a/cli/site/image/excel-to-html.png b/freemarker-generator-cli/site/image/excel-to-html.png
similarity index 100%
rename from cli/site/image/excel-to-html.png
rename to freemarker-generator-cli/site/image/excel-to-html.png
diff --git a/cli/site/image/github.png b/freemarker-generator-cli/site/image/github.png
similarity index 100%
rename from cli/site/image/github.png
rename to freemarker-generator-cli/site/image/github.png
diff --git a/cli/site/image/locker-test-users-pdf.png b/freemarker-generator-cli/site/image/locker-test-users-pdf.png
similarity index 100%
rename from cli/site/image/locker-test-users-pdf.png
rename to freemarker-generator-cli/site/image/locker-test-users-pdf.png
diff --git a/cli/site/image/transactions.png b/freemarker-generator-cli/site/image/transactions.png
similarity index 100%
rename from cli/site/image/transactions.png
rename to freemarker-generator-cli/site/image/transactions.png
diff --git a/cli/site/sample/accesslog/combined-access.log b/freemarker-generator-cli/site/sample/accesslog/combined-access.log
similarity index 100%
rename from cli/site/sample/accesslog/combined-access.log
rename to freemarker-generator-cli/site/sample/accesslog/combined-access.log
diff --git a/cli/site/sample/csv/contract.csv b/freemarker-generator-cli/site/sample/csv/contract.csv
similarity index 100%
rename from cli/site/sample/csv/contract.csv
rename to freemarker-generator-cli/site/sample/csv/contract.csv
diff --git a/cli/site/sample/csv/excel-export-utf8.csv b/freemarker-generator-cli/site/sample/csv/excel-export-utf8.csv
similarity index 100%
rename from cli/site/sample/csv/excel-export-utf8.csv
rename to freemarker-generator-cli/site/sample/csv/excel-export-utf8.csv
diff --git a/cli/site/sample/csv/locker-test-users.csv b/freemarker-generator-cli/site/sample/csv/locker-test-users.csv
similarity index 100%
rename from cli/site/sample/csv/locker-test-users.csv
rename to freemarker-generator-cli/site/sample/csv/locker-test-users.csv
diff --git a/cli/site/sample/csv/transactions.csv b/freemarker-generator-cli/site/sample/csv/transactions.csv
similarity index 100%
rename from cli/site/sample/csv/transactions.csv
rename to freemarker-generator-cli/site/sample/csv/transactions.csv
diff --git a/cli/site/sample/csv/user.csv b/freemarker-generator-cli/site/sample/csv/user.csv
similarity index 100%
rename from cli/site/sample/csv/user.csv
rename to freemarker-generator-cli/site/sample/csv/user.csv
diff --git a/cli/site/sample/excel/test-multiple-sheets.xlsx b/freemarker-generator-cli/site/sample/excel/test-multiple-sheets.xlsx
similarity index 100%
rename from cli/site/sample/excel/test-multiple-sheets.xlsx
rename to freemarker-generator-cli/site/sample/excel/test-multiple-sheets.xlsx
diff --git a/cli/site/sample/excel/test.xls b/freemarker-generator-cli/site/sample/excel/test.xls
similarity index 100%
rename from cli/site/sample/excel/test.xls
rename to freemarker-generator-cli/site/sample/excel/test.xls
diff --git a/cli/site/sample/excel/test.xlsx b/freemarker-generator-cli/site/sample/excel/test.xlsx
similarity index 100%
rename from cli/site/sample/excel/test.xlsx
rename to freemarker-generator-cli/site/sample/excel/test.xlsx
diff --git a/cli/site/sample/html/dependencies.html b/freemarker-generator-cli/site/sample/html/dependencies.html
similarity index 100%
rename from cli/site/sample/html/dependencies.html
rename to freemarker-generator-cli/site/sample/html/dependencies.html
diff --git a/cli/site/sample/json/github-users.json b/freemarker-generator-cli/site/sample/json/github-users.json
similarity index 100%
rename from cli/site/sample/json/github-users.json
rename to freemarker-generator-cli/site/sample/json/github-users.json
diff --git a/cli/site/sample/json/swagger-spec.json b/freemarker-generator-cli/site/sample/json/swagger-spec.json
similarity index 100%
rename from cli/site/sample/json/swagger-spec.json
rename to freemarker-generator-cli/site/sample/json/swagger-spec.json
diff --git a/cli/site/sample/properties/user_0001.properties b/freemarker-generator-cli/site/sample/properties/user_0001.properties
similarity index 100%
rename from cli/site/sample/properties/user_0001.properties
rename to freemarker-generator-cli/site/sample/properties/user_0001.properties
diff --git a/cli/site/sample/properties/user_0002.properties b/freemarker-generator-cli/site/sample/properties/user_0002.properties
similarity index 100%
rename from cli/site/sample/properties/user_0002.properties
rename to freemarker-generator-cli/site/sample/properties/user_0002.properties
diff --git a/cli/site/sample/properties/user_0003.properties b/freemarker-generator-cli/site/sample/properties/user_0003.properties
similarity index 100%
rename from cli/site/sample/properties/user_0003.properties
rename to freemarker-generator-cli/site/sample/properties/user_0003.properties
diff --git a/cli/site/sample/properties/user_0004.properties b/freemarker-generator-cli/site/sample/properties/user_0004.properties
similarity index 100%
rename from cli/site/sample/properties/user_0004.properties
rename to freemarker-generator-cli/site/sample/properties/user_0004.properties
diff --git a/cli/site/sample/xml/recipients.xml b/freemarker-generator-cli/site/sample/xml/recipients.xml
similarity index 100%
rename from cli/site/sample/xml/recipients.xml
rename to freemarker-generator-cli/site/sample/xml/recipients.xml
diff --git a/cli/site/sample/yaml/customer.yaml b/freemarker-generator-cli/site/sample/yaml/customer.yaml
similarity index 100%
rename from cli/site/sample/yaml/customer.yaml
rename to freemarker-generator-cli/site/sample/yaml/customer.yaml
diff --git a/cli/src/main/assembly/app.xml b/freemarker-generator-cli/src/main/assembly/app.xml
similarity index 100%
rename from cli/src/main/assembly/app.xml
rename to freemarker-generator-cli/src/main/assembly/app.xml
diff --git a/cli/src/main/assembly/dist.xml b/freemarker-generator-cli/src/main/assembly/dist.xml
similarity index 100%
rename from cli/src/main/assembly/dist.xml
rename to freemarker-generator-cli/src/main/assembly/dist.xml
diff --git a/cli/src/main/assembly/small.xml b/freemarker-generator-cli/src/main/assembly/small.xml
similarity index 100%
rename from cli/src/main/assembly/small.xml
rename to freemarker-generator-cli/src/main/assembly/small.xml
diff --git a/cli/src/main/resources/freemarker-cli.properties b/freemarker-generator-cli/src/main/config/freemarker-cli.properties
similarity index 100%
rename from cli/src/main/resources/freemarker-cli.properties
rename to freemarker-generator-cli/src/main/config/freemarker-cli.properties
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/FreeMarkerTask.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/FreeMarkerTask.java
similarity index 97%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/FreeMarkerTask.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/FreeMarkerTask.java
index 9754f1e..3f10caf 100644
--- a/cli/src/main/java/org/apache/freemarker/generator/cli/FreeMarkerTask.java
+++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/FreeMarkerTask.java
@@ -22,7 +22,7 @@ import freemarker.template.Template;
 import org.apache.commons.io.FileUtils;
 import org.apache.freemarker.generator.base.document.Document;
 import org.apache.freemarker.generator.base.document.DocumentFactory;
-import org.apache.freemarker.generator.base.document.DocumentSupplier;
+import org.apache.freemarker.generator.base.document.DocumentsSupplier;
 import org.apache.freemarker.generator.base.document.Documents;
 import org.apache.freemarker.generator.cli.impl.ConfigurationSupplier;
 import org.apache.freemarker.generator.cli.impl.TemplateLoaderSupplier;
@@ -89,7 +89,7 @@ public class FreeMarkerTask implements Callable<Integer> {
     }
 
     protected Supplier<List<Document>> documentResolver(Settings settings) {
-        return new DocumentSupplier(settings.getSources(), settings.getInclude(), settings.getInputEncoding());
+        return new DocumentsSupplier(settings.getSources(), settings.getInclude(), settings.getInputEncoding());
     }
 
     protected Documents documents(Settings settings, Supplier<List<Document>> documentResolver) {
diff --git a/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
similarity index 97%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/Main.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/Main.java
index c16a617..46299b1 100644
--- a/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
@@ -18,7 +18,7 @@ package org.apache.freemarker.generator.cli;
 
 import org.apache.freemarker.generator.base.util.ClosableUtils;
 import org.apache.freemarker.generator.base.util.StringUtils;
-import org.apache.freemarker.generator.cli.impl.PropertiesFileResolver;
+import org.apache.freemarker.generator.base.file.PropertiesFileSupplier;
 import org.apache.freemarker.generator.cli.impl.TemplateDirectorySupplier;
 import org.apache.freemarker.generator.cli.model.Settings;
 import org.apache.freemarker.generator.cli.picocli.GitVersionProvider;
@@ -202,13 +202,13 @@ public class Main implements Callable<Integer> {
 
     private static Properties loadFreeMarkerCliConfiguration(String fileName) {
         try {
-            final Properties properties = new PropertiesFileResolver(fileName).resolve();
+            final Properties properties = new PropertiesFileSupplier(fileName).get();
             if (properties != null) {
                 return properties;
             } else {
                 throw new RuntimeException("FreeMarker tools properties not found" + fileName);
             }
-        } catch (IOException e) {
+        } catch (RuntimeException e) {
             throw new RuntimeException("Failed to load FreeMarker tools properties: " + fileName, e);
         }
     }
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/impl/ConfigurationSupplier.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/impl/ConfigurationSupplier.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/impl/ConfigurationSupplier.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/impl/ConfigurationSupplier.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/impl/TemplateDirectorySupplier.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/impl/TemplateDirectorySupplier.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/impl/TemplateDirectorySupplier.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/impl/TemplateDirectorySupplier.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/impl/TemplateLoaderSupplier.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/impl/TemplateLoaderSupplier.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/impl/TemplateLoaderSupplier.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/impl/TemplateLoaderSupplier.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/impl/ToolsSupplier.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/impl/ToolsSupplier.java
similarity index 98%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/impl/ToolsSupplier.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/impl/ToolsSupplier.java
index c06c981..e6752ac 100644
--- a/cli/src/main/java/org/apache/freemarker/generator/cli/impl/ToolsSupplier.java
+++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/impl/ToolsSupplier.java
@@ -38,7 +38,7 @@ public class ToolsSupplier implements Supplier<Map<String, Object>> {
      * Constructor.
      *
      * @param configuration Containing "freemarker.tools.XXX=class"
-     * @param settings      Passed tp the instanitated tools
+     * @param settings      Passed to the instantiated tools
      */
     public ToolsSupplier(Properties configuration, Map<String, Object> settings) {
         this.configuration = requireNonNull(configuration);
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/model/Settings.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/Settings.java
similarity index 98%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/model/Settings.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/Settings.java
index 84b99be..9a6a421 100644
--- a/cli/src/main/java/org/apache/freemarker/generator/cli/model/Settings.java
+++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/Settings.java
@@ -16,8 +16,8 @@
  */
 package org.apache.freemarker.generator.cli.model;
 
-import org.apache.freemarker.generator.base.util.LocaleUtils;
-import org.apache.freemarker.generator.base.util.NonClosableWriterWrapper;
+import org.apache.freemarker.generator.cli.util.LocaleUtils;
+import org.apache.freemarker.generator.cli.util.NonClosableWriterWrapper;
 
 import java.io.File;
 import java.io.Writer;
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/picocli/GitVersionProvider.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/picocli/GitVersionProvider.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/picocli/GitVersionProvider.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/picocli/GitVersionProvider.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/tools/commonscsv/CommonsCSVTool.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/commonscsv/CommonsCSVTool.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/tools/commonscsv/CommonsCSVTool.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/commonscsv/CommonsCSVTool.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/tools/commonsexec/CommonsExecTool.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/commonsexec/CommonsExecTool.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/tools/commonsexec/CommonsExecTool.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/commonsexec/CommonsExecTool.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/tools/excel/ExcelTool.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/excel/ExcelTool.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/tools/excel/ExcelTool.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/excel/ExcelTool.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/tools/freemarker/FreeMarkerTool.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/freemarker/FreeMarkerTool.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/tools/freemarker/FreeMarkerTool.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/freemarker/FreeMarkerTool.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/tools/grok/GrokTool.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/grok/GrokTool.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/tools/grok/GrokTool.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/grok/GrokTool.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/tools/grok/GrokWrapper.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/grok/GrokWrapper.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/tools/grok/GrokWrapper.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/grok/GrokWrapper.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/tools/jsonpath/JsonPathTool.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/jsonpath/JsonPathTool.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/tools/jsonpath/JsonPathTool.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/jsonpath/JsonPathTool.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/tools/jsoup/JsoupTool.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/jsoup/JsoupTool.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/tools/jsoup/JsoupTool.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/jsoup/JsoupTool.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/tools/properties/PropertiesTool.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/properties/PropertiesTool.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/tools/properties/PropertiesTool.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/properties/PropertiesTool.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/tools/snakeyaml/SnakeYamlTool.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/snakeyaml/SnakeYamlTool.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/tools/snakeyaml/SnakeYamlTool.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/snakeyaml/SnakeYamlTool.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/tools/system/SystemTool.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/system/SystemTool.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/tools/system/SystemTool.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/system/SystemTool.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/tools/uuid/UUIDTool.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/uuid/UUIDTool.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/tools/uuid/UUIDTool.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/uuid/UUIDTool.java
diff --git a/cli/src/main/java/org/apache/freemarker/generator/cli/tools/xml/XmlTool.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/xml/XmlTool.java
similarity index 100%
rename from cli/src/main/java/org/apache/freemarker/generator/cli/tools/xml/XmlTool.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/tools/xml/XmlTool.java
diff --git a/base/src/main/java/org/apache/freemarker/generator/base/util/LocaleUtils.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/util/LocaleUtils.java
similarity index 91%
rename from base/src/main/java/org/apache/freemarker/generator/base/util/LocaleUtils.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/util/LocaleUtils.java
index 0131568..ff00548 100644
--- a/base/src/main/java/org/apache/freemarker/generator/base/util/LocaleUtils.java
+++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/util/LocaleUtils.java
@@ -14,7 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.freemarker.generator.base.util;
+package org.apache.freemarker.generator.cli.util;
+
+import org.apache.freemarker.generator.base.util.StringUtils;
 
 import java.util.Locale;
 
diff --git a/base/src/main/java/org/apache/freemarker/generator/base/util/NonClosableWriterWrapper.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/util/NonClosableWriterWrapper.java
similarity index 98%
rename from base/src/main/java/org/apache/freemarker/generator/base/util/NonClosableWriterWrapper.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/util/NonClosableWriterWrapper.java
index cef43f5..6e3f5ec 100644
--- a/base/src/main/java/org/apache/freemarker/generator/base/util/NonClosableWriterWrapper.java
+++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/util/NonClosableWriterWrapper.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.freemarker.generator.base.util;
+package org.apache.freemarker.generator.cli.util;
 
 import java.io.IOException;
 import java.io.Writer;
diff --git a/cli/src/main/config/freemarker-cli.properties b/freemarker-generator-cli/src/main/resources/freemarker-cli.properties
similarity index 100%
rename from cli/src/main/config/freemarker-cli.properties
rename to freemarker-generator-cli/src/main/resources/freemarker-cli.properties
diff --git a/cli/src/main/resources/patterns/firewalls b/freemarker-generator-cli/src/main/resources/patterns/firewalls
similarity index 100%
rename from cli/src/main/resources/patterns/firewalls
rename to freemarker-generator-cli/src/main/resources/patterns/firewalls
diff --git a/cli/src/main/resources/patterns/haproxy b/freemarker-generator-cli/src/main/resources/patterns/haproxy
similarity index 100%
rename from cli/src/main/resources/patterns/haproxy
rename to freemarker-generator-cli/src/main/resources/patterns/haproxy
diff --git a/cli/src/main/resources/patterns/java b/freemarker-generator-cli/src/main/resources/patterns/java
similarity index 100%
rename from cli/src/main/resources/patterns/java
rename to freemarker-generator-cli/src/main/resources/patterns/java
diff --git a/cli/src/main/resources/patterns/linux-syslog b/freemarker-generator-cli/src/main/resources/patterns/linux-syslog
similarity index 100%
rename from cli/src/main/resources/patterns/linux-syslog
rename to freemarker-generator-cli/src/main/resources/patterns/linux-syslog
diff --git a/cli/src/main/resources/patterns/nagios b/freemarker-generator-cli/src/main/resources/patterns/nagios
similarity index 100%
rename from cli/src/main/resources/patterns/nagios
rename to freemarker-generator-cli/src/main/resources/patterns/nagios
diff --git a/cli/src/main/resources/patterns/patterns b/freemarker-generator-cli/src/main/resources/patterns/patterns
similarity index 100%
rename from cli/src/main/resources/patterns/patterns
rename to freemarker-generator-cli/src/main/resources/patterns/patterns
diff --git a/cli/src/main/resources/patterns/postfix b/freemarker-generator-cli/src/main/resources/patterns/postfix
similarity index 100%
rename from cli/src/main/resources/patterns/postfix
rename to freemarker-generator-cli/src/main/resources/patterns/postfix
diff --git a/cli/src/main/resources/patterns/ruby b/freemarker-generator-cli/src/main/resources/patterns/ruby
similarity index 100%
rename from cli/src/main/resources/patterns/ruby
rename to freemarker-generator-cli/src/main/resources/patterns/ruby
diff --git a/cli/src/main/scripts/run-samples.sh b/freemarker-generator-cli/src/main/scripts/run-samples.sh
similarity index 100%
rename from cli/src/main/scripts/run-samples.sh
rename to freemarker-generator-cli/src/main/scripts/run-samples.sh
diff --git a/cli/src/test/data/encoding/utf16.txt b/freemarker-generator-cli/src/test/data/encoding/utf16.txt
similarity index 100%
rename from cli/src/test/data/encoding/utf16.txt
rename to freemarker-generator-cli/src/test/data/encoding/utf16.txt
diff --git a/cli/src/test/data/encoding/utf8.txt b/freemarker-generator-cli/src/test/data/encoding/utf8.txt
similarity index 100%
rename from cli/src/test/data/encoding/utf8.txt
rename to freemarker-generator-cli/src/test/data/encoding/utf8.txt
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/AbstractMainTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/AbstractMainTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/AbstractMainTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/AbstractMainTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/ManualTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ManualTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/ManualTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ManualTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/SecurityRelatedTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/SecurityRelatedTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/SecurityRelatedTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/SecurityRelatedTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/SourceEncodingTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/SourceEncodingTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/SourceEncodingTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/SourceEncodingTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/TemplateLoadingTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/TemplateLoadingTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/TemplateLoadingTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/TemplateLoadingTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/UserSuppliedLocaleTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/UserSuppliedLocaleTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/UserSuppliedLocaleTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/UserSuppliedLocaleTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/tools/commonscsv/CommonsCSVToolTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/commonscsv/CommonsCSVToolTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/tools/commonscsv/CommonsCSVToolTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/commonscsv/CommonsCSVToolTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/tools/commonsexec/CommonsExecToolTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/commonsexec/CommonsExecToolTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/tools/commonsexec/CommonsExecToolTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/commonsexec/CommonsExecToolTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/tools/excel/ExcelToolTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/excel/ExcelToolTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/tools/excel/ExcelToolTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/excel/ExcelToolTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/tools/freemarker/FreeMarkerToolTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/freemarker/FreeMarkerToolTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/tools/freemarker/FreeMarkerToolTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/freemarker/FreeMarkerToolTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/tools/grok/GrokToolTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/grok/GrokToolTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/tools/grok/GrokToolTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/grok/GrokToolTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/tools/jsonpath/JsonPathToolTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/jsonpath/JsonPathToolTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/tools/jsonpath/JsonPathToolTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/jsonpath/JsonPathToolTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/tools/jsoup/JsoupToolTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/jsoup/JsoupToolTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/tools/jsoup/JsoupToolTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/jsoup/JsoupToolTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/tools/properties/PropertiesToolTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/properties/PropertiesToolTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/tools/properties/PropertiesToolTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/properties/PropertiesToolTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/tools/snakeyaml/SnakeYamlToolTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/snakeyaml/SnakeYamlToolTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/tools/snakeyaml/SnakeYamlToolTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/snakeyaml/SnakeYamlToolTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/tools/system/SystemToolTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/system/SystemToolTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/tools/system/SystemToolTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/system/SystemToolTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/tools/uuid/UUIDToolTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/uuid/UUIDToolTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/tools/uuid/UUIDToolTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/uuid/UUIDToolTest.java
diff --git a/cli/src/test/java/org/apache/freemarker/generator/cli/tools/xml/XmlToolTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/xml/XmlToolTest.java
similarity index 100%
rename from cli/src/test/java/org/apache/freemarker/generator/cli/tools/xml/XmlToolTest.java
rename to freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/tools/xml/XmlToolTest.java
diff --git a/cli/src/test/templates/echo.ftl b/freemarker-generator-cli/src/test/templates/echo.ftl
similarity index 100%
rename from cli/src/test/templates/echo.ftl
rename to freemarker-generator-cli/src/test/templates/echo.ftl
diff --git a/cli/src/test/templates/environment.ftl b/freemarker-generator-cli/src/test/templates/environment.ftl
similarity index 100%
rename from cli/src/test/templates/environment.ftl
rename to freemarker-generator-cli/src/test/templates/environment.ftl
diff --git a/cli/src/test/templates/locale.ftl b/freemarker-generator-cli/src/test/templates/locale.ftl
similarity index 100%
rename from cli/src/test/templates/locale.ftl
rename to freemarker-generator-cli/src/test/templates/locale.ftl
diff --git a/cli/src/test/templates/manual.ftl b/freemarker-generator-cli/src/test/templates/manual.ftl
similarity index 100%
rename from cli/src/test/templates/manual.ftl
rename to freemarker-generator-cli/src/test/templates/manual.ftl
diff --git a/cli/src/test/templates/security/api.ftl b/freemarker-generator-cli/src/test/templates/security/api.ftl
similarity index 100%
rename from cli/src/test/templates/security/api.ftl
rename to freemarker-generator-cli/src/test/templates/security/api.ftl
diff --git a/cli/src/test/templates/security/new.ftl b/freemarker-generator-cli/src/test/templates/security/new.ftl
similarity index 100%
rename from cli/src/test/templates/security/new.ftl
rename to freemarker-generator-cli/src/test/templates/security/new.ftl
diff --git a/cli/src/test/templates/tools/csv.ftl b/freemarker-generator-cli/src/test/templates/tools/csv.ftl
similarity index 100%
rename from cli/src/test/templates/tools/csv.ftl
rename to freemarker-generator-cli/src/test/templates/tools/csv.ftl
diff --git a/cli/templates/accesslog/combined-access.ftl b/freemarker-generator-cli/templates/accesslog/combined-access.ftl
similarity index 100%
rename from cli/templates/accesslog/combined-access.ftl
rename to freemarker-generator-cli/templates/accesslog/combined-access.ftl
diff --git a/cli/templates/cat.ftl b/freemarker-generator-cli/templates/cat.ftl
similarity index 100%
rename from cli/templates/cat.ftl
rename to freemarker-generator-cli/templates/cat.ftl
diff --git a/cli/templates/csv/csv/gatling-user-credentials.ftl b/freemarker-generator-cli/templates/csv/csv/gatling-user-credentials.ftl
similarity index 100%
rename from cli/templates/csv/csv/gatling-user-credentials.ftl
rename to freemarker-generator-cli/templates/csv/csv/gatling-user-credentials.ftl
diff --git a/cli/templates/csv/fo/transactions.ftl b/freemarker-generator-cli/templates/csv/fo/transactions.ftl
similarity index 100%
rename from cli/templates/csv/fo/transactions.ftl
rename to freemarker-generator-cli/templates/csv/fo/transactions.ftl
diff --git a/cli/templates/csv/fo/transform.ftl b/freemarker-generator-cli/templates/csv/fo/transform.ftl
similarity index 100%
rename from cli/templates/csv/fo/transform.ftl
rename to freemarker-generator-cli/templates/csv/fo/transform.ftl
diff --git a/cli/templates/csv/html/transactions.ftl b/freemarker-generator-cli/templates/csv/html/transactions.ftl
similarity index 100%
rename from cli/templates/csv/html/transactions.ftl
rename to freemarker-generator-cli/templates/csv/html/transactions.ftl
diff --git a/cli/templates/csv/html/transform.ftl b/freemarker-generator-cli/templates/csv/html/transform.ftl
similarity index 100%
rename from cli/templates/csv/html/transform.ftl
rename to freemarker-generator-cli/templates/csv/html/transform.ftl
diff --git a/cli/templates/csv/md/transform.ftl b/freemarker-generator-cli/templates/csv/md/transform.ftl
similarity index 100%
rename from cli/templates/csv/md/transform.ftl
rename to freemarker-generator-cli/templates/csv/md/transform.ftl
diff --git a/cli/templates/csv/shell/curl.ftl b/freemarker-generator-cli/templates/csv/shell/curl.ftl
similarity index 100%
rename from cli/templates/csv/shell/curl.ftl
rename to freemarker-generator-cli/templates/csv/shell/curl.ftl
diff --git a/cli/templates/csv/transform.ftl b/freemarker-generator-cli/templates/csv/transform.ftl
similarity index 100%
rename from cli/templates/csv/transform.ftl
rename to freemarker-generator-cli/templates/csv/transform.ftl
diff --git a/cli/templates/demo.ftl b/freemarker-generator-cli/templates/demo.ftl
similarity index 100%
rename from cli/templates/demo.ftl
rename to freemarker-generator-cli/templates/demo.ftl
diff --git a/cli/templates/excel/csv/custom.ftl b/freemarker-generator-cli/templates/excel/csv/custom.ftl
similarity index 100%
rename from cli/templates/excel/csv/custom.ftl
rename to freemarker-generator-cli/templates/excel/csv/custom.ftl
diff --git a/cli/templates/excel/csv/transform.ftl b/freemarker-generator-cli/templates/excel/csv/transform.ftl
similarity index 100%
rename from cli/templates/excel/csv/transform.ftl
rename to freemarker-generator-cli/templates/excel/csv/transform.ftl
diff --git a/cli/templates/excel/html/transform.ftl b/freemarker-generator-cli/templates/excel/html/transform.ftl
similarity index 100%
rename from cli/templates/excel/html/transform.ftl
rename to freemarker-generator-cli/templates/excel/html/transform.ftl
diff --git a/cli/templates/excel/md/transform.ftl b/freemarker-generator-cli/templates/excel/md/transform.ftl
similarity index 100%
rename from cli/templates/excel/md/transform.ftl
rename to freemarker-generator-cli/templates/excel/md/transform.ftl
diff --git a/cli/templates/html/csv/dependencies.ftl b/freemarker-generator-cli/templates/html/csv/dependencies.ftl
similarity index 100%
rename from cli/templates/html/csv/dependencies.ftl
rename to freemarker-generator-cli/templates/html/csv/dependencies.ftl
diff --git a/cli/templates/info.ftl b/freemarker-generator-cli/templates/info.ftl
similarity index 100%
rename from cli/templates/info.ftl
rename to freemarker-generator-cli/templates/info.ftl
diff --git a/cli/templates/json/csv/swagger-endpoints.ftl b/freemarker-generator-cli/templates/json/csv/swagger-endpoints.ftl
similarity index 100%
rename from cli/templates/json/csv/swagger-endpoints.ftl
rename to freemarker-generator-cli/templates/json/csv/swagger-endpoints.ftl
diff --git a/cli/templates/json/md/github-users.ftl b/freemarker-generator-cli/templates/json/md/github-users.ftl
similarity index 100%
rename from cli/templates/json/md/github-users.ftl
rename to freemarker-generator-cli/templates/json/md/github-users.ftl
diff --git a/cli/templates/properties/csv/locker-test-users.ftl b/freemarker-generator-cli/templates/properties/csv/locker-test-users.ftl
similarity index 100%
rename from cli/templates/properties/csv/locker-test-users.ftl
rename to freemarker-generator-cli/templates/properties/csv/locker-test-users.ftl
diff --git a/cli/templates/tsv/fo/transactions.ftl b/freemarker-generator-cli/templates/tsv/fo/transactions.ftl
similarity index 100%
rename from cli/templates/tsv/fo/transactions.ftl
rename to freemarker-generator-cli/templates/tsv/fo/transactions.ftl
diff --git a/cli/templates/xml/txt/recipients.ftl b/freemarker-generator-cli/templates/xml/txt/recipients.ftl
similarity index 100%
rename from cli/templates/xml/txt/recipients.ftl
rename to freemarker-generator-cli/templates/xml/txt/recipients.ftl
diff --git a/cli/templates/yaml/txt/transform.ftl b/freemarker-generator-cli/templates/yaml/txt/transform.ftl
similarity index 100%
rename from cli/templates/yaml/txt/transform.ftl
rename to freemarker-generator-cli/templates/yaml/txt/transform.ftl
diff --git a/maven-plugin/README.md b/freemarker-generator-maven-plugin/README.md
similarity index 100%
rename from maven-plugin/README.md
rename to freemarker-generator-maven-plugin/README.md
diff --git a/maven-plugin/pom.xml b/freemarker-generator-maven-plugin/pom.xml
similarity index 100%
rename from maven-plugin/pom.xml
rename to freemarker-generator-maven-plugin/pom.xml
diff --git a/maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FactoryUtil.java b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FactoryUtil.java
similarity index 100%
rename from maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FactoryUtil.java
rename to freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FactoryUtil.java
diff --git a/maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FreeMarkerMojo.java b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FreeMarkerMojo.java
similarity index 100%
rename from maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FreeMarkerMojo.java
rename to freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FreeMarkerMojo.java
diff --git a/maven-plugin/src/main/java/org/apache/freemarker/generator/maven/GeneratingFileVisitor.java b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/GeneratingFileVisitor.java
similarity index 100%
rename from maven-plugin/src/main/java/org/apache/freemarker/generator/maven/GeneratingFileVisitor.java
rename to freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/GeneratingFileVisitor.java
diff --git a/maven-plugin/src/main/java/org/apache/freemarker/generator/maven/JsonPropertiesProvider.java b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/JsonPropertiesProvider.java
similarity index 100%
rename from maven-plugin/src/main/java/org/apache/freemarker/generator/maven/JsonPropertiesProvider.java
rename to freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/JsonPropertiesProvider.java
diff --git a/maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGenerator.java b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGenerator.java
similarity index 100%
rename from maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGenerator.java
rename to freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGenerator.java
diff --git a/maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGeneratorPropertiesProvider.java b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGeneratorPropertiesProvider.java
similarity index 100%
rename from maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGeneratorPropertiesProvider.java
rename to freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGeneratorPropertiesProvider.java
diff --git a/maven-plugin/src/test/data/freemarker-mojo/data/test.txt.json b/freemarker-generator-maven-plugin/src/test/data/freemarker-mojo/data/test.txt.json
similarity index 100%
rename from maven-plugin/src/test/data/freemarker-mojo/data/test.txt.json
rename to freemarker-generator-maven-plugin/src/test/data/freemarker-mojo/data/test.txt.json
diff --git a/maven-plugin/src/test/data/freemarker-mojo/freemarker.properties b/freemarker-generator-maven-plugin/src/test/data/freemarker-mojo/freemarker.properties
similarity index 100%
rename from maven-plugin/src/test/data/freemarker-mojo/freemarker.properties
rename to freemarker-generator-maven-plugin/src/test/data/freemarker-mojo/freemarker.properties
diff --git a/maven-plugin/src/test/data/freemarker-mojo/template/test.ftl b/freemarker-generator-maven-plugin/src/test/data/freemarker-mojo/template/test.ftl
similarity index 100%
rename from maven-plugin/src/test/data/freemarker-mojo/template/test.ftl
rename to freemarker-generator-maven-plugin/src/test/data/freemarker-mojo/template/test.ftl
diff --git a/maven-plugin/src/test/data/generating-file-visitor/badPath/success-test.txt.json b/freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/badPath/success-test.txt.json
similarity index 100%
rename from maven-plugin/src/test/data/generating-file-visitor/badPath/success-test.txt.json
rename to freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/badPath/success-test.txt.json
diff --git a/maven-plugin/src/test/data/generating-file-visitor/data/badParent/bad-parent-test.txt.json b/freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/data/badParent/bad-parent-test.txt.json
similarity index 100%
rename from maven-plugin/src/test/data/generating-file-visitor/data/badParent/bad-parent-test.txt.json
rename to freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/data/badParent/bad-parent-test.txt.json
diff --git a/maven-plugin/src/test/data/generating-file-visitor/data/mydir/bad-extension-test.txt b/freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/data/mydir/bad-extension-test.txt
similarity index 100%
rename from maven-plugin/src/test/data/generating-file-visitor/data/mydir/bad-extension-test.txt
rename to freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/data/mydir/bad-extension-test.txt
diff --git a/maven-plugin/src/test/data/generating-file-visitor/data/mydir/bad-template-name.txt.json b/freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/data/mydir/bad-template-name.txt.json
similarity index 100%
rename from maven-plugin/src/test/data/generating-file-visitor/data/mydir/bad-template-name.txt.json
rename to freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/data/mydir/bad-template-name.txt.json
diff --git a/maven-plugin/src/test/data/generating-file-visitor/data/mydir/missing-template-name.txt.json b/freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/data/mydir/missing-template-name.txt.json
similarity index 100%
rename from maven-plugin/src/test/data/generating-file-visitor/data/mydir/missing-template-name.txt.json
rename to freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/data/mydir/missing-template-name.txt.json
diff --git a/maven-plugin/src/test/data/generating-file-visitor/data/mydir/missing-var-test.txt.json b/freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/data/mydir/missing-var-test.txt.json
similarity index 100%
rename from maven-plugin/src/test/data/generating-file-visitor/data/mydir/missing-var-test.txt.json
rename to freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/data/mydir/missing-var-test.txt.json
diff --git a/maven-plugin/src/test/data/generating-file-visitor/data/mydir/success-test-2.txt.json b/freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/data/mydir/success-test-2.txt.json
similarity index 100%
rename from maven-plugin/src/test/data/generating-file-visitor/data/mydir/success-test-2.txt.json
rename to freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/data/mydir/success-test-2.txt.json
diff --git a/maven-plugin/src/test/data/generating-file-visitor/data/mydir/success-test.txt.json b/freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/data/mydir/success-test.txt.json
similarity index 100%
rename from maven-plugin/src/test/data/generating-file-visitor/data/mydir/success-test.txt.json
rename to freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/data/mydir/success-test.txt.json
diff --git a/maven-plugin/src/test/data/generating-file-visitor/template/test-pom-only.ftl b/freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/template/test-pom-only.ftl
similarity index 100%
rename from maven-plugin/src/test/data/generating-file-visitor/template/test-pom-only.ftl
rename to freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/template/test-pom-only.ftl
diff --git a/maven-plugin/src/test/data/generating-file-visitor/template/test.ftl b/freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/template/test.ftl
similarity index 100%
rename from maven-plugin/src/test/data/generating-file-visitor/template/test.ftl
rename to freemarker-generator-maven-plugin/src/test/data/generating-file-visitor/template/test.ftl
diff --git a/maven-plugin/src/test/java/org/apache/freemarker/generator/maven/FreeMarkerMojoTest.java b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/FreeMarkerMojoTest.java
similarity index 100%
rename from maven-plugin/src/test/java/org/apache/freemarker/generator/maven/FreeMarkerMojoTest.java
rename to freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/FreeMarkerMojoTest.java
diff --git a/maven-plugin/src/test/java/org/apache/freemarker/generator/maven/GeneratingFileVisitorTest.java b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/GeneratingFileVisitorTest.java
similarity index 100%
rename from maven-plugin/src/test/java/org/apache/freemarker/generator/maven/GeneratingFileVisitorTest.java
rename to freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/GeneratingFileVisitorTest.java
diff --git a/maven-plugin/src/test/java/org/apache/freemarker/generator/maven/JsonPropertiesProviderTest.java b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/JsonPropertiesProviderTest.java
similarity index 100%
rename from maven-plugin/src/test/java/org/apache/freemarker/generator/maven/JsonPropertiesProviderTest.java
rename to freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/JsonPropertiesProviderTest.java
diff --git a/maven-plugin/src/test/java/org/apache/freemarker/generator/maven/OutputGeneratorTest.java b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/OutputGeneratorTest.java
similarity index 100%
rename from maven-plugin/src/test/java/org/apache/freemarker/generator/maven/OutputGeneratorTest.java
rename to freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/OutputGeneratorTest.java
diff --git a/maven-plugin/CHANGELOG.md b/maven-plugin/CHANGELOG.md
deleted file mode 100644
index 2c19081..0000000
--- a/maven-plugin/CHANGELOG.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Changelog
-
-## 1.0.0-SNAPSHOT
-
-### Added
-
-### Changed
-
-### Fixed
-
-[FREEMARKER-127] Site build fails with missing "org/apache/maven/doxia/siterenderer/DocumentContent"
-
-### Removed
-
-[FREEMARKER-127]: https://issues.apache.org/jira/browse/FREEMARKER-127
diff --git a/maven-plugin/NOTICE b/maven-plugin/NOTICE
deleted file mode 100644
index 929539f..0000000
--- a/maven-plugin/NOTICE
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache FreeMarker
-Copyright 2015-2018 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
diff --git a/pom.xml b/pom.xml
index 4a82971..beef682 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
     <artifactId>parent</artifactId>
     <packaging>pom</packaging>
     <version>0.1.0-SNAPSHOT</version>
-    <name>Apache FreeMarker Generator: Root</name>
+    <name>Apache FreeMarker Generator: Parent</name>
     <url>https://freemarker.apache.org/</url>
 
     <issueManagement>
@@ -50,9 +50,9 @@
     </scm>
 
     <modules>
-        <module>base</module>
-        <module>cli</module>
-        <module>maven-plugin</module>
+        <module>freemarker-generator-base</module>
+        <module>freemarker-generator-cli</module>
+        <module>freemarker-generator-maven-plugin</module>
     </modules>
 
     <properties>


[freemarker-generator] 02/02: FREEMARKER-129 Rename / move things around

Posted by sg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 6b8ec56c0b462b98a8fb65225956e51e3be9631c
Author: Siegfried Goeschl <si...@gmail.com>
AuthorDate: Wed Feb 5 08:22:07 2020 +0100

    FREEMARKER-129 Rename / move things around
---
 freemarker-generator-cli/pom.xml          | 2 +-
 freemarker-generator-maven-plugin/pom.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/freemarker-generator-cli/pom.xml b/freemarker-generator-cli/pom.xml
index c88e2cc..ea17736 100644
--- a/freemarker-generator-cli/pom.xml
+++ b/freemarker-generator-cli/pom.xml
@@ -25,7 +25,7 @@
         <version>0.1.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>freemarker-cli</artifactId>
+    <artifactId>freemarker-generator-cli</artifactId>
     <packaging>jar</packaging>
     <name>Apache FreeMarker Generator: CLI</name>
     <description>Command-line client for Apache FreeMarker</description>
diff --git a/freemarker-generator-maven-plugin/pom.xml b/freemarker-generator-maven-plugin/pom.xml
index ee7906f..ad4c32c 100644
--- a/freemarker-generator-maven-plugin/pom.xml
+++ b/freemarker-generator-maven-plugin/pom.xml
@@ -8,7 +8,7 @@
         <version>0.1.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>freemarker-maven-plugin</artifactId>
+    <artifactId>freemarker-generator-maven-plugin</artifactId>
     <packaging>maven-plugin</packaging>
 
     <name>Apache FreeMarker Generator: Maven Plugin</name>