directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From elecha...@apache.org
Subject svn commit: r1748572 [18/23] - in /directory/apacheds/branches/apacheds-value: ./ benchmarks/installers-maven-plugin/ benchmarks/installers-maven-plugin/.settings/ benchmarks/installers-maven-plugin/target/ benchmarks/installers-maven-plugin/target/cla...
Date Wed, 15 Jun 2016 12:30:01 GMT
Modified: directory/apacheds/branches/apacheds-value/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/DnSerializer.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/DnSerializer.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/DnSerializer.java
(original)
+++ directory/apacheds/branches/apacheds-value/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/DnSerializer.java
Wed Jun 15 12:29:57 2016
@@ -30,6 +30,7 @@ import java.nio.ByteBuffer;
 import java.util.Comparator;
 
 import org.apache.directory.api.ldap.model.name.Dn;
+import org.apache.directory.api.ldap.model.schema.comparators.DnComparator;
 import org.apache.directory.mavibot.btree.serializer.AbstractElementSerializer;
 import org.apache.directory.mavibot.btree.serializer.BufferHandler;
 import org.apache.directory.server.i18n.I18n;
@@ -59,25 +60,12 @@ public class DnSerializer extends Abstra
 
     private static Comparator<Dn> comp = new Comparator<Dn>()
     {
+        DnComparator comparator = new DnComparator( null );
+        
         @Override
         public int compare( Dn dn1, Dn dn2 )
         {
-            if ( dn1 == null )
-            {
-                if ( dn2 == null )
-                {
-                    return 0;
-                }
-
-                return -1;
-            }
-
-            if ( dn2 == null )
-            {
-                return 1;
-            }
-
-            return dn1.getNormName().compareTo( dn2.getNormName() );
+            return comparator.compare( dn1,  dn2 );
         }
     };
 
@@ -133,6 +121,7 @@ public class DnSerializer extends Abstra
      *  @return An instance of a Dn object 
      *  @throws IOException if we can't deserialize the Dn
      */
+    @Override
     public Dn deserialize( ByteBuffer buffer ) throws IOException
     {
         return deserialize( new BufferHandler( buffer.array() ) );

Modified: directory/apacheds/branches/apacheds-value/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/LdifTupleComparator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/LdifTupleComparator.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/LdifTupleComparator.java
(original)
+++ directory/apacheds/branches/apacheds-value/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/LdifTupleComparator.java
Wed Jun 15 12:29:57 2016
@@ -22,6 +22,7 @@ package org.apache.directory.server.core
 import java.util.Comparator;
 
 import org.apache.directory.api.ldap.model.name.Dn;
+import org.apache.directory.api.ldap.model.schema.comparators.DnComparator;
 import org.apache.directory.mavibot.btree.Tuple;
 
 /**
@@ -31,6 +32,8 @@ import org.apache.directory.mavibot.btre
  */
 public class LdifTupleComparator implements Comparator<Tuple<Dn, String>>
 {
+    /** The DN comparator to use */
+    DnComparator comparator = new DnComparator( null );
 
     @Override
     public int compare( Tuple<Dn, String> t1, Tuple<Dn, String> t2 )
@@ -51,7 +54,6 @@ public class LdifTupleComparator impleme
             return 0;
         }
 
-        return dn1.getNormName().compareTo( dn2.getNormName() );
+        return comparator.compare( dn1,  dn2 );
     }
-
 }

