docs: public void ensureStarted()
          throws MojoExecutionException
      {
          synchronized ( lock )
          {
              if ( started || starting )
              {
                  return;
              }
              starting = true;
              started = false;
              finished = false;
              finishing = false;
          }
          Thread worker = new Thread( new Worker(), "FileSystemServer[" + name + "]" );
          worker.setDaemon( true );
          worker.start();
          try
          {
              synchronized ( lock )
              {
                  while ( starting && !started && !finished && !finishing )
                  {
                      lock.wait();
                  }
                  if ( problem != null )
                  {
                      throw problem;
                  }
              }
          }
          catch ( Exception e )
          {
              throw new MojoExecutionException( e.getMessage(), e );
          }
      }