You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2010/08/12 09:59:50 UTC

svn commit: r984675 - in /directory: clients/ldap/branches/ldap-client-codec-merge/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/ shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/ shared/...

Author: elecharny
Date: Thu Aug 12 07:59:49 2010
New Revision: 984675

URL: http://svn.apache.org/viewvc?rev=984675&view=rev
Log:
Removed the CompareResponseCodec class

Removed:
    directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/compare/CompareResponseCodec.java
Modified:
    directory/clients/ldap/branches/ldap-client-codec-merge/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
    directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java
    directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageGrammar.java
    directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapProtocolEncoder.java
    directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapTransformer.java
    directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/CompareResponseImpl.java
    directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalCompareResponse.java
    directory/shared/branches/shared-codec-merge/ldap/src/test/java/org/apache/directory/shared/ldap/codec/compare/CompareResponseTest.java

Modified: directory/clients/ldap/branches/ldap-client-codec-merge/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
URL: http://svn.apache.org/viewvc/directory/clients/ldap/branches/ldap-client-codec-merge/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java?rev=984675&r1=984674&r2=984675&view=diff
==============================================================================
--- directory/clients/ldap/branches/ldap-client-codec-merge/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java (original)
+++ directory/clients/ldap/branches/ldap-client-codec-merge/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java Thu Aug 12 07:59:49 2010
@@ -94,7 +94,6 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.codec.bind.SaslCredentials;
 import org.apache.directory.shared.ldap.codec.bind.SimpleAuthentication;
 import org.apache.directory.shared.ldap.codec.compare.CompareRequestCodec;
-import org.apache.directory.shared.ldap.codec.compare.CompareResponseCodec;
 import org.apache.directory.shared.ldap.codec.controls.ControlImpl;
 import org.apache.directory.shared.ldap.codec.del.DelRequestCodec;
 import org.apache.directory.shared.ldap.codec.extended.ExtendedRequestCodec;
@@ -128,6 +127,7 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.message.control.Control;
 import org.apache.directory.shared.ldap.message.internal.InternalAddResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalBindResponse;
+import org.apache.directory.shared.ldap.message.internal.InternalCompareResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalDeleteResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalLdapResult;
 import org.apache.directory.shared.ldap.message.internal.InternalMessage;
