/** Default constructor, sets up the listener name and the list of events to subscribe to. */ public AuditEventListener() { super("auditor", new ActionExecutedEvent()); }
@Override public void onEvent(Event event, Object source, Object data) { final ActionExecutedEvent aee = (ActionExecutedEvent) event; final XWikiDocument doc = (XWikiDocument) source; final XWikiRequest request = this.xcontextProvider.get().getRequest(); final String ip = request != null ? request.getRemoteAddr() : null; AuditEvent auditEvent = new AuditEvent(this.users.getCurrentUser(), ip, aee.getActionName(), null, doc.getDocumentReference(), Calendar.getInstance(Locale.ROOT)); for (AuditEventProcessor processor : this.processors.get()) { auditEvent = processor.process(auditEvent); } this.store.store(auditEvent); } }
/** Basic constructor. */ public LockingListener() { super("concurrency-locking", new ActionExecutingEvent(), new ActionExecutedEvent()); }