directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From akaras...@apache.org
Subject svn commit: r655116 [1/2] - in /directory/sandbox/akarasulu/bigbang/shared: ./ asn1-codec/ asn1/ bouncycastle-reduced/ convert/ ldap-constants/ ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/ ldap-jndi/ ldap/ ldap/src/main/antl...
Date Sat, 10 May 2008 15:38:31 GMT
Author: akarasulu
Date: Sat May 10 08:38:30 2008
New Revision: 655116

URL: http://svn.apache.org/viewvc?rev=655116&view=rev
Log:
merging in changes from bigbang before replacing bigbang with private branch

Added:
    directory/sandbox/akarasulu/bigbang/shared/ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/SupportedSaslMechanisms.java
      - copied unchanged from r655113, directory/shared/branches/bigbang/ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/SupportedSaslMechanisms.java
Removed:
    directory/sandbox/akarasulu/bigbang/shared/ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/SupportedSASLMechanisms.java
Modified:
    directory/sandbox/akarasulu/bigbang/shared/LAST_BIG_BANG_MERGE
    directory/sandbox/akarasulu/bigbang/shared/asn1-codec/pom.xml
    directory/sandbox/akarasulu/bigbang/shared/asn1/pom.xml
    directory/sandbox/akarasulu/bigbang/shared/bouncycastle-reduced/pom.xml
    directory/sandbox/akarasulu/bigbang/shared/convert/pom.xml
    directory/sandbox/akarasulu/bigbang/shared/ldap-constants/pom.xml
    directory/sandbox/akarasulu/bigbang/shared/ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/SchemaConstants.java
    directory/sandbox/akarasulu/bigbang/shared/ldap-jndi/pom.xml
    directory/sandbox/akarasulu/bigbang/shared/ldap/pom.xml
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/antlr/ACIItem.g
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/antlr/subtree-specification.g
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/AttributeValueAssertion.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixEncoder.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/actions/InitAssertionValueFilterAction.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/AttributeValueAssertionFilter.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/Value.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/ClientBinaryValue.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/ClientStringValue.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/DefaultClientEntry.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/ApproximateNode.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/EqualityNode.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/FilterParser.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/GreaterEqNode.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/LessEqNode.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/SimpleNode.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDNSerializer.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/Rdn.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchRequestTest.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/test/java/org/apache/directory/shared/ldap/entry/client/ClientStringValueTest.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/test/java/org/apache/directory/shared/ldap/entry/client/DefaultClientAttributeTest.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/test/java/org/apache/directory/shared/ldap/entry/client/DefaultClientEntryTest.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/test/java/org/apache/directory/shared/ldap/filter/FilterNodeEqualityTest.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/test/java/org/apache/directory/shared/ldap/filter/FilterParserTest.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/test/java/org/apache/directory/shared/ldap/name/RdnTest.java
    directory/sandbox/akarasulu/bigbang/shared/ldap/src/test/java/org/apache/directory/shared/ldap/subtree/SubtreeSpecificationParserTest.java
    directory/sandbox/akarasulu/bigbang/shared/pom.xml

Modified: directory/sandbox/akarasulu/bigbang/shared/LAST_BIG_BANG_MERGE
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/LAST_BIG_BANG_MERGE?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/LAST_BIG_BANG_MERGE (original)
+++ directory/sandbox/akarasulu/bigbang/shared/LAST_BIG_BANG_MERGE Sat May 10 08:38:30 2008
@@ -17,12 +17,19 @@
 ----------------------------
 svn merge -r 613574:638217 https://svn.apache.org/repos/asf/directory/shared/branches/bigbang .
 
+
 Fri Mar 28 22:43:55 EDT 2008
 ----------------------------
 svn merge -r 638217:642491 https://svn.apache.org/repos/asf/directory/shared/branches/bigbang .
 
+
 Wed Apr 16 22:28:41 EDT 2008
 ----------------------------
 svn merge -r 642491:648919 https://svn.apache.org/repos/asf/directory/shared/branches/bigbang .
 
 
+Sat May 10 11:32:48 EDT 2008
+----------------------------
+svn merge -r 648919:655113 https://svn.apache.org/repos/asf/directory/shared/branches/bigbang .
+
+

Modified: directory/sandbox/akarasulu/bigbang/shared/asn1-codec/pom.xml
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/asn1-codec/pom.xml?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/asn1-codec/pom.xml (original)
+++ directory/sandbox/akarasulu/bigbang/shared/asn1-codec/pom.xml Sat May 10 08:38:30 2008
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.directory.shared</groupId>
     <artifactId>shared-parent</artifactId>
-    <version>0.9.11-SNAPSHOT</version>
+    <version>0.9.12-SNAPSHOT</version>
   </parent>
   <artifactId>shared-asn1-codec</artifactId>
   <name>Apache Directory MINA ASN.1 Codec Shared</name>

Modified: directory/sandbox/akarasulu/bigbang/shared/asn1/pom.xml
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/asn1/pom.xml?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/asn1/pom.xml (original)
+++ directory/sandbox/akarasulu/bigbang/shared/asn1/pom.xml Sat May 10 08:38:30 2008
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.directory.shared</groupId>
     <artifactId>shared-parent</artifactId>
-    <version>0.9.11-SNAPSHOT</version>
+    <version>0.9.12-SNAPSHOT</version>
   </parent>
   <artifactId>shared-asn1</artifactId>
   <name>Apache Directory ASN.1 Shared</name>

Modified: directory/sandbox/akarasulu/bigbang/shared/bouncycastle-reduced/pom.xml
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/bouncycastle-reduced/pom.xml?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/bouncycastle-reduced/pom.xml (original)
+++ directory/sandbox/akarasulu/bigbang/shared/bouncycastle-reduced/pom.xml Sat May 10 08:38:30 2008
@@ -3,7 +3,7 @@
   <parent>
     <artifactId>shared-parent</artifactId>
     <groupId>org.apache.directory.shared</groupId>
-    <version>0.9.11-SNAPSHOT</version>
+    <version>0.9.12-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.directory.shared</groupId>

Modified: directory/sandbox/akarasulu/bigbang/shared/convert/pom.xml
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/convert/pom.xml?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/convert/pom.xml (original)
+++ directory/sandbox/akarasulu/bigbang/shared/convert/pom.xml Sat May 10 08:38:30 2008
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.directory.shared</groupId>
     <artifactId>shared-parent</artifactId>
