diff --git a/pom.xml b/pom.xml
index 848fe5b..902580d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -57,9 +57,9 @@
     <ant.version>1.10.6</ant.version>
     <bcprov.version>1.62</bcprov.version>
     <commons.cli.version>1.4</commons.cli.version>
-    <commons.codec.version>1.13</commons.codec.version>
-    <commons.collections.version>4.4</commons.collections.version>
-    <commons.daemon.version>1.2.0</commons.daemon.version>
+    <commons.codec.version>1.12</commons.codec.version>
+    <commons.collections.version>4.3</commons.collections.version>
+    <commons.daemon.version>1.1.0</commons.daemon.version>
     <commons.lang.version>3.9</commons.lang.version>
     <commons.net.version>3.6</commons.net.version>
     <commons.pool.version>2.6.2</commons.pool.version>
@@ -157,6 +157,28 @@
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-project-info-reports-plugin</artifactId>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>ci-management</report>
+              <report>dependencies</report>
+              <report>dependency-management</report>
+              <report>index</report>
+              <report>issue-management</report>
+              <report>licenses</report>
+              <report>mailing-lists</report>
+              <report>plugin-management</report>
+              <report>scm</report>
+              <report>summary</report>
+              <report>team</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+    
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jxr-plugin</artifactId>
         <reportSets>
           <reportSet>
@@ -501,33 +523,6 @@
             </goals>
           </execution>
         </executions>
-        <configuration>
-          <reportPlugins>
-            <plugins>
-              <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <reportSets>
-                  <reportSet>
-                    <reports>
-                      <report>project-team</report>
-                      <report>mailing-list</report>
-                      <report>license</report>
-                      <report>dependencies</report>
-                      <report>issue-tracking</report>
-                      <report>index</report>
-                      <report>scm</report>
-                      <report>cim</report>
-                      <report>plugin-management</report>
-                      <report>dependency-management</report>
-                      <report>summary</report>
-                    </reports>
-                  </reportSet>
-                </reportSets>
-              </plugin>
-            </plugins>
-          </reportPlugins>
-        </configuration>
       </plugin>
 
       <plugin>
diff --git a/server-integ/src/test/java/org/apache/directory/server/kerberos/KeyDerivationServiceIT.java b/server-integ/src/test/java/org/apache/directory/server/kerberos/KeyDerivationServiceIT.java
index a591bce..515e6dd 100644
--- a/server-integ/src/test/java/org/apache/directory/server/kerberos/KeyDerivationServiceIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/kerberos/KeyDerivationServiceIT.java
@@ -177,9 +177,13 @@
         {
             assertTrue( "Number of keys", krb5key.size() > 4 );
         }
+        else if ( vendor.equalsIgnoreCase( "Eclipse OpenJ9" ) )
+        {
+            assertTrue( "Number of keys", krb5key.size() > 4 );
+        }
         else
         {
-            fail( "Unkown JVM: " + vendor );
+            fail( "Unkown JVM/keysize: '" + vendor + "' / " + krb5key.size() );
         }
     }
 
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyIT.java b/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyIT.java
index 0ec2599..82d48f2 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyIT.java
@@ -64,7 +64,6 @@
 import org.apache.directory.server.core.integ.FrameworkRunner;
 import org.apache.directory.server.ldap.handlers.extended.PwdModifyHandler;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -84,7 +83,6 @@
 //disable changelog, for more info see DIRSERVER-1528
 @CreateDS(enableChangeLog = false, name = "PasswordPolicyTest", additionalInterceptors =
     { Sha512PasswordHashingInterceptor.class })
-@Ignore
 public class PwdModifyIT extends AbstractLdapTestUnit
 {
     private static final PasswordPolicyResponse PP_REQ_CTRL = new PasswordPolicyResponseImpl();
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyNoPPNoPasswordHashingIT.java b/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyNoPPNoPasswordHashingIT.java
index 29607d2..4e6ea1c 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyNoPPNoPasswordHashingIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyNoPPNoPasswordHashingIT.java
@@ -49,9 +49,6 @@
 import org.apache.directory.server.annotations.CreateLdapServer;
 import org.apache.directory.server.annotations.CreateTransport;
 import org.apache.directory.server.core.annotations.CreateDS;
-import org.apache.directory.server.core.api.InterceptorEnum;
-import org.apache.directory.server.core.authn.AuthenticationInterceptor;
-import org.apache.directory.server.core.authn.ppolicy.PpolicyConfigContainer;
 import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
 import org.apache.directory.server.core.integ.FrameworkRunner;
 import org.apache.directory.server.ldap.handlers.extended.PwdModifyHandler;
@@ -60,8 +57,12 @@
 
 
 /**
+<<<<<<< HEAD
+ * Test the PwdModify extended operation
+=======
  * Test the PwdModify extended operation, when no PasswordPolicy or PasswordHashing interceptor
  * are present.
+>>>>>>> c42030f59692518133715f0a4753ce24bb63b2d8
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
@@ -1382,6 +1383,8 @@
             }
         }
     }
+    
+    
     //-----------------------------------------------------------------------------------
     // Admin password modification with two passwords
     //-----------------------------------------------------------------------------------
@@ -1458,7 +1461,6 @@
             pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User1,ou=system" ) );
             pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1Bis" ) );
 
-            
             // Send the request
             PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
     
