From 71f725494ae9abc3b7ed7a4b27284851871d70f2 Mon Sep 17 00:00:00 2001 From: Patrick Ouellet Date: Fri, 12 Oct 2018 14:34:57 -0700 Subject: [PATCH] TEST-16 Upgraded to Java 11, guava to 26.0-jre, spock to 1.2-groovy-2.5, groovy to 2.5.3-SNAPSHOT, mockito to 2.23.0, javassist to 3.23.1-GA. Upgraded all plugins to their latest versions. Fixed issue in its classloader to make it work with Java 8 and Java 11. --- failsafe-controller/pom.xml | 13 +-- junit-extensions/pom.xml | 11 +- .../junit/impl/DeFinalizeClassLoader.java | 17 ++- pom.xml | 101 +++++++++++++++--- spock-all/pom.xml | 8 +- spock-extensions/pom.xml | 1 + 6 files changed, 109 insertions(+), 42 deletions(-) diff --git a/failsafe-controller/pom.xml b/failsafe-controller/pom.xml index 6149076..0c85c0b 100644 --- a/failsafe-controller/pom.xml +++ b/failsafe-controller/pom.xml @@ -48,6 +48,7 @@ org.codehaus.groovy groovy-all + pom @@ -61,16 +62,4 @@ test - - - - - org.jacoco - jacoco-maven-plugin - - true - - - - diff --git a/junit-extensions/pom.xml b/junit-extensions/pom.xml index 0f20abf..9c0e776 100644 --- a/junit-extensions/pom.xml +++ b/junit-extensions/pom.xml @@ -51,11 +51,6 @@ pom test - - org.codehaus.groovy - groovy-all - test - @@ -78,17 +73,17 @@ INSTRUCTION COVEREDRATIO - 0.70 + 0.74 BRANCH COVEREDRATIO - 0.66 + 0.64 COMPLEXITY COVEREDRATIO - 0.54 + 0.52 diff --git a/junit-extensions/src/main/java/org/codice/junit/impl/DeFinalizeClassLoader.java b/junit-extensions/src/main/java/org/codice/junit/impl/DeFinalizeClassLoader.java index 60cfb6f..1309158 100644 --- a/junit-extensions/src/main/java/org/codice/junit/impl/DeFinalizeClassLoader.java +++ b/junit-extensions/src/main/java/org/codice/junit/impl/DeFinalizeClassLoader.java @@ -47,6 +47,8 @@ * loaded by the parent classloader. */ public class DeFinalizeClassLoader extends ClassLoader { + private static final double VERSION = + Double.parseDouble(System.getProperty("java.specification.version")); private final ClassPool pool; private final Set filters; @@ -103,7 +105,7 @@ protected Class loadClass(String name, boolean resolve) throws ClassNotFoundE if (clazz == null) { clazz = super.loadClass(name, resolve); // always load it from our parent first - if (DeFinalizeClassLoader.isNotFromAReservedPackage(name)) { + if (DeFinalizeClassLoader.isNotFromAReservedPackage(clazz, name)) { try { clazz = reloadClass(clazz, shouldDefinalize(name)); } catch (NotFoundException e) { @@ -170,18 +172,27 @@ private void definalizeMethod(CtMethod ctMethod) { } } + private static boolean isNotFromAReservedPackage(Class clazz, String name) { + // with post Java 8, classes loaded by the boot classloader (i.e. null) are reserved + if ((DeFinalizeClassLoader.VERSION >= 9.0D) && (clazz.getClassLoader() == null)) { + return false; + } + return DeFinalizeClassLoader.isNotFromAReservedPackage(name); + } + private static boolean isNotFromAReservedPackage(String name) { return !name.startsWith("java.") && !name.startsWith("javax.") && !name.startsWith("sun.") && !name.startsWith("org.xml.") - && !name.startsWith("org.junit."); + && !name.startsWith("org.junit.") + && !name.startsWith("jdk."); } private static String checkDefinalizedClass(Class clazz) { final String name = clazz.getName(); - if (!DeFinalizeClassLoader.isNotFromAReservedPackage(name)) { + if (!DeFinalizeClassLoader.isNotFromAReservedPackage(clazz, name)) { throw new IllegalArgumentException("unable to definalize class: " + name); } return name; diff --git a/pom.xml b/pom.xml index d132b08..f7c3c8a 100644 --- a/pom.xml +++ b/pom.xml @@ -36,18 +36,21 @@ + UTF-8 + - 1.8 - 1.8 + 11 + 11 + 11 - 0.1 + 0.2 2.6 - 23.0 + 26.0-jre 3.0.2_1 1.7.1 0.9.5 @@ -55,12 +58,12 @@ 1.2.3 4.12 - 1.1-groovy-2.4 - 2.4.7 - 2.8.47 + 1.2-groovy-2.5 + 2.5.3-SNAPSHOT + 2.23.0 1.3 - 3.22.0-GA + 3.23.1-GA refs/remotes/origin/master @@ -69,7 +72,8 @@ false - 0.8.1 + 0.8.2 + 2.22.0 @@ -112,6 +116,14 @@ Codice Repository https://artifacts.codice.org/content/groups/public/ + + + oss-jfrog + https://oss.jfrog.org/artifactory/libs-snapshot/ + + true + + @@ -201,18 +213,55 @@ org.codehaus.groovy - groovy-all + groovy-dateutil ${groovy.version} org.spockframework spock-core ${spock.version} + org.codehaus.groovy groovy-all + + org.codehaus.groovy + groovy + + + org.codehaus.groovy + groovy-groovysh + + + org.codehaus.groovy + groovy-json + + + org.codehaus.groovy + groovy-macro + + + org.codehaus.groovy + groovy-nio + + + org.codehaus.groovy + groovy-sql + + + org.codehaus.groovy + groovy-templates + + + org.codehaus.groovy + groovy-test + + + org.codehaus.groovy + groovy-xml + @@ -229,15 +278,20 @@ + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + org.apache.maven.plugins maven-jar-plugin - 3.0.2 + 3.1.0 org.apache.maven.plugins maven-assembly-plugin - 2.2.2 + 3.1.0 org.jacoco @@ -262,14 +316,23 @@ org.apache.maven.plugins maven-surefire-plugin - 2.20.1 + ${maven-surefire-plugin.version} - ${argLine} -Djava.awt.headless=true -noverify + ${argLine} -Djava.awt.headless=true -noverify + **/*Test.java **/*Spec.class + + + + org.apache.maven.surefire + surefire-junit47 + ${maven-surefire-plugin.version} + + @@ -278,7 +341,7 @@ com.coveo fmt-maven-plugin - 2.0.0 + 2.5.1 validate @@ -291,15 +354,19 @@ org.codehaus.gmavenplus gmavenplus-plugin - 1.5 + 1.6.1 compile - testCompile + compileTests + + + 1.8 + org.jacoco diff --git a/spock-all/pom.xml b/spock-all/pom.xml index 8ed56dd..e9c85c9 100644 --- a/spock-all/pom.xml +++ b/spock-all/pom.xml @@ -33,12 +33,12 @@ org.ow2.asm asm - 5.0.4 + 7.0-beta cglib cglib-nodep - 3.2.6 + 3.2.8 org.objenesis @@ -50,6 +50,10 @@ groovy-all pom + + org.codehaus.groovy + groovy-dateutil + org.spockframework spock-core diff --git a/spock-extensions/pom.xml b/spock-extensions/pom.xml index ede0f03..514edc1 100644 --- a/spock-extensions/pom.xml +++ b/spock-extensions/pom.xml @@ -29,6 +29,7 @@ org.codehaus.groovy groovy-all + pom org.spockframework