Releases: helidon-io/helidon
4.0.0
We are pleased to announce the release of Helidon 4.0.0. The big news in Helidon 4.0.0 is the introduction of Helidon Níma -- a ground up webserver implementation based on JDK Project Loom virtual threads. With Helidon 4 you get the high throughput of a reactive server with the simplicity of thread-per-request style programming.
The Helidon SE API in 4.0.0 has changed significantly from Helidon 3. The use of virtual threads have enabled these APIs to change from asynchronous to blocking. This results in much simpler code that is easier to write, maintain, debug and understand. Existing Helidon SE code will require modification to run on these new APIs. For more information see the Helidon SE Upgrade Guide.
Helidon 4 supports MicroProfile 6. This means your existing Helidon MP 3.x applications will run on Helidon 4 with only minor modifications. And since Helidon’s MicroProfile server is based on the new Níma WebServer you get all the benefits of running on virtual threads. For more information see the Helidon MP Upgrade Guide.
New to Helidon? Then jump in and get started.
Java 21 is required to use Helidon 4.0.0
CHANGES
For a list of changes please see the Helidon 4.0.0 CHANGELOG.
4.0.0-RC1
This is the first RC build of Helidon 4.0.0 and is intended as a preview release only. Do not use this release in production. It is suitable only for experimentation. APIs are subject to change. Documentation is incomplete. And some functionality is experimental.
The big news in Helidon 4.0.0 is the introduction of Helidon Nima -- a ground up webserver implementation based on JDK Project Loom virtual threads. With Helidon 4 you get the high throughput of a reactive server with the simplicity of thread-per-request style programming.
Java 21 is required to use Helidon 4.0.0-RC1.
Notable Changes
- Major refactoring of APIs is complete.
- HTTP/2 support is complete and in general WebServer and WebClient are feature complete
CHANGES
For a full list of changes please see 4.0.0-RC1 CHANGELOG
4.0.0-M2
This is the second Milestone build of Helidon 4.0.0 and is intended as a preview release only. Do not use this release in production. It is suitable only for experimentation. APIs are subject to change. Documentation is incomplete. And some functionality is experimental.
The big news in Helidon 4.0.0 is the introduction of Helidon Nima -- a ground up webserver implementation based on JDK Project Loom virtual threads. With Helidon 4 you get the high throughput of a reactive server with the simplicity of thread-per-request style programming.
Java 21 is required to use Helidon 4.0.0-M2.
Notable Changes
- Java 21 is required for 4.0.0-M2
- Finish integration of Níma WebServer into Helidon 4. This means that the
nima
Java package has been assimilated into the base Helidon packages. - Helidon SE apis are significantly refactored to optimize imperative/blocking use cases.
- Numerous enhancements to WebServer and WebClient to achieve feature parity with Helidon 3.
The above is work-in-progress. There are still some gaps, and APIs are subject to change.
CHANGES
For a full list of changes please see 4.0.0-M2 CHANGELOG
2.6.3
This is a bugfix release of Helidon. It is recommended for all users of Helidon 2.
CHANGES
- Config: Fix SeConfig.asMap to not truncate keys 7493
- OCI: Make OciMetricsDataTest.beforeEach non private 7332
- Security: Fix get in evictable cache, as it did not update last accessed timestamp 7465
- Security: Fix google-login behind proxy 7473
- Security: JWK signature now follows P1363 pair format 7197
- Security: Security context not overridden 7511
- WebServer Replace deprecated socket(String) on namedSocket(String) from ServerConfiguration 7325
- WebServer: Correctly handle IPv6 addresses for requested URI. 7479
- WebServer: fix out of order chunk 7460
- Dependencies: Upgrade EclipseLink and ByteBuddy for Java 21 7495
- Dependencies: Upgrade grpc-java to 1.57.1 and remove repackaging of io.grpc 7300
- Dependencies: upgrade okio to 3.4.0 7259
- Docs: fix various issues 7526
- Examples: Add Docker and Kubernetes files to bare-* and database-* (2.x) 7290
- Examples: Refactor TODO app examples to not use NodeJS/NPM 7467
- Examples: Remove license from generated files 7233 7250
- Examples: Use JSON-B instead of JSON-P in MP quickstarts 7523
4.0.0-M1
This is the first Milestone build of Helidon 4.0.0 and is intended as a preview release only. Do not use this release in production. It is suitable only for experimentation. APIs are subject to change. Documentation is incomplete. And some functionality is experimental and not fully tested.
The big news in Helidon 4.0.0 is the introduction of Helidon Nima -- a ground up webserver implementation based on JDK Project Loom virtual threads.
Java 20 is required to use Helidon 4.0.0-M1.
Any easy way to get started with Helidon 4.0.0-M1 is using the helidon CLI
helidon init --version 4.0.0-M1
Notable Changes
- Removed the Helidon Reactive WebServer and WebClient that were based on Netty as we fully commit to new implementations based on virtual threads that have a blocking style API (Project Níma).
- Converted other modules with reactive APIs to blocking style APIs. The
io.helidon.common.reactive
APIs will stay as general purpose reactive utilities and operators - Introduced Helidon Injection, a deterministic, source-code-first, compile time injection framework
- Upgraded MicroProfile support to MicroProfile 6 and Jakarta 10 Core Profile running on the Níma WebServer
- Started adoption of Helidon Builders, a builder code generation framework
The above is work-in-progress. There are still missing features, and APIs are undergoing change. For example
the Grpc implementation is limited and MicroProfile Grpc support is temporarily absent.
2.6.2
This is a bugfix release of Helidon. It is recommended for all users of Helidon 2.
CHANGES
- WebServer: Response should not be chunked if there is no entity 6916
- WebServer: Avoid reflecting back user data coming from exception messages. 6981
- Dependencies: Upgrade graphql to 18.6 6975 6939
- Dependencies: Upgrade jackson to 2.15.2 7126
- Dependencies: Upgrade netty, grpc, guava, snappy-java and use slim neo4j driver 7085
- Dependencies: Upgrade to Jersey 2.40 7150
- Docs: wls-helidon integration for 2.x 6946
- Test: CipherSuiteTest intermittent failure 6948
- Test: Use Hamcrest assertions instead of JUnit in integrations/cdi/jpa-cdi- 5252
3.2.2
This is a bugfix release of Helidon and is recommended for all users of Helidon 3. Helidon 3 requires Java 17 or newer.
- Config: Filter complex environment properties configuration 6994
- DB: Update serial config for ojdbc driver 7116
- JWT: Security propagation is now disabled with not configured 6806
- LRA: Fix LRA Logging 6733
- LRA: LRA coordinator docker fix 6725
- Messaging: 6847 WLS JMS connector doesn't support named factory bean 6922
- Metrics: Improved performance of metric lookups in MetricProducer 6842
- Metrics: Remove metrics app registry clear-out code from metrics extension; add doc 6956
- MicroProfile: Support for injection of ServerRequest and ServerResponse also via CDI 6798
- MultiPart: Avoid calling MimeParser.offer with empty buffers 6898
- MultiPart: MultiPart Builder improvements 6900
- Tracing: Add support for multiple baggage items 7022
- Tracing: Fix OpenTracingSpan Baggage propagation issue 6987
- Tracing: Make Jaeger Tracer OpenTelemetry Agent aware. 6537
- Tracing: Make Zipkin baggage aware 7004
- Tracing: Move tracer tags to process 7027
- WebServer: Avoid reflecting back user data coming from exception messages 6988
- WebServer: Fix websocket close event propagation on unclean disconnect 7013
- WebServer: Make ByteBufferDataChunk.isReleased and ByteBufDataChunk.isReleased thread-safe 6899
- WebServer: Release Netty ByteBuf after it is consumed by Tyrus 7042
- WebServer: Reset channel auto-read config before upgrading websocket connection 7050
- Dependencies: Integrate build tools 3.0.5 6903
- Dependencies: Upgrade Jackson to 2.15.2 7124
- Dependencies: Upgrade graphql to 18.6 6974
- Dependencies: Upgrade grpc, guava, netty, snappy-java, use slim neo4j driver 7057
- Dependencies: Upgrade maven-dependency-plugin to 3.6.0 6912
- Dependencies: upgrade Weld 6794
- Docs: Documentation enhancements for WebClient 6736
- Docs: Draft of the integration doc for 3.x 6864
- Docs: Fix table formatting 6821
- Examples: Fix params of ExampleObject annotations in examples (#6040) 6782
- Test: 6524 Intermittent watermark test fix 6835
- Test: Add target(ElementType.METHOD) for annotation mptest 6490
- Test: CipherSuiteTest intermittent failure 6949
2.6.1
This is a bugfix release of Helidon. It is recommended for all users of Helidon 2.
CHANGES
- LRA: Fix LRA logging 6746
- LRA: LRA coordinator docker fix 6726
- Media: Avoid calling MimeParser.offer with empty buffers 6851
- Media: MultiPart Builder improvements 6853
- Media: WritableMultiPart create methods fixed 6411
- Metrics: Improved performance of metric lookups in MetricProducer 6875
- Security: OIDC query params backport 6410
- Security: gRPC Unauthenticated status code fix 6880
- Tracing: Support for unordered scope closings in JaegerScopeManager 6239
- WebClient: Add option to disable DNS Resolver for WebClient. 6868
- WebClient: Proxy now properly selects proxy settings from system properties 6879
- WebServer: 6524 Intermittent watermark test fix 6836
- WebServer: Update ByteBufferDataChunk.isReleased and ByteBufDataChunk.isReleased to use AtomicBoolean 6846
- WebServer: Use checkNested(Throwable) for req.next(Throwable) 6704
- Build: Create Github Action for helidon-2.x branch 6521
- Dependencies: Kafka bump up 2.8.1 > 3.4.0 6707
- Dependencies: Update grpc-java to version 1.54.1 6715
- Dependencies: Update jaeger-client to 1.8.1 6777
- Dependencies: Upgrade Netty to 4.1.90.Final and use Netty BOM for version management 6532
- Dependencies: Upgrade Weld #6575 6805
- Dependencies: Upgrade eclipselink to 2.7.12 and hibernate to 5.6.15 6513
- Dependencies: Upgrade graphql to 17.5 6534
- Dependencies: Upgrade jersey to 2.39.1 6488
- Dependencies: Upgrade oci sdk to 2.60.1 6694
- Docs: Truncate example token in README so it is not valid 6780
- Docs: Update documentation of composite provider flag. (#6597) 6636
- Docs: Updated doc to reflect current support for FT thread pool properties 6616
- Tests: Add Target(ElementType.METHOD) for annotation MPTest 6350
- Tests: Fix params of @ExampleObject annotations in examples (#6785) 6786
- Tests: Use Hamcrest assertions instead of JUnit in security/providers/http-auth (#1749) 6431
- Tests: Use Hamcrest assertions instead of JUnit in tests/integration/jms (#1749) 6645
3.2.1
This is a bugfix release of Helidon and is recommended for all users of Helidon 3. Helidon 3 requires Java 17 or newer.
This release upgrades Kafka Clients from 2.8.1 to 3.4.0. If you encounter issues running against older Kafka servers or the OCI Streaming Service you might need to use the work-around documented in 6718
- FT: Switch metrics API jar scope to compile from provided 6666
- JPA: Adds an enabled flag to JpaExtension to permit subsequent refactoring and replacement 6512
- JPA: Adds more classes as part of overall JPA refactoring effort 6584
- JPA: Improving JPA pom.xml as part of overall JPA refactoring 6508
- MicroProfile: RestClient and FT intergration changes 6665
- Native image: native-image configuration for Jackson in Helidon MP. 6607
- Security: Unauthenticated status code fix 6482
- Tracing: Add baggage to Helidon Span 6692
- Tracing: Support for different propagators for Jaeger OpenTelemetry 6611
- WebClient: Add option to disable DNS Resolver for WebClient 6492
- WebClient: Proxy now properly selects proxy settings from system properties 6526
- WebServer: Fixed problem in AUTO_FLUSH backpressure strategy 6556
- WebServer: Response should not be chunked if there is no entity 6637
- WebServer: Use checkNested(Throwable) for req.next(Throwable) 6699
- Build: Use GitHub Action for helidon-3.x branch 6500
- Builds: update helidon-version-is-release in doc files when updating release to fix links 6689
- Dependencies: Kafka bump up 2.8.1 > 3.4.0 6706
- Dependencies: Update grpc-java version to 1.54.1 and clean up grpc tests 6685
- Dependencies: Upgrade graphql to 17.5 6533
- Dependencies: Upgrade hibernate to 6.1.7.Final and eclipselink asm to 9.4.0 6514
- Dependencies: upgrade netty to 4.1.90.Final 6511
- Docs: Fix Openapi links issue 6605 6678
- Docs: Update documentation of composite provider flag. (#6597) 6635
- Docs: Updated doc to reflect current support for FT thread pool properties 6621
- Examples: Add await timeout and replace thenAccept to forSingle 6558
- Examples: Create file validations 6609
- Examples: Fix Helidon Archetype generates broken projects 6721
- Examples: archetypes generating poorly formatted code 6623
- Examples: Update streaming example to use IoMulti 6604
- Test: Use Hamcrest assertions instead of JUnit 6449 6638
4.0.0-ALPHA6
This is the sixth Alpha build of Helidon 4.0.0 and is intended as a preview release only. Do not use this release in production. It is suitable only for experimentation. APIs are subject to change. Documentation is incomplete. And some functionality is experimental and not fully tested.
The big news in Helidon 4.0.0 is the introduction of Helidon Nima -- a ground up webserver implementation based on JDK Project Loom virtual threads. Helidon 4.0.0 is a major release that includes significant new features and fixes. As a major release it also includes backward incompatible API changes.
Java 20 or newer is required to use Heldon 4.0.0-ALPHA6. Also you will need to run your application with --enable-preview
.
CHANGES
- Common: Use helidon-common-config where possible/applicable 6448
- Config: Escape the key when copying a config node 6296
- Logging: Logging properties file clean up 6367
- Logging: Remove FileHandler from logging.properties 6364
- Messaging: 6303 JMS JNDI destination support 6305
- Pico: Builder define default methods 6294
- Pico: Pico and Builder Exception conventions 6525
- Pico: no arg constructor support on pico interceptors 6552
- Pico: pico runtime services 5750
- Pico: renaming pico module names and api package names 6573
- WebClient: Complete shortcut methods for all HTTP methods for the WebClient 6358
- WebClient: Forward port of DNS resolver for Webclient 6551
- WebClient: HTTP/2 Client with flow-control 6399
- WebClient: Improve ClientRequestImpl 6208
- WebServer: Add requested URI discovery support 6030
- WebServer: Added shortcut methods for registering
MediaSupport
6564 - WebServer: Capture and propagate the CCL in ThreadPerTaskExecutor 6322
- WebServer: Complete Webserver HTTP routing shortcut methods 6404
- WebServer: Do not split headers and payload into two different buffers 6491
- WebServer: Error handling removed from the filter chain 6415
- WebServer: Fix artifact ID, typo in name 6494
- WebServer: Handle zero or more spaces after commas when parsing Accept-Encoding 6380
- WebServer: Issue 5383: Added Content-Encoding header check when content encoding is disabled. 6267
- WebServer: Issue 6278: Programmatically control media providers with Nima WebServer 6412
- WebServer: Jackson media support for Níma 6432
- WebServer: Make size of header buffer independent of payload size 6475
- WebServer: Nima media support 6507
- WebServer: SSE API and implementation in Nima 6096
- WebServer: Wrap underlying output stream with a buffered one whose buffer size is configurable 6509
- WebSocket: Renamed receive() method to onMessage() in WsListener 6571
- Build: Upgrade Java to 20 GA 6474
- Dependencies: Adopt SnakeYAML 2.0; add integration tests for reactive and Nima 6535
- Dependencies: JWT-Auth upgrade to 2.1 version 6268
- Dependencies: Upgrade graphql-java to 17.5 6540
- Docs: Add new dirs and docs for Nima 4 6398
- Docs: Created Nima dir for docs 6306
- Docs: New documenation for FT in Nima 6565
- Docs: New document that describes Nima's SSE APIs 6332
- Docs: Remove claim that metrics are propagated from server to client 6361
- Examples: Add OCI MP Archetype (4.x) 6147
- Examples: Update mustache format in archetype files 6286
- Tests: Fix RC in JMS error test 6375
- Tests: JMS intermittent test fix 6392
- Tests: Re-enable tests 6359 6355 6356 6357
- Tests: TestDisabledMetrics.java in microprofile/metrics 6436
- Tests: TestExtendedKPIMetrics.java from microprofile/metrics as it i… 6437
- Tests: Update bookstore test for Nima to add jsonb and jackson media 6577
- Tests: Use Hamcrest assertions instead of JUnit in examples/todo-app (#1749) 6293 and others
- Tests: nima bookstore test 6349