diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 0c5d310..52ff12b 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -11,15 +11,17 @@ permissions:
jobs:
build:
-
runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ version: [ 8, 11 ]
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
- java-version: '8'
+ java-version: ${{ matrix.version }}
distribution: 'temurin'
- name: Run build script
run: ./gradlew build
diff --git a/config/checkstyle/checks.xml b/config/checkstyle/checks.xml
index 962f681..2dd85cf 100644
--- a/config/checkstyle/checks.xml
+++ b/config/checkstyle/checks.xml
@@ -57,6 +57,7 @@
+
diff --git a/subprojects/plugin/build.gradle b/subprojects/plugin/build.gradle
index 2eb71e9..354e346 100644
--- a/subprojects/plugin/build.gradle
+++ b/subprojects/plugin/build.gradle
@@ -23,15 +23,13 @@ dependencies {
implementation('commons-io:commons-io') {
version { strictly '2.4' }
}
- implementation 'org.apache.commons:commons-lang3:3.4'
+ implementation 'org.apache.commons:commons-lang3:3.12.0'
testImplementation 'org.hamcrest:hamcrest-all:1.3'
testImplementation 'org.mockito:mockito-all:1.10.19'
- testImplementation 'org.powermock:powermock-module-junit4:1.6.4'
- testImplementation 'org.powermock:powermock-api-mockito:1.6.4'
- compileOnly 'net.java.dev.javacc:javacc:7.0.12'
- testImplementation 'net.java.dev.javacc:javacc:7.0.12'
+ compileOnly 'net.java.dev.javacc:javacc:7.0.13'
+ testImplementation 'net.java.dev.javacc:javacc:7.0.13'
}
eclipse {
diff --git a/subprojects/plugin/src/acceptanceTest/java/javacc/compilation/ThePluginIsCompatibleWithAllSpportedJavaccVersions.java b/subprojects/plugin/src/acceptanceTest/java/javacc/compilation/ThePluginIsCompatibleWithAllSpportedJavaccVersions.java
index 10f898a..1e02a2c 100644
--- a/subprojects/plugin/src/acceptanceTest/java/javacc/compilation/ThePluginIsCompatibleWithAllSpportedJavaccVersions.java
+++ b/subprojects/plugin/src/acceptanceTest/java/javacc/compilation/ThePluginIsCompatibleWithAllSpportedJavaccVersions.java
@@ -25,7 +25,7 @@ public void givenVersion6WhenExecuteAllTasksFilesAreGenerated() throws URISyntax
@Test
public void givenVersion7WhenExecuteAllTasksFilesAreGenerated() throws URISyntaxException, IOException {
- givenVersionWhenExecuteAllTasksFilesAreGenerated("net.java.dev.javacc:javacc:7.0.12", true);
+ givenVersionWhenExecuteAllTasksFilesAreGenerated("net.java.dev.javacc:javacc:7.0.13", true);
}
@Test
diff --git a/subprojects/plugin/src/main/java/org/javacc/plugin/gradle/javacc/JavaccPlugin.java b/subprojects/plugin/src/main/java/org/javacc/plugin/gradle/javacc/JavaccPlugin.java
index 6349ca8..0c7b37f 100644
--- a/subprojects/plugin/src/main/java/org/javacc/plugin/gradle/javacc/JavaccPlugin.java
+++ b/subprojects/plugin/src/main/java/org/javacc/plugin/gradle/javacc/JavaccPlugin.java
@@ -33,7 +33,7 @@ private Configuration createJavaccConfiguration(Project project) {
private void configureDefaultJavaccDependency(final Project project, Configuration configuration) {
configuration.defaultDependencies(dependencies ->
- dependencies.add(project.getDependencies().create("net.java.dev.javacc:javacc:7.0.12")));
+ dependencies.add(project.getDependencies().create("net.java.dev.javacc:javacc:7.0.13")));
}
private void addCompileJavaccTaskToProject(Project project, Configuration configuration) {
diff --git a/subprojects/plugin/src/main/java/org/javacc/plugin/gradle/javacc/compilationresults/CompiledJavaccFile.java b/subprojects/plugin/src/main/java/org/javacc/plugin/gradle/javacc/compilationresults/CompiledJavaccFile.java
index 025b5be..9f90ce3 100644
--- a/subprojects/plugin/src/main/java/org/javacc/plugin/gradle/javacc/compilationresults/CompiledJavaccFile.java
+++ b/subprojects/plugin/src/main/java/org/javacc/plugin/gradle/javacc/compilationresults/CompiledJavaccFile.java
@@ -15,12 +15,16 @@
public class CompiledJavaccFile {
private static final Pattern PACKAGE_DECLARATION_PATTERN = Pattern.compile("package\\s+([^\\s.;]+(\\.[^\\s.;]+)*)\\s*;");
-
+ protected FileCopyUtil fileCopyUtil = FileUtils::copyFile;
private File compiledJavaccFile;
private File outputDirectory;
private File targetDirectory;
private Logger logger;
+ protected interface FileCopyUtil {
+ void copyFile(File from, File to) throws IOException;
+ }
+
public CompiledJavaccFile(File file, File outputDirectory, File targetDirectory, Logger logger) {
this.compiledJavaccFile = file;
this.outputDirectory = outputDirectory;
@@ -87,7 +91,7 @@ public void copyCompiledFileToTargetDirectory() {
logger.info("Copying compiled file {} to {}", compiledJavaccFile, destination);
try {
- FileUtils.copyFile(compiledJavaccFile, destination);
+ fileCopyUtil.copyFile(compiledJavaccFile, destination);
} catch (IOException e) {
String errorMessage = String.format("Could not copy %s from %s to %s", compiledJavaccFile, outputDirectory, targetDirectory);
throw new CompiledJavaccFileOperationException(errorMessage, e);
@@ -103,7 +107,7 @@ public void copyCustomAstClassToTargetDirectory(File customAstClassInputFile) {
logger.info("Copying custom AST class [{}] to [{}]", customAstClassInputFile, destination);
try {
- FileUtils.copyFile(customAstClassInputFile, destination);
+ fileCopyUtil.copyFile(customAstClassInputFile, destination);
} catch (IOException e) {
String errorMessage = String.format("Could not copy %s to %s", customAstClassInputFile, targetDirectory);
throw new CompiledJavaccFileOperationException(errorMessage, e);
diff --git a/subprojects/plugin/src/test/java/org/javacc/plugin/gradle/javacc/compilationresults/CompiledJavaccFileTest.java b/subprojects/plugin/src/test/java/org/javacc/plugin/gradle/javacc/compilationresults/CompiledJavaccFileTest.java
index 04571c6..bbdbd71 100644
--- a/subprojects/plugin/src/test/java/org/javacc/plugin/gradle/javacc/compilationresults/CompiledJavaccFileTest.java
+++ b/subprojects/plugin/src/test/java/org/javacc/plugin/gradle/javacc/compilationresults/CompiledJavaccFileTest.java
@@ -1,16 +1,10 @@
package org.javacc.plugin.gradle.javacc.compilationresults;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
+import static org.junit.Assert.*;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import static org.powermock.api.mockito.PowerMockito.doThrow;
import java.io.File;
import java.io.IOException;
@@ -23,14 +17,7 @@
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(FileUtils.class)
+
public class CompiledJavaccFileTest {
private File outputDirectory;
private Collection customAstClassesDirectory;
@@ -139,14 +126,12 @@ public void copyCustomAstClassToTargetDirectory() {
}
@Test(expected = CompiledJavaccFileOperationException.class)
- public void copyCustomAstClassToTargetDirectoryFails() throws Exception {
- PowerMockito.mockStatic(FileUtils.class, Answers.CALLS_REAL_METHODS.get());
- doThrow(new IOException()).when(FileUtils.class);
- FileUtils.copyFile(any(File.class), any(File.class));
-
+ public void copyCustomAstClassToTargetDirectoryFails() {
File file = new File(outputDirectory, "FileWithCorrespondingCustomAstClass.java");
CompiledJavaccFile compiledJavaccFile = new CompiledJavaccFile(file, outputDirectory, targetDirectory, logger);
-
+ compiledJavaccFile.fileCopyUtil = (from, to) -> {
+ throw new IOException();
+ };
compiledJavaccFile.handleCustomAstInJavacc(customAstClassesDirectory);
}