public <T extends IEventProcessor> CompletableFuture<Void> registerEventProcessor(Class<T> eventProcessorType) {
        DefaultEventProcessorFactory<T> defaultFactory = new DefaultEventProcessorFactory<T>();
        defaultFactory.setEventProcessorClass(eventProcessorType);
        return registerEventProcessorFactory(defaultFactory, EventProcessorOptions.getDefaultOptions());
    }
public < T extends IEventProcessor > CompletableFuture < Void > registerEventProcessor ( Class < T > eventProcessorType ) { DefaultEventProcessorFactory < T > defaultFactory = new DefaultEventProcessorFactory < T > ( ) ; defaultFactory . setEventProcessorClass ( eventProcessorType ) ; return registerEventProcessorFactory ( defaultFactory , EventProcessorOptions . getDefaultOptions ( ) ) ; }
Register class for event processor and start processing.
<p>
This overload uses the default event processor factory, which simply creates new instances of
the registered event processor class, and uses all the default options.
<p>
The returned CompletableFuture completes when host initialization is finished. Initialization failures are
reported by completing the future with an exception, so it is important to call get() on the future and handle
any exceptions thrown.
<pre>
class MyEventProcessor implements IEventProcessor { ... }
EventProcessorHost host = new EventProcessorHost(...);
{@literal CompletableFuture<Void>} foo = host.registerEventProcessor(MyEventProcessor.class);
foo.get();
</pre>

@param <T>                Not actually a parameter. Represents the type of your class that implements IEventProcessor.
@param eventProcessorType Class that implements IEventProcessor.
@return Future that completes when initialization is finished.