private void formatSubcmds(CommandManager mgr, StringBuffer buff) throws CLIException {
    ResourceBundle rb = mgr.getResourceBundle();
    buff.append(rb.getString("USAGE_SUBCOMMAND_TITLE"));
    buff.append("\n");

    List defObjects = mgr.getDefinitionObjects();
    Map mapCmds = new HashMap();
    Set orderCmds = new TreeSet();

    for (Iterator i = defObjects.iterator(); i.hasNext(); ) {
      IDefinition def = (IDefinition) i.next();
      for (Iterator j = def.getSubCommands().iterator(); j.hasNext(); ) {
        SubCommand cmd = (SubCommand) j.next();

        if ((cmd != null) && (!mgr.webEnabled() || cmd.webEnabled())) {
          String name = cmd.getName();
          orderCmds.add(name);
          mapCmds.put(name, cmd.getDescription());
        }
      }
    }

    StringBuilder buffCmd = new StringBuilder();
    boolean started = false;
    String webEnabledURL = mgr.getWebEnabledURL();
    for (Iterator i = orderCmds.iterator(); i.hasNext(); ) {
      String cmdName = (String) i.next();
      buffCmd.append(formAbstractCmdUsage(webEnabledURL, cmdName, (String) mapCmds.get(cmdName)));
    }

    buff.append(buffCmd.toString());
  }
Beispiel #2
0
  private static SubCommand findSubCommand(final String name) {
    for (SubCommand cmd : subCommandList) {
      if (cmd.commandName().toUpperCase().equals(name.toUpperCase())) {
        return cmd;
      }
    }

    return null;
  }
 private void formatOptions(CommandManager mgr, StringBuffer buff, SubCommand cmd)
     throws CLIException {
   ResourceBundle rb = mgr.getResourceBundle();
   buff.append(rb.getString("USAGE_OPTIONS_TITLE"));
   buff.append("\n");
   formatOption(cmd.getMandatoryOptions(), cmd, buff);
   formatOption(cmd.getOptionalOptions(), cmd, buff);
   buff.append("\n");
 }
Beispiel #4
0
  private static void printHelp() {
    System.out.println("The most commonly used mqadmin commands are:");

    for (SubCommand cmd : subCommandList) {
      System.out.printf("   %-20s %s\n", cmd.commandName(), cmd.commandDesc());
    }

    System.out.println(
        "\nSee 'mqadmin help <command>' for more information on a specific command.");
  }
  private void formatUsage(CommandManager mgr, StringBuffer buff, SubCommand cmd)
      throws CLIException {
    ResourceBundle rb = mgr.getResourceBundle();
    buff.append(rb.getString("USAGE"));
    buff.append("\n");

    buff.append(mgr.getCommandName()).append(" ").append(cmd.getName());

    formatOptionNames(cmd.getMandatoryOptions(), cmd, buff, CLIConstants.USAGE_OPTION_NAME_FORMAT);
    formatOptionNames(
        cmd.getOptionalOptions(), cmd, buff, CLIConstants.USAGE_OPTIONAL_OPTION_NAME_FORMAT);

    buff.append("\n").append("\n");
  }
  private void formatOptionNames(List list, SubCommand cmd, StringBuffer buff, String template) {
    for (Iterator i = list.iterator(); i.hasNext(); ) {
      String opt = (String) i.next();
      if (!cmd.isOptionAlias(opt)) {
        Object[] params = {opt, cmd.getShortOptionName(opt)};
        buff.append("\n").append(MessageFormat.format(template, params));
        List aliases = cmd.getOptionAliases(opt);

        if ((aliases != null) && !aliases.isEmpty()) {
          for (Iterator j = aliases.iterator(); j.hasNext(); ) {
            String alias = (String) j.next();
            String[] p = {alias, cmd.getShortOptionName(alias)};
            buff.append(",").append(MessageFormat.format(template, (Object[]) p));
          }
        }
      }
    }
  }