-    <version>0.9.11-SNAPSHOT</version>
+    <version>0.9.12-SNAPSHOT</version>
   </parent>
   <artifactId>shared-converter</artifactId>
   <name>Apache Directory Protocol Ldap Converters</name>

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap-constants/pom.xml
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap-constants/pom.xml?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap-constants/pom.xml (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap-constants/pom.xml Sat May 10 08:38:30 2008
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.directory.shared</groupId>
     <artifactId>shared-parent</artifactId>
-    <version>0.9.11-SNAPSHOT</version>
+    <version>0.9.12-SNAPSHOT</version>
   </parent>
   <artifactId>shared-ldap-constants</artifactId>
   <name>Apache Directory Protocol Ldap Shared Constants</name>

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/SchemaConstants.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/SchemaConstants.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/SchemaConstants.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/SchemaConstants.java Sat May 10 08:38:30 2008
@@ -299,6 +299,10 @@
     // SupportedExtension
     String SUPPORTED_EXTENSION_AT = "supportedExtension";
     String SUPPORTED_EXTENSION_AT_OID = "1.3.6.1.4.1.1466.101.120.7";
+
+    // supportedSASLMechanisms
+    String SUPPORTED_SASL_MECHANISMS_AT = "supportedSASLMechanisms";
+    String SUPPORTED_SASL_MECHANISMS_AT_OID = "1.3.6.1.4.1.1466.101.120.14";
     
     // supportedControl
     String SUPPORTED_CONTROL_AT = "supportedControl";

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap-jndi/pom.xml
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap-jndi/pom.xml?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap-jndi/pom.xml (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap-jndi/pom.xml Sat May 10 08:38:30 2008
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.directory.shared</groupId>
     <artifactId>shared-parent</artifactId>
-    <version>0.9.11-SNAPSHOT</version>
+    <version>0.9.12-SNAPSHOT</version>
   </parent>
   <artifactId>shared-ldap-jndi</artifactId>
   <name>Apache Directory JNDI Shared</name>

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/pom.xml
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/pom.xml?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/pom.xml (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/pom.xml Sat May 10 08:38:30 2008
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.directory.shared</groupId>
     <artifactId>shared-parent</artifactId>
-    <version>0.9.11-SNAPSHOT</version>
+    <version>0.9.12-SNAPSHOT</version>
   </parent>
   <artifactId>shared-ldap</artifactId>
   <name>Apache Directory Protocol Ldap Shared</name>

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/antlr/ACIItem.g
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/antlr/ACIItem.g?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/antlr/ACIItem.g (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/antlr/ACIItem.g Sat May 10 08:38:30 2008
@@ -55,6 +55,7 @@
 import org.apache.directory.shared.ldap.constants.SchemaConstants;
 import org.apache.directory.shared.ldap.constants.AuthenticationLevel;
 import org.apache.directory.shared.ldap.schema.OidNormalizer;
+import org.apache.directory.shared.ldap.entry.client.ClientStringValue;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -1223,7 +1224,7 @@
     :
     ID_item ( SP )* COLON ( SP )* oid=oid
     {
-        node = new EqualityNode( SchemaConstants.OBJECT_CLASS_AT , oid );
+        node = new EqualityNode( SchemaConstants.OBJECT_CLASS_AT , new ClientStringValue( oid ) );
     }
     ;
 

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/antlr/subtree-specification.g
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/antlr/subtree-specification.g?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/antlr/subtree-specification.g (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/antlr/subtree-specification.g Sat May 10 08:38:30 2008
@@ -45,6 +45,7 @@
 import org.apache.directory.shared.ldap.util.ComponentsMonitor;
 import org.apache.directory.shared.ldap.util.OptionalComponentsMonitor;
 import org.apache.directory.shared.ldap.constants.SchemaConstants;
+import org.apache.directory.shared.ldap.entry.client.ClientStringValue;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -398,7 +399,7 @@
     :
     ID_item ( SP )* COLON ( SP )* oid=oid
     {
-        node = new EqualityNode( SchemaConstants.OBJECT_CLASS_AT, oid );
+        node = new EqualityNode( SchemaConstants.OBJECT_CLASS_AT, new ClientStringValue( oid ) );
     }
     ;
 

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/AttributeValueAssertion.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/AttributeValueAssertion.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/AttributeValueAssertion.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/AttributeValueAssertion.java Sat May 10 08:38:30 2008
@@ -19,6 +19,7 @@
  */
 package org.apache.directory.shared.ldap.codec;
 
+import org.apache.directory.shared.ldap.entry.Value;
 import org.apache.directory.shared.ldap.util.StringTools;
 
 
@@ -45,7 +46,7 @@
     private String attributeDesc;
 
     /** The assertion value */
-    private Object assertionValue;
+    private Value<?> assertionValue;
 
 
     // ~ Methods
@@ -56,7 +57,7 @@
      * 
      * @return Returns the assertionValue.
      */
-    public Object getAssertionValue()
+    public Value<?> getAssertionValue()
     {
         return assertionValue;
     }
@@ -67,7 +68,7 @@
      * 
      * @param assertionValue The assertionValue to set.
      */
-    public void setAssertionValue( Object assertionValue )
+    public void setAssertionValue( Value<?> assertionValue )
     {
         this.assertionValue = assertionValue;
     }

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixEncoder.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixEncoder.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixEncoder.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixEncoder.java Sat May 10 08:38:30 2008
@@ -68,7 +68,7 @@
      * 
      * @param provider The associated Provider
      */
-    public TwixEncoder(Provider provider)
+    public TwixEncoder( Provider provider )
     {
         this.provider = provider;
         encodeCallback = new OutputCallback();
@@ -92,6 +92,7 @@
                 log.debug( "Encoding this LdapMessage : " + obj );
             }
 
+            ( ( OutputCallback ) encodeCallback ).attach( out );
             encodeCallback.encodeOccurred( null, ( ( LdapMessage ) obj ).encode( null ) );
         }
         catch ( EncoderException e )
@@ -255,6 +256,7 @@
         {
             try
             {
+                ( ( ByteBuffer ) encoded ).flip();
                 channel.write( ( ByteBuffer ) encoded );
             }
             catch ( IOException e )

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java Sat May 10 08:38:30 2008
@@ -25,6 +25,7 @@
 import java.util.Iterator;
 import java.util.List;
 
+import javax.naming.InvalidNameException;
 import javax.naming.NamingEnumeration;
 import javax.naming.directory.Attribute;
 
@@ -112,6 +113,7 @@
 import org.apache.directory.shared.ldap.message.extended.GracefulShutdownRequest;
 import org.apache.directory.shared.ldap.message.spi.Provider;
 import org.apache.directory.shared.ldap.message.spi.TransformerSpi;
+import org.apache.directory.shared.ldap.name.LdapDN;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -240,6 +242,72 @@
 
 
     /**
+     * Transform a BindResponse message from a TwixMessage to a 
+     * SnickersMessage.  This is used by clients which are receiving a 
+     * BindResponse PDU and must decode it to return the Snickers 
+     * representation.
+     * 
+     * @param twixMessage The message to transform
+     * @param messageId The message Id
+     * @return a Snickers BindResponseImpl
+     */
+    private Message transformBindResponse( LdapMessage twixMessage, int messageId )
+    {
+        BindResponseImpl snickersMessage = new BindResponseImpl( messageId );
+        BindResponse bindResponse = twixMessage.getBindResponse();
+
+        // Twix : byte[] serverSaslcreds -> Snickers : byte[] serverSaslCreds
+        snickersMessage.setServerSaslCreds( bindResponse.getServerSaslCreds() );
+        transformControlsTwixToSnickers( twixMessage, snickersMessage );
+        transformLdapResultTwixToSnickers( bindResponse.getLdapResult(), snickersMessage.getLdapResult() );
+        
+        return snickersMessage;
+    }
+
+    
+    /**
+     * Transforms parameters of a Twix LdapResult into a Snickers LdapResult.
+     *
+     * @param twixResult the Twix LdapResult representation
+     * @param snickersResult the Snickers LdapResult representation
+     */
+    private void transformLdapResultTwixToSnickers( LdapResult twixResult, 
+        org.apache.directory.shared.ldap.message.LdapResult snickersResult )
+    {
+        snickersResult.setErrorMessage( twixResult.getErrorMessage() );
+        
+        try
+        {
+            snickersResult.setMatchedDn( new LdapDN( twixResult.getMatchedDN() ) );
+        }
+        catch ( InvalidNameException e )
+        {
+            log.error( "Could not parse matchedDN while transforming twix value to snickers: {}", 
+                twixResult.getMatchedDN() );
+            snickersResult.setMatchedDn( new LdapDN() );
+        }
+        
+        snickersResult.setResultCode( twixResult.getResultCode() );
+
+        if ( twixResult.getReferrals() == null )
+        {
+            
+        }
+        else
+        {
+            ReferralImpl referral = new ReferralImpl();
+            
+            for ( LdapURL url : twixResult.getReferrals() )
+            {
+                referral.addLdapUrl( url.toString() );
+            }
+            
+            snickersResult.setReferral( referral );
+        }
+    }
+    
+
+    /**
      * Transform a CompareRequest message from a TwixMessage to a
      * SnickersMessage
      * 
@@ -443,58 +511,26 @@
                     switch ( ( ( AttributeValueAssertionFilter ) twixFilter ).getFilterType() )
                     {
                         case LdapConstants.EQUALITY_MATCH_FILTER:
-                            if ( ava.getAssertionValue() instanceof String )
-                            {
-                                branch = new EqualityNode( ava.getAttributeDesc(), 
-                                    (String)ava.getAssertionValue() );
-                            }
-                            else
-                            {
-                                branch = new EqualityNode( ava.getAttributeDesc(), 
-                                    (byte[])ava.getAssertionValue() );
-                            }
+                            branch = new EqualityNode( ava.getAttributeDesc(), 
+                                ava.getAssertionValue() );
                             
                             break;
 
                         case LdapConstants.GREATER_OR_EQUAL_FILTER:
-                            if ( ava.getAssertionValue() instanceof String )
-                            {
-                                branch = new GreaterEqNode( ava.getAttributeDesc(),
-                                    (String)ava.getAssertionValue() );
-                            }
-                            else
-                            {
-                                branch = new GreaterEqNode( ava.getAttributeDesc(),
-                                    (byte[])ava.getAssertionValue() );
-                            }
+                            branch = new GreaterEqNode( ava.getAttributeDesc(),
+                                ava.getAssertionValue() );
 
                             break;
 
                         case LdapConstants.LESS_OR_EQUAL_FILTER:
-                            if ( ava.getAssertionValue() instanceof String )
-                            {
-                                branch = new LessEqNode( ava.getAttributeDesc(), 
-                                    (String)ava.getAssertionValue() );
-                            }
-                            else
-                            {
-                                branch = new LessEqNode( ava.getAttributeDesc(), 
-                                    (byte[])ava.getAssertionValue() );
-                            }
+                            branch = new LessEqNode( ava.getAttributeDesc(), 
+                                ava.getAssertionValue() );
 
                             break;
 
                         case LdapConstants.APPROX_MATCH_FILTER:
-                            if ( ava.getAssertionValue() instanceof String )
-                            {
-                                branch = new ApproximateNode( ava.getAttributeDesc(), 
-                                    (String)ava.getAssertionValue() );
-                            }
-                            else
-                            {
-                                branch = new ApproximateNode( ava.getAttributeDesc(), 
-                                    (byte[])ava.getAssertionValue() );
-                            }
+                            branch = new ApproximateNode( ava.getAttributeDesc(), 
+                                ava.getAssertionValue() );
 
                             break;
                     }
@@ -730,6 +766,9 @@
                 break;
 
             case ( LdapConstants.BIND_RESPONSE  ):
+                snickersMessage = transformBindResponse( twixMessage, messageId );
+                break;
+
             case ( LdapConstants.SEARCH_RESULT_ENTRY  ):
             case ( LdapConstants.SEARCH_RESULT_DONE  ):
             case ( LdapConstants.SEARCH_RESULT_REFERENCE  ):
@@ -838,7 +877,7 @@
     /**
      * Transform a Ldapresult part of a Snickers Response to a Twix LdapResult
      * 
-     * @param snickersLdapResult The Snickers LdapResult to transform
+     * @param snickersLdapResult the Snickers LdapResult to transform
      * @return A Twix LdapResult
      */
     private LdapResult transformLdapResult( LdapResultImpl snickersLdapResult )
@@ -935,6 +974,41 @@
 
 
     /**
+     * Transform a Snickers BindRequest to a Twix BindRequest
+     * 
+     * @param twixMessage The Twix BindRequest to produce
+     * @param snickersMessage The incoming Snickers BindRequest
+     */
+    private void transformBindRequest( LdapMessage twixMessage, Message snickersMessage )
+    {
+        BindRequestImpl snickersBindRequest = ( BindRequestImpl ) snickersMessage;
+
+        BindRequest bindRequest = new BindRequest();
+        
+        if ( snickersBindRequest.isSimple() )
+        {
+            SimpleAuthentication simple = new SimpleAuthentication();
+            simple.setSimple( snickersBindRequest.getCredentials() );
+            bindRequest.setAuthentication( simple );
+        }
+        else
+        {
+            SaslCredentials sasl = new SaslCredentials();
+            sasl.setCredentials( snickersBindRequest.getCredentials() );
+            sasl.setMechanism( snickersBindRequest.getSaslMechanism() );
+            bindRequest.setAuthentication( sasl );
+        }
+        
+        bindRequest.setMessageId( snickersBindRequest.getMessageId() );
+        bindRequest.setName( snickersBindRequest.getName() );
+        bindRequest.setVersion( snickersBindRequest.isVersion3() ? 3 : 2 );
+        
+        // Set the operation into the LdapMessage
+        twixMessage.setProtocolOP( bindRequest );
+    }
+
+
+    /**
      * Transform a Snickers CompareResponse to a Twix CompareResponse
      * 
      * @param twixMessage The Twix CompareResponse to produce
@@ -1174,6 +1248,10 @@
                 transformBindResponse( twixMessage, msg );
                 break;
                 
+            case BIND_REQUEST :
+                transformBindRequest( twixMessage, msg );
+                break;
+                
             case ADD_RESPONSE :
                 transformAddResponse( twixMessage, msg );
                 break;
@@ -1214,6 +1292,30 @@
         return twixMessage;
     }
 
+
+    /**
+     * TODO finish this implementation.  Takes Twix Controls, transforming 
+     * them to Snickers Controls and populates the Snickers message with them.
+     *
+     * @param twixMessage the Twix message
+     * @param msg the Snickers message
+     */
+    private void transformControlsTwixToSnickers( LdapMessage twixMessage, Message msg )
+    {
+        if ( twixMessage.getControls() == null )
+        {
+            return;
+        }
+        
+        Iterator<Control> list = twixMessage.getControls().iterator();
+        
+        while ( list.hasNext() )
+        {
+            log.debug( "Not decoding response control: {}", list.next() );
+        }
+    }
+    
+    
     /**
      * Transforms the controls
      * @param twixMessage The Twix SearchResultReference to produce

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/actions/InitAssertionValueFilterAction.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/actions/InitAssertionValueFilterAction.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/actions/InitAssertionValueFilterAction.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/actions/InitAssertionValueFilterAction.java Sat May 10 08:38:30 2008
@@ -29,6 +29,9 @@
 import org.apache.directory.shared.ldap.codec.LdapMessageContainer;
 import org.apache.directory.shared.ldap.codec.search.AttributeValueAssertionFilter;
 import org.apache.directory.shared.ldap.codec.search.SearchRequest;
+import org.apache.directory.shared.ldap.entry.Value;
+import org.apache.directory.shared.ldap.entry.client.ClientBinaryValue;
+import org.apache.directory.shared.ldap.entry.client.ClientStringValue;
 import org.apache.directory.shared.ldap.util.StringTools;
 
 import org.slf4j.Logger;
@@ -65,11 +68,15 @@
         TLV tlv = ldapMessageContainer.getCurrentTLV();
 
         // The value can be null.
-        Object assertionValue = StringTools.EMPTY_BYTES;
+        Value<?> assertionValue = null;
 
         if ( tlv.getLength() != 0 )
         {
-            assertionValue = tlv.getValue().getData();
+            assertionValue = new ClientBinaryValue( tlv.getValue().getData() );
+        }
+        else
+        {
+            assertionValue = new ClientBinaryValue( StringTools.EMPTY_BYTES );
         }
 
         AttributeValueAssertionFilter terminalFilter = ( AttributeValueAssertionFilter ) searchRequest
@@ -78,11 +85,29 @@
 
         if ( ldapMessageContainer.isBinary( assertion.getAttributeDesc() ) )
         {
+            if ( tlv.getLength() != 0 )
+            {
+                assertionValue = new ClientBinaryValue( tlv.getValue().getData() );
+            }
+            else
+            {
+                assertionValue = new ClientBinaryValue( StringTools.EMPTY_BYTES );
+            }
+            
             assertion.setAssertionValue( assertionValue );
         }
         else
         {
-            assertion.setAssertionValue( StringTools.utf8ToString( ( byte[] ) assertionValue ) );
+            if ( tlv.getLength() != 0 )
+            {
+                assertionValue = new ClientStringValue( StringTools.utf8ToString( tlv.getValue().getData() ) );
+            }
+            else
+            {
+                assertionValue = new ClientStringValue( "" );
+            }
+            
+            assertion.setAssertionValue(assertionValue );
         }
 
         // We now have to get back to the nearest filter which is

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/AttributeValueAssertionFilter.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/AttributeValueAssertionFilter.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/AttributeValueAssertionFilter.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/AttributeValueAssertionFilter.java Sat May 10 08:38:30 2008
@@ -28,6 +28,8 @@
 import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.ldap.codec.AttributeValueAssertion;
 import org.apache.directory.shared.ldap.codec.LdapConstants;
+import org.apache.directory.shared.ldap.entry.client.ClientBinaryValue;
+import org.apache.directory.shared.ldap.entry.client.ClientStringValue;
 import org.apache.directory.shared.ldap.util.StringTools;
 
 
@@ -152,17 +154,17 @@
 
         avaLength = 1 + TLV.getNbBytes( attributeDescLength ) + attributeDescLength;
 
-        Object assertionValue = assertion.getAssertionValue();
+        org.apache.directory.shared.ldap.entry.Value<?> assertionValue = assertion.getAssertionValue();
 
         int assertionValueLength = 0;
 
-        if ( assertionValue instanceof String )
+        if ( assertionValue instanceof ClientStringValue )
         {
-            assertionValueLength = StringTools.getBytesUtf8( ( String ) assertionValue ).length;
+            assertionValueLength = StringTools.getBytesUtf8( ((ClientStringValue)assertionValue).get() ).length;
         }
         else
         {
-            assertionValueLength = ( ( byte[] ) assertionValue ).length;
+            assertionValueLength = ((ClientBinaryValue)assertionValue).get().length;
         }
 
         avaLength += 1 + TLV.getNbBytes( assertionValueLength ) + assertionValueLength;
@@ -228,13 +230,13 @@
         Value.encode( buffer, assertion.getAttributeDesc() );
 
         // The assertion desc
-        if ( assertion.getAssertionValue() instanceof String )
+        if ( assertion.getAssertionValue().get() instanceof String )
         {
-            Value.encode( buffer, ( String ) assertion.getAssertionValue() );
+            Value.encode( buffer, ( String ) assertion.getAssertionValue().get() );
         }
         else
         {
-            Value.encode( buffer, ( byte[] ) assertion.getAssertionValue() );
+            Value.encode( buffer, ( byte[] ) assertion.getAssertionValue().get() );
         }
 
         return buffer;

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/Value.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/Value.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/Value.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/Value.java Sat May 10 08:38:30 2008
@@ -171,4 +171,12 @@
      * @exception NamingException If the value cannot be normalized
      */
     void normalize( Normalizer normalizer ) throws NamingException;
+    
+    
+    /**
+     * Tells if the current value is Binary or String
+     * 
+     * @return <code>true</code> if the value is Binary, <code>false</code> otherwise
+     */
+    boolean isBinary();
 }

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/ClientBinaryValue.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/ClientBinaryValue.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/ClientBinaryValue.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/ClientBinaryValue.java Sat May 10 08:38:30 2008
@@ -338,6 +338,17 @@
         System.arraycopy( wrapped, 0, copy, 0, wrapped.length );
         return copy;
     }
+    
+    
+    /**
+     * Tells if the current value is Binary or String
+     * 
+     * @return <code>true</code> if the value is Binary, <code>false</code> otherwise
+     */
+    public boolean isBinary()
+    {
+        return true;
+    }
 
 
     /**

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/ClientStringValue.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/ClientStringValue.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/ClientStringValue.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/ClientStringValue.java Sat May 10 08:38:30 2008
@@ -295,6 +295,17 @@
     
     
     /**
+     * Tells if the current value is Binary or String
+     * 
+     * @return <code>true</code> if the value is Binary, <code>false</code> otherwise
+     */
+    public boolean isBinary()
+    {
+        return false;
+    }
+
+
+    /**
      * @see Externalizable#readExternal(ObjectInput)
      */
     public void readExternal( ObjectInput in ) throws IOException, ClassNotFoundException
@@ -318,6 +329,6 @@
      */
     public String toString()
     {
-        return "'" + wrapped + "'";
+        return wrapped == null ? "null": wrapped;
     }
 }

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/DefaultClientEntry.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/DefaultClientEntry.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/DefaultClientEntry.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/entry/client/DefaultClientEntry.java Sat May 10 08:38:30 2008
@@ -29,6 +29,8 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.SortedMap;
+import java.util.TreeMap;
 
 import org.apache.directory.shared.ldap.entry.AbstractEntry;
 import org.apache.directory.shared.ldap.entry.Entry;
@@ -1050,11 +1052,18 @@
         
         result = result*17 + dn.hashCode();
         
-        for ( EntryAttribute attribute:attributes.values() )
+        SortedMap<String, EntryAttribute> sortedMap = new TreeMap<String, EntryAttribute>();
+        
+        for ( String id:attributes.keySet() )
         {
-            result = result*17 + attribute.hashCode();
+            sortedMap.put( id, attributes.get( id ) );
         }
-
+        
+        for ( String id:sortedMap.keySet() )
+        {
+            result = result*17 + sortedMap.get( id ).hashCode();
+        }
+        
         return result;
     }
 

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/ApproximateNode.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/ApproximateNode.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/ApproximateNode.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/ApproximateNode.java Sat May 10 08:38:30 2008
@@ -19,6 +19,7 @@
  */
 package org.apache.directory.shared.ldap.filter;
 
+import org.apache.directory.shared.ldap.entry.Value;
 
 /**
  * A simple assertion value node.
@@ -34,19 +35,7 @@
      * @param attribute the attribute name
      * @param value the value to test for
      */
-    public ApproximateNode( String attribute, byte[] value )
-    {
-        super( attribute, value, AssertionType.APPROXIMATE );
-    }
-
-
-    /**
-     * Creates a new ApproximateNode object.
-     * 
-     * @param attribute the attribute name
-     * @param value the value to test for
-     */
-    public ApproximateNode( String attribute, String value )
+    public ApproximateNode( String attribute, Value<?> value )
     {
         super( attribute, value, AssertionType.APPROXIMATE );
     }
@@ -66,14 +55,14 @@
      */
     public String toString()
     {
-    	StringBuilder buf = new StringBuilder();
-    	
+        StringBuilder buf = new StringBuilder();
+    
         buf.append( '(' ).append( getAttribute() ).append( "~=" ).append( value );
 
         buf.append( super.toString() );
         
         buf.append( ')' );
         
-    	return buf.toString();
+        return buf.toString();
     }
 }

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/EqualityNode.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/EqualityNode.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/EqualityNode.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/EqualityNode.java Sat May 10 08:38:30 2008
@@ -19,6 +19,8 @@
  */
 package org.apache.directory.shared.ldap.filter;
 
