/** * Unregisters a completed search request. * * @param searchRequest the searchRequest to unregister */ public void unregisterSearchRequest( SearchRequest searchRequest ) { searchRequests.remove( searchRequest.getMessageId() ); }
/** * @see Object#toString() */ public String toString() { long elapsed = System.currentTimeMillis() - initialTime; return "SRContainer : <" + searchRequest.getMessageId() + ", nbSent : " + count + ", elapsed : " + elapsed + ">"; } }
/** * Creates a new instance of this class, storing the SearchRequest into it. * * @param searchRequest The SearchRequest */ public PagedSearchContext( SearchRequest searchRequest ) { previousSearchRequest = searchRequest; currentPosition = 0; // We compute a key for this cookie. It combines the search request // and some time seed, in order to avoid possible collisions, as // a user may send more than one PagedSearch on the same session. cookieValue = new AtomicInteger( searchRequest.getMessageId() << 16 ); cookie = BerValue.getBytes( cookieValue.get() ); }
/** * Registers a new searchRequest * * @param searchRequest a new searchRequest * @param cursor The cursor to register */ public void registerSearchRequest( SearchRequest searchRequest, Cursor<Entry> cursor ) { try { outstandingLock.lock(); SearchRequestContainer searchRequestContainer = new SearchRequestContainer( searchRequest, cursor ); searchRequests.put( searchRequest.getMessageId(), searchRequestContainer ); } finally { outstandingLock.unlock(); } }
req.getMessageId() ); break; PROVIDER_LOG.debug( "Request terminated by an AbandonRequest for message {}", req.getMessageId() ); break;
/** * A helper method, as the delete opertaionis used by the ModDN operations. */ 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() ); resultEntry.setEntry( entry ); SyncStateValue syncDelete = createControl( session.getCoreSession().getDirectoryService(), SyncStateTypeEnum.DELETE, entry ); sendResult( resultEntry, entry, EventType.DELETE, syncDelete ); } } catch ( LdapInvalidAttributeValueException e ) { // shouldn't happen LOG.error( e.getMessage(), e ); } }
SearchResultEntry resultEntry = new SearchResultEntryImpl( searchRequest.getMessageId() ); resultEntry.setObjectName( modifyContext.getDn() ); resultEntry.setEntry( alteredEntry );
LOG.error( I18n.err( I18n.ERR_05114_ERROR_MESSAGE, msg, ine.getMessage() ) ); SearchResultDoneImpl response = new SearchResultDoneImpl( searchRequest.getMessageId() ); throw new ResponseCarryingException( msg, response, ResultCodeEnum.INVALID_DN_SYNTAX, Dn.EMPTY_DN, ine );
LOG.error( I18n.err( I18n.ERR_05114_ERROR_MESSAGE, msg, ine.getMessage() ) ); SearchResultDoneImpl response = new SearchResultDoneImpl( searchRequest.getMessageId() ); throw new ResponseCarryingException( msg, response, ResultCodeEnum.INVALID_DN_SYNTAX, Dn.EMPTY_DN, ine );
public void entryMoved( MoveOperationContext moveContext ) { if ( !psearchControl.isNotificationEnabled( ChangeType.MODDN ) ) { return; } SearchResultEntry respEntry = new SearchResultEntryImpl( req.getMessageId() ); respEntry.setObjectName( moveContext.getNewDn() ); Entry entry = new ClonedServerEntry( moveContext.getModifiedEntry() ); filterEntry( entry ); respEntry.setEntry( entry ); setECResponseControl( respEntry, moveContext, ChangeType.MODDN ); session.getIoSession().write( respEntry ); }
public void entryDeleted( DeleteOperationContext deleteContext ) { if ( !psearchControl.isNotificationEnabled( ChangeType.DELETE ) ) { return; } SearchResultEntry respEntry = new SearchResultEntryImpl( req.getMessageId() ); respEntry.setObjectName( deleteContext.getDn() ); filterEntry( deleteContext.getEntry() ); respEntry.setEntry( deleteContext.getEntry() ); setECResponseControl( respEntry, deleteContext, ChangeType.DELETE ); session.getIoSession().write( respEntry ); }
LOG.error( I18n.err( I18n.ERR_05114_ERROR_MESSAGE, msg, ine.getMessage() ) ); SearchResultDoneImpl response = new SearchResultDoneImpl( searchRequest.getMessageId() ); throw new ResponseCarryingException( msg, response, ResultCodeEnum.INVALID_DN_SYNTAX, Dn.EMPTY_DN, ine );
public void entryModified( ModifyOperationContext modifyContext ) { if ( !psearchControl.isNotificationEnabled( ChangeType.MODIFY ) ) { return; } SearchResultEntry respEntry = new SearchResultEntryImpl( req.getMessageId() ); respEntry.setObjectName( modifyContext.getDn() ); Entry entry = new ClonedServerEntry( modifyContext.getAlteredEntry() ); filterEntry( entry ); respEntry.setEntry( entry ); setECResponseControl( respEntry, modifyContext, ChangeType.MODIFY ); session.getIoSession().write( respEntry ); }
SearchResultEntry resultEntry = new SearchResultEntryImpl( searchRequest.getMessageId() ); resultEntry.setObjectName( entry.getDn() ); resultEntry.setEntry( entry );
public void entryRenamed( RenameOperationContext renameContext ) { if ( !psearchControl.isNotificationEnabled( ChangeType.MODDN ) ) { return; } SearchResultEntry respEntry = new SearchResultEntryImpl( req.getMessageId() ); respEntry.setObjectName( renameContext.getModifiedEntry().getDn() ); Entry entry = new ClonedServerEntry( renameContext.getModifiedEntry() ); filterEntry( entry ); respEntry.setEntry( entry ); setECResponseControl( respEntry, renameContext, ChangeType.MODDN ); session.getIoSession().write( respEntry ); }
public void entryAdded( AddOperationContext addContext ) { if ( !psearchControl.isNotificationEnabled( ChangeType.ADD ) ) { return; } SearchResultEntry respEntry = new SearchResultEntryImpl( req.getMessageId() ); respEntry.setObjectName( addContext.getDn() ); // the entry needs to be cloned cause addContext.getEntry() will only contain // the user provided values and all the operational attributes added during // Partition.add() will be applied in the cloned entry present inside it // if we don't clone then the attributes will not be filtered // e.x the operational attributes will also be sent even when a user requests // user attributes only Entry entry = new ClonedServerEntry( addContext.getEntry() ); filterEntry( entry ); respEntry.setEntry( entry ); setECResponseControl( respEntry, addContext, ChangeType.ADD ); session.getIoSession().write( respEntry ); }
SearchResultEntry resultEntry = new SearchResultEntryImpl( searchRequest.getMessageId() ); resultEntry.setObjectName( entry.getDn() ); resultEntry.setEntry( entry );
SearchResultEntry resultEntry = new SearchResultEntryImpl( searchRequest.getMessageId() ); resultEntry.setObjectName( moveContext.getDn() ); resultEntry.setEntry( entry );
SearchResultEntry resultEntry = new SearchResultEntryImpl( searchRequest.getMessageId() ); resultEntry.setObjectName( entry.getDn() ); resultEntry.setEntry( entry );
IntermediateResponse intermResp = new IntermediateResponseImpl( req.getMessageId() ); intermResp.setResponseName( SyncInfoValue.OID );