diff --git a/integ-osgi/pom.xml b/integ-osgi/pom.xml
index d702134..f9afbbc 100644
--- a/integ-osgi/pom.xml
+++ b/integ-osgi/pom.xml
@@ -92,14 +92,9 @@
     </dependency>
 
     <dependency>
-      <groupId>org.junit.jupiter</groupId>
-      <artifactId>junit-jupiter-engine</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.junit.platform</groupId>
-      <artifactId>junit-platform-runner</artifactId>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.13</version>
       <scope>test</scope>
     </dependency>
 
@@ -176,13 +171,6 @@
             <reuseForks>false</reuseForks>
             <forkedProcessExitTimeoutInSeconds>1</forkedProcessExitTimeoutInSeconds>
             <rerunFailingTestsCount>1</rerunFailingTestsCount>
-            <parallel>all</parallel>
-            <threadCount>10</threadCount>
-            <properties>
-              <configurationParameters>
-                junit.jupiter.execution.parallel.enabled=true
-              </configurationParameters>
-            </properties>
           </configuration>
         </plugin>
         <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
diff --git a/integ-osgi/src/test/java/org/apache/directory/api/osgi/ApiLdapExtrasCodecOsgiTest.java b/integ-osgi/src/test/java/org/apache/directory/api/osgi/ApiLdapExtrasCodecOsgiTest.java
index 8ad1d0e..190cc06 100644
--- a/integ-osgi/src/test/java/org/apache/directory/api/osgi/ApiLdapExtrasCodecOsgiTest.java
+++ b/integ-osgi/src/test/java/org/apache/directory/api/osgi/ApiLdapExtrasCodecOsgiTest.java
@@ -29,6 +29,8 @@
 import org.apache.directory.api.ldap.extras.controls.passwordExpired.PasswordExpiredResponse;
 import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyRequest;
 import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyResponse;
+import org.apache.directory.api.ldap.extras.extended.pwdModify.PasswordModifyRequest;
+import org.apache.directory.api.ldap.extras.extended.pwdModify.PasswordModifyResponse;
 import org.apache.directory.api.ldap.extras.extended.startTls.StartTlsRequest;
 import org.apache.directory.api.ldap.extras.extended.startTls.StartTlsResponse;
 import org.apache.directory.api.ldap.extras.intermediate.syncrepl.SyncInfoValue;
@@ -81,6 +83,16 @@
         assertNotNull( startTlsResponse );
         assertTrue( startTlsResponse instanceof StartTlsResponse );
 
+        ExtendedRequest modifyPasswordRequest = ldapApiService.getExtendedRequestFactories()
+            .get( PasswordModifyRequest.EXTENSION_OID ).newRequest();
+        assertNotNull( modifyPasswordRequest );
+        assertTrue( modifyPasswordRequest instanceof PasswordModifyRequest );
+
+        ExtendedResponse passwordModifyResponse = ldapApiService.getExtendedResponseFactories()
+            .get( PasswordModifyRequest.EXTENSION_OID ).newResponse();
+        assertNotNull( passwordModifyResponse );
+        assertTrue( passwordModifyResponse instanceof PasswordModifyResponse );
+
         ExtendedResponse noticeOfDisconnectResponse = ldapApiService.getExtendedResponseFactories()
             .get( NoticeOfDisconnect.EXTENSION_OID ).newResponse();
         assertNotNull( noticeOfDisconnectResponse );
diff --git a/ldap/extras/aci/pom.xml b/ldap/extras/aci/pom.xml
index 1d31020..e75c771 100644
--- a/ldap/extras/aci/pom.xml
+++ b/ldap/extras/aci/pom.xml
@@ -99,6 +99,7 @@
             </Export-Package>
             <Import-Package>
               antlr;version=${antlr.version},
+              antlr.collections.impl;version=${antlr.version},
               org.apache.directory.api.i18n;version=${project.version},
               org.apache.directory.api.ldap.model.constants;version=${project.version},
               org.apache.directory.api.ldap.model.entry;version=${project.version},