Modified: directory/apacheds/branches/apacheds-value/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotPartition.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotPartition.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotPartition.java
(original)
+++ directory/apacheds/branches/apacheds-value/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotPartition.java
Wed Jun 15 12:29:57 2016
@@ -417,7 +417,7 @@ public class MavibotPartition extends Ab
 
                 if ( entryAttr != null )
                 {
-                    for ( Value<?> value : entryAttr )
+                    for ( Value value : entryAttr )
                     {
                         index.add( value.getValue(), id );
                     }

Modified: directory/apacheds/branches/apacheds-value/mavibot-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotStoreTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/mavibot-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotStoreTest.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/mavibot-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotStoreTest.java
(original)
+++ directory/apacheds/branches/apacheds-value/mavibot-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotStoreTest.java
Wed Jun 15 12:29:57 2016
@@ -28,7 +28,11 @@ import static org.junit.Assert.assertTru
 import static org.junit.Assert.fail;
 
 import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 
 import org.apache.directory.api.util.FileUtils;
@@ -64,6 +68,7 @@ import org.apache.directory.server.core.
 import org.apache.directory.server.core.api.MockDirectoryService;
 import org.apache.directory.server.core.api.interceptor.context.AddOperationContext;
 import org.apache.directory.server.core.api.interceptor.context.LookupOperationContext;
+import org.apache.directory.server.core.api.interceptor.context.ModDnAva;
 import org.apache.directory.server.core.shared.DefaultDnFactory;
 import org.apache.directory.server.xdbm.Index;
 import org.apache.directory.server.xdbm.IndexNotFoundException;
@@ -162,6 +167,8 @@ public class MavibotStoreTest
     @Before
     public void createStore() throws Exception
     {
+        StoreUtils.createdExtraAttributes( schemaManager );
+        
         // setup the working directory for the store
         wkdir = tmpDir.newFolder( getClass().getSimpleName() );
 
@@ -495,7 +502,6 @@ public class MavibotStoreTest
         assertEquals( Strings.getUUID( 1L ), store.getEntryId( dn ) );
         assertEquals( 11, store.count() );
         assertEquals( "o=Good Times Co.", store.getEntryDn( Strings.getUUID( 1L ) ).getName()
);
-        assertEquals( dn.getNormName(), store.getEntryDn( Strings.getUUID( 1L ) ).getNormName()
);
         assertEquals( dn.getName(), store.getEntryDn( Strings.getUUID( 1L ) ).getName() );
 
         // note that the suffix entry returns 0 for it's parent which does not exist
@@ -608,7 +614,7 @@ public class MavibotStoreTest
         AddOperationContext addContext = new AddOperationContext( null, entry );
         store.add( addContext );
 
-        Rdn rdn = new Rdn( "sn=James" );
+        Rdn rdn = new Rdn( schemaManager, "sn=James" );
 
         store.rename( dn, rdn, true, null );
 
@@ -635,7 +641,7 @@ public class MavibotStoreTest
         AddOperationContext addContext = new AddOperationContext( null, entry );
         store.add( addContext );
 
-        Rdn rdn = new Rdn( "sn=Ja\\+es" );
+        Rdn rdn = new Rdn( schemaManager, "sn=Ja\\+es" );
 
         store.rename( dn, rdn, true, null );
 
@@ -643,7 +649,7 @@ public class MavibotStoreTest
         String id = store.getEntryId( dn2 );
         assertNotNull( id );
         Entry entry2 = store.fetch( id, dn2 );
-        assertEquals( "ja+es", entry2.get( "sn" ).getString() );
+        assertEquals( "Ja+es", entry2.get( "sn" ).getString() );
     }
 
 
@@ -669,9 +675,17 @@ public class MavibotStoreTest
 
         Dn parentDn = new Dn( schemaManager, "ou=Sales,o=Good Times Co." );
 
-        Rdn rdn = new Rdn( "cn=Ryan" );
+        Rdn rdn = new Rdn( schemaManager, "cn=Ryan" );
 
-        store.moveAndRename( childDn, parentDn, rdn, childEntry, true );
+        // The cn=Ryan RDN that will be added. The cn=Private Ryan RDN will be removed
+        Map<String, List<ModDnAva>> modDnAvas = new HashMap<>();
+
+        List<ModDnAva> modAvas = new ArrayList<>();
+        modAvas.add( new ModDnAva( ModDnAva.ModDnType.ADD, rdn.getAva()) );
+        modAvas.add( new ModDnAva( ModDnAva.ModDnType.DELETE, childDn.getRdn().getAva())
);
+        modDnAvas.put( SchemaConstants.CN_AT_OID, modAvas );
+
+        store.moveAndRename( childDn, parentDn, rdn, modDnAvas, childEntry );
 
         // to drop the alias indices
         childDn = new Dn( schemaManager, "commonName=Jim Bean,ou=Apache,ou=Board of Directors,o=Good
Times Co." );
@@ -721,16 +735,16 @@ public class MavibotStoreTest
 
         Entry lookedup = store.fetch( store.getEntryId( dn ), dn );
 
-        assertEquals( "WAlkeR", lookedup.get( "sn" ).get().getString() ); // before replacing
+        assertEquals( "WAlkeR", lookedup.get( "sn" ).get().getValue() ); // before replacing
 
         lookedup = store.modify( dn, add );
-        assertEquals( attribVal, lookedup.get( "sn" ).get().getString() );
+        assertEquals( attribVal, lookedup.get( "sn" ).get().getValue() );
 
         // testing the store.modify( dn, mod, entry ) API
         Modification replace = new DefaultModification( ModificationOperation.REPLACE_ATTRIBUTE,
SN_AT, "JWalker" );
 
         lookedup = store.modify( dn, replace );
-        assertEquals( "JWalker", lookedup.get( "sn" ).get().getString() );
+        assertEquals( "JWalker", lookedup.get( "sn" ).get().getValue() );
         assertEquals( 1, lookedup.get( "sn" ).size() );
     }
 
@@ -789,7 +803,7 @@ public class MavibotStoreTest
         assertNull( lookedup.get( "ou" ) ); // before replacing
 
         lookedup = store.modify( dn, add );
-        assertEquals( attribVal, lookedup.get( "ou" ).get().getString() );
+        assertEquals( attribVal, lookedup.get( "ou" ).get().getValue() );
     }
 
 

