Package org.apache.directory.server.ldap.replication

Examples of org.apache.directory.server.ldap.replication.ReplicaEventMessage


                        ReplicaJournalCursor cursor = log.getCursor( null ); // pass no CSN
                        cursor.skipQualifyingWhileFetching();

                        while ( cursor.next() )
                        {
                            ReplicaEventMessage message = cursor.get();
                            String csnVal = message.getEntry().get( SchemaConstants.ENTRY_CSN_AT ).getString();

                            // skip if we reach the lastSentCsn or got past it
                            if ( csnVal.compareTo( lastSentCsn ) >= 0 )
                            {
                                break;
View Full Code Here


        PROVIDER_LOG.debug( "Processing the log for replica {}", clientMsgLog.getId() );

        while ( cursor.next() )
        {
            ReplicaEventMessage replicaEventMessage = cursor.get();
            Entry entry = replicaEventMessage.getEntry();
            LOG.debug( "Read message from the queue {}", entry );
            PROVIDER_LOG.debug( "Read message from the queue {}", entry );

            lastSentCsn = entry.get( SchemaConstants.ENTRY_CSN_AT ).getString();

            ChangeType event = replicaEventMessage.getChangeType();

            // if event type is null, then it is a MODDN operation
            if ( event == ChangeType.MODDN )
            {
                sendSearchResultEntry( session, req, entry, SyncStateTypeEnum.MODIFY );
View Full Code Here

        try
        {
            //System.out.println( "ADD Listener : log " + entry.getDn() );
            // we log it first
            consumerMsgLog.log( new ReplicaEventMessage( ChangeType.ADD, ( ( ClonedServerEntry ) entry )
                .getClonedEntry() ) );

            // We send the added entry directly to the consumer if it's connected
            if ( pushInRealTime )
            {
View Full Code Here

    private void sendDeletedEntry( Entry entry )
    {
        try
        {
            //System.out.println( "DELETE Listener : log " + entry.getDn() );
            consumerMsgLog.log( new ReplicaEventMessage( ChangeType.DELETE, entry ) );

            if ( pushInRealTime )
            {
                SearchResultEntry resultEntry = new SearchResultEntryImpl( searchRequest.getMessageId() );
                resultEntry.setObjectName( entry.getDn() );
View Full Code Here

        Entry alteredEntry = modifyContext.getAlteredEntry();

        try
        {
            //System.out.println( "MODIFY Listener : log " + alteredEntry.getDn() );
            consumerMsgLog.log( new ReplicaEventMessage( ChangeType.MODIFY, alteredEntry ) );

            if ( pushInRealTime )
            {

                SearchResultEntry resultEntry = new SearchResultEntryImpl( searchRequest.getMessageId() );
View Full Code Here

                sendDeletedEntry( entry );
                return;
            }

            //System.out.println( "MOVE Listener : log " + moveContext.getDn() + " moved to " + moveContext.getNewSuperior() );
            consumerMsgLog.log( new ReplicaEventMessage( ChangeType.MODDN, entry ) );

            if ( pushInRealTime )
            {
                SearchResultEntry resultEntry = new SearchResultEntryImpl( searchRequest.getMessageId() );
                resultEntry.setObjectName( moveContext.getDn() );
View Full Code Here

            // should always send the modified entry cause the consumer perform the modDn operation locally
            Entry entry = moveAndRenameContext.getModifiedEntry();

            //System.out.println( "MOVE AND RENAME Listener : log " + moveAndRenameContext.getDn() +
            //    " moved to " + moveAndRenameContext.getNewSuperiorDn() + " renamed to " + moveAndRenameContext.getNewRdn() );
            consumerMsgLog.log( new ReplicaEventMessage( ChangeType.MODDN, entry ) );

            if ( pushInRealTime )
            {
                SearchResultEntry resultEntry = new SearchResultEntryImpl( searchRequest.getMessageId() );
                resultEntry.setObjectName( entry.getDn() );
View Full Code Here

        try
        {
            // should always send the original entry cause the consumer perform the modDn operation there
            //System.out.println( "RENAME Listener : log " + renameContext.getDn() + " renamed to " + renameContext.getNewRdn() );
            consumerMsgLog.log( new ReplicaEventMessage( ChangeType.MODDN, entry ) );

            if ( pushInRealTime )
            {
                SearchResultEntry resultEntry = new SearchResultEntryImpl( searchRequest.getMessageId() );
                resultEntry.setObjectName( entry.getDn() );
View Full Code Here

                "ObjectClass: organizationalUnit",
                "ou", "test" + i,
                "entryCsn", entryCsn.toString()
                );

            ReplicaEventMessage replicaEventMessage = new ReplicaEventMessage( ChangeType.ADD, entry );
            journal.put( entryCsn.toString(), replicaEventMessage );
            journal.sync();

            entryCsn = csnFactory.newInstance();
        }

        // Now check that the ReplicaEventMessages has been written
        ReplicaEventMessage firstMessage = journal.get( firstCsn.toString() );

        assertEquals( ChangeType.ADD, firstMessage.getChangeType() );
        assertEquals( "test0", firstMessage.getEntry().get( "ou" ).getString() );

        // Read entry from the 100th element
        Cursor<Tuple<String, ReplicaEventMessage>> cursor = journal.cursor( csn100.toString() );
        int pos = 100;

        while ( cursor.next() )
        {
            Tuple<String, ReplicaEventMessage> tuple = cursor.get();
            ReplicaEventMessage replicaEventMessage = tuple.getValue();

            assertEquals( ChangeType.ADD, replicaEventMessage.getChangeType() );
            assertEquals( "test" + pos, replicaEventMessage.getEntry().get( "ou" ).getString() );

            pos++;
        }

        cursor.close();
View Full Code Here

                "ObjectClass: organizationalUnit",
                "ou", "test" + i,
                "entryCsn", entryCsn.toString()
                );

            ReplicaEventMessage replicaEventMessage = new ReplicaEventMessage( ChangeType.ADD, entry );
            journal.put( entryCsn.toString(), replicaEventMessage );
            journal.sync();

            entryCsn = csnFactory.newInstance();
        }

        // Remove the first 500 ReplicaEventMessages
        Cursor<Tuple<String, ReplicaEventMessage>> deleteCursor = journal.cursor();
        int deleted = 0;

        while ( deleteCursor.next() && ( deleted < 500 ) )
        {
            Tuple<String, ReplicaEventMessage> tuple = deleteCursor.get();
            ReplicaEventMessage replicaEventMessage = tuple.getValue();

            assertEquals( ChangeType.ADD, replicaEventMessage.getChangeType() );
            assertEquals( "test" + deleted, replicaEventMessage.getEntry().get( "ou" ).getString() );

            journal.remove( replicaEventMessage.getEntry().get( "entryCsn" ).getString() );
            journal.sync();
            deleted++;
        }

        deleteCursor.close();

        // Now check that the first mod is the 501th
        assertEquals( 500, journal.count() );

        Cursor<Tuple<String, ReplicaEventMessage>> cursor = journal.cursor();

        cursor.next();

        Tuple<String, ReplicaEventMessage> tuple = cursor.get();
        ReplicaEventMessage replicaEventMessage = tuple.getValue();
        assertEquals( ChangeType.ADD, replicaEventMessage.getChangeType() );
        assertEquals( "test500", replicaEventMessage.getEntry().get( "ou" ).getString() );

        cursor.close();
    }
View Full Code Here

TOP

Related Classes of org.apache.directory.server.ldap.replication.ReplicaEventMessage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.