@Override
  public Future<ProcessResult> call() throws StartupException {
    PatternFinderOutputStream initializationWatcher = new PatternFinderOutputStream(BROKER_STARTUP_COMPLETED);

    // Inform the initializationWatcher if the process ends before the expected output is produced.
    PublishingProcessListener rabbitMqProcessListener = new PublishingProcessListener();
    rabbitMqProcessListener.addSubscriber(initializationWatcher);

    Future<ProcessResult> resultFuture = startProcess(initializationWatcher, rabbitMqProcessListener);
    waitForConfirmation(initializationWatcher);

    return resultFuture;
  }
@Override
  public Future<ProcessResult> call() throws StartupException {
    PatternFinderOutputStream initializationWatcher = new PatternFinderOutputStream(BROKER_STARTUP_COMPLETED);

    
    PublishingProcessListener rabbitMqProcessListener = new PublishingProcessListener();
    rabbitMqProcessListener.addSubscriber(initializationWatcher);

    Future<ProcessResult> resultFuture = startProcess(initializationWatcher, rabbitMqProcessListener);
    waitForConfirmation(initializationWatcher);

    return resultFuture;
  }
@ Override public Future < ProcessResult > call ( ) throws StartupException { PatternFinderOutputStream initializationWatcher = new PatternFinderOutputStream ( BROKER_STARTUP_COMPLETED ) ; // Inform the initializationWatcher if the process ends before the expected output is produced. PublishingProcessListener rabbitMqProcessListener = new PublishingProcessListener ( ) ; rabbitMqProcessListener . addSubscriber ( initializationWatcher ) ; Future < ProcessResult > resultFuture = startProcess ( initializationWatcher , rabbitMqProcessListener ) ; waitForConfirmation ( initializationWatcher ) ; return resultFuture ; }
Starts the RabbitMQ Server and blocks the current thread until the server is confirmed to have started.
<p>
This is useful to ensure no other interactions happen with the RabbitMQ Server until it's safe to do so

@return an unfinished future representing the eventual result of the {@code rabbitmq-server} process running in "foreground".
@throws StartupException if anything fails while attempting to start and confirm successful initialization.
@see ShutdownHelper
Starts the RabbitMQ Server and blocks the current thread until the server is confirmed to have started . <p > This is useful to ensure no other interactions happen with the RabbitMQ Server until it s safe to do so