diff --git a/api/pom.xml b/api/pom.xml
index 156d0b319..04daac2b5 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -70,13 +70,14 @@
-
- io.jsonwebtoken.jjwt.api
-
- io.jsonwebtoken;
- io.jsonwebtoken.*;
-
-
+
+ module io.jsonwebtoken.jjwt.api {
+ exports io.jsonwebtoken;
+ exports io.jsonwebtoken.io;
+ exports io.jsonwebtoken.lang;
+ exports io.jsonwebtoken.security;
+ }
+
diff --git a/extensions/gson/pom.xml b/extensions/gson/pom.xml
index 1677ab9bf..4ddb2bf5b 100644
--- a/extensions/gson/pom.xml
+++ b/extensions/gson/pom.xml
@@ -73,9 +73,19 @@
-
- io.jsonwebtoken.jjwt.ext.gson
-
+
+ module io.jsonwebtoken.jjwt.ext.gson {
+ requires transitive com.google.gson;
+ requires io.jsonwebtoken.jjwt.api;
+
+ exports io.jsonwebtoken.gson.io;
+
+ provides io.jsonwebtoken.io.Deserializer with
+ io.jsonwebtoken.gson.io.GsonDeserializer;
+ provides io.jsonwebtoken.io.Serializer with
+ io.jsonwebtoken.gson.io.GsonSerializer;
+ }
+
diff --git a/extensions/jackson/pom.xml b/extensions/jackson/pom.xml
index dcfa00fea..0df6ab0b8 100644
--- a/extensions/jackson/pom.xml
+++ b/extensions/jackson/pom.xml
@@ -90,9 +90,21 @@
-
- io.jsonwebtoken.jjwt.ext.jackson
-
+
+ module io.jsonwebtoken.jjwt.ext.jackson {
+ requires transitive com.fasterxml.jackson.core;
+ requires transitive com.fasterxml.jackson.databind;
+ requires io.jsonwebtoken.jjwt.api;
+
+ exports io.jsonwebtoken.jackson.io;
+
+ provides io.jsonwebtoken.io.Deserializer with
+ io.jsonwebtoken.jackson.io.JacksonDeserializer;
+ provides io.jsonwebtoken.io.Serializer with
+ io.jsonwebtoken.jackson.io.JacksonSerializer;
+
+ }
+
diff --git a/extensions/orgjson/pom.xml b/extensions/orgjson/pom.xml
index da6bd1e76..735944932 100644
--- a/extensions/orgjson/pom.xml
+++ b/extensions/orgjson/pom.xml
@@ -90,9 +90,18 @@
-
- io.jsonwebtoken.jjwt.ext.orgjson
-
+
+ module io.jsonwebtoken.jjwt.ext.orgjson {
+ requires transitive json;
+ requires io.jsonwebtoken.jjwt.api;
+
+ exports io.jsonwebtoken.orgjson.io;
+
+ provides io.jsonwebtoken.io.Deserializer with io.jsonwebtoken.orgjson.io.OrgJsonDeserializer;
+ provides io.jsonwebtoken.io.Serializer with io.jsonwebtoken.orgjson.io.OrgJsonSerializer;
+ }
+
+
diff --git a/impl/pom.xml b/impl/pom.xml
index b2980da7b..d041c2785 100644
--- a/impl/pom.xml
+++ b/impl/pom.xml
@@ -88,17 +88,25 @@
-
- io.jsonwebtoken.jjwt.impl
-
- io.jsonwebtoken.jjwt.api;
-
-
- io.jsonwebtoken.CompressionCodec;
- io.jsonwebtoken.io.Deserializer;
- io.jsonwebtoken.io.Serializer;
-
-
+
+ module io.jsonwebtoken.jjwt.impl {
+ requires io.jsonwebtoken.jjwt.api;
+
+ exports io.jsonwebtoken.impl;
+ exports io.jsonwebtoken.impl.compression;
+ exports io.jsonwebtoken.impl.crypto;
+ exports io.jsonwebtoken.impl.lang;
+
+ provides io.jsonwebtoken.CompressionCodec with
+ io.jsonwebtoken.impl.compression.DeflateCompressionCodec,
+ io.jsonwebtoken.impl.compression.GzipCompressionCodec;
+
+ uses io.jsonwebtoken.CompressionCodec;
+ uses io.jsonwebtoken.io.Deserializer;
+ uses io.jsonwebtoken.io.Serializer;
+ }
+
+
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index e41ba0562..b98a01f9e 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -7,7 +7,7 @@
io.jsonwebtoken
jjwt-root
- 0.11.3-SNAPSHOT
+ 0.12.7-SNAPSHOT
jjwt-integration-tests
diff --git a/integration-tests/unsigned-jackson/pom.xml b/integration-tests/unsigned-jackson/pom.xml
index b69f264cf..30505b795 100644
--- a/integration-tests/unsigned-jackson/pom.xml
+++ b/integration-tests/unsigned-jackson/pom.xml
@@ -7,7 +7,7 @@
io.jsonwebtoken
jjwt-integration-tests
- 0.11.3-SNAPSHOT
+ 0.12.7-SNAPSHOT
jjwt-integration-tests-unsigned-jackson
diff --git a/pom.xml b/pom.xml
index f24d52242..2bdf1baf5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -693,6 +693,8 @@
[1.8,)
+ ${jdk.version}
+ ${jdk.version}
3.0.2
3.0.19
4.2