Exemple #1
0
 /**
  * Creates a deep copy of this instance.
  *
  * @see Cloneable#clone()
  */
 public ProcessBuilder copy() {
   final ProcessBuilder builder = new ProcessBuilder();
   builder.inherit_parent_environment = inherit_parent_environment;
   builder.parent_environment = parent_environment;
   builder.executable = executable;
   builder.env = env.copy();
   builder.arguments.addAll(arguments);
   builder.listeners.addAll(listeners);
   return builder;
 }
public class ProcessResources {
  public static final int STANDARD_MESSAGE_COUNT = 10;

  private static final ProcessBuilder windows_builder_stdin_1 =
      ProcessBuilder.create()
          .withExecutable(Resources.STDIN_1)
          .withListener(
              StandardStreamPipe.create()
              // .redirectStdOut(StandardStream.Null)
              // .redirectStdErr(StandardStream.Null)
              );

  private static final ProcessBuilder windows_builder_stderr_1 =
      ProcessBuilder.create()
          .withExecutable(Resources.STDERR_1)
          .withListener(
              StandardStreamPipe.create()
              // .redirectStdOut(StandardStream.Null)
              // .redirectStdErr(StandardStream.Null)
              );

  private static final ProcessBuilder windows_builder_stdout_1 =
      ProcessBuilder.create()
          .withExecutable(Resources.STDOUT_1)
          .andArgument(Integer.toString(STANDARD_MESSAGE_COUNT))
          .withListener(
              StandardStreamPipe.create()
              // .redirectStdOut(StandardStream.Null)
              // .redirectStdErr(StandardStream.Null)
              );

  private static final ProcessBuilder windows_builder_env_var_echo =
      ProcessBuilder.create()
          .withExecutable("cmd.exe")
          .andArgument("/c")
          .andArgument(Resources.ENV_VAR_ECHO)
          .withListener(
              StandardStreamPipe.create()
              // .redirectStdOut(StandardStream.Null)
              // .redirectStdErr(StandardStream.Null)
              );

  private static final ProcessBuilder windows_builder_stdout_echo_repeat =
      ProcessBuilder.create()
          .withExecutable("cmd.exe")
          .andArgument("/c")
          .andArgument(Resources.STDOUT_ECHO_REPEAT)
          .andArgument(Integer.toString(STANDARD_MESSAGE_COUNT))
          .withListener(
              StandardStreamPipe.create()
              // .redirectStdOut(StandardStream.Null)
              // .redirectStdErr(StandardStream.Null)
              );

  private static final ProcessBuilder windows_builder_stderr_echo_repeat =
      ProcessBuilder.create()
          .withExecutable("cmd.exe")
          .andArgument("/c")
          .andArgument(Resources.STDERR_ECHO_REPEAT)
          .andArgument(Integer.toString(STANDARD_MESSAGE_COUNT))
          .withListener(
              StandardStreamPipe.create()
              // .redirectStdOut(StandardStream.Null)
              // .redirectStdErr(StandardStream.Null)
              );

  private static final ProcessBuilder windows_builder_stdout_stderr_echo_repeat =
      ProcessBuilder.create()
          .withExecutable("cmd.exe")
          .andArgument("/c")
          .andArgument(Resources.STDOUT_STDERR_ECHO_REPEAT)
          .andArgument(Integer.toString(STANDARD_MESSAGE_COUNT))
          .withListener(
              StandardStreamPipe.create()
              // .redirectStdOut(StandardStream.Null)
              // .redirectStdErr(StandardStream.Null)
              );

  private static final ProcessBuilder windows_builder_server =
      ProcessBuilder.create()
          .withExecutable("cmd.exe")
          .andArgument("/c")
          .andArgument("C:\\gitmo\\websphere-8.5.0\\bin\\server.bat")
          .andArgument("start")
          .andArgument("8280")
          .withListener(
              StandardStreamPipe.create()
              // .redirectStdOut(StandardStream.Null)
              // .redirectStdErr(StandardStream.Null)
              );

  private static final ProcessBuilder unix_builder_stdin_1 =
      ProcessBuilder.create()
          .withExecutable(Resources.STDIN_1)
          .withListener(StandardStreamPipe.create());

  private static final ProcessBuilder unix_builder_stderr_1 =
      ProcessBuilder.create()
          .withExecutable(Resources.STDERR_1)
          .withListener(StandardStreamPipe.create());

  private static final ProcessBuilder unix_builder_stdout_1 =
      ProcessBuilder.create()
          .withExecutable(Resources.STDOUT_1)
          .andArgument(Integer.toString(STANDARD_MESSAGE_COUNT))
          .withListener(StandardStreamPipe.create());

  private static final ProcessBuilder unix_builder_env_var_echo =
      ProcessBuilder.create()
          .withExecutable(Resources.ENV_VAR_ECHO)
          .withListener(
              StandardStreamPipe.create()
              // .redirectStdOut(StandardStream.Null)
              // .redirectStdErr(StandardStream.Null)
              );

  private static final ProcessBuilder unix_builder_stdout_echo_repeat =
      ProcessBuilder.create()
          .withExecutable(Resources.STDOUT_ECHO_REPEAT)
          .andArgument(Integer.toString(STANDARD_MESSAGE_COUNT))
          .withListener(StandardStreamPipe.create());

  private static final ProcessBuilder unix_builder_stderr_echo_repeat =
      ProcessBuilder.create()
          .withExecutable(Resources.STDERR_ECHO_REPEAT)
          .andArgument(Integer.toString(STANDARD_MESSAGE_COUNT))
          .withListener(StandardStreamPipe.create());

  private static final ProcessBuilder unix_builder_stdout_stderr_echo_repeat =
      ProcessBuilder.create()
          .withExecutable(Resources.STDOUT_STDERR_ECHO_REPEAT)
          .andArgument(Integer.toString(STANDARD_MESSAGE_COUNT))
          .withListener(StandardStreamPipe.create());

  public static final ProcessBuilder STDIN_1,
      STDERR_1,
      STDOUT_1,
      ENV_VAR_ECHO,
      STDERR_ECHO_REPEAT,
      STDOUT_ECHO_REPEAT,
      STDOUT_STDERR_ECHO_REPEAT;

  static {
    assertTrue(Resources.loadAllResources());

    switch (OSFamily.getSystemOSFamily()) {
      case Windows:
        STDIN_1 = windows_builder_stdin_1;
        STDERR_1 = windows_builder_stderr_1;
        STDOUT_1 = windows_builder_stdout_1;

        ENV_VAR_ECHO = windows_builder_env_var_echo;

        STDERR_ECHO_REPEAT = windows_builder_stderr_echo_repeat;
        STDOUT_ECHO_REPEAT = windows_builder_stdout_echo_repeat;
        STDOUT_STDERR_ECHO_REPEAT = windows_builder_stdout_stderr_echo_repeat;
        break;
      case Unix:
        STDIN_1 = unix_builder_stdin_1;
        STDERR_1 = unix_builder_stderr_1;
        STDOUT_1 = unix_builder_stdout_1;

        ENV_VAR_ECHO = unix_builder_env_var_echo;

        STDERR_ECHO_REPEAT = unix_builder_stderr_echo_repeat;
        STDOUT_ECHO_REPEAT = unix_builder_stdout_echo_repeat;
        STDOUT_STDERR_ECHO_REPEAT = unix_builder_stdout_stderr_echo_repeat;
        break;
      default:
        throw new UnsupportedOperationException(
            "This operating system (" + OSFamily.getSystemOSFamily() + ") is unsupported");
    }
  }
}