hiding message implementations

git-svn-id: https://svn.apache.org/repos/asf/directory/apacheds/branches/alex_refactoring@1056058 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/core-api/src/main/java/org/apache/directory/server/core/EntryToResponseCursor.java b/core-api/src/main/java/org/apache/directory/server/core/EntryToResponseCursor.java
index ccc287a..78c3d27 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/EntryToResponseCursor.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/EntryToResponseCursor.java
@@ -31,9 +31,7 @@
 import org.apache.directory.shared.ldap.message.Response;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.message.SearchResultDone;
-import org.apache.directory.shared.ldap.message.SearchResultDoneImpl;
 import org.apache.directory.shared.ldap.message.SearchResultEntry;
-import org.apache.directory.shared.ldap.message.SearchResultEntryImpl;
 
 
 /**
@@ -119,7 +117,7 @@
     public Response get() throws Exception
     {
         ClonedServerEntry entry = ( ClonedServerEntry ) wrapped.get();
-        SearchResultEntry se = new SearchResultEntryImpl( messageId );
+        SearchResultEntry se = new org.apache.directory.shared.ldap.codec.message.SearchResultEntryImpl( messageId );
         se.setEntry( entry );
 
         return se;
@@ -161,7 +159,7 @@
 
         if ( !done )
         {
-            searchDoneResp = new SearchResultDoneImpl( messageId );
+            searchDoneResp = new org.apache.directory.shared.ldap.codec.message.SearchResultDoneImpl( messageId );
             searchDoneResp.getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
         }
 
diff --git a/core-api/src/main/java/org/apache/directory/server/core/LdapCoreSessionConnection.java b/core-api/src/main/java/org/apache/directory/server/core/LdapCoreSessionConnection.java
index 4c80b14..f1ecb67 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/LdapCoreSessionConnection.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/LdapCoreSessionConnection.java
@@ -47,38 +47,32 @@
 import org.apache.directory.shared.ldap.filter.SearchScope;
 import org.apache.directory.shared.ldap.message.AbandonRequest;
 import org.apache.directory.shared.ldap.message.AddRequest;
-import org.apache.directory.shared.ldap.message.AddRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.AddRequestImpl;
 import org.apache.directory.shared.ldap.message.AddResponse;
-import org.apache.directory.shared.ldap.message.AddResponseImpl;
+import org.apache.directory.shared.ldap.codec.message.AddResponseImpl;
 import org.apache.directory.shared.ldap.message.AliasDerefMode;
 import org.apache.directory.shared.ldap.message.BindRequest;
-import org.apache.directory.shared.ldap.message.BindRequestImpl;
 import org.apache.directory.shared.ldap.message.BindResponse;
-import org.apache.directory.shared.ldap.message.BindResponseImpl;
 import org.apache.directory.shared.ldap.message.CompareRequest;
-import org.apache.directory.shared.ldap.message.CompareRequestImpl;
 import org.apache.directory.shared.ldap.message.CompareResponse;
-import org.apache.directory.shared.ldap.message.CompareResponseImpl;
+import org.apache.directory.shared.ldap.codec.message.CompareResponseImpl;
 import org.apache.directory.shared.ldap.message.DeleteRequest;
-import org.apache.directory.shared.ldap.message.DeleteRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.DeleteRequestImpl;
 import org.apache.directory.shared.ldap.message.DeleteResponse;
-import org.apache.directory.shared.ldap.message.DeleteResponseImpl;
 import org.apache.directory.shared.ldap.message.ExtendedRequest;
 import org.apache.directory.shared.ldap.message.ExtendedResponse;
 import org.apache.directory.shared.ldap.message.LdapResult;
 import org.apache.directory.shared.ldap.message.Message;
 import org.apache.directory.shared.ldap.message.ModifyDnRequest;
-import org.apache.directory.shared.ldap.message.ModifyDnRequestImpl;
 import org.apache.directory.shared.ldap.message.ModifyDnResponse;
-import org.apache.directory.shared.ldap.message.ModifyDnResponseImpl;
+import org.apache.directory.shared.ldap.codec.message.ModifyDnResponseImpl;
 import org.apache.directory.shared.ldap.message.ModifyRequest;
-import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
 import org.apache.directory.shared.ldap.message.ModifyResponse;
-import org.apache.directory.shared.ldap.message.ModifyResponseImpl;
+import org.apache.directory.shared.ldap.codec.message.ModifyResponseImpl;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.message.ResultResponseRequest;
 import org.apache.directory.shared.ldap.message.SearchRequest;
-import org.apache.directory.shared.ldap.message.SearchRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.SearchRequestImpl;
 import org.apache.directory.shared.ldap.message.control.Control;
 import org.apache.directory.shared.ldap.name.DN;
 import org.apache.directory.shared.ldap.name.RDN;
@@ -257,7 +251,7 @@
      */
     public CompareResponse compare( DN dn, String attributeName, byte[] value ) throws LdapException
     {
-        CompareRequest compareRequest = new CompareRequestImpl();
+        CompareRequest compareRequest = new org.apache.directory.shared.ldap.codec.message.CompareRequestImpl();
         compareRequest.setName( dn );
         compareRequest.setAttributeId( attributeName );
         compareRequest.setAssertionValue( value );
@@ -271,7 +265,7 @@
      */
     public CompareResponse compare( DN dn, String attributeName, String value ) throws LdapException
     {
-        CompareRequest compareRequest = new CompareRequestImpl();
+        CompareRequest compareRequest = new org.apache.directory.shared.ldap.codec.message.CompareRequestImpl();
         compareRequest.setName( dn );
         compareRequest.setAttributeId( attributeName );
         compareRequest.setAssertionValue( value );
@@ -303,7 +297,7 @@
      */
     public CompareResponse compare( DN dn, String attributeName, Value<?> value ) throws LdapException
     {
-        CompareRequest compareRequest = new CompareRequestImpl();
+        CompareRequest compareRequest = new org.apache.directory.shared.ldap.codec.message.CompareRequestImpl();
         compareRequest.setName( dn );
         compareRequest.setAttributeId( attributeName );
 
@@ -343,7 +337,7 @@
 
         int newId = messageId.incrementAndGet();
 
-        DeleteResponse resp = new DeleteResponseImpl( newId );
+        DeleteResponse resp = new org.apache.directory.shared.ldap.codec.message.DeleteResponseImpl( newId );
         resp.getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
 
         try
@@ -566,10 +560,10 @@
 
         int newId = messageId.incrementAndGet();
 
-        ModifyResponse resp = new ModifyResponseImpl( newId );
+        ModifyResponse resp = new org.apache.directory.shared.ldap.codec.message.ModifyResponseImpl( newId );
         resp.getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
 
-        ModifyRequest iModReq = new ModifyRequestImpl( newId );
+        ModifyRequest iModReq = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl( newId );
 
         try
         {
@@ -616,10 +610,10 @@
         }
 
         int newId = messageId.incrementAndGet();
-        ModifyResponse resp = new ModifyResponseImpl( newId );
+        ModifyResponse resp = new org.apache.directory.shared.ldap.codec.message.ModifyResponseImpl( newId );
         resp.getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
 
-        ModifyRequest iModReq = new ModifyRequestImpl( newId );
+        ModifyRequest iModReq = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl( newId );
 
         try
         {
@@ -778,7 +772,7 @@
             throw new IllegalArgumentException( msg );
         }
 
-        ModifyDnRequest iModDnReq = new ModifyDnRequestImpl();
+        ModifyDnRequest iModDnReq = new org.apache.directory.shared.ldap.codec.message.ModifyDnRequestImpl();
         iModDnReq.setName( entryDn );
         iModDnReq.setNewSuperior( newSuperiorDn );
 
@@ -828,7 +822,7 @@
             throw new IllegalArgumentException( msg );
         }
 
-        ModifyDnRequest iModDnReq = new ModifyDnRequestImpl();
+        ModifyDnRequest iModDnReq = new org.apache.directory.shared.ldap.codec.message.ModifyDnRequestImpl();
         iModDnReq.setName( entryDn );
         iModDnReq.setNewRdn( newRdn );
         iModDnReq.setDeleteOldRdn( deleteOldRdn );
@@ -933,7 +927,7 @@
         ModifyDnResponse resp = new ModifyDnResponseImpl();
         resp.getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
 
-        ModifyDnRequest iModDnReq = new ModifyDnRequestImpl();
+        ModifyDnRequest iModDnReq = new org.apache.directory.shared.ldap.codec.message.ModifyDnRequestImpl();
 
         iModDnReq.setName( entryDn );
         iModDnReq.setNewRdn( newDn.getRdn() );
@@ -1126,7 +1120,7 @@
      */
     public BindResponse bind() throws LdapException, IOException
     {
-        BindRequest bindReq = new BindRequestImpl();
+        BindRequest bindReq = new org.apache.directory.shared.ldap.codec.message.BindRequestImpl();
         bindReq.setName( DN.EMPTY_DN );
         bindReq.setCredentials( ( byte[] ) null );
 
@@ -1154,7 +1148,7 @@
 
         OperationManager operationManager = directoryService.getOperationManager();
 
-        BindResponse bindResp = new BindResponseImpl( newId );
+        BindResponse bindResp = new org.apache.directory.shared.ldap.codec.message.BindResponseImpl( newId );
         bindResp.getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
 
         try
@@ -1188,7 +1182,7 @@
     {
         byte[] credBytes = ( credentials == null ? CharConstants.EMPTY_BYTES : Strings.getBytesUtf8(credentials) );
 
-        BindRequest bindReq = new BindRequestImpl();
+        BindRequest bindReq = new org.apache.directory.shared.ldap.codec.message.BindRequestImpl();
         bindReq.setName( name );
         bindReq.setCredentials( credBytes );
 
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java b/core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java
index e308cdb..e250384 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java
@@ -37,7 +37,7 @@
 import org.apache.directory.shared.ldap.entry.EntryAttribute;
 import org.apache.directory.shared.ldap.message.BindResponse;
 import org.apache.directory.shared.ldap.message.ModifyRequest;
-import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.name.DN;
 import org.apache.directory.shared.util.Strings;
@@ -375,7 +375,7 @@
         assertTrue( entry.get( "uid" ).contains( "akarasulu" ) );
 
         // now modify the password for akarasulu : 'secret', encrypted using MD5
-        ModifyRequest modReq = new ModifyRequestImpl();
+        ModifyRequest modReq = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modReq.setName( new DN( userDn ) );
         modReq.replace( "userPassword", "{MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==" );
         connection.modify( modReq );
@@ -416,7 +416,7 @@
         assertTrue( entry.get( "uid" ).contains( "akarasulu" ) );
 
         // now modify the password for akarasulu : 'secret', encrypted using SMD5
-        ModifyRequest modReq = new ModifyRequestImpl();
+        ModifyRequest modReq = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modReq.setName( new DN( userDn ) );
         modReq.replace( "userPassword", "{SMD5}tQ9wo/VBuKsqBtylMMCcORbnYOJFMyDJ" );
         connection.modify( modReq );
@@ -456,7 +456,7 @@
         assertTrue( entry.get( "uid" ).contains( "akarasulu" ) );
 
         // now modify the password for akarasulu : 'secret', encrypted using CRYPT
-        ModifyRequest modReq = new ModifyRequestImpl();
+        ModifyRequest modReq = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modReq.setName( new DN( userDn ) );
         modReq.replace( "userPassword", "{crypt}qFkH8Z1woBlXw" );
         connection.modify( modReq );
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/authn/ppolicy/PasswordPolicyTest.java b/core-integ/src/test/java/org/apache/directory/server/core/authn/ppolicy/PasswordPolicyTest.java
index 57aaac3..5bac61e 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/authn/ppolicy/PasswordPolicyTest.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/authn/ppolicy/PasswordPolicyTest.java
@@ -53,10 +53,9 @@
 import org.apache.directory.shared.ldap.exception.LdapException;
 import org.apache.directory.shared.ldap.ldif.LdifUtils;
 import org.apache.directory.shared.ldap.message.AddRequest;
-import org.apache.directory.shared.ldap.message.AddRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.AddRequestImpl;
 import org.apache.directory.shared.ldap.message.AddResponse;
 import org.apache.directory.shared.ldap.message.ModifyRequest;
-import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
 import org.apache.directory.shared.ldap.message.ModifyResponse;
 import org.apache.directory.shared.ldap.message.Response;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
@@ -208,7 +207,7 @@
         Entry userEntry = LdifUtils.createEntry( userDn, "ObjectClass: top", "ObjectClass: person", "cn: userMinAge",
             "sn: userMinAge_sn", "userPassword: 12345" );
 
-        AddRequest addRequest = new AddRequestImpl();
+        AddRequest addRequest = new org.apache.directory.shared.ldap.codec.message.AddRequestImpl();
         addRequest.setEntry( userEntry );
         addRequest.addControl( PP_REQ_CTRL );
 
@@ -218,7 +217,7 @@
         PasswordPolicyResponseControl respCtrl = getPwdRespCtrl( addResp );
         assertNull( respCtrl );
 
-        ModifyRequest modReq = new ModifyRequestImpl();
+        ModifyRequest modReq = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modReq.setName( userDn );
         modReq.addControl( PP_REQ_CTRL );
         modReq.replace( SchemaConstants.USER_PASSWORD_AT, "123456" );
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsAdminIT.java b/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsAdminIT.java
index 886a345..0052902 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsAdminIT.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsAdminIT.java
@@ -40,7 +40,7 @@
 import org.apache.directory.shared.ldap.message.DeleteResponse;
 import org.apache.directory.shared.ldap.message.ModifyDnResponse;
 import org.apache.directory.shared.ldap.message.ModifyRequest;
-import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl;
 import org.apache.directory.shared.ldap.message.Response;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.message.SearchResultEntry;
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/authz/AutzIntegUtils.java b/core-integ/src/test/java/org/apache/directory/server/core/authz/AutzIntegUtils.java
index 9639081..b699f1e 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/authz/AutzIntegUtils.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/authz/AutzIntegUtils.java
@@ -30,7 +30,7 @@
 import org.apache.directory.shared.ldap.entry.EntryAttribute;
 import org.apache.directory.shared.ldap.message.AddResponse;
 import org.apache.directory.shared.ldap.message.ModifyRequest;
-import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.name.DN;
 
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/authz/ModifyAuthorizationIT.java b/core-integ/src/test/java/org/apache/directory/server/core/authz/ModifyAuthorizationIT.java
index 8a1edb6..9248a9f 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/authz/ModifyAuthorizationIT.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/authz/ModifyAuthorizationIT.java
@@ -45,7 +45,7 @@
 import org.apache.directory.shared.ldap.entry.Modification;
 import org.apache.directory.shared.ldap.entry.ModificationOperation;
 import org.apache.directory.shared.ldap.message.ModifyRequest;
-import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl;
 import org.apache.directory.shared.ldap.message.ModifyResponse;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.name.DN;
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/changelog/DefaultChangeLogIT.java b/core-integ/src/test/java/org/apache/directory/server/core/changelog/DefaultChangeLogIT.java
index 6b90f52..f26eb73 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/changelog/DefaultChangeLogIT.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/changelog/DefaultChangeLogIT.java
@@ -39,7 +39,7 @@
 import org.apache.directory.shared.ldap.entry.EntryAttribute;
 import org.apache.directory.shared.ldap.exception.LdapException;
 import org.apache.directory.shared.ldap.message.ModifyRequest;
-import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl;
 import org.apache.directory.shared.ldap.name.DN;
 import org.junit.After;
 import org.junit.Test;
@@ -289,7 +289,7 @@
         assertPresent( sysRoot, "ou=test5,ou=system" );
 
         // modify the test entry to add description and test new attr appears
-        ModifyRequest modReq = new ModifyRequestImpl();
+        ModifyRequest modReq = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modReq.setName( entry.getDn() );
         modReq.add( "description", "a desc value" );
         sysRoot.modify( modReq );
@@ -311,7 +311,7 @@
         // -------------------------------------------------------------------
 
         // add the attribute again and make sure it is old value
-        modReq = new ModifyRequestImpl();
+        modReq = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modReq.setName( resusitated.getDn() );
         modReq.add( "description", "old value" );
         sysRoot.modify( modReq );
@@ -323,7 +323,7 @@
 
         // now tag then replace the value to "new value" and confirm
         Tag t1 = service.getChangeLog().tag();
-        modReq = new ModifyRequestImpl();
+        modReq = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modReq.setName( resusitated.getDn() );
         modReq.replace( "description", "new value" );
         sysRoot.modify( modReq );
@@ -370,14 +370,14 @@
         // -------------------------------------------------------------------
 
         // add a userPassword attribute so we can test replacing it
-        modReq = new ModifyRequestImpl();
+        modReq = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modReq.setName( resusitated.getDn() );
         modReq.add( "userPassword", "to be replaced" );
         sysRoot.modify( modReq );
         resusitated = sysRoot.lookup( "ou=test5,ou=system" );
         assertPassword( resusitated, "to be replaced" );
 
-        modReq = new ModifyRequestImpl();
+        modReq = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modReq.setName( resusitated.getDn() );
         modReq.remove( "description", "old value" );
         modReq.add( "seeAlso", "ou=added" );
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/exception/ExceptionServiceIT.java b/core-integ/src/test/java/org/apache/directory/server/core/exception/ExceptionServiceIT.java
index 444cdce..c8f18d1 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/exception/ExceptionServiceIT.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/exception/ExceptionServiceIT.java
@@ -43,7 +43,7 @@
 import org.apache.directory.shared.ldap.message.DeleteResponse;
 import org.apache.directory.shared.ldap.message.ModifyDnResponse;
 import org.apache.directory.shared.ldap.message.ModifyRequest;
-import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl;
 import org.apache.directory.shared.ldap.message.ModifyResponse;
 import org.apache.directory.shared.ldap.message.Response;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/operations/modify/ModifyPerfIT.java b/core-integ/src/test/java/org/apache/directory/server/core/operations/modify/ModifyPerfIT.java
index 86e921b..06dd731 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/operations/modify/ModifyPerfIT.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/operations/modify/ModifyPerfIT.java
@@ -36,7 +36,7 @@
 import org.apache.directory.shared.ldap.entry.Modification;
 import org.apache.directory.shared.ldap.entry.ModificationOperation;
 import org.apache.directory.shared.ldap.message.ModifyRequest;
-import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl;
 import org.apache.directory.shared.ldap.name.DN;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java b/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java
index 3c4b14e..80c6230 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java
@@ -65,7 +65,6 @@
 import org.apache.directory.server.core.integ.FrameworkRunner;
 import org.apache.directory.shared.ldap.entry.Entry;
 import org.apache.directory.shared.ldap.message.ModifyRequest;
-import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
 import org.apache.directory.shared.ldap.message.ModifyResponse;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.name.DN;
@@ -129,7 +128,7 @@
     {
         LdapConnection conn = getAdminConnection( service );
 
-        ModifyRequest modRequest = new ModifyRequestImpl();
+        ModifyRequest modRequest = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modRequest.setName( new DN( GLOBAL_SUBSCHEMA_DN ) );
         modRequest.add( "attributeTypes", "( 2.5.4.58 NAME 'attributeCertificateAttribute' "
             + " DESC 'attribute certificate use ;binary' SYNTAX 1.3.6.1.4.1.1466.115.121.1.8 )" );
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceIT.java b/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceIT.java
index 7540d09..29a9c08 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceIT.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceIT.java
@@ -57,7 +57,6 @@
 import org.apache.directory.shared.ldap.message.AddResponse;
 import org.apache.directory.shared.ldap.message.DeleteResponse;
 import org.apache.directory.shared.ldap.message.ModifyRequest;
-import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
 import org.apache.directory.shared.ldap.message.Response;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.message.SearchResultEntry;
@@ -230,7 +229,7 @@
 
     private void addAdministrativeRole( LdapConnection connection, String dn, String role ) throws Exception
     {
-        ModifyRequest modifyRequest = new ModifyRequestImpl();
+        ModifyRequest modifyRequest = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modifyRequest.setName( new DN( dn ) );
         modifyRequest.add( "administrativeRole", role );
         connection.modify( modifyRequest );
diff --git a/http-directory-bridge/src/main/java/org/apache/directory/server/HttpDirectoryService.java b/http-directory-bridge/src/main/java/org/apache/directory/server/HttpDirectoryService.java
index 649de67..1170ab7 100644
--- a/http-directory-bridge/src/main/java/org/apache/directory/server/HttpDirectoryService.java
+++ b/http-directory-bridge/src/main/java/org/apache/directory/server/HttpDirectoryService.java
@@ -25,7 +25,6 @@
 import org.apache.directory.server.core.LdapCoreSessionConnection;
 import org.apache.directory.shared.ldap.message.BindRequest;
 import org.apache.directory.shared.ldap.message.BindResponse;
-import org.apache.directory.shared.ldap.message.BindResponseImpl;
 import org.apache.directory.shared.ldap.message.LdapResult;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.schema.SchemaManager;
@@ -84,7 +83,7 @@
         }
         catch ( Exception e )
         {
-            resp = new BindResponseImpl();
+            resp = new org.apache.directory.shared.ldap.codec.message.BindResponseImpl();
 
             LdapResult result = resp.getLdapResult();
             result.setErrorMessage( e.getMessage() );
diff --git a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAbandonRequestTest.java b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAbandonRequestTest.java
index 14af4df..c8c4274 100644
--- a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAbandonRequestTest.java
+++ b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAbandonRequestTest.java
@@ -41,7 +41,7 @@
 import org.apache.directory.shared.ldap.message.AliasDerefMode;
 import org.apache.directory.shared.ldap.message.Response;
 import org.apache.directory.shared.ldap.message.SearchRequest;
-import org.apache.directory.shared.ldap.message.SearchRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.SearchRequestImpl;
 import org.apache.directory.shared.ldap.message.SearchResultDone;
 import org.apache.directory.shared.ldap.name.DN;
 import org.junit.After;
diff --git a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java
index b02b566..83f3517 100644
--- a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java
+++ b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java
@@ -44,7 +44,7 @@
 import org.apache.directory.shared.ldap.entry.DefaultEntry;
 import org.apache.directory.shared.ldap.entry.Entry;
 import org.apache.directory.shared.ldap.message.AddRequest;
-import org.apache.directory.shared.ldap.message.AddRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.AddRequestImpl;
 import org.apache.directory.shared.ldap.message.AddResponse;
 import org.apache.directory.shared.ldap.message.BindResponse;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
diff --git a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientCompareRequestTest.java b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientCompareRequestTest.java
index c78e0fc..db7ef82 100644
--- a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientCompareRequestTest.java
+++ b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientCompareRequestTest.java
@@ -38,7 +38,6 @@
 import org.apache.directory.server.core.integ.FrameworkRunner;
 import org.apache.directory.shared.ldap.constants.SchemaConstants;
 import org.apache.directory.shared.ldap.message.CompareRequest;
-import org.apache.directory.shared.ldap.message.CompareRequestImpl;
 import org.apache.directory.shared.ldap.message.CompareResponse;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.name.DN;
@@ -114,7 +113,7 @@
     {
         DN dn = new DN( "uid=admin,ou=system" );
 
-        CompareRequest compareRequest = new CompareRequestImpl();
+        CompareRequest compareRequest = new org.apache.directory.shared.ldap.codec.message.CompareRequestImpl();
         compareRequest.setName( dn );
         compareRequest.setAttributeId( SchemaConstants.UID_AT );
         compareRequest.setAssertionValue( "admin" );
diff --git a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientDeleteRequestTest.java b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientDeleteRequestTest.java
index 1801415..842b2af 100644
--- a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientDeleteRequestTest.java
+++ b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientDeleteRequestTest.java
@@ -33,7 +33,6 @@
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.directory.ldap.client.api.LdapAsyncConnection;
 import org.apache.directory.ldap.client.api.LdapNetworkConnection;
 import org.apache.directory.ldap.client.api.future.DeleteFuture;
 import org.apache.directory.server.annotations.CreateLdapServer;
@@ -44,7 +43,6 @@
 import org.apache.directory.server.core.integ.FrameworkRunner;
 import org.apache.directory.shared.ldap.exception.LdapException;
 import org.apache.directory.shared.ldap.message.DeleteRequest;
-import org.apache.directory.shared.ldap.message.DeleteRequestImpl;
 import org.apache.directory.shared.ldap.message.DeleteResponse;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.name.DN;
@@ -235,7 +233,7 @@
 
         assertTrue( session.exists( dn ) );
 
-        DeleteRequest deleteRequest = new DeleteRequestImpl();
+        DeleteRequest deleteRequest = new org.apache.directory.shared.ldap.codec.message.DeleteRequestImpl();
         deleteRequest.setName( dn );
 
         DeleteFuture deleteFuture = connection.deleteAsync( deleteRequest );
diff --git a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientExtendedRequestTest.java b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientExtendedRequestTest.java
index b46a9e0..c67b07e 100644
--- a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientExtendedRequestTest.java
+++ b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientExtendedRequestTest.java
@@ -40,7 +40,6 @@
 import org.apache.directory.server.core.integ.FrameworkRunner;
 import org.apache.directory.server.ldap.handlers.extended.StartTlsHandler;
 import org.apache.directory.shared.ldap.message.ExtendedRequest;
-import org.apache.directory.shared.ldap.message.ExtendedRequestImpl;
 import org.apache.directory.shared.ldap.message.ExtendedResponse;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.name.DN;
@@ -108,7 +107,7 @@
     @Test
     public void testExtendedAsync() throws Exception
     {
-        ExtendedRequest extendedRequest = new ExtendedRequestImpl();
+        ExtendedRequest extendedRequest = new org.apache.directory.shared.ldap.codec.message.ExtendedRequestImpl();
         extendedRequest.setRequestName( StartTlsRequest.OID );
 
         ExtendedFuture extendedFuture = connection.extendedAsync( extendedRequest );
diff --git a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyDnRequestTest.java b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyDnRequestTest.java
index e1c530e..1d061da 100644
--- a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyDnRequestTest.java
+++ b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyDnRequestTest.java
@@ -40,7 +40,7 @@
 import org.apache.directory.server.core.integ.FrameworkRunner;
 import org.apache.directory.shared.ldap.entry.Entry;
 import org.apache.directory.shared.ldap.message.ModifyDnRequest;
-import org.apache.directory.shared.ldap.message.ModifyDnRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.ModifyDnRequestImpl;
 import org.apache.directory.shared.ldap.message.ModifyDnResponse;
 import org.apache.directory.shared.ldap.name.DN;
 import org.apache.directory.shared.ldap.name.RDN;
diff --git a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyRequestTest.java b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyRequestTest.java
index 8ea0632..70f2eb9 100644
--- a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyRequestTest.java
+++ b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyRequestTest.java
@@ -46,7 +46,7 @@
 import org.apache.directory.shared.ldap.entry.EntryAttribute;
 import org.apache.directory.shared.ldap.entry.ModificationOperation;
 import org.apache.directory.shared.ldap.message.ModifyRequest;
-import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl;
 import org.apache.directory.shared.ldap.message.ModifyResponse;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.name.DN;
@@ -120,7 +120,7 @@
         DN dn = new DN( "uid=admin,ou=system" );
 
         String expected = String.valueOf( System.currentTimeMillis() );
-        ModifyRequest modRequest = new ModifyRequestImpl();
+        ModifyRequest modRequest = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modRequest.setName( dn );
         modRequest.replace( SchemaConstants.SN_AT, expected );
 
@@ -194,7 +194,7 @@
         DN dn = new DN( "uid=admin,ou=system" );
 
         String expected = String.valueOf( System.currentTimeMillis() );
-        ModifyRequest modifyRequest = new ModifyRequestImpl();
+        ModifyRequest modifyRequest = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modifyRequest.setName( dn );
         modifyRequest.replace( SchemaConstants.SN_AT, expected );
 
@@ -239,7 +239,7 @@
         ModifyResponse modResp = connection.modify( modifyRequest );
         assertEquals( ResultCodeEnum.INSUFFICIENT_ACCESS_RIGHTS, modResp.getLdapResult().getResultCode() );
 
-        modifyRequest = new ModifyRequestImpl();
+        modifyRequest = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modifyRequest.setName( dn );
         modifyRequest.replace( SchemaConstants.ENTRY_CSN_AT, new CsnFactory( 0 ).newInstance().toString() );
 
@@ -271,7 +271,7 @@
         String modifierName = "uid=x,ou=system";
         String modifiedTime = DateUtils.getGeneralizedTime();
 
-        ModifyRequest modifyRequest = new ModifyRequestImpl();
+        ModifyRequest modifyRequest = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modifyRequest.setName( dn );
         modifyRequest.replace( SchemaConstants.MODIFIERS_NAME_AT, modifierName );
         modifyRequest.replace( SchemaConstants.MODIFY_TIMESTAMP_AT, modifiedTime );
diff --git a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java
index aff7274..68784dc 100644
--- a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java
+++ b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java
@@ -43,7 +43,7 @@
 import org.apache.directory.server.core.interceptor.context.BindOperationContext;
 import org.apache.directory.shared.ldap.exception.LdapException;
 import org.apache.directory.shared.ldap.message.BindRequest;
-import org.apache.directory.shared.ldap.message.BindRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.BindRequestImpl;
 import org.apache.directory.shared.ldap.message.BindResponse;
 import org.apache.directory.shared.ldap.message.LdapResult;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
@@ -357,7 +357,7 @@
             } );
 
             // Send another BindRequest
-            BindRequest bindRequest = new BindRequestImpl();
+            BindRequest bindRequest = new org.apache.directory.shared.ldap.codec.message.BindRequestImpl();
             bindRequest.setName( new DN( "uid=admin,ou=system" ) );
             bindRequest.setCredentials( "secret" );
 
diff --git a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/search/ClientSearchRequestTest.java b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/search/ClientSearchRequestTest.java
index 0d64ddb..7e7d75a 100644
--- a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/search/ClientSearchRequestTest.java
+++ b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/search/ClientSearchRequestTest.java
@@ -44,7 +44,6 @@
 import org.apache.directory.shared.ldap.message.Response;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.message.SearchRequest;
-import org.apache.directory.shared.ldap.message.SearchRequestImpl;
 import org.apache.directory.shared.ldap.message.SearchResultDone;
 import org.apache.directory.shared.ldap.message.SearchResultEntry;
 import org.apache.directory.shared.ldap.name.DN;
@@ -210,7 +209,7 @@
     @Test
     public void testSearchWithDerefAlias() throws Exception
     {
-        SearchRequest searchRequest = new SearchRequestImpl();
+        SearchRequest searchRequest = new org.apache.directory.shared.ldap.codec.message.SearchRequestImpl();
         searchRequest.setBase( new DN( "ou=users,ou=system" ) );
         searchRequest.setFilter( "(objectClass=*)" );
         searchRequest.setScope( SearchScope.ONELEVEL );
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolHandler.java
index 651c427..2a3c558 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolHandler.java
@@ -22,7 +22,7 @@
 
 import org.apache.directory.shared.ldap.codec.LdapMessageContainer;
 import org.apache.directory.shared.ldap.message.ExtendedRequest;
-import org.apache.directory.shared.ldap.message.ExtendedRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.ExtendedRequestImpl;
 import org.apache.directory.shared.ldap.message.Request;
 import org.apache.directory.shared.ldap.message.ResponseCarryingMessageException;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
@@ -202,7 +202,7 @@
         }
         else if ( message == SslFilter.SESSION_UNSECURED )
         {
-            ExtendedRequest req = new ExtendedRequestImpl( 0 );
+            ExtendedRequest req = new org.apache.directory.shared.ldap.codec.message.ExtendedRequestImpl( 0 );
             req.setRequestName( "1.3.6.1.4.1.1466.20037" );
             req.setRequestValue( "UNSECURED".getBytes( "ISO-8859-1" ) );
             message = req;
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/LdapRequestHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/LdapRequestHandler.java
index b81fe3d..0c7b37d 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/LdapRequestHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/LdapRequestHandler.java
@@ -30,13 +30,12 @@
 import org.apache.directory.shared.ldap.exception.LdapReferralException;
 import org.apache.directory.shared.ldap.message.AbandonRequest;
 import org.apache.directory.shared.ldap.message.BindRequest;
-import org.apache.directory.shared.ldap.message.BindRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.BindRequestImpl;
 import org.apache.directory.shared.ldap.message.BindResponse;
-import org.apache.directory.shared.ldap.message.BindResponseImpl;
 import org.apache.directory.shared.ldap.message.ExtendedRequest;
 import org.apache.directory.shared.ldap.message.LdapResult;
 import org.apache.directory.shared.ldap.message.Referral;
-import org.apache.directory.shared.ldap.message.ReferralImpl;
+import org.apache.directory.shared.ldap.codec.message.ReferralImpl;
 import org.apache.directory.shared.ldap.message.Request;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.message.ResultResponse;
@@ -145,7 +144,7 @@
                 || ldapSession.isSimpleAuthPending() )
             {
                 LOG.error( I18n.err( I18n.ERR_732 ) );
-                BindResponse bindResponse = new BindResponseImpl( message.getMessageId() );
+                BindResponse bindResponse = new org.apache.directory.shared.ldap.codec.message.BindResponseImpl( message.getMessageId() );
                 LdapResult bindResult = bindResponse.getLdapResult();
                 bindResult.setResultCode( ResultCodeEnum.UNWILLING_TO_PERFORM );
                 bindResult.setErrorMessage( I18n.err( I18n.ERR_732 ) );
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/PersistentSearchListener.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/PersistentSearchListener.java
index cce6753..dc58e71 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/PersistentSearchListener.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/PersistentSearchListener.java
@@ -38,7 +38,7 @@
 import org.apache.directory.shared.ldap.message.AbandonableRequest;
 import org.apache.directory.shared.ldap.message.SearchRequest;
 import org.apache.directory.shared.ldap.message.SearchResultEntry;
-import org.apache.directory.shared.ldap.message.SearchResultEntryImpl;
+import org.apache.directory.shared.ldap.codec.message.SearchResultEntryImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -134,7 +134,7 @@
             return;
         }
 
-        SearchResultEntry respEntry = new SearchResultEntryImpl( req.getMessageId() );
+        SearchResultEntry respEntry = new org.apache.directory.shared.ldap.codec.message.SearchResultEntryImpl( req.getMessageId() );
         respEntry.setObjectName( addContext.getDn() );
         respEntry.setEntry( addContext.getEntry() );
         setECResponseControl( respEntry, addContext, ChangeType.ADD );
@@ -164,7 +164,7 @@
             return;
         }
 
-        SearchResultEntry respEntry = new SearchResultEntryImpl( req.getMessageId() );
+        SearchResultEntry respEntry = new org.apache.directory.shared.ldap.codec.message.SearchResultEntryImpl( req.getMessageId() );
         respEntry.setObjectName( modifyContext.getDn() );
         respEntry.setEntry( modifyContext.getAlteredEntry() );
         setECResponseControl( respEntry, modifyContext, ChangeType.MODIFY );
@@ -179,7 +179,7 @@
             return;
         }
 
-        SearchResultEntry respEntry = new SearchResultEntryImpl( req.getMessageId() );
+        SearchResultEntry respEntry = new org.apache.directory.shared.ldap.codec.message.SearchResultEntryImpl( req.getMessageId() );
         respEntry.setObjectName( moveContext.getDn() );
         respEntry.setEntry( moveContext.getEntry() );
         setECResponseControl( respEntry, moveContext, ChangeType.MODDN );
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/SearchHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/SearchHandler.java
index c2b3147..99cd91b 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/SearchHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/SearchHandler.java
@@ -59,16 +59,16 @@
 import org.apache.directory.shared.ldap.filter.SearchScope;
 import org.apache.directory.shared.ldap.message.LdapResult;
 import org.apache.directory.shared.ldap.message.Referral;
-import org.apache.directory.shared.ldap.message.ReferralImpl;
+import org.apache.directory.shared.ldap.codec.message.ReferralImpl;
 import org.apache.directory.shared.ldap.message.Response;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.message.ResultResponseRequest;
 import org.apache.directory.shared.ldap.message.SearchRequest;
 import org.apache.directory.shared.ldap.message.SearchResultDone;
 import org.apache.directory.shared.ldap.message.SearchResultEntry;
-import org.apache.directory.shared.ldap.message.SearchResultEntryImpl;
+import org.apache.directory.shared.ldap.codec.message.SearchResultEntryImpl;
 import org.apache.directory.shared.ldap.message.SearchResultReference;
-import org.apache.directory.shared.ldap.message.SearchResultReferenceImpl;
+import org.apache.directory.shared.ldap.codec.message.SearchResultReferenceImpl;
 import org.apache.directory.shared.ldap.name.DN;
 import org.apache.directory.shared.ldap.schema.AttributeType;
 import org.apache.directory.shared.ldap.util.LdapURL;
@@ -836,7 +836,7 @@
             // The entry is a referral.
             SearchResultReference respRef;
             respRef = new SearchResultReferenceImpl( req.getMessageId() );
-            respRef.setReferral( new ReferralImpl() );
+            respRef.setReferral( new org.apache.directory.shared.ldap.codec.message.ReferralImpl() );
 
             for ( Value<?> val : ref )
             {
@@ -1229,7 +1229,7 @@
         throws Exception
     {
         LdapResult result = req.getResultResponse().getLdapResult();
-        ReferralImpl referral = new ReferralImpl();
+        org.apache.directory.shared.ldap.codec.message.ReferralImpl referral = new org.apache.directory.shared.ldap.codec.message.ReferralImpl();
         result.setReferral( referral );
         result.setResultCode( ResultCodeEnum.REFERRAL );
         result.setErrorMessage( "Encountered referral attempting to handle request." );
@@ -1362,7 +1362,7 @@
         LOG.debug( "Inside getReferralOnAncestor()" );
 
         EntryAttribute refAttr = referralAncestor.getOriginalEntry().get( SchemaConstants.REF_AT );
-        Referral referral = new ReferralImpl();
+        Referral referral = new org.apache.directory.shared.ldap.codec.message.ReferralImpl();
 
         for ( Value<?> value : refAttr )
         {
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/StartTlsHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/StartTlsHandler.java
index 3691e20..a38a074 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/StartTlsHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/StartTlsHandler.java
@@ -42,7 +42,7 @@
 import org.apache.directory.server.ldap.LdapSession;
 import org.apache.directory.shared.ldap.message.ExtendedRequest;
 import org.apache.directory.shared.ldap.message.ExtendedResponse;
-import org.apache.directory.shared.ldap.message.ExtendedResponseImpl;
+import org.apache.directory.shared.ldap.codec.message.ExtendedResponseImpl;
 import org.apache.directory.shared.ldap.message.LdapResult;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.mina.core.filterchain.IoFilterChain;
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplConsumer.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplConsumer.java
index cc9c094..f8455de 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplConsumer.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplConsumer.java
@@ -72,7 +72,6 @@
 import org.apache.directory.shared.ldap.message.Response;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.message.SearchRequest;
-import org.apache.directory.shared.ldap.message.SearchRequestImpl;
 import org.apache.directory.shared.ldap.message.SearchResultDone;
 import org.apache.directory.shared.ldap.message.SearchResultEntry;
 import org.apache.directory.shared.ldap.message.SearchResultReference;
@@ -261,7 +260,7 @@
     {
         String baseDn = config.getBaseDn();
 
-        searchRequest = new SearchRequestImpl();
+        searchRequest = new org.apache.directory.shared.ldap.codec.message.SearchRequestImpl();
 
         searchRequest.setBase( new DN( baseDn ) );
         searchRequest.setFilter( config.getFilter() );
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplProvider.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplProvider.java
index 9de1cb3..8275e9b 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplProvider.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplProvider.java
@@ -70,17 +70,14 @@
 import org.apache.directory.shared.ldap.filter.PresenceNode;
 import org.apache.directory.shared.ldap.filter.SearchScope;
 import org.apache.directory.shared.ldap.message.IntermediateResponse;
-import org.apache.directory.shared.ldap.message.IntermediateResponseImpl;
+import org.apache.directory.shared.ldap.codec.message.IntermediateResponseImpl;
 import org.apache.directory.shared.ldap.message.LdapResult;
-import org.apache.directory.shared.ldap.message.ReferralImpl;
 import org.apache.directory.shared.ldap.message.Response;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.message.SearchRequest;
 import org.apache.directory.shared.ldap.message.SearchResultDone;
 import org.apache.directory.shared.ldap.message.SearchResultEntry;
-import org.apache.directory.shared.ldap.message.SearchResultEntryImpl;
 import org.apache.directory.shared.ldap.message.SearchResultReference;
-import org.apache.directory.shared.ldap.message.SearchResultReferenceImpl;
 import org.apache.directory.shared.ldap.message.control.replication.SyncStateTypeEnum;
 import org.apache.directory.shared.ldap.message.control.replication.SynchronizationInfoEnum;
 import org.apache.directory.shared.ldap.message.control.replication.SynchronizationModeEnum;
@@ -325,7 +322,7 @@
 
         if ( refreshNPersist )
         {
-            IntermediateResponse intermResp = new IntermediateResponseImpl( req.getMessageId() );
+            IntermediateResponse intermResp = new org.apache.directory.shared.ldap.codec.message.IntermediateResponseImpl( req.getMessageId() );
             intermResp.setResponseName( SyncInfoValueControl.CONTROL_OID );
 
             SyncInfoValueControl syncInfo = new SyncInfoValueControl( SynchronizationInfoEnum.NEW_COOKIE );
@@ -607,8 +604,8 @@
         {
             // The entry is a referral.
             SearchResultReference respRef;
-            respRef = new SearchResultReferenceImpl( req.getMessageId() );
-            respRef.setReferral( new ReferralImpl() );
+            respRef = new org.apache.directory.shared.ldap.codec.message.SearchResultReferenceImpl( req.getMessageId() );
+            respRef.setReferral( new org.apache.directory.shared.ldap.codec.message.ReferralImpl() );
 
             for ( Value<?> val : ref )
             {
@@ -653,7 +650,7 @@
         {
             // The entry is not a referral, or the ManageDsaIt control is set
             SearchResultEntry respEntry;
-            respEntry = new SearchResultEntryImpl( req.getMessageId() );
+            respEntry = new org.apache.directory.shared.ldap.codec.message.SearchResultEntryImpl( req.getMessageId() );
             respEntry.setEntry( entry );
             respEntry.setObjectName( entry.getDn() );
 
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplSearchListener.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplSearchListener.java
index 12036fb..5d23639 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplSearchListener.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplSearchListener.java
@@ -39,7 +39,6 @@
 import org.apache.directory.shared.ldap.message.AbandonableRequest;
 import org.apache.directory.shared.ldap.message.SearchRequest;
 import org.apache.directory.shared.ldap.message.SearchResultEntry;
-import org.apache.directory.shared.ldap.message.SearchResultEntryImpl;
 import org.apache.directory.shared.ldap.message.control.replication.SyncModifyDnType;
 import org.apache.directory.shared.ldap.message.control.replication.SyncStateTypeEnum;
 import org.apache.directory.shared.ldap.util.StringTools;
@@ -142,7 +141,7 @@
             if ( pushInRealTime )
             {
 
-                SearchResultEntry respEntry = new SearchResultEntryImpl( req.getMessageId() );
+                SearchResultEntry respEntry = new org.apache.directory.shared.ldap.codec.message.SearchResultEntryImpl( req.getMessageId() );
                 respEntry.setObjectName( entry.getDn() );
                 respEntry.setEntry( entry );
 
@@ -183,7 +182,7 @@
         {
             if ( pushInRealTime )
             {
-                SearchResultEntry respEntry = new SearchResultEntryImpl( req.getMessageId() );
+                SearchResultEntry respEntry = new org.apache.directory.shared.ldap.codec.message.SearchResultEntryImpl( req.getMessageId() );
                 respEntry.setObjectName( entry.getDn() );
                 respEntry.setEntry( entry );
 
@@ -222,7 +221,7 @@
             if ( pushInRealTime )
             {
 
-                SearchResultEntry respEntry = new SearchResultEntryImpl( req.getMessageId() );
+                SearchResultEntry respEntry = new org.apache.directory.shared.ldap.codec.message.SearchResultEntryImpl( req.getMessageId() );
                 respEntry.setObjectName( modifyContext.getDn() );
                 respEntry.setEntry( alteredEntry );
 
@@ -270,7 +269,7 @@
 
             if ( pushInRealTime )
             {
-                SearchResultEntry respEntry = new SearchResultEntryImpl( req.getMessageId() );
+                SearchResultEntry respEntry = new org.apache.directory.shared.ldap.codec.message.SearchResultEntryImpl( req.getMessageId() );
                 respEntry.setObjectName( moveContext.getDn() );
                 respEntry.setEntry( entry );
 
@@ -321,7 +320,7 @@
             {
                 Entry alteredEntry = moveAndRenameContext.getModifiedEntry();
 
-                SearchResultEntry respEntry = new SearchResultEntryImpl( req.getMessageId() );
+                SearchResultEntry respEntry = new org.apache.directory.shared.ldap.codec.message.SearchResultEntryImpl( req.getMessageId() );
                 respEntry.setObjectName( moveAndRenameContext.getModifiedEntry().getDn() );
                 respEntry.setEntry( alteredEntry );
 
@@ -365,7 +364,7 @@
 
             if ( pushInRealTime )
             {
-                SearchResultEntry respEntry = new SearchResultEntryImpl( req.getMessageId() );
+                SearchResultEntry respEntry = new org.apache.directory.shared.ldap.codec.message.SearchResultEntryImpl( req.getMessageId() );
                 respEntry.setObjectName( entry.getDn() );
                 respEntry.setEntry( entry );
 
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java b/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java
index 6721365..7ad8811 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java
@@ -67,11 +67,9 @@
 import org.apache.directory.shared.ldap.entry.Entry;
 import org.apache.directory.shared.ldap.exception.LdapException;
 import org.apache.directory.shared.ldap.message.BindRequest;
-import org.apache.directory.shared.ldap.message.BindRequestImpl;
 import org.apache.directory.shared.ldap.message.BindResponse;
-import org.apache.directory.shared.ldap.message.LdapEncoder;
+import org.apache.directory.shared.ldap.codec.message.LdapEncoder;
 import org.apache.directory.shared.ldap.message.ModifyRequest;
-import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.name.DN;
 import org.junit.Ignore;
@@ -185,7 +183,7 @@
         String servicePrincipal = "ldap/" + hostName + "@EXAMPLE.COM";
         ldapServer.setSaslPrincipal( servicePrincipal );
 
-        ModifyRequest modifyRequest = new ModifyRequestImpl();
+        ModifyRequest modifyRequest = new org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl();
         modifyRequest.setName( new DN( "uid=ldap,ou=users,dc=example,dc=com" ) );
         modifyRequest.replace( "userPassword", "randall" );
         modifyRequest.replace( "krb5PrincipalName", servicePrincipal );
@@ -230,7 +228,7 @@
     {
         DN userDn = new DN( "uid=hnelson,ou=users,dc=example,dc=com" );
         LdapConnection connection = new LdapNetworkConnection( "localhost", ldapServer.getPort() );
-        BindRequest bindReq = new BindRequestImpl();
+        BindRequest bindReq = new org.apache.directory.shared.ldap.codec.message.BindRequestImpl();
         bindReq.setCredentials( "secret".getBytes() );
         bindReq.setName( userDn );
         bindReq.setSaslMechanism( SupportedSaslMechanisms.PLAIN );
@@ -254,7 +252,7 @@
     {
         DN userDn = new DN( "uid=hnelson,ou=users,dc=example,dc=com" );
         LdapConnection connection = new LdapNetworkConnection( "localhost", ldapServer.getPort() );
-        BindRequest bindReq = new BindRequestImpl();
+        BindRequest bindReq = new org.apache.directory.shared.ldap.codec.message.BindRequestImpl();
         bindReq.setCredentials( "secret".getBytes() );
         bindReq.setName( userDn );
         bindReq.setSaslMechanism( "" ); // invalid mechanism
@@ -514,7 +512,7 @@
             }
 
             // Setup the bind request
-            BindRequestImpl request = new BindRequestImpl( 1 );
+            org.apache.directory.shared.ldap.codec.message.BindRequestImpl request = new org.apache.directory.shared.ldap.codec.message.BindRequestImpl( 1 );
             request.setName( new DN( "uid=admin,ou=system" ) );
             request.setSimple( false );
             request.setCredentials( type1response );
@@ -525,7 +523,7 @@
             LdapDecoder decoder = new LdapDecoder();
 
             // Send encoded request to server
-            LdapEncoder encoder = new LdapEncoder();
+            org.apache.directory.shared.ldap.codec.message.LdapEncoder encoder = new LdapEncoder();
             ByteBuffer bb = encoder.encodeMessage( request );
 
             bb.flip();
@@ -553,7 +551,7 @@
             }
 
             // Setup the bind request
-            BindRequestImpl request = new BindRequestImpl( 2 );
+            org.apache.directory.shared.ldap.codec.message.BindRequestImpl request = new org.apache.directory.shared.ldap.codec.message.BindRequestImpl( 2 );
             request.setName( new DN( "uid=admin,ou=system" ) );
             request.setSimple( false );
             request.setCredentials( type3response );
@@ -564,7 +562,7 @@
             LdapDecoder decoder = new LdapDecoder();
 
             // Send encoded request to server
-            LdapEncoder encoder = new LdapEncoder();
+            LdapEncoder encoder = new org.apache.directory.shared.ldap.codec.message.LdapEncoder();
             ByteBuffer bb = encoder.encodeMessage( request );
             bb.flip();
 
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/modify/IllegalModificationIT.java b/server-integ/src/test/java/org/apache/directory/server/operations/modify/IllegalModificationIT.java
index fcd5563..6e7c1cf 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/modify/IllegalModificationIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/modify/IllegalModificationIT.java
@@ -38,7 +38,7 @@
 import org.apache.directory.server.core.integ.FrameworkRunner;
 import org.apache.directory.shared.ldap.entry.Entry;
 import org.apache.directory.shared.ldap.message.ModifyRequest;
-import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.ModifyRequestImpl;
 import org.apache.directory.shared.ldap.message.ModifyResponse;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.name.DN;
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java b/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java
index 5666d60..e070d1c 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java
@@ -63,7 +63,7 @@
 import org.apache.directory.shared.ldap.filter.SearchScope;
 import org.apache.directory.shared.ldap.message.Response;
 import org.apache.directory.shared.ldap.message.SearchRequest;
-import org.apache.directory.shared.ldap.message.SearchRequestImpl;
+import org.apache.directory.shared.ldap.codec.message.SearchRequestImpl;
 import org.apache.directory.shared.ldap.message.control.Control;
 import org.apache.directory.shared.ldap.name.DN;
 import org.apache.directory.shared.ldap.util.JndiUtils;