}); }).build(vertx);
@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(); } }); } }
}).build(vertx);
req.end(); }).build(vertx);
/** * Build the command * @param vertx the vertx instance * @return the built command */ public io.vertx.rxjava.ext.shell.command.Command build(io.vertx.rxjava.core.Vertx vertx) { io.vertx.rxjava.ext.shell.command.Command ret = io.vertx.rxjava.ext.shell.command.Command.newInstance(delegate.build(vertx.getDelegate())); return ret; }
/** * Build the command * @param vertx the vertx instance * @return the built command */ public io.vertx.rxjava.ext.shell.command.Command build(io.vertx.rxjava.core.Vertx vertx) { io.vertx.rxjava.ext.shell.command.Command ret = io.vertx.rxjava.ext.shell.command.Command.newInstance(delegate.build(vertx.getDelegate())); return ret; }
public void add(CommandBuilder builder) { add(builder.build(vertx)); }
@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 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")); })); })); }
@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()); })); })); }
@Test public void testSuspendReadyProcess(TestContext context) { CommandBuilder builder = CommandBuilder.command("hello"); builder.processHandler(process -> context.fail()); Process process = builder.build(vertx).createProcess().setSession(Session.create()).setTty(Pty.create().slave()); try { process.suspend(); context.fail(); } catch (Exception ignore) { } }
@Test public void testResumeReadyProcess(TestContext context) { CommandBuilder builder = CommandBuilder.command("hello"); builder.processHandler(process -> context.fail()); Process process = builder.build(vertx).createProcess().setSession(Session.create()).setTty(Pty.create().slave()); try { process.resume(); context.fail(); } catch (Exception ignore) { } }
@Test public void testInterruptReadyProcess(TestContext context) { CommandBuilder builder = CommandBuilder.command("hello"); builder.processHandler(process -> context.fail()); Process process = builder.build(vertx).createProcess().setSession(Session.create()).setTty(Pty.create().slave()); try { process.interrupt(); context.fail(); } catch (Exception ignore) { } }
@Test public void testRunRunningProcess(TestContext context) { CommandBuilder builder = CommandBuilder.command("hello"); Async runningLatch = context.async(); builder.processHandler(process -> runningLatch.complete()); Process process = builder.build(vertx).createProcess().setSession(Session.create()).setTty(Pty.create().slave()); process.run(); runningLatch.awaitSuccess(10000); try { process.run(); context.fail(); } catch (IllegalStateException ignore) { } }
@Test public void testResumeRunningProcess(TestContext context) { CommandBuilder builder = CommandBuilder.command("hello"); Async runningLatch = context.async(); builder.processHandler(process -> runningLatch.complete()); Process process = builder.build(vertx).createProcess().setSession(Session.create()).setTty(Pty.create().slave()); process.run(); runningLatch.awaitSuccess(10000); try { process.resume(); context.fail(); } catch (Exception ignore) { } }
@Test public void testRunTerminatedProcess(TestContext context) { CommandBuilder builder = CommandBuilder.command("hello"); Async terminatedLatch = context.async(); builder.processHandler(CommandProcess::end); Process process = builder.build(vertx).createProcess().setSession(Session.create()).setTty(Pty.create().slave()); process.terminatedHandler(exitCode -> terminatedLatch.complete()); process.run(); terminatedLatch.awaitSuccess(10000); try { process.run(); context.fail(); } catch (IllegalStateException ignore) { } }
@Test public void testResumeTerminatedProcess(TestContext context) { CommandBuilder builder = CommandBuilder.command("hello"); Async terminatedLatch = context.async(); builder.processHandler(CommandProcess::end); Process process = builder.build(vertx).createProcess().setSession(Session.create()).setTty(Pty.create().slave()); process.terminatedHandler(exitCode -> terminatedLatch.complete()); process.run(); terminatedLatch.awaitSuccess(10000); try { process.resume(); context.fail(); } catch (IllegalStateException ignore) { } }
@Test public void testSuspendTerminatedProcess(TestContext context) { CommandBuilder builder = CommandBuilder.command("hello"); Async terminatedLatch = context.async(); builder.processHandler(CommandProcess::end); Process process = builder.build(vertx).createProcess().setSession(Session.create()).setTty(Pty.create().slave()); process.terminatedHandler(exitCode -> terminatedLatch.complete()); process.run(); terminatedLatch.awaitSuccess(10000); try { process.suspend(); context.fail(); } catch (IllegalStateException ignore) { } }
@Test public void testInterruptTerminatedProcess(TestContext context) { CommandBuilder builder = CommandBuilder.command("hello"); Async terminatedLatch = context.async(); builder.processHandler(process -> process.end()); Process process = builder.build(vertx).createProcess().setSession(Session.create()).setTty(Pty.create().slave()); process.terminatedHandler(exitCode -> terminatedLatch.complete()); process.run(); terminatedLatch.awaitSuccess(10000); try { process.interrupt(); context.fail(); } catch (Exception ignore) { } }