Modified: directory/apacheds/branches/apacheds-value/pom.xml
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/pom.xml?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/pom.xml (original)
+++ directory/apacheds/branches/apacheds-value/pom.xml Wed Jun 15 12:29:57 2016
@@ -46,7 +46,7 @@
     <additionalparam>-Xdoclint:none</additionalparam>
 
     <!-- Set versions for depending projects -->
-    <org.apache.directory.api.version>1.0.0-M34-SNAPSHOT</org.apache.directory.api.version>
+    <org.apache.directory.api.version>2.0.0-M1-SNAPSHOT</org.apache.directory.api.version>
     <org.apache.directory.mavibot.version>1.0.0-M8</org.apache.directory.mavibot.version>
     <org.apache.directory.checkstyle-configuration.version>0.3</org.apache.directory.checkstyle-configuration.version>
     <org.apache.directory.junit.junit-addons.version>0.1</org.apache.directory.junit.junit-addons.version>
@@ -55,18 +55,17 @@
     
     <!-- Set versions for depending jars -->
     <ant.version>1.9.6</ant.version>
-    <bcprov.version>1.54</bcprov.version>
+    <bcprov.version>1.53</bcprov.version>
     <commons.cli.version>1.3.1</commons.cli.version>
     <commons.collections.version>3.2.2</commons.collections.version>
     <commons.daemon.version>1.0.15</commons.daemon.version>
-    <commons.io.version>2.4</commons.io.version>
     <commons.lang.version>2.6</commons.lang.version>
     <commons.net.version>3.4</commons.net.version>
     <commons.pool.version>1.6</commons.pool.version>
     <dnsjava.version>2.1.7</dnsjava.version>
     <ehcache.version>2.8.5</ehcache.version>
     <findbugs.annotations.version>1.0.0</findbugs.annotations.version>
-    <jetty.version>6.1.26</jetty.version>
+    <jetty.version>9.2.16.v20160414</jetty.version>
     <junit.version>4.12</junit.version>
     <ldapsdk.version>4.1</ldapsdk.version>
     <log4j.version>1.2.17</log4j.version>
@@ -138,7 +137,7 @@
     <module>kerberos-client</module>
     <module>service</module>
     <module>wrapper</module>
-    <module>installers-maven-plugin</module>
+    <!-- module>installers-maven-plugin</module -->
     <module>installers</module>
     <!--module>bulkloader</module-->
     <!--Uncomment to build OSGi-related bundles-->
@@ -1046,12 +1045,6 @@
       <!-- Commons dependencies -->
       
       <dependency>
-        <groupId>commons-io</groupId>
-        <artifactId>commons-io</artifactId>
-        <version>${commons.io.version}</version>
-      </dependency>
-
-      <dependency>
         <groupId>commons-collections</groupId>
         <artifactId>commons-collections</artifactId>
         <version>${commons.collections.version}</version>
@@ -1220,24 +1213,12 @@
       </dependency>
 
       <dependency>
-        <groupId>org.mortbay.jetty</groupId>
-        <artifactId>jetty</artifactId>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
         <version>${jetty.version}</version>
       </dependency>
     
       <dependency>
-        <groupId>org.mortbay.jetty</groupId>
-        <artifactId>servlet-api-2.5</artifactId>
-        <version>6.1.14</version>
-      </dependency>
-    
-      <dependency>
-        <groupId>org.mortbay.jetty</groupId>
-        <artifactId>jetty-util</artifactId>
-        <version>${jetty.version}</version>
-      </dependency>
-
-      <dependency>
         <groupId>findbugs</groupId>
         <artifactId>annotations</artifactId>
         <version>${findbugs.annotations.version}</version>

Modified: directory/apacheds/branches/apacheds-value/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/kdc/DirectoryPrincipalStore.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/kdc/DirectoryPrincipalStore.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/kdc/DirectoryPrincipalStore.java
(original)
+++ directory/apacheds/branches/apacheds-value/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/kdc/DirectoryPrincipalStore.java
Wed Jun 15 12:29:57 2016
@@ -98,7 +98,7 @@ public class DirectoryPrincipalStore imp
 
             CoreSession bySession = null;
 
-            boolean isAdmin = ebyPrincipalEntry.getDn().getNormName()
+            boolean isAdmin = ebyPrincipalEntry.getDn()
                 .equals( ServerDNConstants.ADMIN_SYSTEM_DN_NORMALIZED );
 
             if ( !isInitialTicket && !isAdmin )

Modified: directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/controls/PagedSearchContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/controls/PagedSearchContext.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/controls/PagedSearchContext.java
(original)
+++ directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/controls/PagedSearchContext.java
Wed Jun 15 12:29:57 2016
@@ -30,6 +30,7 @@ import org.apache.directory.api.ldap.mod
 import org.apache.directory.api.ldap.model.entry.Entry;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.message.SearchRequest;
