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

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

commit f5ad17b19c1f97244d0e408ecb16be50523968d8
Author: Siegfried Goeschl <[email protected]>
AuthorDate: Fri Jan 22 23:33:31 2021 +0100

    FREEMARKER-156 [freemarker-generator] Cleanup  the code and pump 
dependencies
---
 freemarker-generator-maven-plugin/pom.xml          |  18 ++-
 .../freemarker/generator/maven/FreeMarkerMojo.java |   3 +-
 .../generator/maven/GeneratingFileVisitor.java     |   6 +-
 .../generator/maven/FreeMarkerMojoTest.java        |  98 ++++++------
 .../generator/maven/GeneratingFileVisitorTest.java |  62 ++++----
 .../maven/JsonPropertiesProviderTest.java          |  56 ++++---
 .../generator/maven/OperatingSystem.java           |  40 -----
 .../generator/maven/OutputGeneratorTest.java       | 176 ++++++++++-----------
 8 files changed, 208 insertions(+), 251 deletions(-)

diff --git a/freemarker-generator-maven-plugin/pom.xml 
b/freemarker-generator-maven-plugin/pom.xml
index 0d7635c..c6bcb3b 100644
--- a/freemarker-generator-maven-plugin/pom.xml
+++ b/freemarker-generator-maven-plugin/pom.xml
@@ -32,14 +32,13 @@
     <description>Maven plugin for Apache FreeMarker</description>
 
     <properties>
-        <maven-core.version>3.5.2</maven-core.version>
-        <maven-plugin-api.version>3.5.2</maven-plugin-api.version>
-        
<maven-plugin-annotations.version>3.5</maven-plugin-annotations.version>
-        <fastutil.version>8.1.0</fastutil.version>
+        <maven-core.version>3.6.3</maven-core.version>
+        <maven-plugin-api.version>3.6.3</maven-plugin-api.version>
+        
<maven-plugin-annotations.version>3.6.0</maven-plugin-annotations.version>
         <gson.version>2.8.6</gson.version>
-        <jmockit.version>1.32</jmockit.version>
-        <org.testng.version>6.8</org.testng.version>
-        <assertj-core.version>3.8.0</assertj-core.version>
+        <jmockit.version>1.40</jmockit.version>
+        <org.testng.version>7.3.0</org.testng.version>
+        <assertj-core.version>3.18.1</assertj-core.version>
     </properties>
 
     <dependencies>
@@ -104,6 +103,11 @@
             <artifactId>freemarker</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.freemarker.generator</groupId>
+            <artifactId>freemarker-generator-base</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <version>${org.testng.version}</version>
diff --git 
a/freemarker-generator-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
index 4add19b..5ea8bc1 100644
--- 
a/freemarker-generator-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
@@ -25,7 +25,6 @@ import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecution;
 import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
