package org.infinispan.cli.commands.client; import java.util.List; import org.infinispan.cli.Context; import org.infinispan.cli.commands.AbstractCommand; import org.infinispan.cli.commands.Argument; import org.infinispan.cli.commands.ProcessedCommand; import org.infinispan.cli.connection.Connection; import org.infinispan.cli.connection.ConnectionFactory; import org.kohsuke.MetaInfServices; @MetaInfServices(org.infinispan.cli.commands.Command.class) public class Connect extends AbstractCommand { @Override public String getName() { return "connect"; } @Override public boolean isAvailable(Context context) { return !context.isConnected(); } @Override public void execute(Context context, ProcessedCommand commandLine) { if (context.isConnected()) { context.disconnect(); } try { List<Argument> arguments = commandLine.getArguments(); String connectionString = arguments.size() > 0 ? arguments.get(0).getValue() : ""; Connection connection = ConnectionFactory.getConnection(connectionString); String password = null; if (connection.needsCredentials()) { password = new String(context.getOutputAdapter().secureReadln("Password: ")); } connection.connect(password); context.setConnection(connection); } catch (Exception e) { context.error(e); } } }