+import org.apache.directory.api.ldap.model.name.Dn;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.ldap.model.schema.SchemaManager;
 import org.apache.directory.api.util.Strings;
@@ -236,9 +237,15 @@ public class PagedSearchContext
         // Compare the baseDN
         try
         {
-            request.getBase().apply( schemaManager );
+            if ( !request.getBase().isSchemaAware() )
+            {
+                request.setBase( new Dn( schemaManager, request.getBase() ) );
+            }
 
-            previousSearchRequest.getBase().apply( schemaManager );
+            if ( !previousSearchRequest.getBase().isSchemaAware() )
+            {
+                previousSearchRequest.setBase( new Dn( schemaManager, previousSearchRequest.getBase()
) );
+            }
 
             if ( !request.getBase().equals( previousSearchRequest.getBase() ) )
             {

Modified: directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/PwdModifyHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/PwdModifyHandler.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/PwdModifyHandler.java
(original)
+++ directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/PwdModifyHandler.java
Wed Jun 15 12:29:57 2016
@@ -108,14 +108,17 @@ public class PwdModifyHandler implements
             }
             
             Attribute at = userEntry.get( SchemaConstants.USER_PASSWORD_AT );
+            
             if ( ( oldPassword != null ) && ( at != null ) )
             {
-                for ( Value<?> v : at )
+                for ( Value value : at )
                 {
-                    boolean equal = PasswordUtil.compareCredentials( oldPassword, v.getBytes()
);
+                    byte[] bytes = value.getBytes();
+                    boolean equal = PasswordUtil.compareCredentials( oldPassword, bytes );
+                    
                     if ( equal )
                     {
-                        oldPassword = v.getBytes();
+                        oldPassword = bytes;
                     }
                 }
             }

Modified: directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/BindRequestHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/BindRequestHandler.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/BindRequestHandler.java
(original)
+++ directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/BindRequestHandler.java
Wed Jun 15 12:29:57 2016
@@ -112,6 +112,24 @@ public class BindRequestHandler extends
         BindOperationContext bindContext = new BindOperationContext( null );
 
         // Stores the Dn of the user to check, and its password
+        Dn bindDn = bindRequest.getDn();
+        
+        if ( bindDn == null )
+        {
+            String name = bindRequest.getName();
+            
+            try
+            {
+                bindDn = new Dn( directoryService.getSchemaManager(), name );
+                bindRequest.setDn( bindDn );
+            }
+            catch ( LdapInvalidDnException e )
+            {
+                // This might still be a valid DN (Windows AD binding for instance)
+                LOG.debug( "Unable to convert the name to a DN." );
+            }
+        }
+        
         bindContext.setDn( bindRequest.getDn() );
         bindContext.setCredentials( bindRequest.getCredentials() );
         bindContext.setIoSession( ldapSession.getIoSession() );

Modified: directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/ModifyDnRequestHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/ModifyDnRequestHandler.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/ModifyDnRequestHandler.java
(original)
+++ directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/ModifyDnRequestHandler.java
Wed Jun 15 12:29:57 2016
@@ -80,7 +80,7 @@ public class ModifyDnRequestHandler exte
 
             Dn oldRdn = new Dn( schemaManager, req.getName().getRdn().getName() );
 
-            boolean rdnChanged = req.getNewRdn() != null && !newRdn.getNormName().equals(
oldRdn.getNormName() );
+            boolean rdnChanged = req.getNewRdn() != null && !newRdn.equals( oldRdn
);
 
             CoreSession coreSession = session.getCoreSession();
 

Modified: directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/SearchRequestHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/SearchRequestHandler.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/SearchRequestHandler.java
(original)
+++ directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/SearchRequestHandler.java
Wed Jun 15 12:29:57 2016
@@ -116,7 +116,7 @@ public class SearchRequestHandler extend
         AttributeType objectClassAT = session.getCoreSession().getDirectoryService().getAtProvider().getObjectClass();
 
         EqualityNode<String> ocIsReferral = new EqualityNode<String>( objectClassAT,
-            new org.apache.directory.api.ldap.model.entry.StringValue( objectClassAT, SchemaConstants.REFERRAL_OC
) );
+            new Value( objectClassAT, SchemaConstants.REFERRAL_OC ) );
 
         return ocIsReferral;
     }
@@ -162,7 +162,7 @@ public class SearchRequestHandler extend
         // compose notification criteria and add the listener to the event
         // service using that notification criteria to determine which events
         // are to be delivered to the persistent search issuing client
-        NotificationCriteria criteria = new NotificationCriteria();
+        NotificationCriteria criteria = new NotificationCriteria( session.getCoreSession().getDirectoryService().getSchemaManager()
);
         criteria.setAliasDerefMode( req.getDerefAliases() );
         criteria.setBase( req.getBase() );
         criteria.setFilter( req.getFilter() );
