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 ); }
/** * {@inheritDoc} */ @Override public void delete( DeleteRequest deleteRequest, LogChange log ) throws LdapException { DeleteOperationContext deleteContext = new DeleteOperationContext( this, deleteRequest ); deleteContext.setLogChange( log ); OperationManager operationManager = directoryService.getOperationManager(); try { operationManager.delete( deleteContext ); } catch ( LdapException e ) { deleteRequest.getResultResponse().addAllControls( deleteContext.getResponseControls() ); throw e; } deleteRequest.getResultResponse().addAllControls( deleteContext.getResponseControls() ); }
/** * {@inheritDoc} */ @Override public void delete( Dn dn, LogChange log ) throws LdapException { DeleteOperationContext deleteContext = new DeleteOperationContext( this, dn ); deleteContext.setLogChange( log ); OperationManager operationManager = directoryService.getOperationManager(); operationManager.delete( deleteContext ); }
@Override public void entryDeleted( DeleteOperationContext deleteContext ) { Entry entry = deleteContext.getEntry(); updatePasswordPolicy( entry, true ); }
/** * @see Object#toString() */ public String toString() { return "DeleteContext for Dn '" + getDn().getName() + "'"; }
Dn dn = deleteContext.getDn(); SearchRequest searchRequest = new SearchRequestImpl(); searchRequest.setBase( dn ); searchRequest.setScope( SearchScope.ONELEVEL ); SearchOperationContext searchContext = new SearchOperationContext( deleteContext.getSession(), searchRequest ); searchContext.setPartition( this ); searchContext.setTransaction( deleteContext.getTransaction() ); LOG.warn( "Failed to get the children of entry {}", deleteContext.getDn() ); return 0;
/** * {@inheritDoc} */ public Entry delete( DeleteOperationContext deleteContext ) throws LdapException { boolean cascade = deleteContext.hasRequestControl( Cascade.OID ); // We have to check if the entry we want to delete has children, or not int nbChild = getChildCount( deleteContext ); if ( nbChild > 1 ) { throw new LdapContextNotEmptyException( "There are children under the entry " + deleteContext.getDn() ); } // The SchemaObject always exist when we reach this method. synchronizer.delete( deleteContext, cascade ); Entry deletedEntry = null; try { deletedEntry = wrapped.delete( deleteContext ); } catch ( LdapException e ) { // TODO : If something went wrong, what should we do here ? throw e; } updateSchemaModificationAttributes( deleteContext ); return deletedEntry; }
forward.setDn( deleteContext.getDn() ); LdifEntry reverse = LdifRevertor.reverseDel( deleteContext.getDn(), reverseEntry ); deleteContext.setChangeLogEvent( changeLog.log( getPrincipal( deleteContext ), forward, reverse ) );
DeleteOperationContext ctx = new DeleteOperationContext( session ); ctx.setReplEvent( true ); ctx.setRid( rid ); ctx.setGenerateNoReplEvt( true ); ctx.setDn( e.getDn() );
/** * Used to encapsulate [de]marshalling of controls before and after delete operations. * * @param target The entry's Dn we want to delete * @throws Exception If we can't delete the entry */ protected void doDeleteOperation( Dn target ) throws Exception { // setup the op context and populate with request controls DeleteOperationContext deleteContext = new DeleteOperationContext( session, target ); deleteContext.addRequestControls( convertControls( true, requestControls ) ); // Inject the referral handling into the operation context injectReferralControl( deleteContext ); // execute delete operation OperationManager operationManager = service.getOperationManager(); operationManager.delete( deleteContext ); // clear the request controls and set the response controls requestControls = EMPTY_CONTROLS; responseControls = JndiUtils.toJndiControls( getDirectoryService().getLdapCodecService(), deleteContext.getResponseControls() ); }
/** * {@inheritDoc} */ @Override public void delete( Dn dn ) throws LdapException { DeleteOperationContext deleteContext = new DeleteOperationContext( session, dn ); setup( deleteContext ); session.getDirectoryService().getOperationManager().delete( deleteContext ); }
/** * Process a Delete operation. A delete event is send to the consumer, or stored in its * queue if the consumer is not connected. * * @param deleteContext The delete operation context */ public void entryDeleted( DeleteOperationContext deleteContext ) { Entry entry = deleteContext.getEntry(); if ( isConfigEntry( entry ) || isNotValidForReplication( deleteContext ) ) { return; } sendDeletedEntry( ( ( ClonedServerEntry ) entry ).getClonedEntry() ); }
/** * {@inheritDoc} */ @Override public Entry delete( DeleteOperationContext deleteContext ) throws LdapException { Partition partition = getPartition( deleteContext.getDn() ); return partition.delete( deleteContext ); }
DeleteOperationContext ctx = new DeleteOperationContext( session ); ctx.setReplEvent( true ); ctx.setRid( replicaId ); ctx.setGenerateNoReplEvt( true ); ctx.setDn( entry.getDn() ); operationManager.delete( ctx );
/** * {@inheritDoc} */ @Override public void delete( Dn dn, boolean ignoreReferral, LogChange log ) throws LdapException { DeleteOperationContext deleteContext = new DeleteOperationContext( this, dn ); deleteContext.setLogChange( log ); setReferralHandling( deleteContext, ignoreReferral ); OperationManager operationManager = directoryService.getOperationManager(); operationManager.delete( deleteContext ); }
public void entryDeleted( DeleteOperationContext deleteContext ) { try { if ( listener instanceof NamespaceChangeListener ) { Binding binding = new Binding( deleteContext.getDn().getName(), ServerEntryUtils.toBasicAttributes( deleteContext.getEntry() ), false ); NamingEvent evt = new NamingEvent( source, NamingEvent.OBJECT_REMOVED, null, binding, deleteContext ); ( ( NamespaceChangeListener ) listener ).objectAdded( evt ); } } catch ( Exception e ) { deliverNamingExceptionEvent( e ); } }
@Override public void delete( DeleteOperationContext deleteContext ) throws LdapException { // insert a new CSN into the entry, this is for replication Entry entry = deleteContext.getEntry(); Attribute csnAt = new DefaultAttribute( directoryService.getAtProvider().getEntryCSN(), directoryService .getCSN().toString() ); entry.put( csnAt ); next( deleteContext ); }
/** * {@inheritDoc} */ @Override public void delete( DeleteOperationContext deleteContext ) throws LdapException { if ( IS_DEBUG ) { LOG.debug( "Operation Context: {}", deleteContext ); } checkAuthenticated( deleteContext ); checkPwdReset( deleteContext ); next( deleteContext ); invalidateAuthenticatorCaches( deleteContext.getDn() ); }
/** * {@inheritDoc} */ @Override public void delete( DeleteOperationContext deleteContext ) throws LdapException { Dn name = deleteContext.getDn(); // Bypass trigger handling if the service is disabled. if ( !enabled ) { next( deleteContext ); return; } // Gather supplementary data. Entry deletedEntry = deleteContext.getEntry(); StoredProcedureParameterInjector injector = new DeleteStoredProcedureParameterInjector( deleteContext, name ); // Gather Trigger Specifications which apply to the entry being deleted. List<TriggerSpecification> triggerSpecs = new ArrayList<>(); addPrescriptiveTriggerSpecs( deleteContext, triggerSpecs, name, deletedEntry ); addEntryTriggerSpecs( triggerSpecs, deletedEntry ); Map<ActionTime, List<TriggerSpecification>> triggerMap = getActionTimeMappedTriggerSpecsForOperation( triggerSpecs, LdapOperation.DELETE ); next( deleteContext ); triggerSpecCache.subentryDeleted( name, deletedEntry ); // Fire AFTER Triggers. List<TriggerSpecification> afterTriggerSpecs = triggerMap.get( ActionTime.AFTER ); executeTriggers( deleteContext, afterTriggerSpecs, injector ); }
Entry entry = deleteContext.getEntry(); Dn dn = entry.getDn();