+import org.apache.directory.shared.ldap.entry.Value;
+
 
 /**
  * A assertion value node for Equality.
@@ -34,19 +36,7 @@
      * @param attribute the attribute name
      * @param value the value to test for
      */
-    public EqualityNode( String attribute, byte[] value )
-    {
-        super( attribute, value, AssertionType.EQUALITY );
-    }
-
-
-    /**
-     * Creates a new Equality object.
-     * 
-     * @param attribute the attribute name
-     * @param value the value to test for
-     */
-    public EqualityNode( String attribute, String value )
+    public EqualityNode( String attribute, Value<?> value )
     {
         super( attribute, value, AssertionType.EQUALITY );
     }
@@ -58,19 +48,7 @@
      * @param attribute the attribute name
      * @param value the value to test for
      */
-    protected EqualityNode( String attribute, byte[] value, AssertionType assertionType )
-    {
-        super( attribute, value, assertionType );
-    }
-
-
-    /**
-     * Creates a new Equality object.
-     * 
-     * @param attribute the attribute name
-     * @param value the value to test for
-     */
-    protected EqualityNode( String attribute, String value, AssertionType assertionType )
+    protected EqualityNode( String attribute, Value<?> value, AssertionType assertionType )
     {
         super( attribute, value, assertionType );
     }
