In Spring Framework classes that represent an event to be published by the ApplicationEventPublisher and listened to by the @EventListener are
EventObject <- ApplicationEvent <- PayloadApplicationEvent.
My question is what is the non-nullable source in the initial EventObject constructor and all derived subclasses constructors?
Javadocs give a rather vague explanation that it is
"the object upon which the Event in question initially occurred".
Is it an associated domain entity or publisher service or something else?
Additionally, I am confused why is it required at all if @EventListener states that
"Events can be ApplicationEvent instances as well as arbitrary objects"?