package org.prebid.server.spring.config; import io.vertx.core.Vertx; import io.vertx.core.VertxOptions; import io.vertx.core.file.FileSystem; import io.vertx.ext.dropwizard.DropwizardMetricsOptions; import io.vertx.ext.web.handler.BodyHandler; import org.prebid.server.vertx.ContextRunner; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class VertxConfiguration { @Bean Vertx vertx(@Value("${vertx.worker-pool-size}") int workerPoolSize) { return Vertx.vertx(new VertxOptions() .setWorkerPoolSize(workerPoolSize) .setMetricsOptions(new DropwizardMetricsOptions() .setEnabled(true) .setRegistryName(MetricsConfiguration.METRIC_REGISTRY_NAME))); } @Bean FileSystem fileSystem(Vertx vertx) { return vertx.fileSystem(); } @Bean BodyHandler bodyHandler(@Value("${vertx.uploads-dir}") String uploadsDir) { return BodyHandler.create(uploadsDir); } @Bean ContextRunner contextRunner(Vertx vertx, @Value("${vertx.init-timeout-ms}") long initTimeoutMs) { return new ContextRunner(vertx, initTimeoutMs); } }