Class Vertx

java.lang.Object
io.vertx.reactivex.core.Vertx
All Implemented Interfaces:
io.vertx.lang.rx.RxDelegate, Measured

public class Vertx extends Object implements io.vertx.lang.rx.RxDelegate, Measured
The entry point into the Vert.x Core API.

You use an instance of this class for functionality including:

  • Creating TCP clients and servers
  • Creating HTTP clients and servers
  • Creating DNS clients
  • Creating Datagram sockets
  • Setting and cancelling periodic and one-shot timers
  • Getting a reference to the event bus API
  • Getting a reference to the file system API
  • Getting a reference to the shared data API
  • Deploying and undeploying verticles

Most functionality in Vert.x core is fairly low level.

To create an instance of this class you can use the static factory methods: vertx(), vertx() and clusteredVertx(VertxOptions).

Please see the user manual for more detailed usage information.

NOTE: This class has been automatically generated from the original non RX-ified interface using Vert.x codegen.

  • Field Details

    • __TYPE_ARG

      public static final io.vertx.lang.rx.TypeArg<Vertx> __TYPE_ARG
  • Constructor Details

    • Vertx

      public Vertx(Vertx delegate)
    • Vertx

      public Vertx(Object delegate)
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getDelegate

      public Vertx getDelegate()
      Specified by:
      getDelegate in interface Measured
      Specified by:
      getDelegate in interface io.vertx.lang.rx.RxDelegate
    • isMetricsEnabled

      public boolean isMetricsEnabled()
      Whether the metrics are enabled for this measured object
      Specified by:
      isMetricsEnabled in interface Measured
      Returns:
      true if metrics are enabled
    • builder

      public static VertxBuilder builder()
      Return a builder for Vert.x instances which allows to specify SPI such as cluster manager, metrics or tracing.
      Returns:
      a Vert.x instance builder
    • vertx

      public static Vertx vertx()
      Creates a non clustered instance using default options.
      Returns:
      the instance
    • vertx

      public static Vertx vertx(VertxOptions options)
      Creates a non clustered instance using the specified options
      Parameters:
      options - the options to use
      Returns:
      the instance
    • clusteredVertx

      public static Future<Vertx> clusteredVertx(VertxOptions options)
      Creates a clustered instance using the specified options.

      The instance is created asynchronously and the returned future is completed with the result when it is ready.

      Parameters:
      options - the options to use
      Returns:
      a future completed with the clustered vertx
    • rxClusteredVertx

      public static Single<Vertx> rxClusteredVertx(VertxOptions options)
      Creates a clustered instance using the specified options.

      The instance is created asynchronously and the returned future is completed with the result when it is ready.

      Parameters:
      options - the options to use
      Returns:
      a future completed with the clustered vertx
    • currentContext

      public static Context currentContext()
      Gets the current context
      Returns:
      The current context or null if there is no current context
    • getOrCreateContext

      public Context getOrCreateContext()
      Gets the current context, or creates one if there isn't one
      Returns:
      The current context (created if didn't exist)
    • createNetServer

      public NetServer createNetServer(TcpServerConfig config)
      Create a TCP/SSL server using the specified config
      Parameters:
      config - the config to use
      Returns:
      the server
    • createNetServer

      public NetServer createNetServer(TcpServerConfig config, ServerSSLOptions sslOptions)
      Create a TCP/SSL server using the specified config and the specified ssl options
      Parameters:
      config - the config to use
      sslOptions - the server SSL options
      Returns:
      the server
    • createNetServer

      public NetServer createNetServer(NetServerOptions options)
      Create a TCP/SSL server using the specified options
      Parameters:
      options - the options to use
      Returns:
      the server
    • createNetServer

      public NetServer createNetServer()
      Create a TCP/SSL server using default options
      Returns:
      the server
    • createNetClient

      public NetClient createNetClient(TcpClientConfig config)
      Create a TCP/SSL client using the specified config
      Parameters:
      config - the config to use
      Returns:
      the client
    • createNetClient

      public NetClient createNetClient(TcpClientConfig config, ClientSSLOptions sslOptions)
      Create a TCP/SSL client using the specified config and the specified ssl options
      Parameters:
      config - the config to use
      sslOptions - the default client SSL options
      Returns:
      the client
    • createNetClient

      public NetClient createNetClient(NetClientOptions options)
      Create a TCP/SSL client using the specified options
      Parameters:
      options - the options to use
      Returns:
      the client
    • createNetClient

      public NetClient createNetClient()
      Create a TCP/SSL client using default options
      Returns:
      the client
    • createQuicServer

      public QuicServer createQuicServer(QuicServerConfig config, ServerSSLOptions sslOptions)

      Create a configured Quic server.

      The returned server can be bound, after setting a connection

      Parameters:
      config - the server configuration
      sslOptions - the server SSL options
      Returns:
      the server
    • createQuicServer

      public QuicServer createQuicServer(ServerSSLOptions sslOptions)
      Like createQuicServer(QuicServerConfig, ServerSSLOptions), with the default server configuration.
      Parameters:
      sslOptions -
      Returns:
    • createQuicClient

      public QuicClient createQuicClient(QuicClientConfig config, ClientSSLOptions sslOptions)

      Create a configured Quic client.

      Parameters:
      config - the client configuration
      sslOptions - the default client SSL options
      Returns:
      the client
    • createQuicClient

      public QuicClient createQuicClient(ClientSSLOptions defaultSslOptions)
      Like createQuicClient(QuicClientConfig, ClientSSLOptions), with the default client configuration.
      Parameters:
      defaultSslOptions -
      Returns:
    • createQuicClient

      public QuicClient createQuicClient(QuicClientConfig config)

      Create a configured Quic client.

      Parameters:
      config - the client configuration
      Returns:
      the client
    • createHttpServer

      public HttpServer createHttpServer(HttpServerOptions options)
      Create an HTTP/HTTPS server using the specified options
      Parameters:
      options - the options to use
      Returns:
      the server
    • createHttpServer

      public HttpServer createHttpServer(HttpServerConfig config)
      Create an HTTP server using the specified config.
      Parameters:
      config - the config to use
      Returns:
      the server
    • createHttpServer

      public HttpServer createHttpServer(HttpServerConfig config, ServerSSLOptions sslOptions)
      Create an HTTP server using the specified config and the specified sslOptions
      Parameters:
      config - the config to use
      sslOptions - the ssl options to use
      Returns:
      the server
    • createHttpServer

      public HttpServer createHttpServer(ServerSSLOptions sslOptions)
      Create an HTTP server using default config and the specified sslOptions.
      Parameters:
      sslOptions - the ssl options to use
      Returns:
      the server
    • createHttpServer

      public HttpServer createHttpServer()
      Create an HTTP/HTTPS server using default config.
      Returns:
      the server
    • httpServerBuilder

      public HttpServerBuilder httpServerBuilder()
      Provide a builder for , it can be used to configure advanced HTTP servre settings like a connection handler.

      Example usage: HttpServer server = vertx.httpServerBuilder().with(options).withConnectHandler(conn -> ...).build()

      Returns:
    • createWebSocketClient

      public WebSocketClient createWebSocketClient()
      Create a WebSocket client using default options
      Returns:
      the client
    • createWebSocketClient

      public WebSocketClient createWebSocketClient(WebSocketClientOptions options)
      Create a WebSocket client using the specified options
      Parameters:
      options - the options to use
      Returns:
      the client
    • httpClientBuilder

      public HttpClientBuilder httpClientBuilder()
      Provide a builder for , it can be used to configure advanced HTTP client settings like a redirect handler or a connection handler.

      Example usage: HttpClient client = vertx.httpClientBuilder().with(options).withConnectHandler(conn -> ...).build()

      Returns:
    • createHttpClient

      public HttpClientAgent createHttpClient(HttpClientConfig clientConfig, PoolOptions poolOptions)
      Create a HTTP/HTTPS client using the specified client and pool options
      Parameters:
      clientConfig - the client config to use
      poolOptions - the pool options to use
      Returns:
      the client
    • createHttpClient

      public HttpClientAgent createHttpClient(HttpClientConfig clientConfig, ClientSSLOptions sslOptions, PoolOptions poolOptions)
      Create a HTTP/HTTPS client using the specified client, ssl options and pool options
      Parameters:
      clientConfig - the client config to use
      sslOptions - the ssl options to use
      poolOptions - the pool options to use
      Returns:
      the client
    • createHttpClient

      public HttpClientAgent createHttpClient(HttpClientConfig clientConfig, ClientSSLOptions sslOptions)
      Create a HTTP/HTTPS client using the specified client and ssl options
      Parameters:
      clientConfig - the client config to use
      sslOptions - the ssl options to use
      Returns:
      the client
    • createHttpClient

      public HttpClientAgent createHttpClient(HttpClientOptions clientOptions, PoolOptions poolOptions)
      Create a HTTP/HTTPS client using the specified client and pool options
      Parameters:
      clientOptions - the client options to use
      poolOptions - the pool options to use
      Returns:
      the client
    • createHttpClient

      public HttpClientAgent createHttpClient(HttpClientConfig config)
      Create an HTTP/HTTPS client using the specified config
      Parameters:
      config - the config to use
      Returns:
      the server
    • createHttpClient

      public HttpClientAgent createHttpClient(HttpClientOptions clientOptions)
      Create a HTTP/HTTPS client using the specified client options
      Parameters:
      clientOptions - the options to use
      Returns:
      the client
    • createHttpClient

      public HttpClientAgent createHttpClient(PoolOptions poolOptions)
      Create a HTTP/HTTPS client using the specified pool options
      Parameters:
      poolOptions - the pool options to use
      Returns:
      the client
    • createHttpClient

      public HttpClientAgent createHttpClient()
      Create a HTTP/HTTPS client using default options
      Returns:
      the client
    • createDatagramSocket

      public DatagramSocket createDatagramSocket(DatagramSocketOptions options)
      Create a datagram socket using the specified options
      Parameters:
      options - the options to use
      Returns:
      the socket
    • createDatagramSocket

      public DatagramSocket createDatagramSocket()
      Create a datagram socket using default options
      Returns:
      the socket
    • fileSystem

      public FileSystem fileSystem()
      Get the filesystem object. There is a single instance of FileSystem per Vertx instance.
      Returns:
      the filesystem object
    • eventBus

      public EventBus eventBus()
      Get the event bus object. There is a single instance of EventBus per Vertx instance.
      Returns:
      the event bus object
    • createDnsClient

      public DnsClient createDnsClient(int port, String host)
      Create a DNS client to connect to a DNS server at the specified host and port, with the default query timeout (5 seconds)

      Parameters:
      port - the port
      host - the host
      Returns:
      the DNS client
    • createDnsClient

      public DnsClient createDnsClient()
      Create a DNS client to connect to the DNS server configured by VertxOptions

      DNS client takes the first configured resolver address provided by }

      Returns:
      the DNS client
    • createDnsClient

      public DnsClient createDnsClient(DnsClientOptions options)
      Create a DNS client to connect to a DNS server
      Parameters:
      options - the client options
      Returns:
      the DNS client
    • sharedData

      public SharedData sharedData()
      Get the shared data object. There is a single instance of SharedData per Vertx instance.
      Returns:
      the shared data object
    • timer

      public Timer timer(long delay)
      Like timer(long) with a unit in millis.
      Parameters:
      delay -
      Returns:
    • timer

      public Timer timer(long delay, TimeUnit unit)
      Create a timer task configured with the specified delay, when the timeout fires the timer future is succeeded, when the timeout is cancelled the timer future is failed with a CancellationException instance.
      Parameters:
      delay - the delay
      unit - the delay unit
      Returns:
      the timer object
    • setTimer

      public long setTimer(long delay, Handler<Long> handler)
      Set a one-shot timer to fire after delay milliseconds, at which point handler will be called with the id of the timer.
      Parameters:
      delay - the delay in milliseconds, after which the timer will fire
      handler - the handler that will be called with the timer ID when the timer fires
      Returns:
      the unique ID of the timer
    • setPeriodic

      public long setPeriodic(long delay, Handler<Long> handler)
      Set a periodic timer to fire every delay milliseconds, at which point handler will be called with the id of the timer.
      Parameters:
      delay - the delay in milliseconds, after which the timer will fire
      handler - the handler that will be called with the timer ID when the timer fires
      Returns:
      the unique ID of the timer
    • setPeriodic

      public long setPeriodic(long initialDelay, long delay, Handler<Long> handler)
      Set a periodic timer to fire every delay milliseconds with initial delay, at which point handler will be called with the id of the timer.
      Parameters:
      initialDelay - the initial delay in milliseconds
      delay - the delay in milliseconds, after which the timer will fire
      handler - the handler that will be called with the timer ID when the timer fires
      Returns:
      the unique ID of the timer
    • cancelTimer

      public boolean cancelTimer(long id)
      Cancels the timer with the specified id.
      Parameters:
      id - The id of the timer to cancel
      Returns:
      true if the timer was successfully cancelled, or false if the timer does not exist.
    • runOnContext

      public void runOnContext(Handler<Void> action)
      Puts the handler on the event queue for the current context so it will be run asynchronously ASAP after all preceeding events have been handled.
      Parameters:
      action - - a handler representing the action to execute
    • close

      public Future<Void> close()
      Stop the Vertx instance and release any resources held by it.

      The instance cannot be used after it has been closed.

      The actual close is asynchronous and may not complete until after the call has returned.

      Returns:
      a future completed with the result
    • rxClose

      public Completable rxClose()
      Stop the Vertx instance and release any resources held by it.

      The instance cannot be used after it has been closed.

      The actual close is asynchronous and may not complete until after the call has returned.

      Returns:
      a future completed with the result
    • deployVerticle

      public Future<String> deployVerticle(String name)
      Deploy a verticle instance given a name.

      Given the name, Vert.x selects a instance to use to instantiate the verticle.

      For the rules on how factories are selected please consult the user manual.

      If the deployment is successful the result will contain a String representing the unique deployment ID of the deployment.

      This deployment ID can subsequently be used to undeploy the verticle.

      Parameters:
      name - the name.
      Returns:
      a future completed with the result
    • rxDeployVerticle

      public Single<String> rxDeployVerticle(String name)
      Deploy a verticle instance given a name.

      Given the name, Vert.x selects a instance to use to instantiate the verticle.

      For the rules on how factories are selected please consult the user manual.

      If the deployment is successful the result will contain a String representing the unique deployment ID of the deployment.

      This deployment ID can subsequently be used to undeploy the verticle.

      Parameters:
      name - the name.
      Returns:
      a future completed with the result
    • deployVerticle

      public Future<String> deployVerticle(String name, DeploymentOptions options)
      Like deployVerticle(String) but DeploymentOptions are provided to configure the deployment.
      Parameters:
      name - the name
      options - the deployment options.
      Returns:
      a future completed with the result
    • rxDeployVerticle

      public Single<String> rxDeployVerticle(String name, DeploymentOptions options)
      Like deployVerticle(String) but DeploymentOptions are provided to configure the deployment.
      Parameters:
      name - the name
      options - the deployment options.
      Returns:
      a future completed with the result
    • undeploy

      public Future<Void> undeploy(String deploymentID)
      Undeploy a verticle deployment.

      The actual undeployment happens asynchronously and may not complete until after the method has returned.

      Parameters:
      deploymentID - the deployment ID
      Returns:
      a future completed with the result
    • rxUndeploy

      public Completable rxUndeploy(String deploymentID)
      Undeploy a verticle deployment.

      The actual undeployment happens asynchronously and may not complete until after the method has returned.

      Parameters:
      deploymentID - the deployment ID
      Returns:
      a future completed with the result
    • deploymentIDs

      public Set<String> deploymentIDs()
      Return a Set of deployment IDs for the currently deployed deploymentIDs.
      Returns:
      Set of deployment IDs
    • isClustered

      public boolean isClustered()
      Is this Vert.x instance clustered?
      Returns:
      true if clustered
    • createSharedWorkerExecutor

      public WorkerExecutor createSharedWorkerExecutor(String name)
      Parameters:
      name -
      Returns:
    • createSharedWorkerExecutor

      public WorkerExecutor createSharedWorkerExecutor(String name, int poolSize)
      Like createSharedWorkerExecutor(String) but with the VertxOptions maxExecuteTime.
      Parameters:
      name -
      poolSize -
      Returns:
    • createSharedWorkerExecutor

      public WorkerExecutor createSharedWorkerExecutor(String name, int poolSize, long maxExecuteTime)
      Like createSharedWorkerExecutor(String) but with the VertxOptions maxExecuteTimeUnit.
      Parameters:
      name -
      poolSize -
      maxExecuteTime -
      Returns:
    • createSharedWorkerExecutor

      public WorkerExecutor createSharedWorkerExecutor(String name, int poolSize, long maxExecuteTime, TimeUnit maxExecuteTimeUnit)
      Create a named worker executor, the executor should be closed when it's not needed anymore to release resources.

      This method can be called mutiple times with the same name. Executors with the same name will share the same worker pool. The worker pool size , max execute time and unit of max execute time are set when the worker pool is created and won't change after.

      The worker pool is released when all the WorkerExecutor sharing the same name are closed.

      Parameters:
      name - the name of the worker executor
      poolSize - the size of the pool
      maxExecuteTime - the value of max worker execute time
      maxExecuteTimeUnit - the value of unit of max worker execute time
      Returns:
      the named worker executor
    • isNativeTransportEnabled

      public boolean isNativeTransportEnabled()
      Returns:
      whether the native transport is used
    • unavailableNativeTransportCause

      public Throwable unavailableNativeTransportCause()
      Returns:
      the error (if any) that cause the unavailability of native transport when isNativeTransportEnabled() returns false.
    • exceptionHandler

      public Vertx exceptionHandler(Handler<Throwable> handler)
      Set a default exception handler for Context, set on Context.exceptionHandler(Handler) at creation.
      Parameters:
      handler - the exception handler
      Returns:
      a reference to this, so the API can be used fluently
    • deployVerticle

      public Future<String> deployVerticle(Deployable verticle)
      Deploy a verticle instance that you have created yourself.

      Vert.x will assign the verticle a context and start the verticle.

      The actual deploy happens asynchronously and may not complete until after the call has returned.

      If the deployment is successful the result will contain a string representing the unique deployment ID of the deployment.

      This deployment ID can subsequently be used to undeploy the verticle.

      Parameters:
      verticle - the verticle instance to deploy.
      Returns:
      a future completed with the result
    • rxDeployVerticle

      public Single<String> rxDeployVerticle(Deployable verticle)
      Deploy a verticle instance that you have created yourself.

      Vert.x will assign the verticle a context and start the verticle.

      The actual deploy happens asynchronously and may not complete until after the call has returned.

      If the deployment is successful the result will contain a string representing the unique deployment ID of the deployment.

      This deployment ID can subsequently be used to undeploy the verticle.

      Parameters:
      verticle - the verticle instance to deploy.
      Returns:
      a future completed with the result
    • deployVerticle

      public Future<String> deployVerticle(Deployable verticle, DeploymentOptions options)
      Like deployVerticle(String) but DeploymentOptions are provided to configure the deployment.
      Parameters:
      verticle - the verticle instance to deploy
      options - the deployment options.
      Returns:
      a future completed with the result
    • rxDeployVerticle

      public Single<String> rxDeployVerticle(Deployable verticle, DeploymentOptions options)
      Like deployVerticle(String) but DeploymentOptions are provided to configure the deployment.
      Parameters:
      verticle - the verticle instance to deploy
      options - the deployment options.
      Returns:
      a future completed with the result
    • deployVerticle

      public Future<String> deployVerticle(Supplier<? extends Deployable> supplier, DeploymentOptions options)
      Like deployVerticle(String) but Deployable instance is created by invoking the verticleSupplier.

      The supplier will be invoked as many times as DeploymentOptions. It must not return the same instance twice.

      Note that the supplier will be invoked on the caller thread.

      Parameters:
      supplier -
      options -
      Returns:
      a future completed with the result
    • rxDeployVerticle

      public Single<String> rxDeployVerticle(Supplier<? extends Deployable> supplier, DeploymentOptions options)
      Like deployVerticle(String) but Deployable instance is created by invoking the verticleSupplier.

      The supplier will be invoked as many times as DeploymentOptions. It must not return the same instance twice.

      Note that the supplier will be invoked on the caller thread.

      Parameters:
      supplier -
      options -
      Returns:
      a future completed with the result
    • registerVerticleFactory

      public void registerVerticleFactory(VerticleFactory factory)
      Register a VerticleFactory that can be used for deploying Verticles based on an identifier.
      Parameters:
      factory - the factory to register
    • unregisterVerticleFactory

      public void unregisterVerticleFactory(VerticleFactory factory)
      Unregister a VerticleFactory
      Parameters:
      factory - the factory to unregister
    • verticleFactories

      public Set<VerticleFactory> verticleFactories()
      Return the Set of currently registered verticle factories.
      Returns:
      the set of verticle factories
    • executeBlocking

      public <T> Future<T> executeBlocking(Callable<T> blockingCodeHandler, boolean ordered)
      Safely execute some blocking code.

      Executes the blocking code in the handler blockingCodeHandler using a thread from the worker pool.

      The returned future will be completed with the result on the original context (i.e. on the original event loop of the caller) or failed when the handler throws an exception.

      In the blockingCodeHandler the current context remains the original context and therefore any task scheduled in the blockingCodeHandler will be executed on this context and not on the worker thread.

      The blocking code should block for a reasonable amount of time (i.e no more than a few seconds). Long blocking operations or polling operations (i.e a thread that spin in a loop polling events in a blocking fashion) are precluded.

      When the blocking operation lasts more than the 10 seconds, a message will be printed on the console by the blocked thread checker.

      Long blocking operations should use a dedicated thread managed by the application, which can interact with verticles using the event-bus or Context.runOnContext(Handler)

      Parameters:
      blockingCodeHandler - handler representing the blocking code to run
      ordered - if true then if executeBlocking is called several times on the same context, the executions for that context will be executed serially, not in parallel. if false then they will be no ordering guarantees
      Returns:
      a future completed when the blocking code is complete
    • rxExecuteBlocking

      public <T> Maybe<T> rxExecuteBlocking(Callable<T> blockingCodeHandler, boolean ordered)
      Safely execute some blocking code.

      Executes the blocking code in the handler blockingCodeHandler using a thread from the worker pool.

      The returned future will be completed with the result on the original context (i.e. on the original event loop of the caller) or failed when the handler throws an exception.

      In the blockingCodeHandler the current context remains the original context and therefore any task scheduled in the blockingCodeHandler will be executed on this context and not on the worker thread.

      The blocking code should block for a reasonable amount of time (i.e no more than a few seconds). Long blocking operations or polling operations (i.e a thread that spin in a loop polling events in a blocking fashion) are precluded.

      When the blocking operation lasts more than the 10 seconds, a message will be printed on the console by the blocked thread checker.

      Long blocking operations should use a dedicated thread managed by the application, which can interact with verticles using the event-bus or Context.runOnContext(Handler)

      Parameters:
      blockingCodeHandler - handler representing the blocking code to run
      ordered - if true then if executeBlocking is called several times on the same context, the executions for that context will be executed serially, not in parallel. if false then they will be no ordering guarantees
      Returns:
      a future completed when the blocking code is complete
    • executeBlocking

      public <T> Future<T> executeBlocking(Callable<T> blockingCodeHandler)
      Like executeBlocking(Callable, boolean) called with ordered = true.
      Parameters:
      blockingCodeHandler -
      Returns:
    • rxExecuteBlocking

      public <T> Maybe<T> rxExecuteBlocking(Callable<T> blockingCodeHandler)
      Like executeBlocking(Callable, boolean) called with ordered = true.
      Parameters:
      blockingCodeHandler -
      Returns:
    • newInstance

      public static Vertx newInstance(Vertx arg)