new TelnetTermOptions().setHost("localhost").setPort(3000) )); CommandRegistry.getShared(vertx).registerCommand(starwars); service.start(ar -> { if (!ar.succeeded()) {
@Test public void testDuplicateRegistration(TestContext context) { CommandRegistry registry = CommandRegistry.getShared(vertx); Command a = CommandBuilder.command("a").build(vertx); Command b = CommandBuilder.command("b").build(vertx); registry.registerCommand(a, context.asyncAssertSuccess(reg -> { registry.registerCommands(Arrays.asList(a, b), context.asyncAssertFailure(err -> { context.assertEquals(1, registry.commands().size()); context.assertNotNull(registry.getCommand("a")); })); })); }
@Override public void start() throws Exception { Command helloWorld = CommandBuilder.command("hello-world"). processHandler(process -> { process.write("hello world\n"); process.end(); }).build(vertx); ShellService service = ShellService.create(vertx, new ShellServiceOptions().setTelnetOptions( new TelnetTermOptions().setHost("localhost").setPort(3000) )); CommandRegistry.getShared(vertx).registerCommand(helloWorld); service.start(ar -> { if (!ar.succeeded()) { ar.cause().printStackTrace(); } }); } }
@Override public void start() throws Exception { Command starwars = CommandBuilder.command("echokeyboard"). processHandler(process -> { // Echo process.stdinHandler(keys -> { process.write(keys.replace('\r', '\n')); }); // Terminate when user hits Ctrl-C process.interruptHandler(v -> { process.end(); }); }).build(vertx); ShellService service = ShellService.create(vertx, new ShellServiceOptions().setTelnetOptions( new TelnetTermOptions().setHost("localhost").setPort(3000) )); CommandRegistry.getShared(vertx).registerCommand(starwars); service.start(ar -> { if (!ar.succeeded()) { ar.cause().printStackTrace(); } }); } }
new TelnetTermOptions().setHost("localhost").setPort(3000) )); CommandRegistry.getShared(vertx).registerCommand(starwars); service.start(ar -> { if (!ar.succeeded()) {
new TelnetTermOptions().setHost("localhost").setPort(3000) )); CommandRegistry.getShared(vertx).registerCommand(helloWorld); service.start(ar -> { if (!ar.succeeded()) {
/** * Like {@link io.vertx.rxjava.ext.shell.command.CommandRegistry#registerCommand}, without a completion handler. * @param command * @return */ public io.vertx.rxjava.ext.shell.command.CommandRegistry registerCommand(io.vertx.rxjava.ext.shell.command.Command command) { delegate.registerCommand(command.getDelegate()); return this; }
/** * Like {@link io.vertx.rxjava.ext.shell.command.CommandRegistry#registerCommand}, without a completion handler. * @param command * @return */ public io.vertx.rxjava.ext.shell.command.CommandRegistry registerCommand(io.vertx.rxjava.ext.shell.command.Command command) { delegate.registerCommand(command.getDelegate()); return this; }
/** * Register a command * @param command the command to register * @param completionHandler notified when the command is registered * @return a reference to this, so the API can be used fluently */ public io.vertx.rxjava.ext.shell.command.CommandRegistry registerCommand(io.vertx.rxjava.ext.shell.command.Command command, Handler<AsyncResult<io.vertx.rxjava.ext.shell.command.Command>> completionHandler) { delegate.registerCommand(command.getDelegate(), new Handler<AsyncResult<io.vertx.ext.shell.command.Command>>() { public void handle(AsyncResult<io.vertx.ext.shell.command.Command> ar) { if (ar.succeeded()) { completionHandler.handle(io.vertx.core.Future.succeededFuture(io.vertx.rxjava.ext.shell.command.Command.newInstance(ar.result()))); } else { completionHandler.handle(io.vertx.core.Future.failedFuture(ar.cause())); } } }); return this; }
/** * Register a command * @param command the command to register * @param completionHandler notified when the command is registered * @return a reference to this, so the API can be used fluently */ public io.vertx.rxjava.ext.shell.command.CommandRegistry registerCommand(io.vertx.rxjava.ext.shell.command.Command command, Handler<AsyncResult<io.vertx.rxjava.ext.shell.command.Command>> completionHandler) { delegate.registerCommand(command.getDelegate(), new Handler<AsyncResult<io.vertx.ext.shell.command.Command>>() { public void handle(AsyncResult<io.vertx.ext.shell.command.Command> ar) { if (ar.succeeded()) { completionHandler.handle(io.vertx.core.Future.succeededFuture(io.vertx.rxjava.ext.shell.command.Command.newInstance(ar.result()))); } else { completionHandler.handle(io.vertx.core.Future.failedFuture(ar.cause())); } } }); return this; }
@Override public void start(Future<Void> startFuture) throws Exception { CommandBuilder command = CommandBuilder.command("hello"); command.processHandler(process -> { }); registry.registerCommand(command.build(vertx), ar -> { if (ar.succeeded()) { startFuture.complete(); } else { startFuture.fail(ar.cause()); } }); } }, context.asyncAssertSuccess(id -> {
@Test public void testRegister(TestContext context) { CommandRegistry registry = CommandRegistry.getShared(vertx); CommandBuilder command = CommandBuilder.command("hello"); registry.registerCommand(command.build(vertx), context.asyncAssertSuccess(reg -> { registry.unregisterCommand("hello", context.asyncAssertSuccess(done -> { context.assertEquals(Collections.emptyList(), registry.commands()); })); })); }
@Override public void testExec(TestContext context) throws Exception { AtomicReference<Vertx> execCommand = new AtomicReference<>(); CommandRegistry registry = CommandRegistry.getShared(vertx); registry.registerCommand(CommandBuilder.command("the-command").processHandler(process -> { context.assertNotNull(Vertx.currentContext()); context.assertNotNull(process.session()); execCommand.set(process.vertx()); context.assertEquals(-1, process.width()); context.assertEquals(-1, process.height()); context.assertEquals(Arrays.asList("arg1", "arg2"), process.args()); context.assertTrue(process.isForeground()); StringBuilder input = new StringBuilder(); process.stdinHandler(data -> { input.append(data); if (input.toString().equals("the_input")) { process.end(2); } }); process.write("the_output"); }).build(vertx)); super.testExec(context); assertEquals(execCommand.get(), vertx); } }
@Before public void before(TestContext context) { registry = CommandRegistry.getShared(rule.vertx()); registry.registerCommand(CommandBuilder.command("foo").processHandler(proc -> { }).completionHandler( completion -> { completion.complete("completed_by_foo", false); } ).build(rule.vertx()), context.asyncAssertSuccess(v1 -> { registry.registerCommand(CommandBuilder.command("bar").processHandler(proc -> { }).build(rule.vertx()), context.asyncAssertSuccess(v2 -> { registry.registerCommand(CommandBuilder.command("baz").processHandler(proc -> { }).build(rule.vertx()), context.asyncAssertSuccess(v3 -> { registry.registerCommand(CommandBuilder.command("err").processHandler(proc -> { }).completionHandler(completion -> { throw new RuntimeException("expected"); }).build(rule.vertx()), context.asyncAssertSuccess()); })); })); })); mgr = new InternalCommandManager(registry); }
process.interruptHandler(v -> process.end()); }); mgr.registerCommand(echoKeyboardCmd.build(vertx)); }); }); mgr.registerCommand(windowCmd.build(vertx)); process.write("\u20AC").end(); }); mgr.registerCommand(charsetTestCmd.build(vertx));