RESTEasy Vert.x is a RESTEasy project aimed to provide integration with Eclipse Vert.x.
To read the documentation you can read it online.
To add the dependencies in Maven you can simply add the BOM.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>dev.resteasy.vertx</groupId>
<artifactId>resteasy-vertx-bom</artifactId>
<version>${version.dev.resteasy.vertx}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>Then you can use either the embedded server or client dependencies.
<dependencies>
<dependency>
<groupId>dev.resteasy.vertx</groupId>
<artifactId>resteasy-vertx-client</artifactId>
</dependency>
<dependency>
<groupId>dev.resteasy.vertx</groupId>
<artifactId>resteasy-vertx-embedded-server</artifactId>
</dependency>
</dependencies>Start an embedded server using the standard Jakarta REST SeBootstrap API:
@ApplicationPath("/api")
public class MyApplication extends Application {
@Override
public Set<Class<?>> getClasses() {
return Set.of(GreetingResource.class);
}
}
SeBootstrap.Configuration config = SeBootstrap.Configuration.builder()
.host("localhost")
.port(8080)
.build();
SeBootstrap.Instance instance = SeBootstrap.start(MyApplication.class, config)
.toCompletableFuture()
.join();
URI uri = instance.configuration().baseUri();
// Server running at http://localhost:8080/apiCreate a client:
Client client = ClientBuilder.newClient();
String result = client.target("http://localhost:8080/api/greeting")
.request(MediaType.TEXT_PLAIN)
.get(String.class);
client.close();The Vert.x client engine is automatically discovered via ServiceLoader. Both client and server share a single
managed Vertx instance via VertxManager.
Issues are kept in GitHub Issues.
Currently, RESTEasy Vert.x requires JDK 25+ to compile, but compiles to Java 17 bytecode.
If you want to build the project without running the tests, you need to pull down a clone of the RESTEasy repository and run:
$ ./mvnw clean install -DskipTestsReleasing the project requires permission to deploy to Maven Central see Maven Central Release Requirements.
Once everything is setup, you simply need to run the ./release.sh script. There are two required parameters:
-
-ror--releasewhich is the version you want to release -
-dor--developmentwhich is the next development version.
By default the release version cannot contain SNAPSHOT and the development version, must container SNAPSHOT.
.Example Command| Argument | Requires Value | Description |
|---|---|---|
|
Yes |
The next version for the development cycle. |
|
No |
Forces to allow a SNAPSHOT suffix in release version and not require one for the development version. |
|
N/A |
Displays this help |
|
Unused |
Passes the |
|
Unused |
Passes the |
|
Yes |
The version to be released. Also used for the tag. |
|
No |
Executes the release in as a dry-run. Nothing will be updated or pushed. |
|
No |
Executes the release in, but doesn’t actually push the changes to GitHub or publish the release on Maven Central. |
|
No |
Prints verbose output. |
Any additional arguments are considered arguments for the Maven command.