@@ -1591,6 +1591,41 @@ public class LdapNetworkConnection exten
 
             switch ( response.getType() )
             {
+                case ADD_RESPONSE:
+                    // Transform the response
+                    AddResponse addResponse = convert( ( InternalAddResponse ) response );
+
+                    AddFuture addFuture = ( AddFuture ) responseFuture;
+
+                    if ( addFuture == null )
+                    {
+                        LOG.error( "AddFuture is null" );
+                        throw new LdapException( "AddFuture is null" );
+                    }
+
+                    // remove the listener from the listener map
+                    if ( LOG.isDebugEnabled() )
+                    {
+                        if ( addResponse.getLdapResult().getResultCode() == ResultCodeEnum.SUCCESS )
+                        {
+                            // Everything is fine, return the response
+                            LOG.debug( "Add successful : {}", addResponse );
+                        }
+                        else
+                        {
+                            // We have had an error
+                            LOG.debug( "Add failed : {}", addResponse );
+                        }
+                    }
+
+                    // Store the response into the future
+                    addFuture.set( addResponse );
+
+                    // Remove the future from the map
+                    removeFromFutureMaps( messageId );
+
+                    break;
+
                 case BIND_RESPONSE:
                     // Transform the response
                     BindResponse bindResponse = convert( ( InternalBindResponse ) response );
@@ -1625,69 +1660,69 @@ public class LdapNetworkConnection exten
 
                     break;
 
-                case DEL_RESPONSE:
+                case COMPARE_RESPONSE:
                     // Transform the response
-                    DeleteResponse deleteResponse = convert( ( InternalDeleteResponse ) response );
+                    CompareResponse compareResponse = convert( ( InternalCompareResponse ) response );
 
-                    DeleteFuture deleteFuture = ( DeleteFuture ) responseFuture;
+                    CompareFuture compareFuture = ( CompareFuture ) responseFuture;
 
-                    if ( deleteFuture == null )
+                    if ( compareFuture == null )
                     {
-                        LOG.error( "DeleteFuture is null" );
-                        throw new LdapException( "DeleteFuture is null" );
+                        LOG.error( "CompareFuture is null" );
+                        throw new LdapException( "CompareFuture is null" );
                     }
 
+                    // remove the listener from the listener map
                     if ( LOG.isDebugEnabled() )
                     {
-                        if ( deleteResponse.getLdapResult().getResultCode() == ResultCodeEnum.SUCCESS )
+                        if ( compareResponse.getLdapResult().getResultCode() == ResultCodeEnum.SUCCESS )
                         {
                             // Everything is fine, return the response
-                            LOG.debug( "Delete successful : {}", deleteResponse );
+                            LOG.debug( "Compare successful : {}", compareResponse );
                         }
                         else
                         {
                             // We have had an error
-                            LOG.debug( "Delete failed : {}", deleteResponse );
+                            LOG.debug( "Compare failed : {}", compareResponse );
                         }
                     }
 
                     // Store the response into the future
-                    deleteFuture.set( deleteResponse );
+                    compareFuture.set( compareResponse );
 
                     // Remove the future from the map
                     removeFromFutureMaps( messageId );
 
                     break;
 
-                case ADD_RESPONSE:
+                case DEL_RESPONSE:
                     // Transform the response
-                    AddResponse addResponse = convert( ( InternalAddResponse ) response );
+                    DeleteResponse deleteResponse = convert( ( InternalDeleteResponse ) response );
 
-                    AddFuture addFuture = ( AddFuture ) responseFuture;
+                    DeleteFuture deleteFuture = ( DeleteFuture ) responseFuture;
 
-                    if ( addFuture == null )
+                    if ( deleteFuture == null )
                     {
-                        LOG.error( "AddFuture is null" );
-                        throw new LdapException( "AddFuture is null" );
+                        LOG.error( "DeleteFuture is null" );
+                        throw new LdapException( "DeleteFuture is null" );
                     }
 
-                    // remove the listener from the listener map
                     if ( LOG.isDebugEnabled() )
                     {
-                        if ( addResponse.getLdapResult().getResultCode() == ResultCodeEnum.SUCCESS )
+                        if ( deleteResponse.getLdapResult().getResultCode() == ResultCodeEnum.SUCCESS )
                         {
                             // Everything is fine, return the response
-                            LOG.debug( "Add successful : {}", addResponse );
+                            LOG.debug( "Delete successful : {}", deleteResponse );
                         }
                         else
                         {
                             // We have had an error
-                            LOG.debug( "Add failed : {}", addResponse );
+                            LOG.debug( "Delete failed : {}", deleteResponse );
                         }
                     }
 
                     // Store the response into the future
-                    addFuture.set( addResponse );
+                    deleteFuture.set( deleteResponse );
 
                     // Remove the future from the map
                     removeFromFutureMaps( messageId );
@@ -1714,45 +1749,6 @@ public class LdapNetworkConnection exten
 
             switch ( response.getMessageType() )
             {
-                case COMPARE_RESPONSE:
-                    // Transform the response
-                    CompareResponseCodec compResCodec = ( CompareResponseCodec ) response;
-                    compResCodec.setMessageId( messageId );
-                    compResCodec.addControls( response.getControls() );
-
-                    CompareResponse compareResponse = convert( compResCodec );
-
-                    CompareFuture compareFuture = ( CompareFuture ) responseFuture;
-
-                    if ( compareFuture == null )
-                    {
-                        LOG.error( "CompareFuture is null" );
-                        throw new LdapException( "CompareFuture is null" );
-                    }
-
-                    // remove the listener from the listener map
-                    if ( LOG.isDebugEnabled() )
-                    {
-                        if ( compareResponse.getLdapResult().getResultCode() == ResultCodeEnum.SUCCESS )
-                        {
-                            // Everything is fine, return the response
-                            LOG.debug( "Compare successful : {}", compareResponse );
-                        }
-                        else
-                        {
-                            // We have had an error
-                            LOG.debug( "Compare failed : {}", compareResponse );
-                        }
-                    }
-
-                    // Store the response into the future
-                    compareFuture.set( compareResponse );
-
-                    // Remove the future from the map
-                    removeFromFutureMaps( messageId );
-
-                    break;
-
                 case EXTENDED_RESPONSE:
                     // Transform the response
                     ExtendedResponseCodec extResCodec = ( ExtendedResponseCodec ) response;
@@ -2875,17 +2871,17 @@ public class LdapNetworkConnection exten
 
 
     /**
-     * converts the CompareResponseCodec to CompareResponse.
+     * converts the InternalCompareResponse to CompareResponse object.
      */
-    private CompareResponse convert( CompareResponseCodec compareRespCodec )
+    private CompareResponse convert( InternalCompareResponse internalCompareResponse )
     {
-        CompareResponse compareResponse = new CompareResponse();
+        CompareResponse response = new CompareResponse();
 
-        compareResponse.setMessageId( compareRespCodec.getMessageId() );
-        compareResponse.setLdapResult( convert( compareRespCodec.getLdapResult() ) );
-        addControls( compareRespCodec, compareResponse );
+        response.setMessageId( internalCompareResponse.getMessageId() );
+        response.setLdapResult( convert( internalCompareResponse.getLdapResult() ) );
+        addControls( internalCompareResponse, response );
 
-        return compareResponse;
+        return response;
     }
 
 

Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java?rev=984675&r1=984674&r2=984675&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java Thu Aug 12 07:59:49 2010
@@ -25,7 +25,6 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.codec.add.AddRequestCodec;
 import org.apache.directory.shared.ldap.codec.bind.BindRequestCodec;
 import org.apache.directory.shared.ldap.codec.compare.CompareRequestCodec;
-import org.apache.directory.shared.ldap.codec.compare.CompareResponseCodec;
 import org.apache.directory.shared.ldap.codec.controls.AbstractControl;
 import org.apache.directory.shared.ldap.codec.del.DelRequestCodec;
 import org.apache.directory.shared.ldap.codec.extended.ExtendedRequestCodec;
@@ -46,6 +45,7 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.message.internal.InternalBindRequest;
 import org.apache.directory.shared.ldap.message.internal.InternalBindResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalCompareRequest;
+import org.apache.directory.shared.ldap.message.internal.InternalCompareResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalDeleteRequest;
 import org.apache.directory.shared.ldap.message.internal.InternalDeleteResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalMessage;
@@ -238,9 +238,9 @@ public class LdapMessageContainer extend
     /**
      * @return Returns the CompareResponse stored in the container
      */
-    public CompareResponseCodec getCompareResponse()
+    public InternalCompareResponse getInternalCompareResponse()
     {
-        return ( CompareResponseCodec ) ldapMessage;
+        return ( InternalCompareResponse ) internalMessage;
     }
 
 

Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageGrammar.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageGrammar.java?rev=984675&r1=984674&r2=984675&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageGrammar.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageGrammar.java Thu Aug 12 07:59:49 2010
@@ -70,7 +70,6 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.codec.actions.StoreReferenceAction;
 import org.apache.directory.shared.ldap.codec.actions.StoreTypeMatchingRuleAction;
 import org.apache.directory.shared.ldap.codec.actions.ValueAction;
-import org.apache.directory.shared.ldap.codec.compare.CompareResponseCodec;
 import org.apache.directory.shared.ldap.codec.controls.ControlEnum;
 import org.apache.directory.shared.ldap.codec.controls.ControlImpl;
 import org.apache.directory.shared.ldap.codec.extended.ExtendedRequestCodec;
@@ -111,6 +110,7 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.message.internal.InternalBindRequest;
 import org.apache.directory.shared.ldap.message.internal.InternalBindResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalCompareRequest;
+import org.apache.directory.shared.ldap.message.internal.InternalCompareResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalDeleteRequest;
 import org.apache.directory.shared.ldap.message.internal.InternalDeleteResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalLdapResult;
@@ -2713,9 +2713,9 @@ public class LdapMessageGrammar extends 
                     LdapMessageContainer ldapMessageContainer = ( LdapMessageContainer ) container;
 
                     // Now, we can allocate the CompareResponse Object
-                    CompareResponseCodec compareResponse = new CompareResponseCodec();
-                    compareResponse.setMessageId( ldapMessageContainer.getMessageId() );
-                    ldapMessageContainer.setLdapMessage( compareResponse );
+                    InternalCompareResponse compareResponse = new CompareResponseImpl( ldapMessageContainer
+                        .getMessageId() );
+                    ldapMessageContainer.setInternalMessage( compareResponse );
 
                     // We will check that the request is not null
                     TLV tlv = ldapMessageContainer.getCurrentTLV();

Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapProtocolEncoder.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapProtocolEncoder.java?rev=984675&r1=984674&r2=984675&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapProtocolEncoder.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapProtocolEncoder.java Thu Aug 12 07:59:49 2010
@@ -33,10 +33,12 @@ import org.apache.directory.shared.i18n.
 import org.apache.directory.shared.ldap.codec.controls.CodecControl;
 import org.apache.directory.shared.ldap.message.AddResponseImpl;
 import org.apache.directory.shared.ldap.message.BindResponseImpl;
+import org.apache.directory.shared.ldap.message.CompareResponseImpl;
 import org.apache.directory.shared.ldap.message.DeleteResponseImpl;
 import org.apache.directory.shared.ldap.message.control.Control;
 import org.apache.directory.shared.ldap.message.internal.InternalAddResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalBindResponse;
+import org.apache.directory.shared.ldap.message.internal.InternalCompareResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalDeleteResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalLdapResult;
 import org.apache.directory.shared.ldap.message.internal.InternalMessage;
@@ -102,7 +104,7 @@ public class LdapProtocolEncoder extends
         ByteBuffer buffer = ByteBuffer.allocate( length );
 
         if ( ( message instanceof InternalBindResponse ) || ( message instanceof InternalDeleteResponse )
-            || ( message instanceof InternalAddResponse ) )
+            || ( message instanceof InternalAddResponse ) || ( message instanceof InternalCompareResponse ) )
         {
             try
             {
@@ -427,6 +429,29 @@ public class LdapProtocolEncoder extends
 
 
     /**
+     * Compute the CompareResponse length 
+     * 
+     * CompareResponse :
+     * 
+     * 0x6F L1
+     *  |
+     *  +--> LdapResult
+     * 
+     * L1 = Length(LdapResult)
+     * 
+     * Length(CompareResponse) = Length(0x6F) + Length(L1) + L1
+     */
+    private int computeCompareResponseLength( CompareResponseImpl compareResponse )
+    {
+        int compareResponseLength = computeLdapResultLength( compareResponse.getLdapResult() );
+
+        compareResponse.setCompareResponseLength( compareResponseLength );
+
+        return 1 + TLV.getNbBytes( compareResponseLength ) + compareResponseLength;
+    }
+
+
+    /**
      * Compute the DelResponse length 
      * 
      * DelResponse :
@@ -518,6 +543,30 @@ public class LdapProtocolEncoder extends
 
 
     /**
+     * Encode the CompareResponse message to a PDU.
+     * 
+     * @param buffer The buffer where to put the PDU
+     */
+    private void encodeCompareResponse( ByteBuffer buffer, CompareResponseImpl compareResponse )
+        throws EncoderException
+    {
+        try
+        {
+            // The CompareResponse Tag
+            buffer.put( LdapConstants.COMPARE_RESPONSE_TAG );
+            buffer.put( TLV.getBytes( compareResponse.getCompareResponseLength() ) );
+
+            // The LdapResult
+            encodeLdapResult( buffer, compareResponse.getLdapResult() );
+        }
+        catch ( BufferOverflowException boe )
+        {
+            throw new EncoderException( I18n.err( I18n.ERR_04005 ) );
+        }
+    }
+
+
+    /**
      * Encode the DelResponse message to a PDU.
      * 
      * @param buffer The buffer where to put the PDU
@@ -553,6 +602,9 @@ public class LdapProtocolEncoder extends
             case BIND_RESPONSE:
                 return computeBindResponseLength( ( BindResponseImpl ) message );
 
+            case COMPARE_RESPONSE:
+                return computeCompareResponseLength( ( CompareResponseImpl ) message );
+
             case DEL_RESPONSE:
                 return computeDeleteResponseLength( ( DeleteResponseImpl ) message );
 
@@ -574,6 +626,10 @@ public class LdapProtocolEncoder extends
                 encodeBindResponse( bb, ( BindResponseImpl ) message );
                 break;
 
+            case COMPARE_RESPONSE:
+                encodeCompareResponse( bb, ( CompareResponseImpl ) message );
+                break;
+
             case DEL_RESPONSE:
                 encodeDeleteResponse( bb, ( DeleteResponseImpl ) message );
                 break;

Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapTransformer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapTransformer.java?rev=984675&r1=984674&r2=984675&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapTransformer.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapTransformer.java Thu Aug 12 07:59:49 2010
@@ -30,7 +30,6 @@ import org.apache.directory.shared.i18n.
 import org.apache.directory.shared.ldap.codec.bind.BindRequestCodec;
 import org.apache.directory.shared.ldap.codec.bind.SaslCredentials;
 import org.apache.directory.shared.ldap.codec.bind.SimpleAuthentication;
-import org.apache.directory.shared.ldap.codec.compare.CompareResponseCodec;
 import org.apache.directory.shared.ldap.codec.extended.ExtendedRequestCodec;
 import org.apache.directory.shared.ldap.codec.extended.ExtendedResponseCodec;
 import org.apache.directory.shared.ldap.codec.intermediate.IntermediateResponseCodec;
@@ -71,7 +70,6 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.filter.SubstringNode;
 import org.apache.directory.shared.ldap.message.AliasDerefMode;
 import org.apache.directory.shared.ldap.message.BindRequestImpl;
-import org.apache.directory.shared.ldap.message.CompareResponseImpl;
 import org.apache.directory.shared.ldap.message.ExtendedRequestImpl;
 import org.apache.directory.shared.ldap.message.ExtendedResponseImpl;
 import org.apache.directory.shared.ldap.message.IntermediateResponseImpl;
@@ -708,26 +706,6 @@ public class LdapTransformer
 
 
     /**
-     * Transform a Internal CompareResponse to a Codec CompareResponse
-     * 
-     * @param internalMessage The incoming Internal CompareResponse
-     * @return The CompareResponseCodec instance
-     */
-    private static LdapMessageCodec transformCompareResponse( InternalMessage internalMessage )
-    {
-        CompareResponseImpl internalCompareResponse = ( CompareResponseImpl ) internalMessage;
-
-        CompareResponseCodec compareResponse = new CompareResponseCodec();
-
-        // Transform the ldapResult
-        compareResponse
-            .setLdapResult( transformLdapResult( ( LdapResultImpl ) internalCompareResponse.getLdapResult() ) );
-
-        return compareResponse;
-    }
-
-
-    /**
      * Transform a Internal ExtendedResponse to a Codec ExtendedResponse
      * 
      * @param internalMessage The incoming Internal ExtendedResponse
@@ -947,10 +925,6 @@ public class LdapTransformer
                 codecMessage = transformBindRequest( msg );
                 break;
 
-            case COMPARE_RESPONSE:
-                codecMessage = transformCompareResponse( msg );
-                break;
-
             case MODIFY_RESPONSE:
                 codecMessage = transformModifyResponse( msg );
                 break;

Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/CompareResponseImpl.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/CompareResponseImpl.java?rev=984675&r1=984674&r2=984675&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/CompareResponseImpl.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/CompareResponseImpl.java Thu Aug 12 07:59:49 2010
@@ -19,6 +19,7 @@
  */
 package org.apache.directory.shared.ldap.message;
 
+
 import org.apache.directory.shared.ldap.message.internal.InternalAbstractResultResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalCompareResponse;
 
@@ -30,6 +31,8 @@ import org.apache.directory.shared.ldap.
  */
 public class CompareResponseImpl extends InternalAbstractResultResponse implements InternalCompareResponse
 {
+    /** The encoded compareResponse length */
+    private int compareResponseLength;
 
     // ------------------------------------------------------------------------
     // Constructors
@@ -44,8 +47,27 @@ public class CompareResponseImpl extends
      * @param id
      *            the session unique message id
      */
-    public CompareResponseImpl(final int id)
+    public CompareResponseImpl( final int id )
     {
         super( id, TYPE );
     }
+
+
+    /**
+     * Stores the encoded length for the CompareResponse
+     * @param compareResponseLength The encoded length
+     */
+    public void setCompareResponseLength( int compareResponseLength )
+    {
+        this.compareResponseLength = compareResponseLength;
+    }
+
+
+    /**
+     * @return The encoded CompareResponse's length
+     */
+    public int getCompareResponseLength()
+    {
+        return compareResponseLength;
+    }
 }

Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalCompareResponse.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalCompareResponse.java?rev=984675&r1=984674&r2=984675&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalCompareResponse.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalCompareResponse.java Thu Aug 12 07:59:49 2010
@@ -19,6 +19,7 @@
  */
 package org.apache.directory.shared.ldap.message.internal;
 
+
 import org.apache.directory.shared.ldap.codec.MessageTypeEnum;
 
 
@@ -32,4 +33,17 @@ public interface InternalCompareResponse
 {
     /** Compare response message type enumeration value */
     MessageTypeEnum TYPE = MessageTypeEnum.COMPARE_RESPONSE;
+
+
+    /**
+     * Stores the encoded length for the CompareResponse
+     * @param compareResponseLength The encoded length
+     */
+    void setCompareResponseLength( int compareResponseLength );
+
+
+    /**
+     * @return The encoded CompareResponse's length
+     */
+    int getCompareResponseLength();
 }

Modified: directory/shared/branches/shared-codec-merge/ldap/src/test/java/org/apache/directory/shared/ldap/codec/compare/CompareResponseTest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/test/java/org/apache/directory/shared/ldap/codec/compare/CompareResponseTest.java?rev=984675&r1=984674&r2=984675&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/test/java/org/apache/directory/shared/ldap/codec/compare/CompareResponseTest.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/test/java/org/apache/directory/shared/ldap/codec/compare/CompareResponseTest.java Thu Aug 12 07:59:49 2010
@@ -25,7 +25,7 @@ import static org.junit.Assert.assertTru
 import static org.junit.Assert.fail;
 
 import java.nio.ByteBuffer;
-import java.util.List;
+import java.util.Map;
 
 import org.apache.directory.junit.tools.Concurrent;
 import org.apache.directory.junit.tools.ConcurrentJunitRunner;
@@ -34,8 +34,10 @@ import org.apache.directory.shared.asn1.
 import org.apache.directory.shared.asn1.codec.DecoderException;
 import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.ldap.codec.LdapMessageContainer;
+import org.apache.directory.shared.ldap.codec.LdapProtocolEncoder;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.message.control.Control;
+import org.apache.directory.shared.ldap.message.internal.InternalCompareResponse;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -50,6 +52,10 @@ import org.junit.runner.RunWith;
 @Concurrent()
 public class CompareResponseTest
 {
+    /** The encoder instance */
+    LdapProtocolEncoder encoder = new LdapProtocolEncoder();
+
+
     /**
      * Test the decoding of a CompareResponse
      */
@@ -64,7 +70,7 @@ public class CompareResponseTest
             { 0x30, 0x0C, // LDAPMessage ::=SEQUENCE {
                 0x02, 0x01, 0x01, // messageID MessageID
                 0x6F, 0x07, // CHOICE { ..., compareResponse CompareResponse,
-                            // ...
+                // ...
                 // CompareResponse ::= [APPLICATION 15] LDAPResult
                 0x0A, 0x01, 0x00, // LDAPResult ::= SEQUENCE {
                 // resultCode ENUMERATED {
@@ -94,20 +100,21 @@ public class CompareResponseTest
         }
 
         // Check the decoded CompareResponse PDU
-        CompareResponseCodec compareResponse = ( ( LdapMessageContainer ) ldapMessageContainer ).getCompareResponse();
+        InternalCompareResponse compareResponse = ( ( LdapMessageContainer ) ldapMessageContainer )
+            .getInternalCompareResponse();
 
         assertEquals( 1, compareResponse.getMessageId() );
         assertEquals( ResultCodeEnum.SUCCESS, compareResponse.getLdapResult().getResultCode() );
-        assertEquals( "", compareResponse.getLdapResult().getMatchedDN() );
+        assertEquals( "", compareResponse.getLdapResult().getMatchedDn().getName() );
         assertEquals( "", compareResponse.getLdapResult().getErrorMessage() );
 
-        // Check the length
-        assertEquals( 0x0E, compareResponse.computeLength() );
-
         // Check the encoding
         try
         {
-            ByteBuffer bb = compareResponse.encode();
+            ByteBuffer bb = encoder.encodeMessage( compareResponse );
+
+            // Check the length
+            assertEquals( 0x0E, bb.limit() );
 
             String encodedPdu = StringTools.dumpBytes( bb.array() );
 
@@ -132,20 +139,29 @@ public class CompareResponseTest
         ByteBuffer stream = ByteBuffer.allocate( 0x2B );
 
         stream.put( new byte[]
-            { 0x30, 0x29, // LDAPMessage ::=SEQUENCE {
-                0x02, 0x01, 0x01, // messageID MessageID
-                0x6F, 0x07, // CHOICE { ..., compareResponse CompareResponse,
-                            // ...
+            { 0x30,
+                0x29, // LDAPMessage ::=SEQUENCE {
+                0x02,
+                0x01,
+                0x01, // messageID MessageID
+                0x6F,
+                0x07, // CHOICE { ..., compareResponse CompareResponse,
+                // ...
                 // CompareResponse ::= [APPLICATION 15] LDAPResult
-                0x0A, 0x01, 0x00, // LDAPResult ::= SEQUENCE {
+                0x0A,
+                0x01,
+                0x00, // LDAPResult ::= SEQUENCE {
                 // resultCode ENUMERATED {
                 // success (0), ...
                 // },
-                0x04, 0x00, // matchedDN LDAPDN,
-                0x04, 0x00, // errorMessage LDAPString,
+                0x04,
+                0x00, // matchedDN LDAPDN,
+                0x04,
+                0x00, // errorMessage LDAPString,
                 // referral [3] Referral OPTIONAL }
                 // }
-                ( byte ) 0xA0, 0x1B, // A control
+                ( byte ) 0xA0,
+                0x1B, // A control
                 0x30, 0x19, 0x04, 0x17, 0x32, 0x2E, 0x31, 0x36, 0x2E, 0x38, 0x34, 0x30, 0x2E, 0x31, 0x2E, 0x31, 0x31,
                 0x33, 0x37, 0x33, 0x30, 0x2E, 0x33, 0x2E, 0x34, 0x2E, 0x32 } );
 
@@ -167,29 +183,30 @@ public class CompareResponseTest
         }
 
         // Check the decoded CompareResponse PDU
-        CompareResponseCodec compareResponse = ( ( LdapMessageContainer ) ldapMessageContainer ).getCompareResponse();
+        InternalCompareResponse compareResponse = ( ( LdapMessageContainer ) ldapMessageContainer )
+            .getInternalCompareResponse();
 
         assertEquals( 1, compareResponse.getMessageId() );
         assertEquals( ResultCodeEnum.SUCCESS, compareResponse.getLdapResult().getResultCode() );
-        assertEquals( "", compareResponse.getLdapResult().getMatchedDN() );
+        assertEquals( "", compareResponse.getLdapResult().getMatchedDn().getName() );
         assertEquals( "", compareResponse.getLdapResult().getErrorMessage() );
 
         // Check the Control
-        List<Control> controls = compareResponse.getControls();
+        Map<String, Control> controls = compareResponse.getControls();
 
         assertEquals( 1, controls.size() );
 
-        Control control = compareResponse.getControls( 0 );
+        Control control = controls.get( "2.16.840.1.113730.3.4.2" );
         assertEquals( "2.16.840.1.113730.3.4.2", control.getOid() );
         assertEquals( "", StringTools.dumpBytes( ( byte[] ) control.getValue() ) );
 
-        // Check the length
-        assertEquals( 0x2B, compareResponse.computeLength() );
-
         // Check the encoding
         try
         {
-            ByteBuffer bb = compareResponse.encode();
+            ByteBuffer bb = encoder.encodeMessage( compareResponse );
+
+            // Check the length
+            assertEquals( 0x2B, bb.limit() );
 
             String encodedPdu = StringTools.dumpBytes( bb.array() );
 
@@ -217,7 +234,7 @@ public class CompareResponseTest
             { 0x30, 0x05, // LDAPMessage ::=SEQUENCE {
                 0x02, 0x01, 0x01, // messageID MessageID
                 0x6F, 0x00 // CHOICE { ..., compareResponse CompareResponse,
-                            // ...
+            // ...
             } );
 
         stream.flip();