/** * Like {@link io.vertx.rxjava.ext.shell.command.CommandRegistry#registerCommands}, without a completion handler. * @param commands * @return */ public io.vertx.rxjava.ext.shell.command.CommandRegistry registerCommands(List<io.vertx.rxjava.ext.shell.command.Command> commands) { delegate.registerCommands(commands.stream().map(elt -> elt.getDelegate()).collect(java.util.stream.Collectors.toList())); return this; }
/** * Like {@link io.vertx.rxjava.ext.shell.command.CommandRegistry#registerCommands}, without a completion handler. * @param commands * @return */ public io.vertx.rxjava.ext.shell.command.CommandRegistry registerCommands(List<io.vertx.rxjava.ext.shell.command.Command> commands) { delegate.registerCommands(commands.stream().map(elt -> elt.getDelegate()).collect(java.util.stream.Collectors.toList())); return this; }
/** * Register a list of commands. * @param commands the commands 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 registerCommands(List<io.vertx.rxjava.ext.shell.command.Command> commands, Handler<AsyncResult<List<io.vertx.rxjava.ext.shell.command.Command>>> completionHandler) { delegate.registerCommands(commands.stream().map(elt -> elt.getDelegate()).collect(java.util.stream.Collectors.toList()), new Handler<AsyncResult<java.util.List<io.vertx.ext.shell.command.Command>>>() { public void handle(AsyncResult<java.util.List<io.vertx.ext.shell.command.Command>> ar) { if (ar.succeeded()) { completionHandler.handle(io.vertx.core.Future.succeededFuture(ar.result().stream().map(elt -> io.vertx.rxjava.ext.shell.command.Command.newInstance(elt)).collect(java.util.stream.Collectors.toList()))); } else { completionHandler.handle(io.vertx.core.Future.failedFuture(ar.cause())); } } }); return this; }
/** * Register a list of commands. * @param commands the commands 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 registerCommands(List<io.vertx.rxjava.ext.shell.command.Command> commands, Handler<AsyncResult<List<io.vertx.rxjava.ext.shell.command.Command>>> completionHandler) { delegate.registerCommands(commands.stream().map(elt -> elt.getDelegate()).collect(java.util.stream.Collectors.toList()), new Handler<AsyncResult<java.util.List<io.vertx.ext.shell.command.Command>>>() { public void handle(AsyncResult<java.util.List<io.vertx.ext.shell.command.Command>> ar) { if (ar.succeeded()) { completionHandler.handle(io.vertx.core.Future.succeededFuture(ar.result().stream().map(elt -> io.vertx.rxjava.ext.shell.command.Command.newInstance(elt)).collect(java.util.stream.Collectors.toList()))); } else { completionHandler.handle(io.vertx.core.Future.failedFuture(ar.cause())); } } }); return this; }
@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 testUndeployCommands(TestContext context) throws Exception { Async async = context.async(); registry.registerCommands( Arrays.asList(CommandBuilder.command("a").build(vertx), CommandBuilder.command("b").build(vertx)), context.asyncAssertSuccess(list -> async.complete())); async.awaitSuccess(2000); Set<String> afterIds = new HashSet<>(vertx.deploymentIDs()); System.out.println(afterIds); context.assertEquals(1, afterIds.size()); String deploymentId = afterIds.iterator().next(); Async async2 = context.async(); registry.unregisterCommand("a", context.asyncAssertSuccess(v -> async2.complete())); async2.awaitSuccess(2000); context.assertTrue(vertx.deploymentIDs().contains(deploymentId)); Async async3 = context.async(); registry.unregisterCommand("b", context.asyncAssertSuccess(v -> async3.complete())); async3.awaitSuccess(2000); context.assertFalse(vertx.deploymentIDs().contains(deploymentId)); } }