code: public void setLauncher (String bureauType, Launcher launcher, int timeout)
      {
          if (_launchers.get(bureauType) != null) {
              log.warning("Launcher for type already exists", "type", bureauType);
              return;
          }
  
          _launchers.put(bureauType, new LauncherEntry(launcher, timeout));
      }
docs: Registers a launcher for a given type. When an agent is started and no bureaus are
  running, the <code>bureauType</code> is used to determine the <code>Launcher</code>
  instance to call. If the launched bureau does not connect within the given number of
  milliseconds, it will be logged as an error and future attempts to launch the bureau
  will invoke the <code>launch</code> method again.
  @param bureauType the type of bureau that will be launched
  @param launcher the launcher to be used for bureaus of <code>bureauType</code>
  @param timeout milliseconds to wait for the bureau or 0 to wait forever