use of com.quorum.tessera.cli.parsers.ConfigConverter in project tessera by ConsenSys.
the class Main method main.
public static void main(String... args) {
try {
final CommandLine commandLine = new CommandLine(new MigrationCliAdapter());
commandLine.registerConverter(Config.class, new ConfigConverter()).setSeparator(" ").setCaseInsensitiveEnumValuesAllowed(true);
commandLine.execute(args);
final CliResult cliResult = commandLine.getExecutionResult();
System.exit(cliResult.getStatus());
} catch (final Exception ex) {
System.err.println(ex.toString());
System.exit(1);
}
}
use of com.quorum.tessera.cli.parsers.ConfigConverter in project tessera by ConsenSys.
the class PicoCliDelegate method execute.
public CliResult execute(String... args) throws Exception {
LOGGER.debug("Execute with args [{}]", String.join(",", args));
final CommandLine commandLine = new CommandLine(TesseraCommand.class);
final CLIExceptionCapturer exceptionCapturer = new CLIExceptionCapturer();
commandLine.addSubcommand(new CommandLine(CommandLine.HelpCommand.class));
commandLine.addSubcommand(new CommandLine(VersionCommand.class));
commandLine.addSubcommand(new CommandLine(KeyGenCommand.class, new KeyGenCommandFactory()));
commandLine.addSubcommand(new CommandLine(KeyUpdateCommand.class, new KeyUpdateCommandFactory()));
commandLine.registerConverter(Config.class, new ConfigConverter()).registerConverter(ArgonOptions.class, new ArgonOptionsConverter()).setSeparator(" ").setCaseInsensitiveEnumValuesAllowed(true).setExecutionExceptionHandler(exceptionCapturer).setParameterExceptionHandler(exceptionCapturer).setStopAtUnmatched(false);
try {
// parse the args so that we can print usage help if no cmd args were provided
final CommandLine.ParseResult parseResult = commandLine.parseArgs(args);
final List<CommandLine> l = parseResult.asCommandLineList();
final CommandLine lastCmd = l.get(l.size() - 1);
// print help if no args were provided
if (lastCmd.getParseResult().matchedArgs().size() == 0 && !"help".equals(lastCmd.getCommandName()) && !"version".equals(lastCmd.getCommandName())) {
lastCmd.usage(lastCmd.getOut());
} else {
commandLine.execute(args);
}
} catch (CommandLine.ParameterException ex) {
exceptionCapturer.handleParseException(ex, args);
}
// if an exception occurred, throw it to to the upper levels where it gets handled
if (exceptionCapturer.getThrown() != null) {
throw exceptionCapturer.getThrown();
}
return (CliResult) Optional.ofNullable(commandLine.getExecutionResult()).orElse(new CliResult(0, true, null));
}
use of com.quorum.tessera.cli.parsers.ConfigConverter in project tessera by ConsenSys.
the class Main method main.
public static void main(String... args) throws Exception {
Security.addProvider(new BouncyCastleProvider());
final CommandLine commandLine = new CommandLine(new EnclaveCliAdapter());
commandLine.registerConverter(Config.class, new ConfigConverter()).setSeparator(" ").setCaseInsensitiveEnumValuesAllowed(true);
commandLine.execute(args);
final CliResult cliResult = commandLine.getExecutionResult();
if (cliResult == null) {
System.exit(1);
}
if (!cliResult.getConfig().isPresent()) {
System.exit(cliResult.getStatus());
}
final TesseraServerFactory restServerFactory = TesseraServerFactory.create(CommunicationType.REST);
final Config config = cliResult.getConfig().get();
ConfigFactory.create().store(config);
final ServerConfig serverConfig = config.getServerConfigs().stream().findFirst().get();
Enclave enclave = EnclaveServer.create();
LOGGER.debug("Created enclave {}", enclave);
final TesseraServer server = restServerFactory.createServer(serverConfig, Set.of(new EnclaveApplication(enclave)));
server.start();
CountDownLatch latch = new CountDownLatch(1);
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
try {
server.stop();
} catch (Exception ex) {
LOGGER.error(null, ex);
} finally {
}
}));
latch.await();
}
use of com.quorum.tessera.cli.parsers.ConfigConverter in project tessera by ConsenSys.
the class EnclaveRestIT method setUp.
@Before
public void setUp() throws Exception {
System.setProperty(CliType.CLI_TYPE_KEY, CliType.ENCLAVE.name());
URL url = EnclaveRestIT.class.getResource("/sample-config.json");
final CommandLine commandLine = new CommandLine(new EnclaveCliAdapter());
commandLine.registerConverter(Config.class, new ConfigConverter()).setSeparator(" ").setCaseInsensitiveEnumValuesAllowed(true);
commandLine.execute("-configfile", url.getFile());
CliResult cliResult = commandLine.getExecutionResult();
Config config = cliResult.getConfig().get();
ConfigFactory.create().store(config);
this.enclave = Enclave.create();
jersey = Util.create(enclave);
jersey.setUp();
enclaveClient = new RestfulEnclaveClient(jersey.client(), jersey.target().getUri());
}
use of com.quorum.tessera.cli.parsers.ConfigConverter in project tessera by ConsenSys.
the class EnclaveCliAdapterTest method onSetUp.
@Before
public void onSetUp() {
System.setProperty(CliType.CLI_TYPE_KEY, CliType.ENCLAVE.name());
this.systemErrOutput.clearLog();
commandLine = new CommandLine(new EnclaveCliAdapter());
commandLine.registerConverter(Config.class, new ConfigConverter()).setSeparator(" ").setCaseInsensitiveEnumValuesAllowed(true);
}
Aggregations