Beispiel #7
0
  public static void main(String[] args) {
    System.setProperty(
        RemotingCommand.RemotingVersionKey, Integer.toString(MQVersion.CurrentVersion));

    try {
      initLogback();
      switch (args.length) {
        case 0:
          printHelp();
          break;
        case 2:
          if (args[0].equals("help")) {
            SubCommand cmd = findSubCommand(args[1]);
            if (cmd != null) {
              Options options = ServerUtil.buildCommandlineOptions(new Options());
              options = cmd.buildCommandlineOptions(options);
              if (options != null) {
                ServerUtil.printCommandLineHelp("mqadmin " + cmd.commandName(), options);
              }
            } else {
              System.out.println("The sub command \'" + args[1] + "\' not exist.");
            }
            break;
          }
        case 1:
        default:
          SubCommand cmd = findSubCommand(args[0]);
          if (cmd != null) {
            // 将main中的args转化为子命令的args(去除第一个参数)
            String[] subargs = parseSubArgs(args);

            // 解析命令行
            Options options = ServerUtil.buildCommandlineOptions(new Options());
            final CommandLine commandLine =
                ServerUtil.parseCmdLine(
                    "mqadmin " + cmd.commandName(),
                    subargs,
                    cmd.buildCommandlineOptions(options),
                    new PosixParser());
            if (null == commandLine) {
              System.exit(-1);
              return;
            }

            if (commandLine.hasOption('n')) {
              String namesrvAddr = commandLine.getOptionValue('n');
              System.setProperty(MixAll.NAMESRV_ADDR_PROPERTY, namesrvAddr);
            }

            cmd.execute(commandLine, options);
          } else {
            System.out.println("The sub command \'" + args[0] + "\' not exist.");
          }
          break;
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  /**
   * Prints the usage of sub command.
   *
   * @param mgr Command Manager object.
   * @param cmd Sub command object.
   * @throws CLIException if usage text cannot be presented.
   */
  public void format(CommandManager mgr, SubCommand cmd) throws CLIException {
    StringBuffer buff = new StringBuffer();
    buff.append("\n\n");

    ResourceBundle rb = mgr.getResourceBundle();
    String commandName = mgr.getCommandName();
    Object[] params = {
      commandName,
      cmd.getName(),
      rb.getString("USAGE_OPTIONS"),
      rb.getString("USAGE_GLOBAL_OPTIONS"),
      cmd.getDescription()
    };
    buff.append(MessageFormat.format(CLIConstants.USAGE_SUBCMD_LONG_FORMAT, params));
    buff.append("\n");
    formatUsage(mgr, buff, cmd);
    formatGlobalOptions(mgr, buff);
    formatOptions(mgr, buff, cmd);
    mgr.getOutputWriter().printlnMessage(buff.toString());
  }
  private void formatOption(List list, SubCommand cmd, StringBuffer buff) {
    for (Iterator i = list.iterator(); i.hasNext(); ) {
      String opt = (String) i.next();
      if (!cmd.isOptionAlias(opt)) {
        List aliases = cmd.getOptionAliases(opt);

        if ((aliases == null) || aliases.isEmpty()) {
          formatOption(buff, opt, cmd, CLIConstants.USAGE_OPTION_FORMAT);
        } else {
          formatOption(
              buff,
              opt,
              aliases,
              cmd,
              CLIConstants.USAGE_OPTION_FORMAT,
              CLIConstants.USAGE_OPTION_WITH_ALIAS_FORMAT);
        }
      }
    }
  }
  private void formatOption(
      StringBuffer buff,
      String opt,
      List aliases,
      SubCommand cmd,
      String format,
      String aliasFormat) {
    Object[] params = {opt, cmd.getShortOptionName(opt), cmd.getOptionDescription(opt)};
    buff.append(MessageFormat.format(aliasFormat, params));
    int sz = aliases.size();

    for (int i = 0; i < sz; i++) {
      String alias = (String) aliases.get(i);
      Object[] p = {alias, cmd.getShortOptionName(alias), cmd.getOptionDescription(alias)};
      if (i == (sz - 1)) {
        buff.append(MessageFormat.format(format, p));
      } else {
        buff.append(MessageFormat.format(aliasFormat, p));
      }
    }

    buff.append("\n");
  }
 private void formatOption(StringBuffer buff, String opt, SubCommand cmd, String format) {
   Object[] params = {opt, cmd.getShortOptionName(opt), cmd.getOptionDescription(opt)};
   buff.append(MessageFormat.format(format, params));
   buff.append("\n");
 }