diff --git a/ldap/extras/codec/pom.xml b/ldap/extras/codec/pom.xml
index e95f90a..e9d25ed 100644
--- a/ldap/extras/codec/pom.xml
+++ b/ldap/extras/codec/pom.xml
@@ -165,7 +165,6 @@
               org.apache.directory.api.ldap.extras.extended.whoAmI;version=${project.version},
               org.apache.directory.api.ldap.extras.intermediate.syncrepl;version=${project.version},
               org.apache.directory.api.ldap.model.exception;version=${project.version},
-              org.apache.directory.api.ldap.model.exception;version=${project.version},
               org.apache.directory.api.ldap.model.message;version=${project.version},
               org.apache.directory.api.ldap.model.message.extended;version=${project.version},
               org.apache.directory.api.ldap.model.name;version=${project.version},
diff --git a/ldap/extras/trigger/pom.xml b/ldap/extras/trigger/pom.xml
index 7aaa9c3..74e9b22 100644
--- a/ldap/extras/trigger/pom.xml
+++ b/ldap/extras/trigger/pom.xml
@@ -103,6 +103,7 @@
             </Export-Package>
             <Import-Package>
               antlr;version=${antlr.version},
+              antlr.collections.impl;version=${antlr.version},
               javax.naming,
               javax.naming.directory,
               javax.naming.ldap,
diff --git a/ldap/model/pom.xml b/ldap/model/pom.xml
index e030d68..44d53a6 100644
--- a/ldap/model/pom.xml
+++ b/ldap/model/pom.xml
@@ -193,6 +193,7 @@
             </Export-Package>
             <Import-Package>
               antlr;version=${antlr.version},
+              antlr.collections.impl;version=${antlr.version},
               javax.crypto,
               javax.crypto.spec,
               javax.naming,
diff --git a/ldap/schema/converter/pom.xml b/ldap/schema/converter/pom.xml
index 84d431c..c1d8a7c 100644
--- a/ldap/schema/converter/pom.xml
+++ b/ldap/schema/converter/pom.xml
@@ -126,6 +126,7 @@
             </Export-Package>
             <Import-Package>
               antlr;version=${antlr.version},
+              antlr.collections.impl;version=${antlr.version},
               org.apache.commons.lang3.exception;version=${commons.lang.version},
               org.apache.directory.api.i18n;version=${project.version},
               org.apache.directory.api.ldap.model.constants;version=${project.version},
diff --git a/ldap/schema/data/pom.xml b/ldap/schema/data/pom.xml
index 48656e8..b516b45 100644
--- a/ldap/schema/data/pom.xml
+++ b/ldap/schema/data/pom.xml
@@ -155,6 +155,7 @@
             <Import-Package>
               org.apache.directory.api.asn1.util;version=${project.version},
               org.apache.directory.api.i18n;version=${project.version},
+              org.apache.directory.api.ldap.aci;version=${project.version},
               org.apache.directory.api.ldap.model.constants;version=${project.version},
               org.apache.directory.api.ldap.model.entry;version=${project.version},
               org.apache.directory.api.ldap.model.exception;version=${project.version},
@@ -162,9 +163,11 @@
               org.apache.directory.api.ldap.model.message;version=${project.version},
               org.apache.directory.api.ldap.model.name;version=${project.version},
               org.apache.directory.api.ldap.model.schema;version=${project.version},
+              org.apache.directory.api.ldap.model.schema.comparators;version=${project.version},
               org.apache.directory.api.ldap.model.schema.normalizers;version=${project.version},
               org.apache.directory.api.ldap.model.schema.parsers;version=${project.version},
               org.apache.directory.api.ldap.model.schema.registries;version=${project.version},
+              org.apache.directory.api.ldap.model.schema.syntaxCheckers;version=${project.version},
               org.apache.directory.api.util;version=${project.version},
               org.slf4j;version=${slf4j.api.bundleversion}
             </Import-Package>