@@ -63,7 +62,7 @@ public class FreeMarkerMojo extends AbstractMojo {
     private MojoExecution mojo;
 
     @Override
-    public void execute() throws MojoExecutionException, MojoFailureException {
+    public void execute() throws MojoExecutionException {
 
         if (freeMarkerVersion == null || freeMarkerVersion.isEmpty()) {
             throw new MojoExecutionException("freeMarkerVersion is required");
diff --git 
a/freemarker-generator-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
index 7f1fc51..d4ef85a 100644
--- 
a/freemarker-generator-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
@@ -30,7 +30,7 @@ import java.util.Map;
 
 /**
  * FileVisitor designed to process json data files. The json file parsed into
- * a map and given to FreeMarker to
+ * a map and given to FreeMarker to.
  */
 public class GeneratingFileVisitor extends SimpleFileVisitor<Path> {
 
@@ -68,8 +68,8 @@ public class GeneratingFileVisitor extends 
SimpleFileVisitor<Path> {
                     .addGeneratorLocation(path)
                     .addPomLastModifiedTimestamp(pomLastModifiedTimestamp);
             final String fileName = path.getFileName().toString();
-            final String extenstion = 
fileName.substring(fileName.lastIndexOf('.'));
-            final OutputGeneratorPropertiesProvider pathProcessor = 
extensionToBuilder.get(extenstion);
+            final String extension = 
fileName.substring(fileName.lastIndexOf('.'));
+            final OutputGeneratorPropertiesProvider pathProcessor = 
extensionToBuilder.get(extension);
             if (pathProcessor == null) {
                 throw new RuntimeException("Unknown file extension: " + path);
             }
diff --git 
a/freemarker-generator-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
index 9ac1734..4f69d5f 100644
--- 
a/freemarker-generator-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
@@ -27,6 +27,7 @@ import mockit.Expectations;
 import mockit.Mocked;
 import mockit.Verifications;
 import org.apache.commons.io.FilenameUtils;
+import org.apache.freemarker.generator.base.util.OperatingSystem;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.MojoExecution;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -50,7 +51,7 @@ import static org.assertj.core.api.Assertions.*;
 public class FreeMarkerMojoTest extends Assert {
 
     private static final File TEST_OUTPUT_DIR = new 
File("target/test-output/freemarker-mojo");
-    private static final String FREEMARKER_VERSION = "2.3.29";
+    private static final String FREEMARKER_VERSION = "2.3.30";
 
     @BeforeClass
     public static void beforeClass() throws IOException {
@@ -80,17 +81,17 @@ public class FreeMarkerMojoTest extends Assert {
             result = project;
         }};
 
-        FreeMarkerMojo mojo = new FreeMarkerMojo();
+        final FreeMarkerMojo mojo = new FreeMarkerMojo();
 
         // Validate freeMarkerVersion is required.
-        assertThatExceptionOfType(MojoExecutionException.class).isThrownBy(() 
-> {
-            mojo.execute();
-        }).withMessage("freeMarkerVersion is required");
+        assertThatExceptionOfType(MojoExecutionException.class)
+                .isThrownBy(mojo::execute)
+                .withMessage("freeMarkerVersion is required");
 
         Deencapsulation.setField(mojo, "freeMarkerVersion", "");
-        assertThatExceptionOfType(MojoExecutionException.class).isThrownBy(() 
-> {
-            mojo.execute();
-        }).withMessage("freeMarkerVersion is required");
+        assertThatExceptionOfType(MojoExecutionException.class)
+                .isThrownBy(mojo::execute)
+                .withMessage("freeMarkerVersion is required");
 
         final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, 
"executeTest");
         Deencapsulation.setField(mojo, "freeMarkerVersion", 
FREEMARKER_VERSION);
@@ -102,15 +103,13 @@ public class FreeMarkerMojoTest extends Assert {
         Deencapsulation.setField(mojo, "session", session);
 
         // Validate source directory.
-        assertThatExceptionOfType(MojoExecutionException.class).isThrownBy(() 
-> {
-            mojo.execute();
-        })
+        assertThatExceptionOfType(MojoExecutionException.class)
+                .isThrownBy(mojo::execute)
                 .withMessageStartingWith("Required directory does not exist");
 
         new File(testCaseOutputDir, "data").mkdirs();
-        assertThatExceptionOfType(MojoExecutionException.class).isThrownBy(() 
-> {
-            mojo.execute();
-        })
+        assertThatExceptionOfType(MojoExecutionException.class)
+                .isThrownBy(mojo::execute)
                 .withMessageStartingWith("Required directory does not exist");
         new File(testCaseOutputDir, "template").mkdirs();
 
@@ -121,9 +120,9 @@ public class FreeMarkerMojoTest extends Assert {
             
project.addCompileSourceRoot(fixSeparators("target/test-output/freemarker-mojo/executeTest/generated-files"));
             times = 1;
 
-            Configuration config;
-            MavenSession capturedSession;
-            Map<String, OutputGeneratorPropertiesProvider> builders;
+            final Configuration config;
+            final MavenSession capturedSession;
+            final Map<String, OutputGeneratorPropertiesProvider> builders;
 
             GeneratingFileVisitor.create(
                     config = withCapture(),
@@ -133,11 +132,11 @@ public class FreeMarkerMojoTest extends Assert {
 
             assertEquals("UTF-8", config.getDefaultEncoding());
             assertEquals(session, capturedSession);
-            TemplateLoader loader = config.getTemplateLoader();
+            final TemplateLoader loader = config.getTemplateLoader();
             assertTrue(loader instanceof FileTemplateLoader);
 
-            Path path;
-            FileVisitor<Path> fileVisitor;
+            final Path path;
+            final FileVisitor<Path> fileVisitor;
 
             Files.walkFileTree(path = withCapture(), fileVisitor = 
withCapture());
             times = 1;
@@ -154,7 +153,7 @@ public class FreeMarkerMojoTest extends Assert {
             @Mocked MojoExecution mojoExecution,
             @Mocked GeneratingFileVisitor generatingFileVisitor,
             @Mocked Files files
-    ) throws MojoExecutionException, MojoFailureException, IOException {
+    ) throws MojoExecutionException, MojoFailureException {
 
         new Expectations(mojoExecution, generatingFileVisitor) {{
             mojoExecution.getLifecyclePhase();
@@ -163,9 +162,9 @@ public class FreeMarkerMojoTest extends Assert {
             result = project;
         }};
 
-        FreeMarkerMojo mojo = new FreeMarkerMojo();
+        final FreeMarkerMojo mojo = new FreeMarkerMojo();
 
-        File testCaseOutputDir = new File(TEST_OUTPUT_DIR, 
"generateTestSourceTest");
+        final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, 
"generateTestSourceTest");
         Deencapsulation.setField(mojo, "freeMarkerVersion", 
FREEMARKER_VERSION);
         Deencapsulation.setField(mojo, "sourceDirectory", testCaseOutputDir);
         Deencapsulation.setField(mojo, "templateDirectory", new 
File(testCaseOutputDir, "template"));
@@ -193,7 +192,7 @@ public class FreeMarkerMojoTest extends Assert {
             @Mocked MojoExecution mojoExecution,
             @Mocked GeneratingFileVisitor generatingFileVisitor,
             @Mocked Files files
-    ) throws MojoExecutionException, MojoFailureException, IOException {
+    ) throws IOException {
 
         new Expectations(mojoExecution, generatingFileVisitor) {{
             mojoExecution.getLifecyclePhase();
@@ -204,9 +203,9 @@ public class FreeMarkerMojoTest extends Assert {
             result = new RuntimeException("test exception");
         }};
 
-        FreeMarkerMojo mojo = new FreeMarkerMojo();
+        final FreeMarkerMojo mojo = new FreeMarkerMojo();
 
-        File testCaseOutputDir = new File(TEST_OUTPUT_DIR, 
"generateTestSourceTest");
+        final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, 
"generateTestSourceTest");
         Deencapsulation.setField(mojo, "freeMarkerVersion", 
FREEMARKER_VERSION);
         Deencapsulation.setField(mojo, "sourceDirectory", testCaseOutputDir);
         Deencapsulation.setField(mojo, "templateDirectory", new 
File(testCaseOutputDir, "template"));
@@ -218,9 +217,8 @@ public class FreeMarkerMojoTest extends Assert {
         new File(testCaseOutputDir, "data").mkdirs();
         new File(testCaseOutputDir, "template").mkdirs();
 
-        assertThatExceptionOfType(MojoExecutionException.class).isThrownBy(() 
-> {
-            mojo.execute();
-        })
+        assertThatExceptionOfType(MojoExecutionException.class)
+                .isThrownBy(mojo::execute)
                 .withMessageStartingWith("Failed to process files in generator 
dir");
     }
 
@@ -239,9 +237,9 @@ public class FreeMarkerMojoTest extends Assert {
             result = new RuntimeException("test exception");
         }};
 
-        FreeMarkerMojo mojo = new FreeMarkerMojo();
+        final FreeMarkerMojo mojo = new FreeMarkerMojo();
 
-        File testCaseOutputDir = new File(TEST_OUTPUT_DIR, 
"setTemplateLoaderException");
+        final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, 
"setTemplateLoaderException");
 
         Deencapsulation.setField(mojo, "freeMarkerVersion", 
FREEMARKER_VERSION);
         Deencapsulation.setField(mojo, "sourceDirectory", testCaseOutputDir);
@@ -254,9 +252,8 @@ public class FreeMarkerMojoTest extends Assert {
         new File(testCaseOutputDir, "data").mkdirs();
         new File(testCaseOutputDir, "template").mkdirs();
 
-        assertThatExceptionOfType(MojoExecutionException.class).isThrownBy(() 
-> {
-            mojo.execute();
-        })
+        assertThatExceptionOfType(MojoExecutionException.class)
+                .isThrownBy(mojo::execute)
                 .withMessageStartingWith("Could not establish file template 
loader for directory");
     }
 
@@ -267,10 +264,9 @@ public class FreeMarkerMojoTest extends Assert {
             @Mocked MojoExecution mojoExecution,
             @Mocked Configuration config) throws Exception {
 
-        FreeMarkerMojo mojo = new FreeMarkerMojo();
-
-        File sourceDirectory = new File("src/test/data/freemarker-mojo");
-        File testCaseOutputDir = new File(TEST_OUTPUT_DIR, 
"loadFreemarkerProperties");
+        final FreeMarkerMojo mojo = new FreeMarkerMojo();
+        final File sourceDirectory = new File("src/test/data/freemarker-mojo");
+        final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, 
"loadFreemarkerProperties");
 
         Deencapsulation.setField(mojo, "freeMarkerVersion", 
FREEMARKER_VERSION);
         Deencapsulation.setField(mojo, "sourceDirectory", sourceDirectory);
@@ -283,7 +279,7 @@ public class FreeMarkerMojoTest extends Assert {
         mojo.execute();
 
         new Verifications() {{
-            Properties properties;
+            final Properties properties;
 
             config.setSettings(properties = withCapture());
             times = 1;
@@ -305,10 +301,10 @@ public class FreeMarkerMojoTest extends Assert {
             result = new RuntimeException("test exception");
         }};
 
-        FreeMarkerMojo mojo = new FreeMarkerMojo();
+        final FreeMarkerMojo mojo = new FreeMarkerMojo();
 
-        File sourceDirectory = new File("src/test/data/freemarker-mojo");
-        File testCaseOutputDir = new File(TEST_OUTPUT_DIR, 
"loadFreemarkerPropertiesExceptionTest");
+        final File sourceDirectory = new File("src/test/data/freemarker-mojo");
+        final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, 
"loadFreemarkerPropertiesExceptionTest");
 
         Deencapsulation.setField(mojo, "freeMarkerVersion", 
FREEMARKER_VERSION);
         Deencapsulation.setField(mojo, "sourceDirectory", sourceDirectory);
@@ -320,9 +316,9 @@ public class FreeMarkerMojoTest extends Assert {
 
         System.out.println("==== before mojo execute");
         try {
-            
assertThatExceptionOfType(MojoExecutionException.class).isThrownBy(() -> {
-                mojo.execute();
-            }).withMessage(fixSeparators("Failed to load 
src/test/data/freemarker-mojo/freemarker.properties"));
+            assertThatExceptionOfType(MojoExecutionException.class)
+                    .isThrownBy(mojo::execute)
+                    .withMessage(fixSeparators("Failed to load 
src/test/data/freemarker-mojo/freemarker.properties"));
         } catch (Throwable t) {
             t.printStackTrace();
         }
@@ -340,10 +336,10 @@ public class FreeMarkerMojoTest extends Assert {
             result = new RuntimeException("test exception");
         }};
 
-        FreeMarkerMojo mojo = new FreeMarkerMojo();
+        final FreeMarkerMojo mojo = new FreeMarkerMojo();
 
-        File sourceDirectory = new File("src/test/data/freemarker-mojo");
-        File testCaseOutputDir = new File(TEST_OUTPUT_DIR, 
"loadFreemarkerProperties");
+        final File sourceDirectory = new File("src/test/data/freemarker-mojo");
+        final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, 
"loadFreemarkerProperties");
 
         Deencapsulation.setField(mojo, "freeMarkerVersion", 
FREEMARKER_VERSION);
         Deencapsulation.setField(mojo, "sourceDirectory", sourceDirectory);
@@ -353,9 +349,9 @@ public class FreeMarkerMojoTest extends Assert {
         Deencapsulation.setField(mojo, "mojo", mojoExecution);
         Deencapsulation.setField(mojo, "session", session);
 
-        assertThatExceptionOfType(MojoExecutionException.class).isThrownBy(() 
-> {
-            mojo.execute();
-        }).withMessage(fixSeparators("Invalid setting(s) in 
src/test/data/freemarker-mojo/freemarker.properties"));
+        assertThatExceptionOfType(MojoExecutionException.class)
+                .isThrownBy(mojo::execute)
+                .withMessage(fixSeparators("Invalid setting(s) in 
src/test/data/freemarker-mojo/freemarker.properties"));
     }
 
     private static String fixSeparators(String str) {
diff --git 
a/freemarker-generator-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
index d2c9803..a3fffcc 100644
--- 
a/freemarker-generator-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
@@ -48,19 +48,19 @@ import static org.assertj.core.api.Assertions.*;
 
 public class GeneratingFileVisitorTest extends Assert {
 
-    private static File testDir = new 
File("src/test/data/generating-file-visitor");
-    private static File dataDir = new File(testDir, "data");
-    private static File templateDir = new File(testDir, "template");
-    private static File outputDir = new 
File("target/test-output/generating-file-visitor");
-    private static Map<String, OutputGeneratorPropertiesProvider> builders = 
new HashMap<>();
+    private static final File TEST_DIR = new 
File("src/test/data/generating-file-visitor");
+    private static final File DATA_DIR = new File(TEST_DIR, "data");
+    private static final File TEMPLATE_DIR = new File(TEST_DIR, "template");
+    private static final File OUTPUT_DIR = new 
File("target/test-output/generating-file-visitor");
+    private static final Map<String, OutputGeneratorPropertiesProvider> 
BUILDERS = new HashMap<>();
     private Configuration config;
-    private Properties pomProperties = new Properties();
+    private final Properties pomProperties = new Properties();
 
     @BeforeClass
     public static void beforeClass() throws IOException {
-        builders.put(".json", JsonPropertiesProvider.create(dataDir, 
templateDir, outputDir));
+        BUILDERS.put(".json", JsonPropertiesProvider.create(DATA_DIR, 
TEMPLATE_DIR, OUTPUT_DIR));
         // Clean output dir before each run.
-        File outputDir = new 
File("target/test-output/generating-file-visitor");
+        final File outputDir = new 
File("target/test-output/generating-file-visitor");
         if (outputDir.exists()) {
             // Recursively delete output from previous run.
             Files.walk(outputDir.toPath())
@@ -72,15 +72,15 @@ public class GeneratingFileVisitorTest extends Assert {
 
     @BeforeMethod
     public void before() throws IOException {
-        if (!testDir.isDirectory()) {
+        if (!TEST_DIR.isDirectory()) {
             throw new RuntimeException("Can't find required test data 
directory. "
                     + "If running test outside of maven, make sure working 
directory is the project directory. "
-                    + "Looking for: " + testDir);
+                    + "Looking for: " + TEST_DIR);
         }
 
         config = new Configuration(Configuration.VERSION_2_3_23);
         config.setDefaultEncoding("UTF-8");
-        config.setTemplateLoader(new FileTemplateLoader(templateDir));
+        config.setTemplateLoader(new FileTemplateLoader(TEMPLATE_DIR));
         pomProperties.put("pomVar", "pom value");
     }
 
@@ -90,7 +90,7 @@ public class GeneratingFileVisitorTest extends Assert {
             @Mocked MavenProject project,
             @Mocked File mockFile,
             @Mocked BasicFileAttributes attrs) throws IOException {
-        List<MavenProject> projects = new ArrayList<>();
+        final List<MavenProject> projects = new ArrayList<>();
         projects.add(project);
         new Expectations(session, project, mockFile) {{
             session.getCurrentProject();
@@ -107,13 +107,13 @@ public class GeneratingFileVisitorTest extends Assert {
             result = 10;
         }};
 
-        File file = new File(dataDir, "mydir/success-test-2.txt.json");
-        GeneratingFileVisitor gfv = GeneratingFileVisitor.create(config, 
session, builders);
+        final File file = new File(DATA_DIR, "mydir/success-test-2.txt.json");
+        final GeneratingFileVisitor gfv = GeneratingFileVisitor.create(config, 
session, BUILDERS);
         assertEquals(FileVisitResult.CONTINUE, gfv.visitFile(file.toPath(), 
attrs));
 
-        File outputFile = new File(outputDir, "mydir/success-test-2.txt");
+        final File outputFile = new File(OUTPUT_DIR, 
"mydir/success-test-2.txt");
         assertTrue(outputFile.isFile());
-        List<String> lines = Files.readAllLines(outputFile.toPath(), 
StandardCharsets.UTF_8);
+        final List<String> lines = Files.readAllLines(outputFile.toPath(), 
StandardCharsets.UTF_8);
         assertEquals(17, lines.size());
         assertEquals("This is a test freemarker template. Test pom data: 'pom 
value'.", lines.get(16));
     }
@@ -124,7 +124,7 @@ public class GeneratingFileVisitorTest extends Assert {
             @Mocked MavenProject project,
             @Mocked File mockFile,
             @Mocked BasicFileAttributes attrs) throws IOException {
-        List<MavenProject> projects = new ArrayList<>();
+        final List<MavenProject> projects = new ArrayList<>();
         projects.add(project);
         new Expectations(session, project, mockFile) {{
             session.getCurrentProject();
@@ -141,13 +141,13 @@ public class GeneratingFileVisitorTest extends Assert {
             result = 10;
         }};
 
-        File file = new File(dataDir, "mydir/success-test.txt.json");
-        GeneratingFileVisitor gfv = GeneratingFileVisitor.create(config, 
session, builders);
+        final File file = new File(DATA_DIR, "mydir/success-test.txt.json");
+        final GeneratingFileVisitor gfv = GeneratingFileVisitor.create(config, 
session, BUILDERS);
         assertEquals(FileVisitResult.CONTINUE, gfv.visitFile(file.toPath(), 
attrs));
 
-        File outputFile = new File(outputDir, "mydir/success-test.txt");
+        final File outputFile = new File(OUTPUT_DIR, "mydir/success-test.txt");
         assertTrue(outputFile.isFile());
-        List<String> lines = Files.readAllLines(outputFile.toPath(), 
StandardCharsets.UTF_8);
+        final List<String> lines = Files.readAllLines(outputFile.toPath(), 
StandardCharsets.UTF_8);
         assertEquals(17, lines.size());
         assertEquals("This is a test freemarker template. Test json data: 
'test value'. Test pom data: 'pom value'.", lines
                 .get(16));
@@ -158,8 +158,8 @@ public class GeneratingFileVisitorTest extends Assert {
             @Mocked MavenSession session,
             @Mocked MavenProject project,
             @Mocked File mockFile,
-            @Mocked BasicFileAttributes attrs) throws IOException {
-        List<MavenProject> projects = new ArrayList<>();
+            @Mocked BasicFileAttributes attrs) {
+        final List<MavenProject> projects = new ArrayList<>();
         projects.add(project);
         new Expectations(session, project, mockFile) {{
             attrs.isRegularFile();
@@ -172,11 +172,11 @@ public class GeneratingFileVisitorTest extends Assert {
             result = 10;
         }};
         // Test file without .json suffix.
-        File file = new File(dataDir, "mydir/bad-extension-test.txt");
-        GeneratingFileVisitor gfv = GeneratingFileVisitor.create(config, 
session, builders);
-        assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> {
-            gfv.visitFile(file.toPath(), attrs);
-        }).withMessage("Unknown file extension: " + file.toPath());
+        final File file = new File(DATA_DIR, "mydir/bad-extension-test.txt");
+        final GeneratingFileVisitor gfv = GeneratingFileVisitor.create(config, 
session, BUILDERS);
+        assertThatExceptionOfType(RuntimeException.class)
+                .isThrownBy(() -> gfv.visitFile(file.toPath(), attrs))
+                .withMessage("Unknown file extension: " + file.toPath());
     }
 
     @Test
@@ -185,7 +185,7 @@ public class GeneratingFileVisitorTest extends Assert {
                                              @Mocked BasicFileAttributes attrs,
                                              @Mocked File mockFile
     ) {
-        List<MavenProject> projects = new ArrayList<>();
+        final List<MavenProject> projects = new ArrayList<>();
         projects.add(project);
         new Expectations(session, project, mockFile) {{
             attrs.isRegularFile();
@@ -199,8 +199,8 @@ public class GeneratingFileVisitorTest extends Assert {
         }};
         // FYI: if you change above result to true, test will fail trying to 
read the 'mydir' directory
         // as a json file.
-        File dir = new File(dataDir, "mydir");
-        GeneratingFileVisitor gfv = GeneratingFileVisitor.create(config, 
session, builders);
+        final File dir = new File(DATA_DIR, "mydir");
+        final GeneratingFileVisitor gfv = GeneratingFileVisitor.create(config, 
session, BUILDERS);
         assertEquals(FileVisitResult.CONTINUE, gfv.visitFile(dir.toPath(), 
attrs));
     }
 }
diff --git 
a/freemarker-generator-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
index bef999e..3b0e577 100644
--- 
a/freemarker-generator-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
@@ -37,19 +37,19 @@ import static org.testng.AssertJUnit.assertEquals;
 import static org.testng.internal.junit.ArrayAsserts.assertArrayEquals;
 
 public class JsonPropertiesProviderTest {
-    private File testDir = new File("src/test/data/generating-file-visitor");
-    private File dataDir = new File(testDir, "data");
-    private File templateDir = new File(testDir, "template");
-    private File outputDir = new 
File("target/test-output/generating-file-visitor");
+    private final File testDir = new 
File("src/test/data/generating-file-visitor");
+    private final File dataDir = new File(testDir, "data");
+    private final File templateDir = new File(testDir, "template");
+    private final File outputDir = new 
File("target/test-output/generating-file-visitor");
 
     @Test
     public void testSuccess(@Mocked OutputGenerator.OutputGeneratorBuilder 
builder) {
-        Path path = dataDir.toPath().resolve("mydir/success-test.txt.json");
-        Path expectedTemplateLocation = 
templateDir.toPath().resolve("test.ftl");
-        Path expectedOutputLocation = 
outputDir.toPath().resolve("mydir/success-test.txt");
-        Map<String, Object> expectedMap = new HashMap<>(4);
+        final Path path = 
dataDir.toPath().resolve("mydir/success-test.txt.json");
+        final Path expectedTemplateLocation = 
templateDir.toPath().resolve("test.ftl");
+        final Path expectedOutputLocation = 
outputDir.toPath().resolve("mydir/success-test.txt");
+        final Map<String, Object> expectedMap = new HashMap<>(4);
         expectedMap.put("testVar", "test value");
-        JsonPropertiesProvider toTest = JsonPropertiesProvider.create(dataDir, 
templateDir, outputDir);
+        final JsonPropertiesProvider toTest = 
JsonPropertiesProvider.create(dataDir, templateDir, outputDir);
         toTest.providePropertiesFromFile(path, builder);
         new Verifications() {{
             Path templateLocation;
@@ -67,11 +67,11 @@ public class JsonPropertiesProviderTest {
 
     @Test
     public void testSuccessNoDataModel(@Mocked 
OutputGenerator.OutputGeneratorBuilder builder) {
-        Path path = dataDir.toPath().resolve("mydir/success-test-2.txt.json");
-        Path expectedTemplateLocation = 
templateDir.toPath().resolve("test-pom-only.ftl");
-        Path expectedOutputLocation = 
outputDir.toPath().resolve("mydir/success-test-2.txt");
-        Map<String, Object> expectedMap = new HashMap<>(4);
-        JsonPropertiesProvider toTest = JsonPropertiesProvider.create(dataDir, 
templateDir, outputDir);
+        final Path path = 
dataDir.toPath().resolve("mydir/success-test-2.txt.json");
+        final Path expectedTemplateLocation = 
templateDir.toPath().resolve("test-pom-only.ftl");
+        final Path expectedOutputLocation = 
outputDir.toPath().resolve("mydir/success-test-2.txt");
+        final Map<String, Object> expectedMap = new HashMap<>(4);
+        final JsonPropertiesProvider toTest = 
JsonPropertiesProvider.create(dataDir, templateDir, outputDir);
         toTest.providePropertiesFromFile(path, builder);
         new Verifications() {{
             Path templateLocation;
@@ -89,36 +89,34 @@ public class JsonPropertiesProviderTest {
 
     @Test
     public void testParsingException(@Mocked 
OutputGenerator.OutputGeneratorBuilder builder, @Mocked Gson gson) {
-        Path path = dataDir.toPath().resolve("mydir/success-test.txt.json");
+        final Path path = 
dataDir.toPath().resolve("mydir/success-test.txt.json");
         new Expectations() {{
             gson.fromJson((JsonReader) any, (Type) any);
             result = new RuntimeException("test exception");
         }};
-        JsonPropertiesProvider toTest = JsonPropertiesProvider.create(dataDir, 
templateDir, outputDir);
+        final JsonPropertiesProvider toTest = 
JsonPropertiesProvider.create(dataDir, templateDir, outputDir);
 
-        assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> {
-            toTest.providePropertiesFromFile(path, builder);
-        })
+        assertThatExceptionOfType(RuntimeException.class)
+                .isThrownBy(() -> toTest.providePropertiesFromFile(path, 
builder))
                 .withMessageStartingWith("Could not parse json data file");
     }
 
     @Test
     public void testMissingTemplateName(@Mocked 
OutputGenerator.OutputGeneratorBuilder builder) {
-        Path path = 
dataDir.toPath().resolve("mydir/missing-template-name.txt.json");
-        JsonPropertiesProvider toTest = JsonPropertiesProvider.create(dataDir, 
templateDir, outputDir);
+        final Path path = 
dataDir.toPath().resolve("mydir/missing-template-name.txt.json");
+        final JsonPropertiesProvider toTest = 
JsonPropertiesProvider.create(dataDir, templateDir, outputDir);
 
-        assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> {
-            toTest.providePropertiesFromFile(path, builder);
-        }).withMessage("Require json data property not found: templateName");
+        assertThatExceptionOfType(RuntimeException.class)
+                .isThrownBy(() -> toTest.providePropertiesFromFile(path, 
builder))
+                .withMessage("Require json data property not found: 
templateName");
     }
 
     @Test
     public void testBadPath(@Mocked OutputGenerator.OutputGeneratorBuilder 
builder) {
-        Path path = testDir.toPath().resolve("badPath/success-test.txt.json");
-        JsonPropertiesProvider toTest = JsonPropertiesProvider.create(dataDir, 
templateDir, outputDir);
-        assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() 
-> {
-            toTest.providePropertiesFromFile(path, builder);
-        })
+        final Path path = 
testDir.toPath().resolve("badPath/success-test.txt.json");
+        final JsonPropertiesProvider toTest = 
JsonPropertiesProvider.create(dataDir, templateDir, outputDir);
+        assertThatExceptionOfType(IllegalStateException.class)
+                .isThrownBy(() -> toTest.providePropertiesFromFile(path, 
builder))
                 .withMessageStartingWith("visitFile() given file not in 
sourceDirectory");
     }
 }
diff --git 
a/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/OperatingSystem.java
 
b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/OperatingSystem.java
deleted file mode 100644
index 4575238..0000000
--- 
a/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/OperatingSystem.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-package org.apache.freemarker.generator.maven;
-
-import java.util.Locale;
-
-/**
- * Helper class to detect the operting system (mostly Windows).
- *
- * TODO should be moved to "freemarker-generator-base"
- */
-public class OperatingSystem {
-    private static final String OS = System.getProperty("os.name", 
"unknown").toLowerCase(Locale.ROOT);
-
-    public static boolean isWindows() {
-        return OS.contains("win");
-    }
-
-    public static boolean isMac() {
-        return OS.contains("mac");
-    }
-
-    public static boolean isUnix() {
-        return OS.contains("nux");
-    }
-}
diff --git 
a/freemarker-generator-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
index 11308bb..023bbf8 100644
--- 
a/freemarker-generator-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
@@ -23,7 +23,6 @@ import freemarker.cache.FileTemplateLoader;
 import freemarker.template.Configuration;
 import mockit.Expectations;
 import mockit.Mocked;
-import org.apache.commons.io.FilenameUtils;
 import org.assertj.core.api.*;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeMethod;
@@ -39,20 +38,22 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import static junit.framework.Assert.assertEquals;
 import static org.assertj.core.api.AssertionsForClassTypes.*;
 import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 public class OutputGeneratorTest {
 
-    private File testDir = new File("src/test/data/generating-file-visitor");
-    private File dataDir = new File(testDir, "data");
-    private File templateDir = new File(testDir, "template");
-    private File outputDir = new 
File("target/test-output/generating-file-visitor");
+    private final File testDir = new 
File("src/test/data/generating-file-visitor");
+    private final File dataDir = new File(testDir, "data");
+    private final File templateDir = new File(testDir, "template");
+    private final File outputDir = new 
File("target/test-output/generating-file-visitor");
+    private final Map<String, Object> dataModel = new HashMap<>();
+
     private Configuration config;
-    private Map<String, Object> dataModel = new HashMap<String, Object>();
 
+    @SuppressWarnings("unchecked")
     @BeforeMethod
     public void setupDataModel() {
         dataModel.clear();
@@ -64,7 +65,7 @@ public class OutputGeneratorTest {
     @BeforeClass
     public static void cleanFields() throws IOException {
         // Clean output dir before each run.
-        File outputDir = new 
File("target/test-output/generating-file-visitor");
+        final File outputDir = new 
File("target/test-output/generating-file-visitor");
         if (outputDir.exists()) {
             // Recursively delete output from previous run.
             Files.walk(outputDir.toPath())
@@ -89,37 +90,37 @@ public class OutputGeneratorTest {
 
     @Test
     public void createTest() {
-        OutputGenerator.OutputGeneratorBuilder builder = 
OutputGenerator.builder();
-        assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() 
-> {
-            builder.create();
-        }).withMessage("Must set the pomModifiedTimestamp");
+        final OutputGenerator.OutputGeneratorBuilder builder = 
OutputGenerator.builder();
+        assertThatExceptionOfType(IllegalStateException.class)
+                .isThrownBy(builder::create)
+                .withMessage("Must set the pomModifiedTimestamp");
 
         builder.addPomLastModifiedTimestamp(0);
-        assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() 
-> {
-            builder.create();
-        }).withMessage("Must set a non-null generatorLocation");
+        assertThatExceptionOfType(IllegalStateException.class)
+                .isThrownBy(builder::create)
+                .withMessage("Must set a non-null generatorLocation");
 
-        File file = new File(dataDir, "mydir/success-test.txt.json");
-        builder.addGeneratorLocation(file.toPath());
-        assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() 
-> {
-            builder.create();
-        }).withMessage("Must set a non-null templateLocation");
+        final File file = new File(dataDir, "mydir/success-test.txt.json");
+        builder.addGeneratorLocation(new File(dataDir, 
"mydir/success-test.txt.json").toPath());
+        assertThatExceptionOfType(IllegalStateException.class)
+                .isThrownBy(builder::create)
+                .withMessage("Must set a non-null templateLocation");
 
-        File templateFile = new File(templateDir, "test.ftl");
+        final File templateFile = new File(templateDir, "test.ftl");
         builder.addTemplateLocation(templateFile.toPath());
-        assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() 
-> {
-            builder.create();
-        }).withMessage("Must set a non-null outputLocation");
+        assertThatExceptionOfType(IllegalStateException.class)
+                .isThrownBy(builder::create)
+                .withMessage("Must set a non-null outputLocation");
 
-        File outputFile = new File(outputDir, "mydir/success-test.txt");
+        final File outputFile = new File(outputDir, "mydir/success-test.txt");
         builder.addOutputLocation(outputFile.toPath());
 
-        assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() 
-> {
-            builder.create();
-        }).withMessage("Must set a non-null dataModel");
+        assertThatExceptionOfType(IllegalStateException.class)
+                .isThrownBy(builder::create)
+                .withMessage("Must set a non-null dataModel");
 
         builder.addDataModel(dataModel);
-        OutputGenerator generator = builder.create();
+        final OutputGenerator generator = builder.create();
 
         assertEquals(0, generator.pomModifiedTimestamp);
         assertEquals(file.toPath(), generator.generatorLocation);
@@ -131,34 +132,34 @@ public class OutputGeneratorTest {
 
     @Test
     public void addToDataModelTest() {
-        OutputGenerator.OutputGeneratorBuilder builder = 
OutputGenerator.builder();
-        assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() 
-> {
-            builder.create();
-        }).withMessage("Must set the pomModifiedTimestamp");
+        final OutputGenerator.OutputGeneratorBuilder builder = 
OutputGenerator.builder();
+        assertThatExceptionOfType(IllegalStateException.class)
+                .isThrownBy(builder::create)
+                .withMessage("Must set the pomModifiedTimestamp");
 
         builder.addPomLastModifiedTimestamp(0);
-        assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() 
-> {
-            builder.create();
-        }).withMessage("Must set a non-null generatorLocation");
+        assertThatExceptionOfType(IllegalStateException.class)
+                .isThrownBy(builder::create)
+                .withMessage("Must set a non-null generatorLocation");
 
-        File file = new File(dataDir, "mydir/success-test.txt.json");
+        final File file = new File(dataDir, "mydir/success-test.txt.json");
         builder.addGeneratorLocation(file.toPath());
-        assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() 
-> {
-            builder.create();
-        }).withMessage("Must set a non-null templateLocation");
+        assertThatExceptionOfType(IllegalStateException.class)
+                .isThrownBy(builder::create)
+                .withMessage("Must set a non-null templateLocation");
 
-        File templateFile = new File(templateDir, "test.ftl");
+        final File templateFile = new File(templateDir, "test.ftl");
         builder.addTemplateLocation(templateFile.toPath());
-        assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() 
-> {
-            builder.create();
-        }).withMessage("Must set a non-null outputLocation");
+        assertThatExceptionOfType(IllegalStateException.class)
+                .isThrownBy(builder::create)
+                .withMessage("Must set a non-null outputLocation");
 
-        File outputFile = new File(outputDir, "mydir/success-test.txt");
+        final File outputFile = new File(outputDir, "mydir/success-test.txt");
         builder.addOutputLocation(outputFile.toPath());
 
-        assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() 
-> {
-            builder.create();
-        }).withMessage("Must set a non-null dataModel");
+        assertThatExceptionOfType(IllegalStateException.class)
+                .isThrownBy(builder::create)
+                .withMessage("Must set a non-null dataModel");
 
         builder.addToDataModel("testVar", "testVal");
         OutputGenerator generator = builder.create();
@@ -179,20 +180,20 @@ public class OutputGeneratorTest {
     @Test
     public void generate_SuccessTest()
             throws IOException {
-        OutputGenerator.OutputGeneratorBuilder builder = 
OutputGenerator.builder();
+        final OutputGenerator.OutputGeneratorBuilder builder = 
OutputGenerator.builder();
         builder.addPomLastModifiedTimestamp(0);
-        File file = new File(dataDir, "mydir/success-test.txt.json");
+        final File file = new File(dataDir, "mydir/success-test.txt.json");
         builder.addGeneratorLocation(file.toPath());
-        File outputFile = new File(outputDir, "mydir/success-test.txt");
+        final File outputFile = new File(outputDir, "mydir/success-test.txt");
         builder.addOutputLocation(outputFile.toPath());
-        File templateFile = new File(templateDir, "test.ftl");
+        final File templateFile = new File(templateDir, "test.ftl");
         builder.addTemplateLocation(templateFile.toPath());
         builder.addDataModel(dataModel);
-        OutputGenerator generator = builder.create();
+        final OutputGenerator generator = builder.create();
         generator.generate(config);
 
         assertTrue(outputFile.isFile());
-        List<String> lines = Files.readAllLines(outputFile.toPath(), 
StandardCharsets.UTF_8);
+        final List<String> lines = Files.readAllLines(outputFile.toPath(), 
StandardCharsets.UTF_8);
         assertEquals(17, lines.size());
         assertEquals("This is a test freemarker template. Test json data: 
'test value'. Test pom data: 'pom value'.", lines
                 .get(16));
@@ -217,67 +218,66 @@ public class OutputGeneratorTest {
 
     @Test
     public void generate_badTemplateNameTest() {
-        OutputGenerator.OutputGeneratorBuilder builder = 
OutputGenerator.builder();
+        final OutputGenerator.OutputGeneratorBuilder builder = 
OutputGenerator.builder();
         builder.addPomLastModifiedTimestamp(0);
-        File file = new File(dataDir, "mydir/bad-template-name.txt.json");
+        final File file = new File(dataDir, 
"mydir/bad-template-name.txt.json");
         builder.addGeneratorLocation(file.toPath());
-        File outputFile = new File(outputDir, "mydir/bad-template-name.txt");
+        final File outputFile = new File(outputDir, 
"mydir/bad-template-name.txt");
         builder.addOutputLocation(outputFile.toPath());
-        File templateFile = new File(templateDir, "missing.ftl"); //this 
doesn't exist
+        final File templateFile = new File(templateDir, "missing.ftl"); //this 
doesn't exist
         builder.addTemplateLocation(templateFile.toPath());
         builder.addDataModel(dataModel);
-        OutputGenerator generator = builder.create();
-        
Assertions.assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> {
-            generator.generate(config);
-        }).withMessage("Could not read template: missing.ftl");
+        final OutputGenerator generator = builder.create();
+        Assertions.assertThatExceptionOfType(RuntimeException.class)
+                .isThrownBy(() -> generator.generate(config))
+                .withMessage("Could not read template: missing.ftl");
     }
 
     @Test
     public void generate_missingVarTest() {
-        OutputGenerator.OutputGeneratorBuilder builder = 
OutputGenerator.builder();
+        final OutputGenerator.OutputGeneratorBuilder builder = 
OutputGenerator.builder();
         builder.addPomLastModifiedTimestamp(0);
-        File file = new File(dataDir, "mydir/missing-var-test.txt.json");
+        final File file = new File(dataDir, "mydir/missing-var-test.txt.json");
         builder.addGeneratorLocation(file.toPath());
-        File outputFile = new File(outputDir, "mydir/missing-var-test.txt");
+        final File outputFile = new File(outputDir, 
"mydir/missing-var-test.txt");
         builder.addOutputLocation(outputFile.toPath());
-        File templateFile = new File(templateDir, "test.ftl"); //this is 
missing a
+        final File templateFile = new File(templateDir, "test.ftl"); //this is 
missing a
         builder.addTemplateLocation(templateFile.toPath());
         dataModel.remove("testVar");
         builder.addDataModel(dataModel);
-        OutputGenerator generator = builder.create();
+        final OutputGenerator generator = builder.create();
         Assertions.assertThatExceptionOfType(RuntimeException.class)
-                .isThrownBy(() -> {
-                    generator.generate(config);
-                })
+                .isThrownBy(() -> generator.generate(config))
                 .withMessageStartingWith("Could not process template 
associated with data file");
     }
 
     @Test
     public void generate_badParentTest() throws IOException {
-        OutputGenerator.OutputGeneratorBuilder builder = 
OutputGenerator.builder();
+        final OutputGenerator.OutputGeneratorBuilder builder = 
OutputGenerator.builder();
         builder.addPomLastModifiedTimestamp(0);
-        File file = new File(dataDir, "badParent/bad-parent-test.txt.json");
+        final File file = new File(dataDir, 
"badParent/bad-parent-test.txt.json");
         builder.addGeneratorLocation(file.toPath());
-        File outputFile = new File(outputDir, "badParent/bad-parent-test.txt");
+        final File outputFile = new File(outputDir, 
"badParent/bad-parent-test.txt");
         builder.addOutputLocation(outputFile.toPath());
-        File templateFile = new File(templateDir, "test.ftl"); //this is 
missing a
+        final File templateFile = new File(templateDir, "test.ftl"); //this is 
missing a
         builder.addTemplateLocation(templateFile.toPath());
         builder.addDataModel(dataModel);
-        OutputGenerator generator = builder.create();
+        final OutputGenerator generator = builder.create();
         outputDir.mkdirs();
         outputFile.getParentFile().createNewFile();
 
-        
Assertions.assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> {
-            generator.generate(config);
-        }).withMessage("Parent directory of output file is a file: " + 
outputFile.getParentFile().getAbsolutePath());
+        Assertions.assertThatExceptionOfType(RuntimeException.class)
+                .isThrownBy(() -> generator.generate(config))
+                .withMessage("Parent directory of output file is a file: " + 
outputFile.getParentFile()
+                        .getAbsolutePath());
     }
 
     @Test
     public void generate_cantCreateOutputFileParentDirTest(
             @Mocked FactoryUtil factoryUtil,
-            @Mocked File mockOutputFile) throws IOException {
+            @Mocked File mockOutputFile) {
 
-        File parentDir = new 
File("target/test-output/generating-file-visitor/mydir");
+        final File parentDir = new 
File("target/test-output/generating-file-visitor/mydir");
         new Expectations(mockOutputFile, parentDir) {{
             FactoryUtil.createFile(anyString);
             result = mockOutputFile;
@@ -289,18 +289,18 @@ public class OutputGeneratorTest {
             result = false;
         }};
 
-        OutputGenerator.OutputGeneratorBuilder builder = 
OutputGenerator.builder();
+        final OutputGenerator.OutputGeneratorBuilder builder = 
OutputGenerator.builder();
         builder.addPomLastModifiedTimestamp(0);
-        File file = new File(dataDir, "mydir/missing-var-test.txt.json");
+        final File file = new File(dataDir, "mydir/missing-var-test.txt.json");
         builder.addGeneratorLocation(file.toPath());
-        File outputFile = new File(outputDir, "mydir/missing-var-test.txt");
+        final File outputFile = new File(outputDir, 
"mydir/missing-var-test.txt");
         builder.addOutputLocation(outputFile.toPath());
-        File templateFile = new File(templateDir, "test.ftl"); //this is 
missing a
+        final File templateFile = new File(templateDir, "test.ftl"); //this is 
missing a
         builder.addTemplateLocation(templateFile.toPath());
         builder.addDataModel(dataModel);
-        OutputGenerator generator = builder.create();
-        
Assertions.assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> {
-            generator.generate(config);
-        }).withMessage("Could not create directory: " + 
parentDir.getAbsoluteFile().toString());
+        final OutputGenerator generator = builder.create();
+        Assertions.assertThatExceptionOfType(RuntimeException.class)
+                .isThrownBy(() -> generator.generate(config))
+                .withMessage("Could not create directory: " + 
parentDir.getAbsoluteFile().toString());
     }
 }

Reply via email to