Release 6.0 (NOT RELEASED YET)
New features and improvements
-
basic
OpenAPI
support - seeOpenAPI#bootstrap
(thanks, Daniel Braga for contributing!) -
included
Swagger UI
in therapidoid-openapi
module (visit/api
)
Breaking changes
-
merged the
rapidoid-essentials
module intorapidoid-commons
-
renamed the
rapidoid-http-server
module torapidoid-rest
-
removed the support for service activation from CLI arguments
Release 5.5
New features and improvements
-
built-in support for XML requests and responses (many thanks to Dan Cytermann for the nice contribution!)
-
the dockerized web platform has been extracted out in a separate project: Rapidoid Web Platform
-
end of life for the
rapidoid-fluent
module (last released version:5.4.6
), its successor is essentials4j -
support for high-performance TCP clients (
TCP.client()
) -
simple high-performance HTTP client (experimental)
-
extended networking capabilities (
rapidoid-net
module) -
some bug fixes
-
many small improvements
Breaking changes
-
the
rapidoid-html
module has been merged into therapidoid-gui
module -
the
rapidoid-fluent
module has been removed -
renamed
jackson
toobjectMapper
in the customization API -
renamed
JsonResponseRenderer
toHttpResponseRenderer
in the customization API -
renamed
JsonRequestBodyParser
toHttpRequestBodyParser
in the customization API -
the process management components have been moved out from the
rapidoid-commons
module, into the Rapidoid Web Platform
Release 5.4
New features and improvements
-
HTTPS
support (TLS
, in general) - this was the most frequently requested feature -
HTTP streaming support
-
high performance database connection pools - powered by
Hikari
-
implemented
JDBC
paging -
atomic application start-up
-
extended capabilities of the
JDBC
client API (async. processing, result mappers etc.) -
unified data source configuration for
Hibernate
andJDBC
(onlyJDBC
for both) -
simplified bootstrap of
Hibernate
-
several bug fixes
-
many small improvements
Breaking changes
-
the built-in
C3P0
library has been replaced byHikari
in rapidoid-quick module -
the
hibernate
data source configuration section has been replaced byjdbc
Release 5.3
New features and improvements
-
Official Docker repository for Rapidoid:
docker run rapidoid --help
-
Maven plug-in for simple & easy packaging of uber-JAR:
mvn org.rapidoid:app:build
- it works on any Maven project, without configuring anything -
Maven plug-in for simple & easy application deployment on multiple servers:
mvn org.rapidoid:app:deploy
- it works on any Maven project, requires deploy.yml -
fine-grained activation of built-in services through command-line parameters:
docker run -p 8888:8888 rapidoid
-
new API for super-easy recursive file search by name patterns and type:
IO.find("pom.xml").files().in(location).recursive().getLocations()
-
high-performance in-memory cache with fluent API and basic statistics:
Cache<String, Integer> lengths = Caching.ofString key) → key.length(.ttl(1000).build()
-
fine-grained scope control in the authentication tokens
-
stronger security - AES and HMAC cryptography utils were re-written from scratch:
byte[] enc = Crypto.encrypt(msg.getBytes())
-
new built-in status service, serving application and system status information
-
new built-in processes service for management of child processes
-
new built-in discovery service for simple peer discovery (transient)
-
new built-in echo service for debugging received requests
-
improved deployment process with 2-phase application JAR staging + deployment
-
many new end-to-end tests for Rapidoid’s Docker container integration
-
improved logger, enriched API, also configured as default commons-logging implementation:
Log.info("Super-simple and cool!");
-
improved generic request pipeline processing (low-level Net API)
-
convenient way to define and display custom metrics
-
built-in mysql and postgres profiles for
JDBC
andHibernate
configuration -
hot reloading upon external configuration changes
-
super-simple SQL-powered RESTful services and GUI pages
-
Simplified job scheduling:
Jobs.after(3).seconds().run(() → {})
-
constructor-based dependency injection
-
optional integration with
Guice
-
salted password hash generator (for the users configuration):
docker run -it --rm rapidoid password
-
several bug fixes
-
many small improvements
Breaking changes
-
changes in the low-level async Net API - added
void resume(long connId, long handle, AsyncLogic asyncLogic)
-
renamed URIs for the built-in services from
//
to/
-
removed the factory utils from the Goodies (please use normal instantiation instead)
Release 5.2
New features and improvements
-
OAuth bootstrap:
App.bootstrap(args).oauth()
with pre-defined configuration structure -
customizable session management:
My.sessionManager(…)
- in-memory by default -
customizable JSON parser for the HTTP request body:
My.jsonRequestBodyParser(…)
- using Jackson by default -
customizable JPA management:
My.entityManagerFactoryProvider(…)
andMy.entityManagerProvider(…)
-
customizable security strategy when serving serving static files:
My.staticFilesSecurity(…)
-
customizable templates path:
My.templatesPath(…)
-
customizable templates loader (e.g. load them from DB):
My.templateLoader(…)
-
customizable error handlers by type:
On.error(…).handler(…)
-
customizable wrappers of the HTTP handlers (request/response interceptors):
My.wrappers(…)
-
redesigned token API (previously known as the cookie-pack session)
-
smart serialization of the session and token - only when changed
-
basic reverse proxy (easily configurable from command-line or Docker)
-
round-robin load balancer (enabled by default in the reverse proxy)
-
customizable context path for web applications
-
great performance improvements in the built-in template engine
-
few GUI enhancements
-
several bug fixes
-
many small improvements
Breaking changes
-
Renamed cookiepack to token in the HTTP Req and Resp API
-
the application.yml configuration files are not loaded by default, only config.yml
-
renamed
profile-.yml
configuration files toconfig-.yml
-
renamed application segment to zone in the HTTP API
-
redesigned
ViewRenderer
and renamed toViewResolver
-
added
Req
parameter in theLoginProvider
API -
added
Req
parameter in theRolesProvider
API -
renamed
Templates.fromFile
toTemplates.load
,Templates.fromString
toTemplates.compile
-
renamed
PageRenderer
toPageDecorator
-
using
My.jackson()
instead ofJSON.MAPPER
Release 5.1
New features and improvements
-
automatic hot reload when the source code changes,
-
lambdas as handlers - with named and type-safe parameters,
-
URI path patterns (simple and regex-based),
-
Admin Center for convenient management of the deployed app,
-
JVM and OS metrics in the Admin Center,
-
info about the web app routes in the Admin Center,
-
role-based web security with out-of-the-box login / logout,
-
configuration info in the Admin Center,
-
configuration profiles,
-
improved dependency injection (with profile support),
-
easy JPA bootstrap with TX management and nice utils like
JPA.insert(new Foo())
, -
redesigned and enhanced
JDBC
utils, -
scaffolding of JPA entities (RESTful services and management GUI),
-
new templating language and engine - similar to Mustache, but more practical,
-
highly customizable setup (serialization, security, error handling, template engine…),
-
many GUI enhancements…