directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lécharny <elecha...@gmail.com>
Subject Re: svn commit: r1413771 - in /directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication: ReplicaEventMessage.java ReplicaEventMessageSerializer.java
Date Tue, 27 Nov 2012 08:28:52 GMT
Le 11/27/12 8:16 AM, Kiran Ayyagari a écrit :
> On Mon, Nov 26, 2012 at 11:58 PM, <elecharny@apache.org> wrote:
>
>> Author: elecharny
>> Date: Mon Nov 26 18:28:34 2012
>> New Revision: 1413771
>>
>> URL: http://svn.apache.org/viewvc?rev=1413771&view=rev
>> Log:
>> Improved the serialization
>>
>> Modified:
>>
>> directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/ReplicaEventMessage.java
>>
>> directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/ReplicaEventMessageSerializer.java
>>
>> Modified:
>> directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/ReplicaEventMessage.java
>> URL:
>> http://svn.apache.org/viewvc/directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/ReplicaEventMessage.java?rev=1413771&r1=1413770&r2=1413771&view=diff
>>
>> ==============================================================================
>> ---
>> directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/ReplicaEventMessage.java
>> (original)
>> +++
>> directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/ReplicaEventMessage.java
>> Mon Nov 26 18:28:34 2012
>> @@ -78,11 +78,11 @@ public class ReplicaEventMessage
>>       */
>>      public boolean isEventOlderThan( String csn ) throws Exception
>>      {
>> -       if( csn == null )
>> -       {
>> -               return false;
>> -       }
>> -
>> +        if ( csn == null )
>> +        {
>> +            return false;
>> +        }
>> +
>>          String entryCsn = entry.get( SchemaConstants.ENTRY_CSN_AT
>> ).getString();
>>
>>          int i = entryCsn.compareTo( csn );
>>
>> Modified:
>> directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/ReplicaEventMessageSerializer.java
>> URL:
>> http://svn.apache.org/viewvc/directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/ReplicaEventMessageSerializer.java?rev=1413771&r1=1413770&r2=1413771&view=diff
>>
>> ==============================================================================
>> ---
>> directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/ReplicaEventMessageSerializer.java
>> (original)
>> +++
>> directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/ReplicaEventMessageSerializer.java
>> Mon Nov 26 18:28:34 2012
>> @@ -29,9 +29,7 @@ import java.io.ObjectOutputStream;
>>
>>  import jdbm.helper.Serializer;
>>
>> -import
>> org.apache.directory.server.core.partition.impl.btree.jdbm.EntrySerializer;
>> -import org.apache.directory.shared.ldap.codec.api.LdapApiService;
>> -import org.apache.directory.shared.ldap.codec.api.LdapApiServiceFactory;
>> +import org.apache.directory.shared.ldap.model.entry.DefaultEntry;
>>  import org.apache.directory.shared.ldap.model.entry.Entry;
>>  import org.apache.directory.shared.ldap.model.message.controls.ChangeType;
>>  import org.apache.directory.shared.ldap.model.name.Dn;
>> @@ -39,11 +37,12 @@ import org.apache.directory.shared.ldap.
>>
>>
>>  /**
>> - * A Modification serializer/deserializer.
>> + * A ReplicaEventMessage serializer/deserializer.
>> + *
>>   * A modification is serialized following this format : <br/>
>>   * <ul>
>>   * <li>byte : EventType</li>
>> - * <li>int : entry's length in bytes</li>
>> + * <li>byte[] : the serialized DN</li>
>>   * <li>byte[] : the serialized entry</li>
>>   * </ul>
>>   *
>> @@ -54,12 +53,7 @@ public class ReplicaEventMessageSerializ
>>      /** The serialVersionUID */
>>      private static final long serialVersionUID = 1L;
>>
>> -    /** The internal entry serializer */
>> -    private transient EntrySerializer entrySerializer;
>> -
>> -    /** The LDAP codec used to serialize the entries */
>> -    private transient LdapApiService codec =
>> LdapApiServiceFactory.getSingleton();
>> -
>> +    /** The schemaManager */
>>      private transient SchemaManager schemaManager;
>>
>>
>> @@ -71,7 +65,6 @@ public class ReplicaEventMessageSerializ
>>      public ReplicaEventMessageSerializer( SchemaManager schemaManager )
>>      {
>>          this.schemaManager = schemaManager;
>> -        entrySerializer = new EntrySerializer( schemaManager );
>>      }
>>
>>
>> @@ -88,20 +81,14 @@ public class ReplicaEventMessageSerializ
>>          ByteArrayOutputStream baos = new ByteArrayOutputStream();
>>          ObjectOutput out = new ObjectOutputStream( baos );
>>
>> +        // The change type first
>> +        out.writeByte( changeType.getValue() );
>> +
>>          // The entry DN
>>          entry.getDn().writeExternal( out );
>>
>>          // The entry
>> -        byte[] data = entrySerializer.serialize( entry );
>> -
>>
> the reason we have the above code is that we store ClonedServerEntry
> instances [1] into the replica log
> instead of DefaultEntry objects, so we need to use the EntrySerializer.

You can still use the entry.writeExternal() method. A ClonedServerEntry
is just a plain Entry.


-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com 


Mime
View raw message