Release 6.0 (NOT RELEASED YET)

New features and improvements

  • basic OpenAPI support - see OpenAPI#bootstrap (thanks, Daniel Braga for contributing!)

  • included Swagger UI in the rapidoid-openapi module (visit /api)

Breaking changes

  • merged the rapidoid-essentials module into rapidoid-commons

  • renamed the rapidoid-http-server module to rapidoid-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 the rapidoid-gui module

  • the rapidoid-fluent module has been removed

  • renamed jackson to objectMapper in the customization API

  • renamed JsonResponseRenderer to HttpResponseRenderer in the customization API

  • renamed JsonRequestBodyParser to HttpRequestBodyParser 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 and JDBC (only JDBC for both)

  • simplified bootstrap of Hibernate

  • several bug fixes

  • many small improvements

Breaking changes

  • the built-in C3P0 library has been replaced by Hikari in rapidoid-quick module

  • the hibernate data source configuration section has been replaced by jdbc

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 and Hibernate 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(…​) and My.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 to config-.yml

  • renamed application segment to zone in the HTTP API

  • redesigned ViewRenderer and renamed to ViewResolver

  • added Req parameter in the LoginProvider API

  • added Req parameter in the RolesProvider API

  • renamed Templates.fromFile to Templates.load, Templates.fromString to Templates.compile

  • renamed PageRenderer to PageDecorator

  • using My.jackson() instead of JSON.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…​