Class EventDeletedListener

java.lang.Object
org.exoplatform.container.component.BaseComponentPlugin
org.exoplatform.services.listener.Listener<org.exoplatform.agenda.model.AgendaEventModification,Object>
org.exoplatform.caldav.listener.AgendaEventPropagationListener
org.exoplatform.caldav.listener.EventDeletedListener
All Implemented Interfaces:
org.exoplatform.container.component.ComponentPlugin, org.exoplatform.services.listener.ListenerBase<org.exoplatform.agenda.model.AgendaEventModification,Object>

public class EventDeletedListener extends AgendaEventPropagationListener
Removes every calendar copy of a meeting eXo has destroyed.

Bound to exo.agenda.event.deleted, which agenda broadcasts after the event row is gone. That ordering is the reason this cannot be folded into the update path: there is no event left to render an object from, so the copy is identified from the mapping row alone and removed rather than rewritten.

Removed, not tombstoned, and that is a deliberate asymmetry with a cancellation — which does leave a STATUS:CANCELLED copy behind. A copy shows what agenda holds; here agenda holds nothing, and a tombstone eXo can never verify, repair or clear is worse than an absence the attendee was told about by the cancellation notification agenda sends on the same call.

Glue only, per the extensibility norm.

  • Constructor Details

    • EventDeletedListener

      public EventDeletedListener()
  • Method Details

    • propagate

      protected void propagate(CaldavEventPropagationService propagationService, org.exoplatform.agenda.model.AgendaEventModification modification)
      Asks for every existing copy of the destroyed meeting to be removed.
      Specified by:
      propagate in class AgendaEventPropagationListener
      Parameters:
      propagationService - the resolved service
      modification - the modification agenda broadcast