anchor.diff:  [source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
   .Kotlin
   ----
  -	class BlackListNotifier : ApplicationListener<BlackListEvent> {
  +	class BlockedListNotifier : ApplicationListener<BlockedListEvent> {
   
   		lateinit var notificationAddres: String
   
  -		override fun onApplicationEvent(event: BlackListEvent) {
  +		override fun onApplicationEvent(event: BlockedListEvent) {
   			// notify appropriate parties via notificationAddress...
   		}
   	}
   ----
   
   Notice that `ApplicationListener` is generically parameterized with the type of your
  -custom event (`BlackListEvent` in the preceding example). This means that the `onApplicationEvent()` method can
  -remain type-safe, avoiding any need for downcasting. You can register as many event
  -listeners as you wish, but note that, by default, event listeners receive events
  -synchronously. This means that the `publishEvent()` method blocks until all listeners have
  -finished processing the event. One advantage of this synchronous and single-threaded
  -approach is that, when a listener receives an event, it operates inside the transaction
  -context of the publisher if a transaction context is available. If another strategy for
  -event publication becomes necessary, see the javadoc for Spring's
  +custom event (`BlockedListEvent` in the preceding example). This means that the
  +`onApplicationEvent()` method can remain type-safe, avoiding any need for downcasting.
  +You can register as many event listeners as you wish, but note that, by default, event
  +listeners receive events synchronously. This means that the `publishEvent()` method
  +blocks until all listeners have finished processing the event. One advantage of this
  +synchronous and single-threaded approach is that, when a listener receives an event, it
  +operates inside the transaction context of the publisher if a transaction context is
  +available. If another strategy for event publication becomes necessary, see the javadoc
  +for Spring's
   {api-spring-framework}/context/event/ApplicationEventMulticaster.html[`ApplicationEventMulticaster`] interface
   and {api-spring-framework}/context/event/SimpleApplicationEventMulticaster.html[`SimpleApplicationEventMulticaster`]
   implementation for configuration options.
  
positive.code: 		}
  
  		fun sendEmail(address: String, content: String) {
  			if (blackList!!.contains(address)) {
  				publisher!!.publishEvent(BlackListEvent(this, address, content))
  				return
  			}
  			// send email...
  
negative.code: .Java
  ----
  	@EventListener(condition = "#blEvent.content == 'my-event'")
  	public void processBlockedListEvent(BlockedListEvent blockedListEvent) {
  		// notify appropriate parties via notificationAddress...
  	}
  ----
  