Skip to content

Intevation/resteasy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6,802 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RESTEasy

Github CI

RESTEasy is a Commonhaus project aimed at providing productivity frameworks for developing client and server RESTful applications and services in Java. It is mainly a Jakarta RESTful Web Services implementation, but you’ll find some other experimental code in the repository.

The project page can be found at https://resteasy.dev.

Jakarta RESTful Web Services

RESTEasy is a Commonhaus project that provides various frameworks to help you build RESTful Web Services and RESTful Java applications. It is a portable implementation of the Jakarta RESTful Web Services specification. The Jakarta RESTful Web Services provides a Java API for RESTful Web Services over the HTTP protocol. Please note that the specification is now under the Jakarta EE Project. You can read the entire specification at Jakarta RESTful Web Services.

Getting started with RESTEasy

Documentation

To read the documentation you can read it online.

Issues

Issues are kept in JIRA.

Build

Currently, RESTEasy requires JDK 17+.

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=true

If you want to build the project with testings run, you may need to specify a profile to use, and may need to configure the WildFly version you want to run the tests with. Here is an example:

$ SERVER_VERSION=27.0.0.Final ./mvnw clean -fae -Dserver.version=$SERVER_VERSION install

Contribute

You are most welcome to contribute to RESTEasy!

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 contain SNAPSHOT.

Example Release Command

./release.sh --release 7.0.1.Final --development 7.0.2-SNAPSHOT

What the Release Script Does

The release.sh script automates the entire release process:

  1. Maven Release: Executes mvn release:prepare and release:perform to build, tag, and deploy artifacts to Maven Central

  2. GitHub Release: Automatically creates a GitHub release with generated release notes (requires gh CLI)

  3. Artifact Upload: Uploads distribution ZIPs to the GitHub release

  4. Documentation Publishing: Automatically publishes documentation to https://github.com/resteasy/resteasy.github.io by invoking ./publish-docs.sh

All of these steps are automated. If successful, you’ll see confirmation messages for each step:

...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  14:17 min
[INFO] Finished at: 2025-09-18T16:03:43-07:00
[INFO] ------------------------------------------------------------------------

GitHub release created successfully.
Release artifacts uploaded successfully.
Publishing documentation:
Documentation published successfully.
Note
The documentation publishing step creates a pull request to https://github.com/resteasy/resteasy.github.io automatically. You’ll need to review and merge that PR to finalize the documentation update.

Additional Options

  • --dry-run - Executes the release process without pushing any changes (useful for testing)

  • --prerelease - Marks the GitHub release as a prerelease

  • --notes-start-tag <tag> - Specifies the starting tag for generating release notes

  • --verbose - Prints verbose output

  • --force - Allows SNAPSHOT in release version (not recommended)

Requirements

  • GitHub CLI (gh) - Required for automated GitHub release creation and documentation PR

  • Maven Central credentials configured in ~/.m2/settings.xml

  • Write access to the resteasy.github.io repository (for documentation publishing)

Manual Release Steps

If the automated process fails or you need to perform steps manually:

Important
When manually executing Maven commands, enable the release profile with -Prelease and the central-release profile with -Pcentral-release. These can be combined with -Prelease,central-release.

Manual GitHub release:

gh release create --generate-notes --latest --verify-tag v7.0.1.Final
gh release upload v7.0.1.Final distribution/target/distribution/resteasy-7.0.1.Final-all.zip \
  distribution/src-distribution/target/distribution/resteasy-7.0.1.Final-src.zip

Manual documentation publishing:

./publish-docs.sh --version 7.0.1.Final \
  --docs-repo ../resteasy.github.io \
  --dist-zip distribution/target/distribution/resteasy-7.0.1.Final-all.zip

The publish-docs.sh script extracts documentation from the distribution ZIP, creates a branch in the documentation repository, commits the changes, and creates a pull request automatically.

About

An Implementation of the Jakarta RESTful Web Services Specification

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 99.6%
  • Other 0.4%