@@ -886,9 +886,9 @@ public class SearchRequestHandler extend
             respRef = new SearchResultReferenceImpl( req.getMessageId() );
             respRef.setReferral( new ReferralImpl() );
 
-            for ( Value<?> val : ref )
+            for ( Value val : ref )
             {
-                String url = val.getString();
+                String url = val.getValue();
 
                 if ( !url.startsWith( "ldap" ) )
                 {
@@ -1225,7 +1225,10 @@ public class SearchRequestHandler extend
         ReferralManager referralManager = directoryService.getReferralManager();
         Dn reqTargetDn = req.getBase();
 
-        reqTargetDn.apply( directoryService.getSchemaManager() );
+        if ( !reqTargetDn.isSchemaAware() )
+        {
+            reqTargetDn = new Dn( directoryService.getSchemaManager(), reqTargetDn );
+        }
 
         // Check if the entry itself is a referral
         referralManager.lockRead();
@@ -1386,9 +1389,9 @@ public class SearchRequestHandler extend
 
         Attribute refAttr = ( ( ClonedServerEntry ) entry ).getOriginalEntry().get( SchemaConstants.REF_AT
);
 
-        for ( Value<?> refval : refAttr )
+        for ( Value refval : refAttr )
         {
-            String refstr = refval.getString();
+            String refstr = refval.getValue();
 
             // need to add non-ldap URLs as-is
             if ( !refstr.startsWith( "ldap" ) )
@@ -1446,16 +1449,14 @@ public class SearchRequestHandler extend
     private boolean isSubSchemaSubEntrySearch( LdapSession session, SearchRequest req ) throws
Exception
     {
         Dn base = req.getBase();
-        String baseNormForm = ( base.isSchemaAware() ? base.getNormName() : base.getNormName()
);
 
         DirectoryService ds = session.getCoreSession().getDirectoryService();
         PartitionNexus nexus = ds.getPartitionNexus();
 
-        Value<?> subschemaSubentry = nexus.getRootDseValue( ds.getAtProvider().getSubschemaSubentry()
);
-        Dn subschemaSubentryDn = ds.getDnFactory().create( subschemaSubentry.getString()
);
-        String subschemaSubentryDnNorm = subschemaSubentryDn.getNormName();
+        Value subschemaSubentry = nexus.getRootDseValue( ds.getAtProvider().getSubschemaSubentry()
);
+        Dn subschemaSubentryDn = ds.getDnFactory().create( subschemaSubentry.getValue() );
 
-        return subschemaSubentryDnNorm.equals( baseNormForm );
+        return subschemaSubentryDn.equals( base );
     }
 
 
@@ -1478,9 +1479,9 @@ public class SearchRequestHandler extend
         Attribute refAttr = ( ( ClonedServerEntry ) referralAncestor ).getOriginalEntry().get(
SchemaConstants.REF_AT );
         Referral referral = new ReferralImpl();
 
-        for ( Value<?> value : refAttr )
+        for ( Value value : refAttr )
         {
-            String ref = value.getString();
+            String ref = value.getValue();
 
             if ( IS_DEBUG )
             {
@@ -1511,7 +1512,7 @@ public class SearchRequestHandler extend
             Dn urlDn = new Dn( session.getCoreSession().getDirectoryService()
                 .getSchemaManager(), ldapUrl.getDn().getName() );
 
-            if ( urlDn.getNormName().equals( req.getBase().getNormName() ) )
+            if ( urlDn.equals( req.getBase() ) )
             {
                 ldapUrl.setForceScopeRendering( true );
                 ldapUrl.setAttributes( req.getAttributes() );
@@ -1558,9 +1559,9 @@ public class SearchRequestHandler extend
         Attribute refAttr = ( ( ClonedServerEntry ) referralAncestor ).getOriginalEntry().get(
SchemaConstants.REF_AT );
         Referral referral = new ReferralImpl();
 
-        for ( Value<?> value : refAttr )
+        for ( Value value : refAttr )
         {
-            String ref = value.getString();
+            String ref = value.getValue();
 
             if ( IS_DEBUG )
             {
@@ -1590,7 +1591,7 @@ public class SearchRequestHandler extend
             Dn urlDn = new Dn( session.getCoreSession().getDirectoryService()
                 .getSchemaManager(), ldapUrl.getDn().getName() );
 
-            if ( urlDn.getNormName().equals( referralAncestor.getDn().getNormName() ) )
+            if ( urlDn.equals( referralAncestor.getDn() ) )
             {
                 // according to the protocol there is no need for the dn since it is the
same as this request
                 StringBuilder buf = new StringBuilder();

Modified: directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/sasl/ntlm/NtlmSaslServer.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/sasl/ntlm/NtlmSaslServer.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/sasl/ntlm/NtlmSaslServer.java
(original)
+++ directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/sasl/ntlm/NtlmSaslServer.java
Wed Jun 15 12:29:57 2016
@@ -167,7 +167,12 @@ public class NtlmSaslServer extends Abst
                 {
                     result = provider.authenticate( getLdapSession().getIoSession(), response
);
                     Dn dn = getBindRequest().getDn();
-                    dn.apply( getLdapSession().getLdapServer().getDirectoryService().getSchemaManager()
);
+                    
+                    if ( !dn.isSchemaAware() )
+                    {
+                        dn = new Dn( getLdapSession().getLdapServer().getDirectoryService().getSchemaManager(),
dn );
+                    }
+                    
                     LdapPrincipal ldapPrincipal = new LdapPrincipal( getAdminSession().getDirectoryService()
                         .getSchemaManager(),
                         dn, AuthenticationLevel.STRONG );

Modified: directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/sasl/plain/PlainSaslServer.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/sasl/plain/PlainSaslServer.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/sasl/plain/PlainSaslServer.java
(original)
+++ directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/sasl/plain/PlainSaslServer.java
Wed Jun 15 12:29:57 2016
@@ -28,7 +28,7 @@ import javax.security.sasl.SaslException
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
 import org.apache.directory.api.ldap.model.constants.SupportedSaslMechanisms;
 import org.apache.directory.api.ldap.model.entry.Entry;
-import org.apache.directory.api.ldap.model.entry.StringValue;
+import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapAuthenticationException;
 import org.apache.directory.api.ldap.model.filter.EqualityNode;
 import org.apache.directory.api.ldap.model.message.BindRequest;
@@ -56,7 +56,7 @@ import org.apache.directory.server.ldap.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class PlainSaslServer extends AbstractSaslServer
+public final class PlainSaslServer extends AbstractSaslServer
 {
     /** The authzid property stored into the LdapSession instance */
     public static final String SASL_PLAIN_AUTHZID = "authzid";
@@ -90,7 +90,6 @@ public class PlainSaslServer extends Abs
     /** The current negotiation state */
     private NegotiationState state;
 
-
     /**
      * 
      * Creates a new instance of PlainSaslServer.
@@ -179,7 +178,7 @@ public class PlainSaslServer extends Abs
                             {
                                 case AUTHZID_EXPECTED:
                                     element = InitialResponse.AUTHCID_EXPECTED;
-                                    authzId = PrepareString.normalize( value, PrepareString.StringType.CASE_EXACT_IA5
);
+                                    authzId = PrepareString.normalize( value );
                                     end++;
                                     start = end;
                                     break;
@@ -187,7 +186,7 @@ public class PlainSaslServer extends Abs
                                 case AUTHCID_EXPECTED:
                                     element = InitialResponse.PASSWORD_EXPECTED;
                                     authcId = PrepareString
-                                        .normalize( value, PrepareString.StringType.DIRECTORY_STRING
);
+                                        .normalize( value );
                                     end++;
                                     start = end;
                                     break;
@@ -212,7 +211,7 @@ public class PlainSaslServer extends Abs
                 start++;
                 String value = Strings.utf8ToString( initialResponse, start, end - start
+ 1 );
 
-                password = PrepareString.normalize( value, PrepareString.StringType.CASE_EXACT_IA5
);
+                password = PrepareString.normalize( value );
 
                 if ( ( authcId == null ) || ( password == null ) )
                 {
@@ -264,7 +263,7 @@ public class PlainSaslServer extends Abs
 
         // first, we have to find the entries which has the uid value
         EqualityNode<String> filter = new EqualityNode<String>(
-            directoryService.getSchemaManager().getAttributeType( SchemaConstants.UID_AT
), new StringValue( user ) );
+            directoryService.getSchemaManager().getAttributeType( SchemaConstants.UID_AT
), new Value( user ) );
 
         SearchOperationContext searchContext = new SearchOperationContext( directoryService.getAdminSession()
);
         searchContext.setDn( directoryService.getDnFactory().create( ldapServer.getSearchBaseDn()
) );

Modified: directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/ReplicationConsumerImpl.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/ReplicationConsumerImpl.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/ReplicationConsumerImpl.java
(original)
+++ directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/ReplicationConsumerImpl.java
Wed Jun 15 12:29:57 2016
@@ -47,6 +47,7 @@ import org.apache.directory.api.ldap.mod
 import org.apache.directory.api.ldap.model.entry.Entry;
 import org.apache.directory.api.ldap.model.entry.Modification;
 import org.apache.directory.api.ldap.model.entry.ModificationOperation;
+import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.exception.LdapNoSuchObjectException;
 import org.apache.directory.api.ldap.model.filter.AndNode;
@@ -1070,7 +1071,7 @@ public class ReplicationConsumerImpl imp
             Rdn remoteRdn = directoryService.getDnFactory().create( remoteDn.getRdn().getName()
).getRdn();
 
             // Check if the OldRdn has been deleted
-            boolean deleteOldRdn = !remoteEntry.contains( localRdn.getNormType(), localRdn.getNormValue()
);
+            boolean deleteOldRdn = !remoteEntry.contains( localRdn.getNormType(), localRdn.getValue()
);
 
             if ( localRdn.equals( remoteRdn ) )
             {
@@ -1296,8 +1297,7 @@ public class ReplicationConsumerImpl imp
         {
             String uuid = Strings.uuidToString( limitedUuidList.get( 0 ) );
 
-            filter = new EqualityNode<String>( SchemaConstants.ENTRY_UUID_AT,
-                new org.apache.directory.api.ldap.model.entry.StringValue( uuid ) );
+            filter = new EqualityNode<String>( SchemaConstants.ENTRY_UUID_AT, new Value(
uuid ).getValue() );
             if ( isRefreshPresent )
             {
                 filter = new NotNode( filter );
@@ -1317,8 +1317,7 @@ public class ReplicationConsumerImpl imp
             for ( int i = 0; i < size; i++ )
             {
                 String uuid = Strings.uuidToString( limitedUuidList.get( i ) );
-                ExprNode uuidEqNode = new EqualityNode<String>( SchemaConstants.ENTRY_UUID_AT,
-                    new org.apache.directory.api.ldap.model.entry.StringValue( uuid ) );
+                ExprNode uuidEqNode = new EqualityNode<String>( SchemaConstants.ENTRY_UUID_AT,
new Value( uuid ) .getValue() );
 
                 if ( isRefreshPresent )
                 {

Modified: directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/ReplConsumerManager.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/ReplConsumerManager.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/ReplConsumerManager.java
(original)
+++ directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/ReplConsumerManager.java
Wed Jun 15 12:29:57 2016
@@ -35,7 +35,7 @@ import org.apache.directory.api.ldap.mod
 import org.apache.directory.api.ldap.model.entry.Entry;
 import org.apache.directory.api.ldap.model.entry.Modification;
 import org.apache.directory.api.ldap.model.entry.ModificationOperation;
-import org.apache.directory.api.ldap.model.entry.StringValue;
+import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapEntryAlreadyExistsException;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.filter.EqualityNode;
@@ -263,8 +263,8 @@ public class ReplConsumerManager
         List<ReplicaEventLog> replicas = new ArrayList<ReplicaEventLog>();
 
         // Search for all the consumers
-        ExprNode filter = new EqualityNode<String>( directoryService.getAtProvider().getObjectClass(),
new StringValue(
-            SchemaConstants.ADS_REPL_EVENT_LOG ) );
+        ExprNode filter = new EqualityNode<String>( directoryService.getAtProvider().getObjectClass(),

+            new Value( directoryService.getAtProvider().getObjectClass(), SchemaConstants.ADS_REPL_EVENT_LOG
) );
         SearchRequest searchRequest = new SearchRequestImpl();
         searchRequest.setBase( replConsumerDn );
         searchRequest.setScope( SearchScope.ONELEVEL );
@@ -296,7 +296,7 @@ public class ReplConsumerManager
         String id = entry.get( SchemaConstants.ADS_DS_REPLICA_ID ).getString();
         ReplicaEventLog replica = new ReplicaEventLog( directoryService, Integer.parseInt(
id ) );
 
-        NotificationCriteria searchCriteria = new NotificationCriteria();
+        NotificationCriteria searchCriteria = new NotificationCriteria( schemaManager );
 
         String aliasMode = entry.get( SchemaConstants.ADS_REPL_ALIAS_DEREF_MODE ).getString();
         searchCriteria.setAliasDerefMode( AliasDerefMode.getDerefMode( aliasMode ) );

Modified: directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/ReplicaEventLog.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/ReplicaEventLog.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/ReplicaEventLog.java
(original)
+++ directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/ReplicaEventLog.java
Wed Jun 15 12:29:57 2016
@@ -130,7 +130,7 @@ public class ReplicaEventLog implements
         PROVIDER_LOG.debug( "Creating the replication queue for replica {}", replicaId );
         SchemaManager schemaManager = directoryService.getSchemaManager();
         this.replicaId = replicaId;
-        this.searchCriteria = new NotificationCriteria();
+        this.searchCriteria = new NotificationCriteria( schemaManager );
         this.searchCriteria.setEventMask( EventType.ALL_EVENT_TYPES_MASK );
 
         // Create the journal file, or open if already exists

Modified: directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplRequestHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplRequestHandler.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplRequestHandler.java
(original)
+++ directory/apacheds/branches/apacheds-value/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplRequestHandler.java
Wed Jun 15 12:29:57 2016
@@ -54,7 +54,6 @@ import org.apache.directory.api.ldap.mod
 import org.apache.directory.api.ldap.model.entry.Attribute;
 import org.apache.directory.api.ldap.model.entry.Entry;
 import org.apache.directory.api.ldap.model.entry.Modification;
-import org.apache.directory.api.ldap.model.entry.StringValue;
 import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueException;
@@ -114,7 +113,6 @@ import org.slf4j.LoggerFactory;
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-@SuppressWarnings("unchecked")
 public class SyncReplRequestHandler implements ReplicationRequestHandler
 {
     /** A logger for the replication provider */
@@ -216,7 +214,7 @@ public class SyncReplRequestHandler impl
             registerPersistentSearches();
 
             cledListener = new ConsumerLogEntryChangeListener();
-            NotificationCriteria criteria = new NotificationCriteria();
+            NotificationCriteria criteria = new NotificationCriteria( dirService.getSchemaManager()
);
             criteria.setBase( new Dn( dirService.getSchemaManager(), ServerDNConstants.REPL_CONSUMER_DN_STR
) );
             criteria.setEventMask( EventType.DELETE );
 
@@ -532,7 +530,7 @@ public class SyncReplRequestHandler impl
         ReplicaEventLog replicaLog = createReplicaEventLog( hostName, originalFilter );
 
         replicaLog.setRefreshNPersist( refreshNPersist );
-        StringValue contexCsnValue = new StringValue( contextCsn );
+        Value contexCsnValue = new Value( dirService.getAtProvider().getEntryCSN(), contextCsn
);
 
         // modify the filter to include the context Csn
         GreaterEqNode csnGeNode = new GreaterEqNode( csnAT, contexCsnValue );
@@ -551,7 +549,7 @@ public class SyncReplRequestHandler impl
         // compose notification criteria and add the listener to the event
         // service using that notification criteria to determine which events
         // are to be delivered to the persistent search issuing client
-        NotificationCriteria criteria = new NotificationCriteria();
+        NotificationCriteria criteria = new NotificationCriteria( dirService.getSchemaManager()
);
         criteria.setAliasDerefMode( request.getDerefAliases() );
         criteria.setBase( request.getBase() );
         criteria.setFilter( request.getFilter() );
@@ -800,9 +798,9 @@ public class SyncReplRequestHandler impl
             respRef = new SearchResultReferenceImpl( req.getMessageId() );
             respRef.setReferral( new ReferralImpl() );
 
-            for ( Value<?> val : ref )
+            for ( Value val : ref )
             {
-                String url = val.getString();
+                String url = val.getValue();
 
                 if ( !url.startsWith( "ldap" ) )
                 {
@@ -983,8 +981,8 @@ public class SyncReplRequestHandler impl
 
     private EqualityNode<String> newIsReferralEqualityNode( LdapSession session ) throws
Exception
     {
-        EqualityNode<String> ocIsReferral = new EqualityNode<String>( SchemaConstants.OBJECT_CLASS_AT,
new StringValue(
-            objectClassAT, SchemaConstants.REFERRAL_OC ) );
+        EqualityNode<String> ocIsReferral = new EqualityNode<String>( SchemaConstants.OBJECT_CLASS_AT,

+            new Value( objectClassAT, SchemaConstants.REFERRAL_OC ).getValue() );
 
         return ocIsReferral;
     }
@@ -1206,7 +1204,7 @@ public class SyncReplRequestHandler impl
         private ReplicaEventLog getEventLog( OperationContext opCtx )
         {
             Dn consumerLogDn = opCtx.getDn();
-            String name = ReplicaEventLog.REPLICA_EVENT_LOG_NAME_PREFIX + consumerLogDn.getRdn().getNormValue();
+            String name = ReplicaEventLog.REPLICA_EVENT_LOG_NAME_PREFIX + consumerLogDn.getRdn().getValue();
 
             for ( ReplicaEventLog log : replicaLogMap.values() )
             {

Modified: directory/apacheds/branches/apacheds-value/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/kerberos/StoreUtils.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-value/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/kerberos/StoreUtils.java?rev=1748572&r1=1748571&r2=1748572&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-value/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/kerberos/StoreUtils.java
(original)
+++ directory/apacheds/branches/apacheds-value/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/kerberos/StoreUtils.java
Wed Jun 15 12:29:57 2016
@@ -26,7 +26,6 @@ import org.apache.directory.api.ldap.mod
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
 import org.apache.directory.api.ldap.model.cursor.Cursor;
 import org.apache.directory.api.ldap.model.entry.Entry;
-import org.apache.directory.api.ldap.model.entry.StringValue;
 import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.filter.EqualityNode;
 import org.apache.directory.api.ldap.model.filter.ExprNode;
@@ -116,7 +115,7 @@ public final class StoreUtils
     private static ExprNode getFilter( SchemaManager schemaManager, String principal ) throws
Exception
     {
         AttributeType type = schemaManager.lookupAttributeTypeRegistry( KerberosAttribute.KRB5_PRINCIPAL_NAME_AT
);
-        Value<String> value = new StringValue( type, principal );
+        Value value = new Value( type, principal );
 
         return new EqualityNode<String>( type, value );
     }




Mime
View raw message