Skip to content

RESTEasy

Build and Test RESTEasy Vert.x

RESTEasy Vert.x is a RESTEasy project aimed to provide integration with Eclipse Vert.x.

Documentation

To read the documentation you can read it online.

Maven Dependency Usage

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>

Quick Start

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/api

Create 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

Issues are kept in GitHub Issues.

Build

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 -DskipTests

Releasing

Releasing 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:

  1. -r or --release which is the version you want to release

  2. -d or --development which is the next development version.

By default the release version cannot contain SNAPSHOT and the development version, must container SNAPSHOT.

.Example Command
/release -r 1.0.0.Final -d 1.0.1.Final-SNAPSHOT

Supported Arguments

Argument Requires Value Description

-d, --development

Yes

The next version for the development cycle.

-f, --force

No

Forces to allow a SNAPSHOT suffix in release version and not require one for the development version.

-h, --help

N/A

Displays this help

--notes-start-tag

Unused

Passes the --notes-from-tag and the argument to the gh create release command.

-p, --prerelease

Unused

Passes the --prerelease to the gh create release command.

-r, --release

Yes

The version to be released. Also used for the tag.

--dry-run

No

Executes the release in as a dry-run. Nothing will be updated or pushed.

--no-push

No

Executes the release in, but doesn’t actually push the changes to GitHub or publish the release on Maven Central. Any next steps should you want to continue the release will need to be manual.

-v, --verbose

No

Prints verbose output.

Any additional arguments are considered arguments for the Maven command.

About

RESTEasy Vert.x integration

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages