Search in sources :

Example 16 with Config

use of com.quorum.tessera.config.Config in project tessera by ConsenSys.

the class PrivacyGroupDAOProvider method provider.

public static PrivacyGroupDAO provider() {
    Config config = ConfigFactory.create().getConfig();
    final DataSource dataSource = DataSourceFactory.create().create(config.getJdbcConfig());
    Map properties = new HashMap();
    properties.put("jakarta.persistence.nonJtaDataSource", dataSource);
    properties.put("eclipselink.logging.logger", "org.eclipse.persistence.logging.slf4j.SLF4JLogger");
    properties.put("eclipselink.logging.level", "FINE");
    properties.put("eclipselink.logging.parameters", "true");
    properties.put("eclipselink.logging.level.sql", "FINE");
    properties.put("jakarta.persistence.schema-generation.database.action", config.getJdbcConfig().isAutoCreateTables() ? "create" : "none");
    LOGGER.debug("Creating EntityManagerFactory from {}", properties);
    final EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("tessera", properties);
    LOGGER.debug("Created EntityManagerFactory from {}", properties);
    return new PrivacyGroupDAOImpl(entityManagerFactory);
}
Also used : HashMap(java.util.HashMap) Config(com.quorum.tessera.config.Config) EntityManagerFactory(jakarta.persistence.EntityManagerFactory) Map(java.util.Map) HashMap(java.util.HashMap) DataSource(javax.sql.DataSource)

Example 17 with Config

use of com.quorum.tessera.config.Config in project tessera by ConsenSys.

the class StagingEntityDAOProvider method provider.

public static StagingEntityDAO provider() {
    LOGGER.debug("Creating StagingEntityDAO");
    Config config = ConfigFactory.create().getConfig();
    final DataSource dataSource = DataSourceFactory.create().create(config.getJdbcConfig());
    Map properties = new HashMap();
    properties.put("jakarta.persistence.nonJtaDataSource", dataSource);
    properties.put("eclipselink.logging.logger", "org.eclipse.persistence.logging.slf4j.SLF4JLogger");
    properties.put("eclipselink.logging.level", "FINE");
    properties.put("eclipselink.logging.parameters", "true");
    properties.put("eclipselink.logging.level.sql", "FINE");
    properties.put("jakarta.persistence.schema-generation.database.action", config.getJdbcConfig().isAutoCreateTables() ? "drop-and-create" : "none");
    properties.put("eclipselink.session.customizer", "com.quorum.tessera.eclipselink.AtomicLongSequence");
    LOGGER.debug("Creating EntityManagerFactory from {}", properties);
    final EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("tessera-recover", properties);
    LOGGER.debug("Created EntityManagerFactory from {}", properties);
    StagingEntityDAO stagingEntityDAO = new StagingEntityDAOImpl(entityManagerFactory);
    LOGGER.debug("Created StagingEntityDAO {}", stagingEntityDAO);
    return stagingEntityDAO;
}
Also used : HashMap(java.util.HashMap) Config(com.quorum.tessera.config.Config) EntityManagerFactory(jakarta.persistence.EntityManagerFactory) StagingEntityDAO(com.quorum.tessera.data.staging.StagingEntityDAO) Map(java.util.Map) HashMap(java.util.HashMap) DataSource(javax.sql.DataSource)

Example 18 with Config

use of com.quorum.tessera.config.Config in project tessera by ConsenSys.

the class AzureKeyVaultIT method doStuff.

@Test
public void doStuff() throws Exception {
    Map<String, Object> params = Map.of("azureKeyVaultUrl", keyVaultUrl);
    Path tempTesseraConfig = ElUtil.createTempFileFromTemplate(getClass().getResource("/vault/tessera-azure-config.json"), params);
    List<String> args = new ExecArgsBuilder().withStartScript(startScript).withClassPathItem(distDirectory).withArg("-configfile", tempTesseraConfig.toString()).withArg("-pidfile", pid.toAbsolutePath().toString()).withArg("-jdbc.autoCreateTables", "true").build();
    ProcessBuilder processBuilder = new ProcessBuilder(args);
    processBuilder.environment().putAll(env());
    processBuilder.redirectErrorStream(true);
    Process process = processBuilder.start();
    executorService.submit(new StreamConsumer(process.getInputStream()));
    executorService.submit(() -> {
        int exitCode = process.waitFor();
        assertThat(exitCode).describedAs("Tessera node exited with code %d", exitCode).isEqualTo(0);
        return null;
    });
    final Config config = JaxbUtil.unmarshal(Files.newInputStream(tempTesseraConfig), Config.class);
    final URI bindingUrl = UriBuilder.fromUri(config.getP2PServerConfig().getBindingUri()).path("upcheck").build();
    HttpClient httpClient = HttpClient.newHttpClient();
    final HttpRequest request = HttpRequest.newBuilder().uri(bindingUrl).GET().build();
    CountDownLatch startUpLatch = new CountDownLatch(1);
    executorService.submit(() -> {
        while (true) {
            try {
                HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
                if (response.statusCode() == 200) {
                    startUpLatch.countDown();
                }
            } catch (InterruptedException | IOException e) {
            }
        }
    });
    assertThat(startUpLatch.await(30, TimeUnit.SECONDS)).isTrue();
    assertThat(httpHandler.getCounter()).isEqualTo(2);
}
Also used : Path(java.nio.file.Path) HttpRequest(java.net.http.HttpRequest) StreamConsumer(exec.StreamConsumer) Config(com.quorum.tessera.config.Config) IOException(java.io.IOException) CountDownLatch(java.util.concurrent.CountDownLatch) URI(java.net.URI) HttpClient(java.net.http.HttpClient) ExecArgsBuilder(exec.ExecArgsBuilder) Test(org.junit.Test)

