Java steward Oracle has released v1.0 of Helidon, a collection of libraries for writing microservices in the company’s language of choice, signaling stability for production.
Since the last release, the team behind the project has mainly been busy finishing numerous API changes. Beyond that the WebServer component has been reworked to support the binding layer JSON-B and the JSON processor Jackson. Also the MicroProfile has been updated with a new version of latency and fault tolerance library Hystrix.
A look into the document detailing the API changes is very much recommended, since for example the media support has been moved to the media component on the top level, which might mean changes to dependencies and imports are in order. Also, since API methods aren’t supposed to use either set or get in their name, some have been renamed for consistency across modules.
Developers that have used the library previously might want to check security integrations, because group IDs have changed. Other changes concerning security include moving secured config to a config module, moving security annotations to the root of the security API, and several renamings in security providers to align structures.
In the Config API Config.asString() has replaced Config.value() and methods directly accessing a typed value have been removed, since their usage often lead to problems. A separate helidon-config-object-mapping module houses support for a certain kind of object mapping when using Config.as(Class). Methods to use a config node with default values, suppliers of config nodes, optional values, suppliers of optionals, etc. are now in ConfigValue and Config offers users a GenericType to convert a config node.
Bundles have been moved into a separate module as well, while the tracer is now abstracted through a TracerBuilder API and a TracerProvider interface. Integrations with tracers such as Zipkin can now be found in separated modules. Factory methods that mainly created new instances have mostly been renamed to create (e.g. ServerConfiguration.create()), and support for Prometheus as well as helidon-metrics-se can now be found at the root level module metrics.
Helidon can be found at GitHub, where its code is licensed under the Apache License 2.0. It supports a MicroProfile as well as a functional style API – both produce applications that are Java SE programs. Similar projects in the Java ecosystem include Javalin, Micronaut, Thorntail and Open Liberty.
With 1.0 done, the Helidon team now wants to bring on learning materials to help with the adoption of its project. In terms of the actual library however they are now working on implementing the next MicroProfile versions and support for the GraalVM.