diff --git a/base-java-pom/compatibility-tests/dropwizard-1x/pom.xml b/base-java-pom/compatibility-tests/dropwizard-1x/pom.xml
index 4828b86..912e20c 100644
--- a/base-java-pom/compatibility-tests/dropwizard-1x/pom.xml
+++ b/base-java-pom/compatibility-tests/dropwizard-1x/pom.xml
@@ -43,6 +43,11 @@
assertj-core
test
+
+ org.mockito
+ mockito-core
+ test
+
diff --git a/base-java-pom/compatibility-tests/dropwizard-1x/src/test/java/zone/dragon/basepom/dw1x/MockitoCompatibilityTest.java b/base-java-pom/compatibility-tests/dropwizard-1x/src/test/java/zone/dragon/basepom/dw1x/MockitoCompatibilityTest.java
new file mode 100644
index 0000000..3e2c39d
--- /dev/null
+++ b/base-java-pom/compatibility-tests/dropwizard-1x/src/test/java/zone/dragon/basepom/dw1x/MockitoCompatibilityTest.java
@@ -0,0 +1,25 @@
+package zone.dragon.basepom.dw1x;
+
+import java.util.HashSet;
+import java.util.function.Supplier;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class MockitoCompatibilityTest {
+
+ @Test
+ public void mockitoCanMockJdkInterfaces() {
+ Supplier> mock = Mockito.mock(Supplier.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.get()).isNull();
+ }
+
+ @Test
+ public void mockitoCanMockJdkClasses() {
+ HashSet> mock = Mockito.mock(HashSet.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.size()).isEqualTo(0);
+ }
+}
diff --git a/base-java-pom/compatibility-tests/dropwizard-2x/pom.xml b/base-java-pom/compatibility-tests/dropwizard-2x/pom.xml
index 36bd74f..46807aa 100644
--- a/base-java-pom/compatibility-tests/dropwizard-2x/pom.xml
+++ b/base-java-pom/compatibility-tests/dropwizard-2x/pom.xml
@@ -43,6 +43,11 @@
assertj-core
test
+
+ org.mockito
+ mockito-core
+ test
+
diff --git a/base-java-pom/compatibility-tests/dropwizard-2x/src/test/java/zone/dragon/basepom/dw2x/MockitoCompatibilityTest.java b/base-java-pom/compatibility-tests/dropwizard-2x/src/test/java/zone/dragon/basepom/dw2x/MockitoCompatibilityTest.java
new file mode 100644
index 0000000..4ddbe19
--- /dev/null
+++ b/base-java-pom/compatibility-tests/dropwizard-2x/src/test/java/zone/dragon/basepom/dw2x/MockitoCompatibilityTest.java
@@ -0,0 +1,25 @@
+package zone.dragon.basepom.dw2x;
+
+import java.util.HashSet;
+import java.util.function.Supplier;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class MockitoCompatibilityTest {
+
+ @Test
+ void mockitoCanMockJdkInterfaces() {
+ Supplier> mock = Mockito.mock(Supplier.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.get()).isNull();
+ }
+
+ @Test
+ void mockitoCanMockJdkClasses() {
+ HashSet> mock = Mockito.mock(HashSet.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.size()).isEqualTo(0);
+ }
+}
diff --git a/base-java-pom/compatibility-tests/dropwizard-3x/pom.xml b/base-java-pom/compatibility-tests/dropwizard-3x/pom.xml
index 7d9a3e3..19669ed 100644
--- a/base-java-pom/compatibility-tests/dropwizard-3x/pom.xml
+++ b/base-java-pom/compatibility-tests/dropwizard-3x/pom.xml
@@ -47,6 +47,11 @@
assertj-core
test
+
+ org.mockito
+ mockito-core
+ test
+
diff --git a/base-java-pom/compatibility-tests/dropwizard-3x/src/test/java/zone/dragon/basepom/dw3x/MockitoCompatibilityTest.java b/base-java-pom/compatibility-tests/dropwizard-3x/src/test/java/zone/dragon/basepom/dw3x/MockitoCompatibilityTest.java
new file mode 100644
index 0000000..007b8d3
--- /dev/null
+++ b/base-java-pom/compatibility-tests/dropwizard-3x/src/test/java/zone/dragon/basepom/dw3x/MockitoCompatibilityTest.java
@@ -0,0 +1,25 @@
+package zone.dragon.basepom.dw3x;
+
+import java.util.HashSet;
+import java.util.function.Supplier;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class MockitoCompatibilityTest {
+
+ @Test
+ void mockitoCanMockJdkInterfaces() {
+ Supplier> mock = Mockito.mock(Supplier.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.get()).isNull();
+ }
+
+ @Test
+ void mockitoCanMockJdkClasses() {
+ HashSet> mock = Mockito.mock(HashSet.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.size()).isEqualTo(0);
+ }
+}
diff --git a/base-java-pom/compatibility-tests/dropwizard-4x/pom.xml b/base-java-pom/compatibility-tests/dropwizard-4x/pom.xml
index d52b816..68ea628 100644
--- a/base-java-pom/compatibility-tests/dropwizard-4x/pom.xml
+++ b/base-java-pom/compatibility-tests/dropwizard-4x/pom.xml
@@ -47,6 +47,11 @@
assertj-core
test
+
+ org.mockito
+ mockito-core
+ test
+
diff --git a/base-java-pom/compatibility-tests/dropwizard-4x/src/test/java/zone/dragon/basepom/dw4x/MockitoCompatibilityTest.java b/base-java-pom/compatibility-tests/dropwizard-4x/src/test/java/zone/dragon/basepom/dw4x/MockitoCompatibilityTest.java
new file mode 100644
index 0000000..9843947
--- /dev/null
+++ b/base-java-pom/compatibility-tests/dropwizard-4x/src/test/java/zone/dragon/basepom/dw4x/MockitoCompatibilityTest.java
@@ -0,0 +1,25 @@
+package zone.dragon.basepom.dw4x;
+
+import java.util.HashSet;
+import java.util.function.Supplier;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class MockitoCompatibilityTest {
+
+ @Test
+ void mockitoCanMockJdkInterfaces() {
+ Supplier> mock = Mockito.mock(Supplier.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.get()).isNull();
+ }
+
+ @Test
+ void mockitoCanMockJdkClasses() {
+ HashSet> mock = Mockito.mock(HashSet.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.size()).isEqualTo(0);
+ }
+}
diff --git a/base-java-pom/compatibility-tests/dropwizard-5x/pom.xml b/base-java-pom/compatibility-tests/dropwizard-5x/pom.xml
index 32b5b5d..d1b0923 100644
--- a/base-java-pom/compatibility-tests/dropwizard-5x/pom.xml
+++ b/base-java-pom/compatibility-tests/dropwizard-5x/pom.xml
@@ -47,6 +47,11 @@
assertj-core
test
+
+ org.mockito
+ mockito-core
+ test
+
diff --git a/base-java-pom/compatibility-tests/dropwizard-5x/src/test/java/zone/dragon/basepom/dw5x/MockitoCompatibilityTest.java b/base-java-pom/compatibility-tests/dropwizard-5x/src/test/java/zone/dragon/basepom/dw5x/MockitoCompatibilityTest.java
new file mode 100644
index 0000000..1c03729
--- /dev/null
+++ b/base-java-pom/compatibility-tests/dropwizard-5x/src/test/java/zone/dragon/basepom/dw5x/MockitoCompatibilityTest.java
@@ -0,0 +1,25 @@
+package zone.dragon.basepom.dw5x;
+
+import java.util.HashSet;
+import java.util.function.Supplier;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class MockitoCompatibilityTest {
+
+ @Test
+ void mockitoCanMockJdkInterfaces() {
+ Supplier> mock = Mockito.mock(Supplier.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.get()).isNull();
+ }
+
+ @Test
+ void mockitoCanMockJdkClasses() {
+ HashSet> mock = Mockito.mock(HashSet.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.size()).isEqualTo(0);
+ }
+}
diff --git a/base-java-pom/compatibility-tests/dropwizard-bundle-1x/pom.xml b/base-java-pom/compatibility-tests/dropwizard-bundle-1x/pom.xml
index 4734aa2..05f69fc 100644
--- a/base-java-pom/compatibility-tests/dropwizard-bundle-1x/pom.xml
+++ b/base-java-pom/compatibility-tests/dropwizard-bundle-1x/pom.xml
@@ -43,6 +43,11 @@
assertj-core
test
+
+ org.mockito
+ mockito-core
+ test
+
diff --git a/base-java-pom/compatibility-tests/dropwizard-bundle-1x/src/test/java/zone/dragon/basepom/dwbundle1x/MockitoCompatibilityTest.java b/base-java-pom/compatibility-tests/dropwizard-bundle-1x/src/test/java/zone/dragon/basepom/dwbundle1x/MockitoCompatibilityTest.java
new file mode 100644
index 0000000..d43ab91
--- /dev/null
+++ b/base-java-pom/compatibility-tests/dropwizard-bundle-1x/src/test/java/zone/dragon/basepom/dwbundle1x/MockitoCompatibilityTest.java
@@ -0,0 +1,25 @@
+package zone.dragon.basepom.dwbundle1x;
+
+import java.util.HashSet;
+import java.util.function.Supplier;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class MockitoCompatibilityTest {
+
+ @Test
+ public void mockitoCanMockJdkInterfaces() {
+ Supplier> mock = Mockito.mock(Supplier.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.get()).isNull();
+ }
+
+ @Test
+ public void mockitoCanMockJdkClasses() {
+ HashSet> mock = Mockito.mock(HashSet.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.size()).isEqualTo(0);
+ }
+}
diff --git a/base-java-pom/compatibility-tests/dropwizard-bundle-2x/pom.xml b/base-java-pom/compatibility-tests/dropwizard-bundle-2x/pom.xml
index d8a1ca1..086c322 100644
--- a/base-java-pom/compatibility-tests/dropwizard-bundle-2x/pom.xml
+++ b/base-java-pom/compatibility-tests/dropwizard-bundle-2x/pom.xml
@@ -43,6 +43,11 @@
assertj-core
test
+
+ org.mockito
+ mockito-core
+ test
+
diff --git a/base-java-pom/compatibility-tests/dropwizard-bundle-2x/src/test/java/zone/dragon/basepom/dwbundle2x/MockitoCompatibilityTest.java b/base-java-pom/compatibility-tests/dropwizard-bundle-2x/src/test/java/zone/dragon/basepom/dwbundle2x/MockitoCompatibilityTest.java
new file mode 100644
index 0000000..1ceb52c
--- /dev/null
+++ b/base-java-pom/compatibility-tests/dropwizard-bundle-2x/src/test/java/zone/dragon/basepom/dwbundle2x/MockitoCompatibilityTest.java
@@ -0,0 +1,25 @@
+package zone.dragon.basepom.dwbundle2x;
+
+import java.util.HashSet;
+import java.util.function.Supplier;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class MockitoCompatibilityTest {
+
+ @Test
+ void mockitoCanMockJdkInterfaces() {
+ Supplier> mock = Mockito.mock(Supplier.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.get()).isNull();
+ }
+
+ @Test
+ void mockitoCanMockJdkClasses() {
+ HashSet> mock = Mockito.mock(HashSet.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.size()).isEqualTo(0);
+ }
+}
diff --git a/base-java-pom/compatibility-tests/dropwizard-bundle-3x/pom.xml b/base-java-pom/compatibility-tests/dropwizard-bundle-3x/pom.xml
index 13c41a7..148fe42 100644
--- a/base-java-pom/compatibility-tests/dropwizard-bundle-3x/pom.xml
+++ b/base-java-pom/compatibility-tests/dropwizard-bundle-3x/pom.xml
@@ -47,6 +47,11 @@
assertj-core
test
+
+ org.mockito
+ mockito-core
+ test
+
diff --git a/base-java-pom/compatibility-tests/dropwizard-bundle-3x/src/test/java/zone/dragon/basepom/dwbundle3x/MockitoCompatibilityTest.java b/base-java-pom/compatibility-tests/dropwizard-bundle-3x/src/test/java/zone/dragon/basepom/dwbundle3x/MockitoCompatibilityTest.java
new file mode 100644
index 0000000..8bd2a7d
--- /dev/null
+++ b/base-java-pom/compatibility-tests/dropwizard-bundle-3x/src/test/java/zone/dragon/basepom/dwbundle3x/MockitoCompatibilityTest.java
@@ -0,0 +1,25 @@
+package zone.dragon.basepom.dwbundle3x;
+
+import java.util.HashSet;
+import java.util.function.Supplier;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class MockitoCompatibilityTest {
+
+ @Test
+ void mockitoCanMockJdkInterfaces() {
+ Supplier> mock = Mockito.mock(Supplier.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.get()).isNull();
+ }
+
+ @Test
+ void mockitoCanMockJdkClasses() {
+ HashSet> mock = Mockito.mock(HashSet.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.size()).isEqualTo(0);
+ }
+}
diff --git a/base-java-pom/compatibility-tests/dropwizard-bundle-4x/pom.xml b/base-java-pom/compatibility-tests/dropwizard-bundle-4x/pom.xml
index 5ef47f9..190cd71 100644
--- a/base-java-pom/compatibility-tests/dropwizard-bundle-4x/pom.xml
+++ b/base-java-pom/compatibility-tests/dropwizard-bundle-4x/pom.xml
@@ -47,6 +47,11 @@
assertj-core
test
+
+ org.mockito
+ mockito-core
+ test
+
diff --git a/base-java-pom/compatibility-tests/dropwizard-bundle-4x/src/test/java/zone/dragon/basepom/dwbundle4x/MockitoCompatibilityTest.java b/base-java-pom/compatibility-tests/dropwizard-bundle-4x/src/test/java/zone/dragon/basepom/dwbundle4x/MockitoCompatibilityTest.java
new file mode 100644
index 0000000..cca2cc3
--- /dev/null
+++ b/base-java-pom/compatibility-tests/dropwizard-bundle-4x/src/test/java/zone/dragon/basepom/dwbundle4x/MockitoCompatibilityTest.java
@@ -0,0 +1,25 @@
+package zone.dragon.basepom.dwbundle4x;
+
+import java.util.HashSet;
+import java.util.function.Supplier;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class MockitoCompatibilityTest {
+
+ @Test
+ void mockitoCanMockJdkInterfaces() {
+ Supplier> mock = Mockito.mock(Supplier.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.get()).isNull();
+ }
+
+ @Test
+ void mockitoCanMockJdkClasses() {
+ HashSet> mock = Mockito.mock(HashSet.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.size()).isEqualTo(0);
+ }
+}
diff --git a/base-java-pom/compatibility-tests/dropwizard-bundle-5x/pom.xml b/base-java-pom/compatibility-tests/dropwizard-bundle-5x/pom.xml
index ee93214..592a4c7 100644
--- a/base-java-pom/compatibility-tests/dropwizard-bundle-5x/pom.xml
+++ b/base-java-pom/compatibility-tests/dropwizard-bundle-5x/pom.xml
@@ -47,6 +47,11 @@
assertj-core
test
+
+ org.mockito
+ mockito-core
+ test
+
diff --git a/base-java-pom/compatibility-tests/dropwizard-bundle-5x/src/test/java/zone/dragon/basepom/dwbundle5x/MockitoCompatibilityTest.java b/base-java-pom/compatibility-tests/dropwizard-bundle-5x/src/test/java/zone/dragon/basepom/dwbundle5x/MockitoCompatibilityTest.java
new file mode 100644
index 0000000..d96de54
--- /dev/null
+++ b/base-java-pom/compatibility-tests/dropwizard-bundle-5x/src/test/java/zone/dragon/basepom/dwbundle5x/MockitoCompatibilityTest.java
@@ -0,0 +1,25 @@
+package zone.dragon.basepom.dwbundle5x;
+
+import java.util.HashSet;
+import java.util.function.Supplier;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class MockitoCompatibilityTest {
+
+ @Test
+ void mockitoCanMockJdkInterfaces() {
+ Supplier> mock = Mockito.mock(Supplier.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.get()).isNull();
+ }
+
+ @Test
+ void mockitoCanMockJdkClasses() {
+ HashSet> mock = Mockito.mock(HashSet.class);
+ assertThat(mock).isNotNull();
+ assertThat(mock.size()).isEqualTo(0);
+ }
+}
diff --git a/base-java-pom/compatibility-tests/jvm-libraries/pom.xml b/base-java-pom/compatibility-tests/jvm-libraries/pom.xml
index 8671fd7..1ebe61f 100644
--- a/base-java-pom/compatibility-tests/jvm-libraries/pom.xml
+++ b/base-java-pom/compatibility-tests/jvm-libraries/pom.xml
@@ -67,6 +67,16 @@
junit
test
+
+ net.bytebuddy
+ byte-buddy
+ test
+
+
+ org.ow2.asm
+ asm
+ test
+
org.assertj
assertj-core
diff --git a/base-java-pom/compatibility-tests/jvm-libraries/src/test/kotlin/AsmCompatibilityTest.kt b/base-java-pom/compatibility-tests/jvm-libraries/src/test/kotlin/AsmCompatibilityTest.kt
new file mode 100644
index 0000000..4923cc5
--- /dev/null
+++ b/base-java-pom/compatibility-tests/jvm-libraries/src/test/kotlin/AsmCompatibilityTest.kt
@@ -0,0 +1,20 @@
+import org.assertj.core.api.Assertions.assertThat
+import org.junit.jupiter.api.Test
+import org.objectweb.asm.ClassReader
+import org.objectweb.asm.Opcodes
+
+class AsmCompatibilityTest {
+
+ @Test
+ fun asmCanReadJdkClass() {
+ val reader = ClassReader("java.util.HashSet")
+ assertThat(reader.className).isEqualTo("java/util/HashSet")
+ assertThat(reader.superName).isEqualTo("java/util/AbstractSet")
+ assertThat(reader.access and Opcodes.ACC_PUBLIC).isNotEqualTo(0)
+ }
+
+ @Test
+ fun asmSupportsCurrentJdkVersion() {
+ assertThat(Opcodes.V26).isGreaterThan(0)
+ }
+}
diff --git a/base-java-pom/compatibility-tests/jvm-libraries/src/test/kotlin/ByteBuddyCompatibilityTest.kt b/base-java-pom/compatibility-tests/jvm-libraries/src/test/kotlin/ByteBuddyCompatibilityTest.kt
new file mode 100644
index 0000000..273a0ba
--- /dev/null
+++ b/base-java-pom/compatibility-tests/jvm-libraries/src/test/kotlin/ByteBuddyCompatibilityTest.kt
@@ -0,0 +1,13 @@
+import net.bytebuddy.ClassFileVersion
+import org.assertj.core.api.Assertions.assertThat
+import org.junit.jupiter.api.Test
+
+class ByteBuddyCompatibilityTest {
+
+ @Test
+ fun byteBuddySupportsCurrentJdkVersion() {
+ val currentVersion = ClassFileVersion.ofThisVm()
+ val jdk25 = ClassFileVersion.ofJavaVersion(25)
+ assertThat(currentVersion.isAtLeast(jdk25)).isTrue()
+ }
+}
diff --git a/base-java-pom/pom.xml b/base-java-pom/pom.xml
index 36d82f0..a1d4278 100644
--- a/base-java-pom/pom.xml
+++ b/base-java-pom/pom.xml
@@ -46,6 +46,8 @@
${java.version}
3.24.2
+ 9.9.1
+ 1.18.7
1.11.0
1.21.0
4.5.0
@@ -191,6 +193,18 @@
${mockito.version}
test
+
+ net.bytebuddy
+ byte-buddy
+ ${bytebuddy.version}
+
+
+ org.ow2.asm
+ asm-bom
+ ${asm.version}
+ pom
+ import
+
org.apache.commons
@@ -719,37 +733,6 @@
-
- kotlin-js
-
-
- kotlin-js.enable
- true
-
-
-
-
-
- kotlin-maven-plugin
- org.jetbrains.kotlin
-
-
- kotlin-js-compile
- compile
-
- js
-
-
- ${project.basedir}/src/main/kotlin
- ${project.build.outputDirectory}/${project.artifactId}.js
- true
-
-
-
-
-
-
-
java-9-support