private long getCurrentRevision( DirectoryService dirService ) throws Exception { if ( ( dirService != null ) && ( dirService.getChangeLog().isEnabled() ) ) { long revision = dirService.getChangeLog().getCurrentRevision(); LOG.debug( "Create revision {}", revision ); return revision; } return 0; }
private void revert( DirectoryService dirService, long revision ) throws Exception { if ( dirService == null ) { return; } ChangeLog cl = dirService.getChangeLog(); if ( cl.isEnabled() && ( revision < cl.getCurrentRevision() ) ) { LOG.debug( "Revert revision {}", revision ); dirService.revert( revision ); } }
if ( directoryService != null && directoryService.getChangeLog().isEnabled() )
public long revert() throws LdapException { if ( changeLog == null || !changeLog.isEnabled() ) { throw new IllegalStateException( I18n.err( I18n.ERR_310 ) ); } Tag latest = changeLog.getLatest(); if ( null != latest ) { if ( latest.getRevision() < changeLog.getCurrentRevision() ) { return revert( latest.getRevision() ); } else { LOG.info( "Ignoring request to revert without changes since the latest tag." ); return changeLog.getCurrentRevision(); } } throw new IllegalStateException( I18n.err( I18n.ERR_311 ) ); }
public long revert( long revision ) throws LdapException if ( changeLog == null || !changeLog.isEnabled() )
/** * {@inheritDoc} */ @Override public void move( MoveOperationContext moveContext ) throws LdapException { next( moveContext ); if ( !changeLog.isEnabled() ) { return; } LdifEntry forward = new LdifEntry(); forward.setChangeType( ChangeType.ModDn ); forward.setDn( moveContext.getDn() ); forward.setNewSuperior( moveContext.getNewSuperior().getName() ); LdifEntry reverse = LdifRevertor.reverseMove( moveContext.getNewSuperior(), moveContext.getDn() ); moveContext.setChangeLogEvent( changeLog.log( getPrincipal( moveContext ), forward, reverse ) ); }
if ( changeLog.isEnabled() )
/** * {@inheritDoc} */ @Override public void add( AddOperationContext addContext ) throws LdapException { next( addContext ); if ( !changeLog.isEnabled() ) { return; } Entry addEntry = addContext.getEntry(); // we don't want to record addition of a tag as a change if ( addEntry.get( REV_AT_OID ) != null ) { return; } LdifEntry forward = new LdifEntry(); forward.setChangeType( ChangeType.Add ); forward.setDn( addContext.getDn() ); for ( Attribute attribute : addEntry.getAttributes() ) { AttributeType attributeType = attribute.getAttributeType(); forward.addAttribute( addEntry.get( attributeType ).clone() ); } LdifEntry reverse = LdifRevertor.reverseAdd( addContext.getDn() ); addContext.setChangeLogEvent( changeLog.log( getPrincipal( addContext ), forward, reverse ) ); }
/** * {@inheritDoc} */ @Override public void rename( RenameOperationContext renameContext ) throws LdapException { Entry serverEntry = null; if ( renameContext.getEntry() != null ) { serverEntry = ( ( ClonedServerEntry ) renameContext.getEntry() ).getOriginalEntry(); } next( renameContext ); // After this point, the entry has been modified. The cloned entry contains // the modified entry, the originalEntry has changed if ( !changeLog.isEnabled() ) { return; } LdifEntry forward = new LdifEntry(); forward.setChangeType( ChangeType.ModRdn ); forward.setDn( renameContext.getDn() ); forward.setNewRdn( renameContext.getNewRdn().getName() ); forward.setDeleteOldRdn( renameContext.getDeleteOldRdn() ); List<LdifEntry> reverses = LdifRevertor.reverseRename( serverEntry, renameContext.getNewRdn(), renameContext.getDeleteOldRdn() ); renameContext.setChangeLogEvent( changeLog.log( getPrincipal( renameContext ), forward, reverses ) ); }