diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8a14cd4..7abdc5b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@
### Improvements
* Use pre-sized map objects for fixed-size payloads
* Remove Apache HTTP Client dependency in favor of Java 11 HTTP
+* Introduce Java module descriptor
## 0.9.4 (2021-06-06)
diff --git a/pom.xml b/pom.xml
index e031f01..a214e91 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,8 +96,16 @@
maven-surefire-plugin
2.22.2
- false
- @{argLine} --illegal-access=permit
+
+ @{argLine}
+ --illegal-access=permit
+ --add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector=ALL-UNNAMED
+ --add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector.exception=ALL-UNNAMED
+ --add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector.model=ALL-UNNAMED
+ --add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector.model.response=ALL-UNNAMED
+ --add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector.model.response.embedded=ALL-UNNAMED
+ --add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector.test=com.fasterxml.jackson.databind
+
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
new file mode 100644
index 0000000..ad7f83d
--- /dev/null
+++ b/src/main/java/module-info.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2016-2021 Stefan Kalscheuer
+ *
+ * Licensed 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.
+ */
+
+/**
+ * JVaultConnector module.
+ *
+ * @author Stefan Kalscheuer
+ */
+module de.stklcode.jvault.connector {
+ exports de.stklcode.jvault.connector;
+ exports de.stklcode.jvault.connector.exception;
+ exports de.stklcode.jvault.connector.model;
+ exports de.stklcode.jvault.connector.model.response;
+ exports de.stklcode.jvault.connector.model.response.embedded;
+
+ opens de.stklcode.jvault.connector.model to com.fasterxml.jackson.databind;
+ opens de.stklcode.jvault.connector.model.response to com.fasterxml.jackson.databind;
+ opens de.stklcode.jvault.connector.model.response.embedded to com.fasterxml.jackson.databind;
+
+ requires java.base;
+ requires java.net.http;
+ requires com.fasterxml.jackson.databind;
+}