/** * Specifies the command-line arguments passed into the Java command. * * <p> * This is required if you use {@link Microservice#getArgs()} or <code>$A</code> string variables. * * @param args * The command-line arguments passed into the Java command as the raw command-line arguments. * @return This object (for method chaining). */ public MicroserviceBuilder args(String...args) { this.args = new Args(args); return this; }
/** * Constructor. */ public ArgsVar() { super(NAME); if (ARGS != null) this.args = ARGS; else { String s = System.getProperty("sun.java.command"); if (isNotEmpty(s)) { int i = s.indexOf(' '); args = new Args(i == -1 ? "" : s.substring(i+1)); } else { args = new Args(System.getProperty("juneau.args", "")); } } }
/** * Constructor. */ public ArgsVar() { super(NAME); if (ARGS != null) this.args = ARGS; else { String s = System.getProperty("sun.java.command"); if (isNotEmpty(s)) { int i = s.indexOf(' '); args = new Args(i == -1 ? "" : s.substring(i+1)); } else { args = new Args(System.getProperty("juneau.args", "")); } } }
/** * Constructor. */ public ArgsVar() { super(NAME); if (ARGS != null) this.args = ARGS; else { String s = System.getProperty("sun.java.command"); if (isNotEmpty(s)) { int i = s.indexOf(' '); args = new Args(i == -1 ? "" : s.substring(i+1)); } else { args = new Args(System.getProperty("juneau.args", "")); } } }
/** * Convenience method for executing a console command directly. * * <p> * Allows you to execute a console command outside the console by simulating input and output. * * @param command The command name to execute. * @param input Optional input to the command. Can be <jk>null</jk>. * @param args Optional command arguments to pass to the command. * @return The command output. */ public String executeCommand(String command, String input, Object...args) { StringWriter sw = new StringWriter(); List<String> l = new ArrayList<>(); l.add(command); for (Object a : args) l.add(asString(a)); Args args2 = new Args(l.toArray(new String[l.size()])); try (Scanner in = new Scanner(input); PrintWriter out = new PrintWriter(sw)) { executeCommand(args2, in, out); } return sw.toString(); }
/** * Constructor. * * @param args Command line arguments. * @throws Exception */ protected Microservice(String...args) throws Exception { setInstance(this); Console c = System.console(); consoleReader = new Scanner(c == null ? new InputStreamReader(System.in) : c.reader()); consoleWriter = c == null ? new PrintWriter(System.out, true) : c.writer(); setArgs(new Args(args)); setManifest(this.getClass()); }
@Override /* Thread */ public void run() { Scanner in = getConsoleReader(); PrintWriter out = getConsoleWriter(); out.println(messages.getString("ListOfAvailableCommands")); for (ConsoleCommand cc : new TreeMap<>(getConsoleCommands()).values()) out.append("\t").append(cc.getName()).append(" -- ").append(cc.getInfo()).println(); out.println(); while (true) { String line = null; out.append("> ").flush(); line = in.nextLine(); Args args = new Args(line); if (! args.isEmpty()) executeCommand(args, in, out); } } };
@Override /* Thread */ @SuppressWarnings("resource") // Must not close System.in! public void run() { Scanner in = getConsoleReader(); PrintWriter out = getConsoleWriter(); out.println(mb2.getString("ListOfAvailableCommands")); for (ConsoleCommand cc : commands.values()) out.append("\t").append(cc.getName()).append(" -- ").append(cc.getInfo()).println(); out.println(); while (true) { String line = null; out.append("> ").flush(); line = in.nextLine(); Args args = new Args(line); if (! args.isEmpty()) { ConsoleCommand cc = commands.get(args.getArg(0)); if (cc == null) { out.println(mb2.getString("UnknownCommand")); } else { try { if (cc.execute(in, out, args)) break; } catch (Exception e) { e.printStackTrace(); } } } } } }.start();
out.append("> ").flush(); line = in.nextLine(); Args args = new Args(line); if (! args.isEmpty()) { ConsoleCommand cc = commands.get(args.getArg(0));
this.args = builder.args != null ? builder.args : new Args(new String[0]);
a = new Args(new String[]{}); assertNull(a.getArg(0)); assertNull(a.getArg(1)); assertFalse(a.containsKey("foo")); a = new Args(new String[]{"foo"}); assertEquals("foo", a.getArg(0)); assertNull(a.getArg(1)); assertFalse(a.containsKey("foo")); a = new Args(new String[]{"foo", "bar bar"}); assertEquals("foo", a.getArg(0)); assertEquals("bar bar", a.getArg(1)); assertFalse(a.containsKey("foo")); a = new Args(new String[]{"foo", "bar bar", "-foo"}); assertEquals("foo", a.getArg(0)); assertEquals("bar bar", a.getArg(1)); assertTrue(a.containsKey("foo")); a = new Args(new String[]{"foo", "bar bar", "-foo", "bar bar"}); assertEquals("foo", a.getArg(0)); assertEquals("bar bar", a.getArg(1));