What's new in Rapidoid v5.3?

The v5.3 release introduces a new way to use Rapidoid - as application container!

What's new in Rapidoid v5.3:

  • 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 app.services=welcome admin.services=center
  • new API for super-easy recursive file search by name patterns and type
  • new API for easy execution and management of (system or application) processes
    Proc.run("java", "-cp", jar, "com.example.Main").waitFor().out()
  • high-performance in-memory cache with fluent API and basic statistics
    Cache<String, Integer> lengths = Caching.of((String 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)