@@ -90,14 +68,14 @@
      */
     public String toString()
     {
-    	StringBuilder buf = new StringBuilder();
-    	
+        StringBuilder buf = new StringBuilder();
+    
         buf.append( '(' ).append( getAttribute() ).append( "=" ).append( value );
 
         buf.append( super.toString() );
         
         buf.append( ')' );
         
-    	return buf.toString();
+        return buf.toString();
     }
 }

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/FilterParser.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/FilterParser.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/FilterParser.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/FilterParser.java Sat May 10 08:38:30 2008
@@ -22,6 +22,7 @@
 
 import java.text.ParseException;
 
+import org.apache.directory.shared.ldap.entry.client.ClientStringValue;
 import org.apache.directory.shared.ldap.util.AttributeUtils;
 import org.apache.directory.shared.ldap.util.Position;
 import org.apache.directory.shared.ldap.util.StringTools;
@@ -35,7 +36,8 @@
     public FilterParser()
     {
     }
-    
+
+
     /**
      * Parse an extensible
      * 
@@ -61,35 +63,35 @@
                 // Push back the ':' 
                 pos.start--;
             }
-            
+
             // Do we have a MatchingRule ?
             if ( StringTools.charAt( filter, pos.start ) == ':' )
             {
                 pos.start++;
                 int start = pos.start;
-                
+
                 if ( StringTools.charAt( filter, pos.start ) == '=' )
                 {
                     pos.start++;
-                    
+
                     // Get the assertionValue
                     node.setValue( parseAssertionValue( filter, pos ) );
-                    
+
                     return node;
                 }
                 else
                 {
                     AttributeUtils.parseAttribute( filter, pos, false );
-                    
+
                     node.setMatchingRuleId( filter.substring( start, pos.start ) );
-                    
+
                     if ( StringTools.areEquals( filter, pos.start, ":=" ) )
                     {
                         pos.start += 2;
-                        
+
                         // Get the assertionValue
                         node.setValue( parseAssertionValue( filter, pos ) );
-                        
+
                         return node;
                     }
                     else
@@ -106,7 +108,7 @@
         else
         {
             boolean oidRequested = false;
-            
+
             // First check if we have a ":dn"
             if ( StringTools.areEquals( filter, pos.start, ":dn" ) )
             {
@@ -118,40 +120,40 @@
             {
                 oidRequested = true;
             }
-            
+
             // Do we have a MatchingRule ?
             if ( StringTools.charAt( filter, pos.start ) == ':' )
             {
                 pos.start++;
                 int start = pos.start;
-                
+
                 if ( StringTools.charAt( filter, pos.start ) == '=' )
                 {
                     if ( oidRequested )
                     {
                         throw new ParseException( "MatchingRule expected", pos.start );
                     }
-                    
+
                     pos.start++;
-                    
+
                     // Get the assertionValue
                     node.setValue( parseAssertionValue( filter, pos ) );
-                    
+
                     return node;
                 }
                 else
                 {
                     AttributeUtils.parseAttribute( filter, pos, false );
-                    
+
                     node.setMatchingRuleId( filter.substring( start, pos.start ) );
-                    
+
                     if ( StringTools.areEquals( filter, pos.start, ":=" ) )
                     {
                         pos.start += 2;
-                        
+
                         // Get the assertionValue
                         node.setValue( parseAssertionValue( filter, pos ) );
-                        
+
                         return node;
                     }
                     else
@@ -166,8 +168,8 @@
             }
         }
     }
-    
-    
+
+
     /**
      * An assertion value : 
      * assertionvalue = valueencoding
@@ -204,9 +206,9 @@
     private static String parseAssertionValue( String filter, Position pos ) throws ParseException
     {
         int start = pos.start;
-        
+
         char c = StringTools.charAt( filter, pos.start );
-        
+
         do
         {
             if ( StringTools.isUnicodeSubset( c ) )
@@ -217,7 +219,7 @@
             {
                 // Maybe an escaped 
                 pos.start++;
-                
+
                 // First hex
                 if ( StringTools.isHex( filter, pos.start ) )
                 {
@@ -243,35 +245,38 @@
                 // not a valid char, so let's get out
                 return filter.substring( start, pos.start );
             }
-        } while ( ( c = StringTools.charAt( filter, pos.start ) ) != '\0' );
-        
+        }
+        while ( ( c = StringTools.charAt( filter, pos.start ) ) != '\0' );
+
         return filter.substring( start, pos.start );
     }
 
+
     /**
      * Parse a substring
      */
