Search in sources :

Example 1 with EnclaveCliAdapter

use of com.quorum.tessera.enclave.server.EnclaveCliAdapter 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();
}
Also used : ConfigConverter(com.quorum.tessera.cli.parsers.ConfigConverter) TesseraServerFactory(com.quorum.tessera.server.TesseraServerFactory) ServerConfig(com.quorum.tessera.config.ServerConfig) Config(com.quorum.tessera.config.Config) CountDownLatch(java.util.concurrent.CountDownLatch) ServerConfig(com.quorum.tessera.config.ServerConfig) TesseraServer(com.quorum.tessera.server.TesseraServer) CommandLine(picocli.CommandLine) CliResult(com.quorum.tessera.cli.CliResult) EnclaveCliAdapter(com.quorum.tessera.enclave.server.EnclaveCliAdapter) Enclave(com.quorum.tessera.enclave.Enclave) BouncyCastleProvider(org.bouncycastle.jce.provider.BouncyCastleProvider)

Example 2 with EnclaveCliAdapter

use of com.quorum.tessera.enclave.server.EnclaveCliAdapter 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());
}
Also used : ConfigConverter(com.quorum.tessera.cli.parsers.ConfigConverter) CommandLine(picocli.CommandLine) CliResult(com.quorum.tessera.cli.CliResult) EnclaveCliAdapter(com.quorum.tessera.enclave.server.EnclaveCliAdapter) Config(com.quorum.tessera.config.Config) URL(java.net.URL) Before(org.junit.Before)

Aggregations

CliResult (com.quorum.tessera.cli.CliResult)2 ConfigConverter (com.quorum.tessera.cli.parsers.ConfigConverter)2 Config (com.quorum.tessera.config.Config)2 EnclaveCliAdapter (com.quorum.tessera.enclave.server.EnclaveCliAdapter)2 CommandLine (picocli.CommandLine)2 ServerConfig (com.quorum.tessera.config.ServerConfig)1 Enclave (com.quorum.tessera.enclave.Enclave)1 TesseraServer (com.quorum.tessera.server.TesseraServer)1 TesseraServerFactory (com.quorum.tessera.server.TesseraServerFactory)1 URL (java.net.URL)1 CountDownLatch (java.util.concurrent.CountDownLatch)1 BouncyCastleProvider (org.bouncycastle.jce.provider.BouncyCastleProvider)1 Before (org.junit.Before)1