Process Application Event Listener

I’m trying to get the Process Application Event Listener Plugin working in my Spring Boot application. I followed the steps outlined here but the TaskListener and ExecutionListener that I’m registering aren’t getting called.

My code looks something like:

@SpringBootApplication
@ProcessApplication
public class Application extends SpringBootProcessApplication {
	public static void main(String[] args) {
		logger.debug("logger message");
		SpringApplication.run(ConnectApplication.class, args);
	}

  @Bean
  ProcessApplicationEventListenerPlugin processApplicationEventListenerPlugin() {
    return new ProcessApplicationEventListenerPlugin();
  }

  @Override
  public TaskListener getTaskListener() {
    return new TaskListener() {
      @Override
      public void notify(DelegateTask delegateTask) {
        System.out.println("TaskListener >> DelegateTask == " + delegateTask);
        // handle all Task Events from Invoice Process
      }
    };
  }

  @Override
  public ExecutionListener getExecutionListener() {
    return new ExecutionListener() {
      @Override
      public void notify(DelegateExecution execution) throws Exception {
        System.out.println("ExecutionListener >> DelegateExecution == " + execution);
        // handle all Execution Events from Invoice Process
      }
    };
  }
}

I see that the examples that I took this from (in the thread linked above) were using Spring Boot Starter V 1.3, and I’m using version 2.3. Has the method for registering Process Application Event Listeners changed? Or is there some other problem with the approach I’m taking?

I did confirm that there is a bean called processApplicationEventListenerPlugin in the Application Context.

I would appreciate any help or advice.

I’m using this community plugin now instead to register global task/execution listeners: https://github.com/camunda/camunda-bpm-reactor

I’m not sure what the practical difference is between this community plugin and the Process Application Event Listener Plugin that’s referenced in the documentation. Does anyone else know?