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)