code: private void pingNotifiableEventListener(String topic, Registration registration, boolean register) {
          Object listener = registration.getListener();
          if (!(listener instanceof NotifiableEventListener)) {
              EventFilter filter = registration.getFilter();
              if (filter instanceof ListenerWrapperEventFilter) {
                  listener = ((ListenerWrapperEventFilter) filter).getListener();
              }
          }
          pingNotifiableEventListenerInternal(listener, topic, registration, register);
          pingNotifiableEventListenerInternal(service, topic, registration, register);
      }
docs: Notifies the registration of a event in the listener lifecycle.
  The registration is checked for a {@link NotifiableEventListener} in this order :
  <ul>
  <li>first check if {@link Registration#getListener()} returns a {@link NotifiableEventListener}</li>
  <li>otherwise check if the event filter wraps a listener and use that one</li>
  </ul>
  
  @param topic        the event topic
  @param registration the listener registration
  @param register     if the listener was registered or not