-    private static ExprNode parseSubstring( String attr, String initial, String filter, Position pos ) throws ParseException
+    private static ExprNode parseSubstring( String attr, String initial, String filter, Position pos )
+        throws ParseException
     {
         if ( StringTools.isCharASCII( filter, pos.start, '*' ) )
         {
             // We have found a '*' : this is a substring
             SubstringNode node = new SubstringNode( attr );
-            
+
             if ( !StringTools.isEmpty( initial ) )
             {
                 // We have a substring starting with a value : val*...
                 // Set the initial value
                 node.setInitial( initial );
             }
-            
+
             pos.start++;
-            
+
             // 
             while ( true )
             {
                 String assertionValue = parseAssertionValue( filter, pos );
-                
+
                 // Is there anything else but a ')' after the value ?
                 if ( StringTools.isCharASCII( filter, pos.start, ')' ) )
                 {
@@ -293,10 +298,10 @@
                     {
                         node.addAny( assertionValue );
                     }
-                    
+
                     pos.start++;
                 }
-            } 
+            }
         }
         else
         {
@@ -304,7 +309,8 @@
             throw new ParseException( "Bad substring", pos.start );
         }
     }
-    
+
+
     /**
      * Here is the grammar to parse :
      * 
@@ -329,7 +335,8 @@
      * @param pos
      * @return
      */
-    private static ExprNode parsePresenceEqOrSubstring( String attr, String filter, Position pos ) throws ParseException
+    private static ExprNode parsePresenceEqOrSubstring( String attr, String filter, Position pos )
+        throws ParseException
     {
         if ( StringTools.isCharASCII( filter, pos.start, '*' ) )
         {
@@ -353,25 +360,25 @@
         else if ( StringTools.isCharASCII( filter, pos.start, ')' ) )
         {
             // An empty equality Node
-            return new EqualityNode( attr, "" );
+            return new EqualityNode( attr, new ClientStringValue( "" ) );
         }
         else
         {
             // A substring or an equality node
             String value = parseAssertionValue( filter, pos );
-            
+
             // Is there anything else but a ')' after the value ?
             if ( StringTools.isCharASCII( filter, pos.start, ')' ) )
             {
                 // This is an equality node
-                return new EqualityNode( attr, value );
+                return new EqualityNode( attr, new ClientStringValue( value ) );
             }
-            
+
             return parseSubstring( attr, value, filter, pos );
         }
     }
-    
-    
+
+
     /**
      * Parse the following grammar :
      * item           = simple / present / substring / extensible
@@ -389,15 +396,15 @@
     {
         LeafNode node = null;
         String attr = null;
-        
+
         // Relax the grammar a bit : we can have spaces 
         // StringTools.trimLeft( filter, pos );
-        
+
         if ( c == '\0' )
         {
             throw new ParseException( "Bad char", pos.start );
         }
-        
+
         if ( c == ':' )
         {
             // If we have a colon, then the item is an extensible one
@@ -407,24 +414,24 @@
         {
             // We must have an attribute
             attr = AttributeUtils.parseAttribute( filter, pos, true );
-            
+
             // Relax the grammar a bit : we can have spaces 
             // StringTools.trimLeft( filter, pos );
 
             // Now, we may have a present, substring, simple or an extensible
             c = StringTools.charAt( filter, pos.start );
-            
+
             switch ( c )
             {
-                case '=' :
+                case '=':
                     // It can be a presence, an equal or a substring
                     pos.start++;
                     return parsePresenceEqOrSubstring( attr, filter, pos );
-                    
-                case '~' :
+
+                case '~':
                     // Approximate node
                     pos.start++;
-                    
+
                     // Check that we have a '='
                     if ( !StringTools.isCharASCII( filter, pos.start, '=' ) )
                     {
@@ -432,15 +439,15 @@
                     }
 
                     pos.start++;
-                    
+
                     // Parse the value and create the node
-                    node = new ApproximateNode( attr, parseAssertionValue( filter, pos ) );
+                    node = new ApproximateNode( attr, new ClientStringValue( parseAssertionValue( filter, pos ) ) );
                     return node;
-                    
-                case '>' :
+
+                case '>':
                     // Greater or equal node
                     pos.start++;
-                    
+
                     // Check that we have a '='
                     if ( !StringTools.isCharASCII( filter, pos.start, '=' ) )
                     {
@@ -448,15 +455,15 @@
                     }
 
                     pos.start++;
-                    
+
                     // Parse the value and create the node
-                    node = new GreaterEqNode( attr, parseAssertionValue( filter, pos ) );
+                    node = new GreaterEqNode( attr, new ClientStringValue( parseAssertionValue( filter, pos ) ) );
                     return node;
-                    
-                case '<' :
+
+                case '<':
                     // Less or equal node
                     pos.start++;
-                    
+
                     // Check that we have a '='
                     if ( !StringTools.isCharASCII( filter, pos.start, '=' ) )
                     {
@@ -464,23 +471,24 @@
                     }
 
                     pos.start++;
-                    
+
                     // Parse the value and create the node
-                    node = new LessEqNode( attr, parseAssertionValue( filter, pos ) );
+                    node = new LessEqNode( attr, new ClientStringValue( parseAssertionValue( filter, pos ) ) );
                     return node;
-                    
-                case ':' :
+
+                case ':':
                     // An extensible node
                     pos.start++;
                     return parseExtensible( attr, filter, pos );
-                    
-                default :
+
+                default:
                     // This is an error
                     throw new ParseException( "An item is expected", pos.start );
             }
         }
     }
 
+
     /**
      * Parse AND, OR and NOT nodes :
      * 
@@ -493,20 +501,20 @@
      */
     private static ExprNode parseBranchNode( ExprNode node, String filter, Position pos ) throws ParseException
     {
-        BranchNode bNode = (BranchNode)node;
-        
+        BranchNode bNode = ( BranchNode ) node;
+
         // Relax the grammar a bit : we can have spaces 
         // StringTools.trimLeft( filter, pos );
-        
+
         // We must have at least one filter
         ExprNode child = parseFilterInternal( filter, pos );
-        
+
         // Add the child to the node children
         bNode.addNode( child );
 
         // Relax the grammar a bit : we can have spaces 
         // StringTools.trimLeft( filter, pos );
-        
+
         // Now, iterate though all the remaining filters, if any
         while ( ( child = parseFilterInternal( filter, pos ) ) != null )
         {
@@ -516,13 +524,14 @@
             // Relax the grammar a bit : we can have spaces 
             // StringTools.trimLeft( filter, pos );
         }
-        
+
         // Relax the grammar a bit : we can have spaces 
         // StringTools.trimLeft( filter, pos );
 
         return node;
     }
 
+
     /**
      * filtercomp     = and / or / not / item
      * and            = '&' filterlist
@@ -537,53 +546,54 @@
      *                    / ( [dnattrs]
      *                         matchingrule COLON EQUALS assertionvalue )
      */
-    private static ExprNode parseFilterComp( String filter, Position pos )  throws ParseException
+    private static ExprNode parseFilterComp( String filter, Position pos ) throws ParseException
     {
         ExprNode node = null;
 
         // Relax the grammar a bit : we can have spaces 
         // StringTools.trimLeft( filter, pos );
-        
+
         if ( pos.start == pos.length )
         {
             throw new ParseException( "Empty filterComp", pos.start );
         }
-        
+
         char c = StringTools.charAt( filter, pos.start );
-        
+
         switch ( c )
         {
-            case '&' :
+            case '&':
                 // This is a AND node
                 pos.start++;
                 node = new AndNode();
                 parseBranchNode( node, filter, pos );
                 break;
-                
-            case '|' :
+
+            case '|':
                 // This is an OR node
                 pos.start++;
                 node = new OrNode();
                 parseBranchNode( node, filter, pos );
                 break;
-                
-            case '!' :
+
+            case '!':
                 // This is a NOT node
                 pos.start++;
                 node = new NotNode();
                 parseBranchNode( node, filter, pos );
                 break;
-                
-            default :
+
+            default:
                 // This is an item
                 node = parseItem( filter, pos, c );
                 break;
-                    
+
         }
-        
+
         return node;
     }
-    
+
+
     /**
      * Pasre the grammar rule :
      * filter ::= '(' filterComp ')'
@@ -592,7 +602,7 @@
     {
         // relax the grammar by allowing spaces
         // StringTools.trimLeft( filter, pos );
-        
+
         // Check for the left '('
         if ( StringTools.isCharASCII( filter, pos.start, '(' ) == false )
         {
@@ -606,34 +616,35 @@
                 return null;
             }
         }
-        
+
         pos.start++;
-        
+
         // relax the grammar by allowing spaces
         // StringTools.trimLeft( filter, pos );
-        
+
         // parse the filter component
         ExprNode node = parseFilterComp( filter, pos );
-        
+
         if ( node == null )
         {
             throw new ParseException( "Bad filter", pos.start );
         }
-        
+
         // relax the grammar by allowing spaces
         // StringTools.trimLeft( filter, pos );
-        
+
         // Check that we have a right ')'
         if ( StringTools.isCharASCII( filter, pos.start, ')' ) == false )
         {
             throw new ParseException( "The filter has no right parenthese", pos.start );
         }
-        
+
         pos.start++;
-        
+
         return node;
     }
-    
+
+
     /**
      * @see FilterParser#parse(String)
      */
@@ -644,12 +655,12 @@
         {
             throw new ParseException( "Empty filter", 0 );
         }
-        
+
         Position pos = new Position();
         pos.start = 0;
         pos.end = 0;
         pos.length = filter.length();
-        
+
         return parseFilterInternal( filter, pos );
     }
 

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/GreaterEqNode.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/GreaterEqNode.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/GreaterEqNode.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/GreaterEqNode.java Sat May 10 08:38:30 2008
@@ -20,6 +20,9 @@
 package org.apache.directory.shared.ldap.filter;
 
 
