Release 6.0 (NOT RELEASED YET)
New features and improvements
-
basic
OpenAPIsupport - seeOpenAPI#bootstrap(thanks, Daniel Braga for contributing!) -
included
Swagger UIin therapidoid-openapimodule (visit/api)
Breaking changes
-
merged the
rapidoid-essentialsmodule intorapidoid-commons -
renamed the
rapidoid-http-servermodule 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-fluentmodule (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-netmodule) -
some bug fixes
-
many small improvements
Breaking changes
-
the
rapidoid-htmlmodule has been merged into therapidoid-guimodule -
the
rapidoid-fluentmodule has been removed -
renamed
jacksontoobjectMapperin the customization API -
renamed
JsonResponseRenderertoHttpResponseRendererin the customization API -
renamed
JsonRequestBodyParsertoHttpRequestBodyParserin the customization API -
the process management components have been moved out from the
rapidoid-commonsmodule, into the Rapidoid Web Platform
Release 5.4
New features and improvements
-
HTTPSsupport (TLS, in general) - this was the most frequently requested feature -
HTTP streaming support
-
high performance database connection pools - powered by
Hikari -
implemented
JDBCpaging -
atomic application start-up
-
extended capabilities of the
JDBCclient API (async. processing, result mappers etc.) -
unified data source configuration for
HibernateandJDBC(onlyJDBCfor both) -
simplified bootstrap of
Hibernate -
several bug fixes
-
many small improvements
Breaking changes
-
the built-in
C3P0library has been replaced byHikariin rapidoid-quick module -
the
hibernatedata 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
JDBCandHibernateconfiguration -
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-.ymlconfiguration files toconfig-.yml -
renamed application segment to zone in the HTTP API
-
redesigned
ViewRendererand renamed toViewResolver -
added
Reqparameter in theLoginProviderAPI -
added
Reqparameter in theRolesProviderAPI -
renamed
Templates.fromFiletoTemplates.load,Templates.fromStringtoTemplates.compile -
renamed
PageRenderertoPageDecorator -
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
JDBCutils, -
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…