Example 19 with Config

use of com.quorum.tessera.config.Config in project tessera by ConsenSys.

the class Q2TRestApp method getSingletons.

@Override
public Set<Object> getSingletons() {
    TransactionResource transactionResource = new TransactionResource(transactionManager, privacyGroupManager);
    TransactionResource3 transactionResource3 = new TransactionResource3(transactionManager, privacyGroupManager);
    TransactionResource4 transactionResource4 = new TransactionResource4(transactionManager, privacyGroupManager);
    RawTransactionResource rawTransactionResource = new RawTransactionResource(transactionManager);
    EncodedPayloadResource encodedPayloadResource = new EncodedPayloadResource(encodedPayloadManager, transactionManager);
    final UpCheckResource upCheckResource = new UpCheckResource();
    final PrivacyGroupResource privacyGroupResource = new PrivacyGroupResource(privacyGroupManager);
    final Config config = ConfigFactory.create().getConfig();
    if (config.getClientMode() == ClientMode.ORION) {
        final BesuTransactionResource besuResource = new BesuTransactionResource(transactionManager, privacyGroupManager);
        return Set.of(besuResource, rawTransactionResource, privacyGroupResource, upCheckResource);
    }
    return Set.of(transactionResource, rawTransactionResource, encodedPayloadResource, privacyGroupResource, upCheckResource, transactionResource3, transactionResource4);
}
Also used : UpCheckResource(com.quorum.tessera.api.common.UpCheckResource) RawTransactionResource(com.quorum.tessera.api.common.RawTransactionResource) Config(com.quorum.tessera.config.Config) RawTransactionResource(com.quorum.tessera.api.common.RawTransactionResource)

Example 20 with Config

use of com.quorum.tessera.config.Config in project tessera by ConsenSys.

the class Q2TRestAppTest method getSingletons.

@Test
public void getSingletons() {
    Config config = mock(Config.class);
    ConfigFactory configFactory = mock(ConfigFactory.class);
    when(configFactory.getConfig()).thenReturn(config);
    try (var configFactoryMockedStatic = mockStatic(ConfigFactory.class)) {
        configFactoryMockedStatic.when(ConfigFactory::create).thenReturn(configFactory);
        Set<Object> results = q2TRestApp.getSingletons();
        assertThat(results).hasSize(7);
        List<Class> types = results.stream().map(Object::getClass).collect(Collectors.toList());
        assertThat(types).containsExactlyInAnyOrder(TransactionResource.class, RawTransactionResource.class, EncodedPayloadResource.class, UpCheckResource.class, TransactionResource3.class, TransactionResource4.class, PrivacyGroupResource.class);
    }
}
Also used : Config(com.quorum.tessera.config.Config) ConfigFactory(com.quorum.tessera.config.ConfigFactory) Test(org.junit.Test)

Aggregations

Config (com.quorum.tessera.config.Config)78 Test (org.junit.Test)54 ServerConfig (com.quorum.tessera.config.ServerConfig)20 ConfigFactory (com.quorum.tessera.config.ConfigFactory)18 Path (java.nio.file.Path)11 Before (org.junit.Before)11 ResidentGroup (com.quorum.tessera.config.ResidentGroup)9 ClientFactory (com.quorum.tessera.jaxrs.client.ClientFactory)9 EntityManagerFactory (jakarta.persistence.EntityManagerFactory)9 Client (jakarta.ws.rs.client.Client)9 JdbcConfig (com.quorum.tessera.config.JdbcConfig)7 Map (java.util.Map)7 Collectors (java.util.stream.Collectors)7 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)7 After (org.junit.After)7 CommandLine (picocli.CommandLine)7 PrivacyViolationException (com.quorum.tessera.transaction.exception.PrivacyViolationException)6 CliResult (com.quorum.tessera.cli.CliResult)5 EncryptorConfig (com.quorum.tessera.config.EncryptorConfig)5 PublicKey (com.quorum.tessera.encryption.PublicKey)5