+import org.apache.directory.shared.ldap.entry.Value;
+
+
 /**
  * A assertion value node for GreaterOrEqual.
  * 
@@ -34,19 +37,7 @@
      * @param attribute the attribute name
      * @param value the value to test for
      */
-    public GreaterEqNode( String attribute, byte[] value )
-    {
-        super( attribute, value, AssertionType.GREATEREQ );
-    }
-
-
-    /**
-     * Creates a new GreaterOrEqual object.
-     * 
-     * @param attribute the attribute name
-     * @param value the value to test for
-     */
-    public GreaterEqNode( String attribute, String value )
+    public GreaterEqNode( String attribute, Value<?> value )
     {
         super( attribute, value, AssertionType.GREATEREQ );
     }
@@ -60,20 +51,20 @@
         return super.hashCode();
     }
 
-    
+
     /**
      * @see Object#toString()
      */
     public String toString()
     {
-    	StringBuilder buf = new StringBuilder();
-    	
+        StringBuilder buf = new StringBuilder();
+
         buf.append( '(' ).append( getAttribute() ).append( ">=" ).append( value );
 
         buf.append( super.toString() );
-        
+
         buf.append( ')' );
-        
-    	return buf.toString();
+
+        return buf.toString();
     }
 }

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/LessEqNode.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/LessEqNode.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/LessEqNode.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/LessEqNode.java Sat May 10 08:38:30 2008
@@ -20,6 +20,9 @@
 package org.apache.directory.shared.ldap.filter;
 
 
+import org.apache.directory.shared.ldap.entry.Value;
+
+
 /**
  * A assertion value node for LessOrEqual.
  * 
@@ -34,25 +37,13 @@
      * @param attribute the attribute name
      * @param value the value to test for
      */
-    public LessEqNode( String attribute, byte[] value )
+    public LessEqNode( String attribute, Value<?> value )
     {
         super( attribute, value, AssertionType.LESSEQ );
     }
 
 
     /**
-     * Creates a new LessEqNode object.
-     * 
-     * @param attribute the attribute name
-     * @param value the value to test for
-     */
-    public LessEqNode( String attribute, String value )
-    {
-        super( attribute, value, AssertionType.LESSEQ );
-    }
-
-    
-    /**
      * @see Object#hashCode()
      */
     public int hashCode()
@@ -60,20 +51,20 @@
         return super.hashCode();
     }
 
-    
+
     /**
      * @see Object#toString()
      */
     public String toString()
     {
-    	StringBuilder buf = new StringBuilder();
-    	
+        StringBuilder buf = new StringBuilder();
+
         buf.append( '(' ).append( getAttribute() ).append( "<=" ).append( value );
 
         buf.append( super.toString() );
-        
+
         buf.append( ')' );
-        
-    	return buf.toString();
+
+        return buf.toString();
     }
 }

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/SimpleNode.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/SimpleNode.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/SimpleNode.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/SimpleNode.java Sat May 10 08:38:30 2008
@@ -19,7 +19,9 @@
  */
 package org.apache.directory.shared.ldap.filter;
 
+
 import org.apache.directory.shared.ldap.constants.SchemaConstants;
+import org.apache.directory.shared.ldap.entry.Value;
 
 
 /**
@@ -30,25 +32,13 @@
  */
 public abstract class SimpleNode extends LeafNode
 {
-	/** the value */
-    protected Object value;
+    /** the value */
+    protected Value<?> value;
 
     /** Constants for comparisons */
     public final static boolean EVAL_GREATER = true;
     public final static boolean EVAL_LESSER = false;
 
-    /**
-     * Creates a new SimpleNode object.
-     * 
-     * @param attribute the attribute name
-     * @param value the value to test for
-     */
-    protected SimpleNode( String attribute, byte[] value, AssertionType assertionType )
-    {
-        super( attribute, assertionType );
-        this.value = value;
-    }
-
 
     /**
      * Creates a new SimpleNode object.
@@ -56,7 +46,7 @@
      * @param attribute the attribute name
      * @param value the value to test for
      */
-    protected SimpleNode( String attribute, String value, AssertionType assertionType )
+    protected SimpleNode( String attribute, Value<?> value, AssertionType assertionType )
     {
         super( attribute, assertionType );
         this.value = value;
@@ -68,7 +58,7 @@
      * 
      * @return the value
      */
-    public final Object getValue()
+    public final Value<?> getValue()
     {
         return value;
     }
@@ -79,7 +69,7 @@
      * 
      * @param value the value for this node
      */
-    public void setValue( Object value )
+    public void setValue( Value<?> value )
     {
         this.value = value;
     }
@@ -103,7 +93,7 @@
         return buf;
     }
 
-    
+
     /**
      * @see ExprNode#printRefinementToBuffer(StringBuilder)
      */
@@ -125,15 +115,15 @@
      */
     public int hashCode()
     {
-    	int h = 37;
-    	
-    	h = h*17 + super.hashCode();
-    	h = h*17 + ( value == null ? 0 : value.hashCode() );
-    	
-    	return h;
+        int h = 37;
+
+        h = h * 17 + super.hashCode();
+        h = h * 17 + ( value == null ? 0 : value.hashCode() );
+
+        return h;
     }
 
-    
+
     /*
      * (non-Javadoc)
      * 
@@ -150,26 +140,26 @@
         {
             return false;
         }
-        
+
         if ( other.getClass() != this.getClass() )
         {
-        	return false;
+            return false;
         }
-        
+
         if ( !super.equals( other ) )
         {
-        	return false;
+            return false;
         }
 
-        SimpleNode otherNode = (SimpleNode)other;
+        SimpleNode otherNode = ( SimpleNode ) other;
 
         if ( value == null )
         {
-        	return otherNode.value == null;
+            return otherNode.value == null;
         }
         else
         {
-        	return value.equals( otherNode.value );
-    	}
+            return value.equals( otherNode.value );
+        }
     }
 }

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDNSerializer.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDNSerializer.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDNSerializer.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDNSerializer.java Sat May 10 08:38:30 2008
@@ -77,7 +77,7 @@
         }
         else
         {
-            String message = "The DN should have been normalized before being serialized";
+            String message = "The DN should have been normalized before being serialized " + dn;
             LOG.error( message );
             throw new IOException( message );
         }

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/Rdn.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/Rdn.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/Rdn.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/Rdn.java Sat May 10 08:38:30 2008
@@ -784,7 +784,13 @@
                                AttributeTypeAndValue atavLocal = ( AttributeTypeAndValue ) atavLocalList.get( 0 );
                                AttributeTypeAndValue atavParam = ( AttributeTypeAndValue ) atavParamList.get( 0 );
 
-                               return atavLocal.compareTo( atavParam );
+                               // If the ATAVs are different we are finished.
+                               // It the ATAVs are equal we must compare the remaining ATAVs, too. 
+                               int result = atavLocal.compareTo( atavParam );
+                               if ( result != 0 )
+                               {
+                            	   return result;
+                               }
                            }
                            else
                            {
@@ -813,14 +819,11 @@
 
                                    if ( !found )
                                    {
-                                       // The ATAV does not exist in the second
-                                       // RDN
+                                       // The ATAV does not exist in the second RDN
                                        return SUPERIOR;
                                    }
                                }
                            }
-
-                           return EQUALS;
                        }
                        else
                        {

Modified: directory/sandbox/akarasulu/bigbang/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchRequestTest.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchRequestTest.java?rev=655116&r1=655115&r2=655116&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchRequestTest.java (original)
+++ directory/sandbox/akarasulu/bigbang/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchRequestTest.java Sat May 10 08:38:30 2008
@@ -193,7 +193,7 @@
         assertNotNull( assertion );
 
         assertEquals( "objectclass", assertion.getAttributeDesc() );
-        assertEquals( "top", assertion.getAssertionValue().toString() );
+        assertEquals( "top", assertion.getAssertionValue().get() );
 
         // (& (| (objectclass=top) (ou=contacts) ) (...
         equalityMatch = ( AttributeValueAssertionFilter ) orFilters.get( 1 );
@@ -203,7 +203,7 @@
         assertNotNull( assertion );
 
         assertEquals( "ou", assertion.getAttributeDesc() );
-        assertEquals( "contacts", assertion.getAssertionValue().toString() );
+        assertEquals( "contacts", assertion.getAssertionValue().get() );
 
         // (& (| (objectclass=top) (ou=contacts) ) (! ...
         NotFilter notFilter = ( NotFilter ) andFilters.get( 1 );
@@ -217,7 +217,7 @@
         assertNotNull( assertion );
 
         assertEquals( "objectclass", assertion.getAttributeDesc() );
-        assertEquals( "ttt", assertion.getAssertionValue().toString() );
+        assertEquals( "ttt", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
 
@@ -357,7 +357,7 @@
         assertNotNull( assertion );
 
         assertEquals( "objectclass", assertion.getAttributeDesc() );
-        assertEquals( "top", assertion.getAssertionValue().toString() );
+        assertEquals( "top", assertion.getAssertionValue().get() );
 
         // (& (| (objectclass~=top) (ou<=contacts) ) (...
         AttributeValueAssertionFilter lessOrEqual = ( AttributeValueAssertionFilter ) orFilters.get( 1 );
@@ -367,7 +367,7 @@
         assertNotNull( assertion );
 
         assertEquals( "ou", assertion.getAttributeDesc() );
-        assertEquals( "contacts", assertion.getAssertionValue().toString() );
+        assertEquals( "contacts", assertion.getAssertionValue().get() );
 
         // (& (| (objectclass~=top) (ou<=contacts) ) (! ...
         NotFilter notFilter = ( NotFilter ) andFilters.get( 1 );
@@ -381,7 +381,7 @@
         assertNotNull( assertion );
 
         assertEquals( "objectclass", assertion.getAttributeDesc() );
-        assertEquals( "ttt", assertion.getAssertionValue().toString() );
+        assertEquals( "ttt", assertion.getAssertionValue().get() );
 
         // The attributes
         Attributes attributes = sr.getAttributes();
@@ -548,7 +548,7 @@
         assertNotNull( assertion );
 
         assertEquals( "objectclass", assertion.getAttributeDesc() );
-        assertEquals( "ttt", assertion.getAssertionValue().toString() );
+        assertEquals( "ttt", assertion.getAssertionValue().get() );
 
         // The attributes
         Attributes attributes = sr.getAttributes();
@@ -942,31 +942,31 @@
             .getAssertion();
 
         assertEquals( "uid", assertion.getAttributeDesc() );
-        assertEquals( "akarasulu", assertion.getAssertionValue().toString() );
+        assertEquals( "akarasulu", assertion.getAssertionValue().get() );
 
         // cn=aok
         assertion = ( ( AttributeValueAssertionFilter ) orFilter.getOrFilter().get( 1 ) ).getAssertion();
 
         assertEquals( "cn", assertion.getAttributeDesc() );
-        assertEquals( "aok", assertion.getAssertionValue().toString() );
+        assertEquals( "aok", assertion.getAssertionValue().get() );
 
         // ou = Human Resources
         assertion = ( ( AttributeValueAssertionFilter ) orFilter.getOrFilter().get( 2 ) ).getAssertion();
 
         assertEquals( "ou", assertion.getAttributeDesc() );
-        assertEquals( "Human Resources", assertion.getAssertionValue().toString() );
+        assertEquals( "Human Resources", assertion.getAssertionValue().get() );
 
         // l=Santa Clara
         assertion = ( ( AttributeValueAssertionFilter ) orFilter.getOrFilter().get( 3 ) ).getAssertion();
 
         assertEquals( "l", assertion.getAttributeDesc() );
-        assertEquals( "Santa Clara", assertion.getAssertionValue().toString() );
+        assertEquals( "Santa Clara", assertion.getAssertionValue().get() );
 
         // cn=abok
         assertion = ( ( AttributeValueAssertionFilter ) orFilter.getOrFilter().get( 4 ) ).getAssertion();
 
         assertEquals( "cn", assertion.getAttributeDesc() );
-        assertEquals( "abok", assertion.getAssertionValue().toString() );
+        assertEquals( "abok", assertion.getAssertionValue().get() );
 
         // The attributes
         Attributes attributes = sr.getAttributes();
@@ -1223,7 +1223,7 @@
         assertNotNull( assertion );
 
         assertEquals( "objectclass", assertion.getAttributeDesc() );
-        assertEquals( "top", assertion.getAssertionValue().toString() );
+        assertEquals( "top", assertion.getAssertionValue().get() );
 
         // (& (| (objectclass=top) (ou=contacts) ) (...
         equalityMatch = ( AttributeValueAssertionFilter ) orFilters.get( 1 );
@@ -1233,7 +1233,7 @@
         assertNotNull( assertion );
 
         assertEquals( "2.5.4.11", assertion.getAttributeDesc() );
-        assertEquals( "contacts", assertion.getAssertionValue().toString() );
+        assertEquals( "contacts", assertion.getAssertionValue().get() );
 
         // (& (| (objectclass=top) (ou=contacts) ) (! ...
         NotFilter notFilter = ( NotFilter ) andFilters.get( 1 );
@@ -1247,7 +1247,7 @@
         assertNotNull( assertion );
 
         assertEquals( "organizationalUnitName", assertion.getAttributeDesc() );
-        assertEquals( "ttt", assertion.getAssertionValue().toString() );
+        assertEquals( "ttt", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
 
@@ -1530,7 +1530,7 @@
         assertNotNull( assertion );
 
         assertEquals( "objectclass", assertion.getAttributeDesc() );
-        assertEquals( "top", assertion.getAssertionValue().toString() );
+        assertEquals( "top", assertion.getAssertionValue().get() );
 
         // (& (| (objectclass=top) (ou=contacts) ) (...
         equalityMatch = ( AttributeValueAssertionFilter ) orFilters.get( 1 );
@@ -1540,7 +1540,7 @@
         assertNotNull( assertion );
 
         assertEquals( "ou", assertion.getAttributeDesc() );
-        assertEquals( "contacts", assertion.getAssertionValue().toString() );
+        assertEquals( "contacts", assertion.getAssertionValue().get() );
 
         // (& (| (objectclass=top) (ou=contacts) ) (! ...
         NotFilter notFilter = ( NotFilter ) andFilters.get( 1 );
@@ -1554,7 +1554,7 @@
         assertNotNull( assertion );
 
         assertEquals( "objectclass", assertion.getAttributeDesc() );
-        assertEquals( "ttt", assertion.getAssertionValue().toString() );
+        assertEquals( "ttt", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
 
@@ -2506,7 +2506,7 @@
         AttributeValueAssertion assertion = greaterThanFilter.getAssertion();
 
         assertEquals( "test", assertion.getAttributeDesc() );
-        assertEquals( "", assertion.getAssertionValue().toString() );
+        assertEquals( "", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
 
@@ -2588,7 +2588,7 @@
         AttributeValueAssertion assertion = greaterThanFilter.getAssertion();
 
         assertEquals( "test", assertion.getAttributeDesc() );
-        assertEquals( "", assertion.getAssertionValue().toString() );
+        assertEquals( "", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
 
@@ -2686,7 +2686,7 @@
         AttributeValueAssertion assertion = greaterThanFilter.getAssertion();
 
         assertEquals( "test", assertion.getAttributeDesc() );
-        assertEquals( "", assertion.getAssertionValue().toString() );
+        assertEquals( "", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
 
@@ -2946,7 +2946,7 @@
         assertNotNull( assertion );
 
         assertEquals( "pgpdisabled", assertion.getAttributeDesc() );
-        assertEquals( "0", assertion.getAssertionValue().toString() );
+        assertEquals( "0", assertion.getAssertionValue().get() );
 
         // Check the encoding
         // We won't check the whole PDU, as it may differs because
@@ -3043,7 +3043,7 @@
         assertNotNull( assertion );
 
         assertEquals( "a", assertion.getAttributeDesc() );
-        assertEquals( "b", assertion.getAssertionValue().toString() );
+        assertEquals( "b", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
         assertEquals( 0, attributes.size() );
@@ -3151,7 +3151,7 @@
         assertNotNull( assertion );
 
         assertEquals( "a", assertion.getAttributeDesc() );
-        assertEquals( "b", assertion.getAssertionValue().toString() );
+        assertEquals( "b", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
         assertEquals( 0, attributes.size() );
@@ -3264,7 +3264,7 @@
         assertNotNull( assertion );
 
         assertEquals( "a", assertion.getAttributeDesc() );
-        assertEquals( "b", assertion.getAssertionValue().toString() );
+        assertEquals( "b", assertion.getAssertionValue().get() );
 
         // (&(a=b)(c=d))
         equalityMatch = ( AttributeValueAssertionFilter ) andFilters.get( 1 );
@@ -3274,7 +3274,7 @@
         assertNotNull( assertion );
 
         assertEquals( "c", assertion.getAttributeDesc() );
-        assertEquals( "d", assertion.getAssertionValue().toString() );
+        assertEquals( "d", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
         assertEquals( 0, attributes.size() );
@@ -3388,7 +3388,7 @@
         assertNotNull( assertion );
 
         assertEquals( "a", assertion.getAttributeDesc() );
-        assertEquals( "b", assertion.getAssertionValue().toString() );
+        assertEquals( "b", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
         assertEquals( 0, attributes.size() );
@@ -3508,7 +3508,7 @@
         assertNotNull( assertion );
 
         assertEquals( "a", assertion.getAttributeDesc() );
-        assertEquals( "b", assertion.getAssertionValue().toString() );
+        assertEquals( "b", assertion.getAssertionValue().get() );
 
         // (&(&(a=b)(c=d)
         equalityMatch = ( AttributeValueAssertionFilter ) andFilters2.get( 1 );
@@ -3518,7 +3518,7 @@
         assertNotNull( assertion );
 
         assertEquals( "c", assertion.getAttributeDesc() );
-        assertEquals( "d", assertion.getAssertionValue().toString() );
+        assertEquals( "d", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
         assertEquals( 0, attributes.size() );
@@ -3637,7 +3637,7 @@
         assertNotNull( assertion );
 
         assertEquals( "a", assertion.getAttributeDesc() );
-        assertEquals( "b", assertion.getAssertionValue().toString() );
+        assertEquals( "b", assertion.getAssertionValue().get() );
 
         // (&(&(a=b))(c=d))
         equalityMatch = ( AttributeValueAssertionFilter ) andFilters.get( 1 );
@@ -3647,7 +3647,7 @@
         assertNotNull( assertion );
 
         assertEquals( "c", assertion.getAttributeDesc() );
-        assertEquals( "d", assertion.getAssertionValue().toString() );
+        assertEquals( "d", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
         assertEquals( 0, attributes.size() );
@@ -3770,7 +3770,7 @@
         assertNotNull( assertion );
 
         assertEquals( "a", assertion.getAttributeDesc() );
-        assertEquals( "b", assertion.getAssertionValue().toString() );
+        assertEquals( "b", assertion.getAssertionValue().get() );
 
         // (&(&(a=b)(c=d)...
         equalityMatch = ( AttributeValueAssertionFilter ) andFilters2.get( 1 );
@@ -3780,7 +3780,7 @@
         assertNotNull( assertion );
 
         assertEquals( "c", assertion.getAttributeDesc() );
-        assertEquals( "d", assertion.getAssertionValue().toString() );
+        assertEquals( "d", assertion.getAssertionValue().get() );
         
         // (&(&(a=b)(c=d))(e=f))
         equalityMatch = ( AttributeValueAssertionFilter ) andFilters.get( 1 );
@@ -3790,7 +3790,7 @@
         assertNotNull( assertion );
 
         assertEquals( "e", assertion.getAttributeDesc() );
-        assertEquals( "f", assertion.getAssertionValue().toString() );
+        assertEquals( "f", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
         assertEquals( 0, attributes.size() );
@@ -3910,7 +3910,7 @@
         assertNotNull( assertion );
 
         assertEquals( "a", assertion.getAttributeDesc() );
-        assertEquals( "b", assertion.getAssertionValue().toString() );
+        assertEquals( "b", assertion.getAssertionValue().get() );
 
         // (&(&(a=b))(&...
         andFilter2 = ( AndFilter ) andFilters.get( 1 );
@@ -3927,7 +3927,7 @@
         assertNotNull( assertion );
 
         assertEquals( "c", assertion.getAttributeDesc() );
-        assertEquals( "d", assertion.getAssertionValue().toString() );
+        assertEquals( "d", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
         assertEquals( 0, attributes.size() );
@@ -4051,7 +4051,7 @@
         assertNotNull( assertion );
 
         assertEquals( "a", assertion.getAttributeDesc() );
-        assertEquals( "b", assertion.getAssertionValue().toString() );
+        assertEquals( "b", assertion.getAssertionValue().get() );
 
         // (&(&(a=b)(c=d))...
         equalityMatch = ( AttributeValueAssertionFilter ) andFilters2.get( 1 );
@@ -4061,7 +4061,7 @@
         assertNotNull( assertion );
 
         assertEquals( "c", assertion.getAttributeDesc() );
-        assertEquals( "d", assertion.getAssertionValue().toString() );
+        assertEquals( "d", assertion.getAssertionValue().get() );
         
         // (&(&(a=b)(c=d))(&...
         andFilter2 = ( AndFilter ) andFilters.get( 1 );
@@ -4078,7 +4078,7 @@
         assertNotNull( assertion );
 
         assertEquals( "e", assertion.getAttributeDesc() );
-        assertEquals( "f", assertion.getAssertionValue().toString() );
+        assertEquals( "f", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
         assertEquals( 0, attributes.size() );
@@ -4215,7 +4215,7 @@
         assertNotNull( assertion );
 
         assertEquals( "e", assertion.getAttributeDesc() );
-        assertEquals( "f", assertion.getAssertionValue().toString() );
+        assertEquals( "f", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
         assertEquals( 0, attributes.size() );
@@ -4377,7 +4377,7 @@
         assertNotNull( assertion );
 
         assertEquals( "uid", assertion.getAttributeDesc() );
-        assertEquals( "buster ", assertion.getAssertionValue().toString() );
+        assertEquals( "buster ", assertion.getAssertionValue().get() );
 
         // (&(uid=buster)(sbAttribute=Buy))
         equalityMatch = ( AttributeValueAssertionFilter ) andFilters.get( 1 );
@@ -4387,7 +4387,7 @@
         assertNotNull( assertion );
 
         assertEquals( "sbAttribute", assertion.getAttributeDesc() );
-        assertEquals( "Buy ", assertion.getAssertionValue().toString() );
+        assertEquals( "Buy ", assertion.getAssertionValue().get() );
 
         Attributes attributes = sr.getAttributes();
         assertEquals( 0, attributes.size() );
@@ -4486,7 +4486,7 @@
         assertNotNull( assertion );
 
         assertEquals( "objectClass", assertion.getAttributeDesc() );
-        assertEquals( "person", assertion.getAssertionValue().toString() );
+        assertEquals( "person", assertion.getAssertionValue().get() );
 
         // (&(a=b)(|
         OrFilter orFilter = ( OrFilter ) andFilters.get( 1 );
@@ -4512,6 +4512,6 @@
         assertNotNull( assertion );
 
         assertEquals( "sn", assertion.getAttributeDesc() );
-        assertEquals( "Jagger", assertion.getAssertionValue().toString() );
+        assertEquals( "Jagger", assertion.getAssertionValue().get() );
     }
 }



Mime
View raw message