Skip to content

Latest commit

 

History

History
1193 lines (1042 loc) · 113 KB

CHANGELOG.md

File metadata and controls

1193 lines (1042 loc) · 113 KB

Changelog

All notable changes to this project will be documented in this file.

This project adheres to Semantic Versioning.

For Helidon 3.x releases please see Helidon 3.x CHANGELOG.md

For Helidon 2.x releases please see Helidon 2.x CHANGELOG.md

For Helidon 1.x releases please see Helidon 1.x CHANGELOG.md

This release contains important bugfixes and ehancements and is recommended for all users of Helidon 4.

Java 21 is required to use Helidon 4.0.8.

CHANGES

  • Builders: Generated builders honor service discovery from copied instance 8648
  • Common: Properly handles an empty input stream in GrowingBufferData 8694
  • DBClient: Closeable jdbc pool 8571
  • DBClient: Remove unnecessary comments 8658
  • Datasource: Addresses a shortcoming of the UCP pool creation logic in certain test scenarios 8642
  • Health: Preserve stability in details JSON output 8697
  • OCI: Fixes bug in OkeWorkloadIdentityAdpSupplier.available() method 8689
  • OCI: Retires dependency of ...cdi.OciExtension on ...runtime.OciExtension 8486
  • OIDC: double outbound fix 8680
  • OIDC: original uri resolving query fix 8701
  • Tracing: Clear default propagator when one is explicitly added 8695
  • Tracing: Support span event listeners 8619
  • WebClient: Allows transition from HEADERS to END in HTTP2 client stream 8702
  • WebClient: Client header duplication fixed 8628
  • WebClient: WsClient accept Connection header with upgrade value lowercase 8675
  • WebServer: Add shutdown handler to control shutdown sequence in a deterministic … 8684
  • WebServer: ErrorHandlers class swallows exception object if response can't be reset 8634
  • WebServer: Proper handling of invalid Accept types 8669
  • WebServer: Use delegation instead of inheritance from BufferedOutputStream 8662
  • Dependencies: Remove dependency on jakarta.activation-api as no longer needed 8650
  • Dependencies: Upgrade kafka-clients to 3.6.2 8665
  • Deprecation: Add deprecation to helidon-inject modules in prep for service registry 8678
  • Docs: Fix wrong description for bean validation annotations (#8505) 8556
  • Docs: Move example WebClient code into a snippet 8699
  • Examples: Archetype - Add intellij configuration file for MP projects 8609
  • Examples: Archetype - Implement MP JSON and metrics combination 8629
  • Tests: Remove unused private methods from HelloWorldAsyncResponseWithRestRequestTest 8624

This release contains important bugfixes and ehancements and is recommended for all users of Helidon 4.

Java 21 is required to use Helidon 4.0.7.

CHANGES

  • Builders: Avoid using replicated default values for Lists when creating from builder or instance 8428
  • CORS: Properly handle opaque origin ("null") in CORS processing 8537
  • JAX-RS: Fix failure with input stream obtained more than once for post with more than one JAX-RS app 8558
  • Metrics: Add unwrap support to metrics builders 8588
  • Observability: Observers now inherit weight of the ObserveFeature. 8554
  • Security: Disabled OidcFeature no longer throws an NPE. 8520
  • Security: If there is no configuration of oidc provider, it is considered disabled 8603
  • Security: Support for disabling security providers through configuration. 8521
  • TLS: Fixed method that compares SSLParameters for equality 8570
  • Tracing: Fix baggage propagation from current active span 8512
  • Tracing: Properly return Optional.empty() for current span if there is no current OTel span 8583
  • WebServer: Fix static content sending 304 with entity. 8599
  • WebServer: Make HttpRouting an interface 8523
  • WebServer: Validate that header has at least one value when list is used. 8489
  • Build: Add version check to release script 8481
  • Build: Upgrade upload-artifact to v4 8610
  • Dependencies: Integrate Helidon Build Tools v4.0.6 8476
  • Dependencies: Upgrade netty to 4.1.108.Final 8532
  • Dependencies: Upgrade oci-sdk to 3.39.0 8611
  • Docs: Add MP observability page; discuss weight setting to resolve some routing conflicts 8580
  • Docs: Clarify ordinal definition of meta-config 8581
  • Docs: Fix SE Health endpoint path to match code snippet 8587
  • Docs: Fix wrong example for Config.onChange (#8607) 8608
  • Examples: Archetype - Add opens WEB to module info for multipart 8506
  • Examples: Archetype - Fix Json code duplication 8507
  • Examples: Archetype - Kubernetes uses ClusterIP instead of NodePort 8488
  • Examples: Update streaming example so it starts and downloads last uploaded file 8515
  • Examples: remove netty logging config from logging.properties 8534
  • Examples: threading example 8576
  • Tests: Avoid implementing the OCI Monitoring interface. 8474
  • Tests: Introducing a test to validate that combination of config annotations… 8491
  • Tests: Upgrade core profile tests to version 10.0.3 8606

This release contains important bugfixes and ehancements and is recommended for all users of Helidon 4.

Java 21 is required to use Helidon 4.0.6.

CHANGES

  • Builders: Fixes for problems discovered in service registry work 8403
  • Config: Config encryption improvements 8440
  • DBClient: Fix for #8344 - Incorrect SQL Type for null Parameters in JDBC Parameter Binding 8342
  • DataSource: Adds support for injecting UniversalConnectionPool instances 8378
  • DataSource: Installs a convenient default for connectionPoolName in UCPBackedDataSourceExtension when appropriate 8359
  • HTTP: Enhance Status.java with Additional Standard HTTP Status Codes 8444
  • LRA: Replace deprecated classInfo.classAnnotation(DotName) on classInfo.declaredAnnotation(DotName) 8417
  • Media: Multipart fixes (streaming, consume) 8375
  • Media: Replace deprecated MediaType.fullType() on MediaType.text() 8340
  • Metrics: More carefully handle re-creation of global meter registry 8389
  • Neo4J: Replace deprecated session.writeTransaction on session.executeWrite in Neo4jHealthCheck 8397
  • OCI: Generalize the creation of the OciMetricsSupport instance from CDI 8431
  • OIDC: OIDC hostname handling 8456
  • OIDC: OIDC updates 8387
  • OIDC: check file system support posix before setting permission 8296
  • OIDC: refresh token optionality fix 8336
  • Reactive: Replace deprecated Awaitable.await(long, TimeUnit) on Awaitable.await(Duration) 8334
  • Tracing: Add baggage API and allow access to baggage via SpanContext (as well as Span) 8320
  • Tracing: Suppress Helidon handling of OpenTelemetry annotations if OTel Java agent is present 8360
  • Tracing: Use OTel AgentDetector instead of just system property - review comments from earlier PR 8374
  • WebServer: Adds support for sending websocket CLOSE frames without a payload 8408
  • WebServer: Fix buffering of content in our Jersey integration. 8461
  • WebServer: Include requested URI config in ListenerConfig; fix config keys 8371
  • WebServer: Releasing entity count down latch even if connection is set to close. 8376
  • WebServer: Return 500 when 204 with entity is sent from routing. 8357
  • WebServer: TLS Revocation config 8425
  • WebServer: TLS peer certs performance 8316
  • Build: Upgrade GitHub actions 8442
  • Dependencies: Bump com.oracle.oci.sdk:oci-java-sdk-bom from 3.34.0 to 3.35.0 in /dependencies 8421
  • Dependencies: PostgreSQL JDBC driver updated to 42.7.2. 8413
  • Dependencies: Upgrades Oracle database libraries to version 21.9.0.0. Adds tests under datasource-ucp CDI integration. 8221
  • Docs: Externalize and compile documentation java snippets 8294
  • Docs: Replace deprecated session.readTransaction on session.executeRead 8420
  • Docs: Update context-root config documentation 8427
  • Docs: Update javadocs of Meter builders to cross reference MeterRegistry.getOrCreate() 8381
  • Docs: doc examples snippets cleanup 8439
  • Examples: Align README.md vs functionality 8380
  • Examples: Archetype - Fix sql script for oracle database 8426
  • Examples: Fix WebServer Mutual TLS example 8409
  • Examples: archetype cleanup 8445
  • Examples: examples cleanup 8433
  • Examples: generate a .gitignore files from archetype 8401
  • Tests: Also catch UncheckedIOException in test to handle broken pipes 8462
  • Tests: Fix OTel agent detector test that was polluting the JVM for later tests 8449
  • Tests: Improve examples test coverage 8338
  • Tests: Make test execution conditional to IPv6 being configured for localhost 8388
  • Tests: Replace deprecated API for configuring ObjectMapper 8395
  • Tests: Replace deprecated Multi.from(Stream) on Multi.create(Stream) 8424
  • Tests: Replace deprecated OutputStreamMultiBuilder.timeout(long,TimeUnit) on OutputStreamMultiBuilder.timeout(Duration) 8404
  • Tests: Replace deprecated java.util.Locale constructors on factory methods 8355
  • Tests: Restfull tck 3.1.5 8368
  • Tests: Updates test to handle IOException if connection was closed 8457

This release contains important bugfixes and ehancements and is recommended for all users of Helidon 4.

Java 21 is required to use Helidon 4.0.5.

CHANGES

  • Builders: Use vararg instead of optional (as a name). 8301
  • HTTP: Fixes a few problems handling character encodings in URIs 8327
  • Metrics: Remove clear-out of registries from extension; do it in TCK-only shutdown observer; update doc 8292
  • Security: OIDC improvement 8323
  • Tracing: Add null check for resource path in filter 8312
  • Tracing: Fix unwrap methods to return cast delegates rather than cast 'this' 8298
  • Tracing: Set incoming baggage from parent on Span 8303
  • Dependencies: Upgrade OCI SDK to 3.31.1 8304
  • Test: Fix KafkaSeTest on Windows 8322
  • Test: Fix CachedHandlerTest.testFsFromInMemory on Windows 8318

This release contains bugfixes and ehancements and is recommended for all users of Helidon 4. In particular this release contains a fix for issue 8250 which can occur when running previous releases of Helidon 4 on Java 21.0.2 or newer.

Java 21 is required to use Helidon 4.0.4.

CHANGES

  • JPA: Ensures that the enabled flag is honored in JpaExtension's observer methods 8235
  • Media: JSON unicode detection without UTF-32 workaround 8253
  • RestClient: TLS replace in HelidonConnector fix 8247
  • Security: Authorized set to false fix 8295
  • Security: Security propagation is now disabled with not configured 8239
  • Tracing: Guard against NPE during early invocation of Span.current() 8257
  • Tracing: Slight clean-up of recent baggage and span scope fix 8258
  • WebClient: Cleans up and simplifies logic to determine which type of IP addresses to consider 8280
  • WebClient: Http client protocol creation not honoring disabled service discovery 8284
  • WebClient: Set weight for WebClientTracing provider greater than that for WebClientSecurity provider 8274
  • WebServer: Fix for buffer data when created with an offset. 8251
  • WebServer: Some minor optimizations in WebServer 8242
  • Build: Change backport action to accept target versions for porting via checkboxes and select current issue's version from a list 8236
  • Dependencies: Upgrade Yasson to 3.0.3 8272
  • Dependencies: Upgrading to latest Tyrus 2.1.5 8278
  • Docs: broken link fix 8259
  • Docs: change WebServer.Builder to WebServerConfig.Builder. 8261
  • Docs: fix broken documentation links Part 2 8300
  • Examples: Remove unnecessary GreetingProvider from example custom liveness health check 8184
  • Tests: Add back span name test containing an explicit Application bean 8238
  • Tests: Fix vault tests 8279

This release contains bugfixes and ehancements and is recommended for all users of Helidon 4.

Java 21 is required to use Helidon 4.0.3.

CHANGES

  • Builders: Support for Map<String, String> in configured builders. 8231
  • CORS: Add a little logic to CORS config processing and significantly update the CORS doc 8212
  • CORS: Include scheme and port of origin and host in deciding whether to classify a request as CORS or not 8166
  • Metrics: Allow programmatic look-up of MetricRegistry via CDI without NPE 8210
  • Metrics: Make RegistryFactory and its getInstance and getRegistry methods public 8175
  • OCI: Fix issue for checking if app is running in an OCI instance which causes Instance Principal auth to fail 8197
  • RestClient: Prevent Helidon connector from re-encoding URI 8232
  • Security: Fixed IDCS role obtaining 8207
  • Security: OIDC id token validation and token refresh 8153
  • Security: TLS default config values 8206
  • Tracing: Add support for @SpanAttribute annotation, use entire path for REST resource span name 8216
  • Tracing: Manage scopes correctly with baggage; allow baggage to be mutable to honor the Helidon Span#baggage semantics 8225
  • WebClient: The Helidon WS client must include a Connection header 8198
  • WebClient: WebClientService duplication fix 8224
  • WebServer: Check result of Integer.parseUnsignedInt() to be non-negative 8215
  • Dependencies: Jersey 3.1.5 8174
  • Dependencies: upgrade jsonp 2.1.3 8202
  • Docs: Fix bad include in cors documentation 8220
  • Docs: Fix image sizing in SE tracing guide 8201
  • Docs: Realign SE tracing guide to code 8193
  • Docs: fix broken documentation links Part 1 8219
  • Examples: Remove references to any JDK from examples 8213

This release contains bugfixes and ehancements and is recommended for all users of Helidon 4.

Java 21 is required to use Helidon 4.0.2.

CHANGES

  • Builders: required fixes to builders and other tooling 8076
  • Metrics: Fix premature access to RegistryFactory 8118
  • Metrics: jvm uptime units 8065
  • Native image: key-utils are missing native image prop 8146
  • Scheduling: 8059 Delayed fixed rate scheduling 8075
  • Tracing: Add proper handling of content-read and content-write logs within HTTP Request tracing span 8105
  • Tracing: MP OpenTelemetry and Helidon Tracing API 8073
  • Tracing: Several fixes to tracing config 8155
  • WebClient: #8077 Client keep alive fix 8101
  • WebServer: Update server's internal state if a listener fails to start 8111
  • WebSocket: Handle WebSocket frames of longer payload 8134
  • WebSocket: Make sure a WsListener supplier is called exactly once per connection 8116
  • Build: Aggregated javadoc and docs URLs updates 8171
  • Build: Incorporate release branch name in artifact bundle name 8081
  • Dependencies: 4.x: Upgrade grpc to 1.60.0 8098
  • Dependencies: Upgrade slf4j to 2.0.9 and logback to 1.4.14 8120
  • Docs: Change doc in the wake of OpenAPI UI service reorg in 4.0 to add the services level to the config structure 8100
  • Docs: Fix health and metrics URLs. Mention health returns 204 8160
  • Docs: Remove doc for tags on content-read and content-write spans; the tags are no longer added by the code in 4.x 8112
  • Docs: Significant changes and corrections to the SE health doc 8125
  • Docs: tuning guide update 8140
  • Examples: Add missing metrics to Pokemons example 8129
  • Examples: Correct typo in MP health example 8131
  • Examples: Fix Mongo Dbclient + related example 8130
  • Examples: Fix and add test to database SE example 8097
  • Tests: Add @RequestScoped support for testing 7916
  • Tests: Add Hierarchy tests to MP Telemetry 8089
  • Tests: Avoid possible test ordering problem 8145
  • Tests: Disable failing testNonTransactionalEntityManager JPA test. 8124
  • Tests: Enable disabled TCKs 7781

This release contains bugfixes and ehancements and is recommended for all users of Helidon 4.

Java 21 is required to use Helidon 4.0.1.

Notable Changes

  • Added PROXY protocol support to Helidon WebServer
  • WebServer performance improvements
  • CorsConfig.Builder.enabled() now returns an Optional<Boolean> instead of boolean. This change was required to fix a CORS issue and we expect the user impact of this change to be minimal.

CHANGES

  • CORS: Change CorsConfig.enabled to optional and add logic to infer it 8038
  • Health: Add a new addCheck variant allowing the caller to set the health check name; add tests; revise doc 7994
  • Health: Fix nested config prefix for observer settings 8010
  • Http2: Graceful client connection close 8051
  • JPA: Adds a DialectFactory implementation to permit Hibernate to introspect database metadata properly when supporting container-mode JPA 7927
  • Metrics: Add meter type to JSON metrics metadata output 8057
  • Metrics: EOF at end of OpenMetrics output 7982
  • Metrics: Use correct config nodes for metrics settings; when using global meter registry set metrics config correctly 8008
  • MicroProfile: Update JaxRsService to reset status to 200 when nexting. 8056
  • OCI: Adds support for Provider-specializing injection points in OciExtension 8006
  • OpenAPI: Correct errors in how OpenAPI generator config settings are set 7970
  • WebServer: Fix for access-log feature. 8041
  • WebServer: GZIP encoder - properly trigger chunked enc 7977
  • WebServer: Headers on server cannot be set after entity was sent 8042
  • WebServer: Initial support for proxy protocol V1 and V2 7829
  • WebServer: Optimize single provider case 8002
  • WebServer: Re-enable TCP auto-tuning 7989
  • WebServer: Updates header type hierarchy to make HeaderValueCached not writeable 8000
  • WebServer: WS disconnect 7890
  • WebSocket: Support for longer WebSocket frames 8025
  • gRPC: Fix repeated pseudo-header field :status 7995
  • native-image: JSON-P native image 8044
  • Dependencies: Align Websocket API versions with 3.x 7950
  • Dependencies: Upgrade log4j to 2.21.1 . Use log4j-bom 7900
  • Dependencies: Upgrade parsson to 1.1.5 7958
  • Dependencies: Upgrade to mysql-connector-j 8.2.0 7988
  • Dependencies: Upgrades to Tyrus 2.1.4. 7929
  • Docs: Adds Testing section back to the menu and fix maven coordinates 7992
  • Docs: Change "Java for cloud" to "Helidon" 8046
  • Docs: Fix broken link and explicitly state MP uses Helidon WebServer 8043
  • Docs: Fix telemetry docs 8014
  • Docs: Fix tracing documentation 7962
  • Docs: Minor fixes in SE Tracing documentation 7887
  • Docs: New section describing support for the Proxy Protocol 8007
  • Docs: SSE doc maven coordinates 7891
  • Docs: Update Neo4j module to generated config 7997
  • Docs: Upgrade gradle guide and examples 7910
  • Docs: WebServer fix req.next typo 8053
  • Docs: fix Security http basic authentication property 7987
  • Examples: Archetype - Fix the wrong metrics endpoint for Helidon SE 8020
  • Examples: Archetype - Generated projects does not contains empty application.yaml 7942
  • Examples: Corrects a case typo in the custom MP archetype that results in an invalid property being installed on UCP 7924
  • Examples: Use H2 in-memory in SE archetype 7877
  • Examples: Use MP OpenTelemetry instead of OpenTracing in archetypes 7993
  • Examples: archetype fix MP security 7947
  • Examples: backport native-image fixes + support -Dnative.image.skip and -Dnative.image.buildStatic 7972
  • Examples: dockerFiles in examples 7909
  • Tests: Enable tests that were disabled during renaming to jakarta packages work 7949

Thanks to @lilac for their contributions.

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

  • DBClient: Fix DbClient JSON mapping 7844
  • DBClient: UriQueryEmpty + NoSuchElementException 7869
  • Http: Remove commented-out code 7868
  • Metrics: Restore percentile and bucket data to JSON metrics output 7849
  • Build: remove Jenkinsfile 7839
  • Dependencies: Update build-tools to 4.0.0 7872
  • Dependencies: Upgrade kafka-clients to 3.6.0 7833
  • Docs: AOT update, remove aot site, update guides for native image 7859
  • Docs: Config documentation update 7814
  • Docs: Final updates intros 7864
  • Docs: Health doc updates 7828
  • Docs: JWT Auth configuration properties updated 7816
  • Docs: Messaging doc update 7837
  • Docs: Metrics doc update 7851
  • Docs: Migration guides 7715
  • Docs: Observability endpoints documentation 7768
  • Docs: Refreshes persistence.adoc for Helidon 4.x 7834
  • Docs: Tracing documentation 7813
  • Docs: Update dbclient docs 7874
  • Docs: Update Helidon Webclient Guide documentation 7847
  • Docs: Update to WebServer documentation for Helidon 4 7817
  • Docs: Update to gRPC documentation for Helidon 4 7809
  • Docs: Update webclient documentation 7812
  • Docs: Updated OpenAPI and OpenAPI UI doc for 4.0 7823
  • Docs: Updates for MP upgrade guide 7863
  • Docs: fix github links, microprofile version, SE upgrade guide 7871
  • Docs: json metadata fix 7858
  • Docs: webclient doc part2 4.x 7845
  • Examples: Archetype fix application yaml test and some unused import 7860
  • Examples: Fix Archetype native-image.properties path 7846
  • Examples: Fix MP quickstart native image build 7826
  • Examples: Fix java.lang.ClassNotFoundException: io.helidon.logging.jul.HelidonConsoleHandler7866
  • Examples: Update archetypes and dbclient examples 7873
  • Tests: Removes two disabled tests in tests/integration/security/path-params per direction 7832

This is the second 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 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.

Java 21 is required to use Helidon 4.0.0-RC2.

CHANGES

  • Config: Replace usage of Priority with Weight in helidon-config 7776
  • JPA: Fixes a jar-only URL resolution bug 7748
  • JPA: Remove exclusion of jandex dependency now that hibernate has been upgraded 7778
  • JPA: Switches default JPA CDI portable extension to PersistenceExtension from JpaExtension 7719
  • Logging: Fix SLF4J binding for annotation processors 7706
  • Metrics: Reinstate exemplar support 7760
  • Native-image: Adjusts paths to native-image.properties files in two projects to conform to the native-maven-plugin requirements as reported by the plugin 7746
  • Native-image: Native image update 7711
  • OpenAPI: Add openapi-ui submodule directory to the integrations module list 7766
  • OpenAPI: Renamed openapi/openapi-ui back to integrations/openapi-ui 7761
  • Remove preview from features that are now considered production 7688
  • TLS: Partial fix for issue #7698 - TlsManager support for client-side 7699
  • Tracing: Decrease DEFAULT_SCHEDULE_DELAY time for JaegerTracerBuilder 7726
  • Tracing: Migrate opentracing to Helidon Tracing 7708
  • WebServer: Empty path 7770
  • WebServer: Fix small mistakes 7757
  • WebServer: HTTP2 concurrent streams check 7697
  • WebServer: Move SSL handshake logic from listener thread to connection thread 7764
  • WebServer: Update HttpRules API to not have varargs with generics 7687
  • WebServer: named routing 7705
  • WebServer: Server Features 7777
  • Build: Fix build noise 7740
  • Build: Java 21 follow up 7732
  • Build: release updates 7682
  • Dependencies: Upgrade ASM version used by plugins to 9.5 7677
  • Dependencies: Upgrade Weld and ClassFileWriter 7720
  • Dependencies: Upgrade okhttp3. Use OCI SDK BOM 7712
  • Dependencies: Upgrade parsson to 1.1.3 7691
  • Dependencies: Upgrade to Microstream 08.01.01-MS-GA and other minor things 7752
  • Dependencies: Upgrades Hibernate to version 6.3.1.Final 7742
  • Dependencies: Upgrades ojdbc8 to 21.4.0.0 and fixes JAXP parser conflict 7762
  • Deprecations: Remove older deprecated methods and types. 7728
  • Docs: Add Helidon Connector to sitegen.yaml 7767
  • Docs: global config 7681
  • Docs: Fix occurences of reactive in the docs 7684
  • Docs: Fixes user-reported typo in persistence guide 7750
  • Docs: Initial documentation for the new Helidon connector. 7641
  • Docs: Makes it more clear in documentation that persistence.xml files are application-level concerns, not component-level concerns 7771
  • Docs: Reactive streams doc alignment #6458 7723
  • Docs: Update maven, gradle, jlink, native-image guides 7704
  • Docs: updates to the general doc 7673
  • Examples: Fix several issue in archetype and add native-image.properties to generated projects 7731
  • Examples: Remove unnecessary metrics dependencies MP quickstart archetype 7710
  • Examples: Update quickstart examples to use microprofile-core bundle 7772
  • Examples: Verify Starter with 4.x archetypes 7775
  • Tests: Move webserver/benchmark/jmh to tests/benchmark/jmh 7690
  • Tests: Temporarily disable unit test in example due to intermittent pipeline failures 7765

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 complete and other WebServer and WebClient features complete.

CHANGES

  • CORS: Use requested URI info in CORS decision-making 7585
  • Config: Deprecate support for etcd v2 7623
  • DBClient: Fixed DbClient H2 tests. 7639
  • Inject: Mark inject processor as preview (warning when executed). 7590
  • Integrations: Removes Jedis integration to reduce technical debt 7654
  • JPA: Adds zero-argument non-private constructors to NonTransactionalEntityManager and ExtendedEntityManager 7561
  • Metrics: Make SE metrics default scope application instead of nothing 7666
  • Metrics: Metrics followup 7547
  • OCI: Adjusts CDI OciExtension to use runtime OciExtension for certain authentication tasks 7373
  • OCI: Introduces OciSecretsMpMetaConfigProvider, which adapts OciSecretsConfigSourceProvider to the MpMetaConfigProvider contract 7520
  • OCI: OciExtension refinements 7563
  • Observability: metrics and openapi endpoints should be authorized by default 7572
  • Observability: update APIs 7625
  • OpenAPI: OpenAPI updates 7669
  • RestClient: Modifies Helidon Connector to use WebClient and also support HTTP/2 7582
  • Security: TargetKeys Map changed to ConcurrentHashMap 7603
  • Tracing: Move Opentracing to Helidon Tracing API 7678
  • WebClient: HTTP/2 Client 100 continue 7604
  • WebClient: HTTP/2.0 Client trailers support #6544 7516
  • WebClient: Remove prefetch #7663 7676
  • WebClient: double-slash URI issue #7474 7657
  • WebClient: Http2 OutputStream redirect support 7637
  • WebServer: HTTP/2 server 100-continue 7633
  • WebServer: Introducing request and response stream filters to server. 7608
  • WebServer: Refactor Http class 7570
  • WebServer: Server side trailers #7647 7649
  • Build: Checkstyle suppression in code 7588
  • Build: Update workflows to Oracle JDK 21 LTS 7653
  • Build: release workflow 7569
  • Dependencies: Updates version of Micronaut libraries 7553
  • Dependencies: Upgrade Neo4j to v.5 7636
  • Dependencies: Upgrade io.dropwizard.metrics:metrics-core to 4.1.36 7624
  • Dependencies: Upgrade jboss logging to 3.5.3.Final 7595
  • Dependencies: Upgrade jgit to 6.7.0 7586
  • Dependencies: Upgrade mongodb driver to 4.10.2 7651
  • Dependencies: Upgrade zipkin-sender-urlconnection to 2.16.4 7621
  • Dependencies: Upgrades Narayana to version 7.0.0.Final 7662
  • Docs: 4x overview and general intro doc updates 7571
  • Docs: Config metadata docs 7581
  • Docs: SE Diffs 3.x to Main .adoc 7515
  • Examples: Move archetype metrics under GreetService 7612
  • Examples: Refactor archetype metrics 7556
  • Examples: Update examples to use Config.global(config) 7655
  • Examples: demonstrate proper use of GlobalConfig in archetypes 7664
  • Examples: fix archetypes code formatting 7670
  • Tests: Allowed cipher suite test added 7587
  • Tests: Fix MutualTlsTest and related issues 7622
  • Tests: Intermittent OciCertificatesTlsManagerTest fix 7607
  • Tests: MP testing refactoring 7548
  • Tests: Re-enables microprofile/server/ServerSseTest.java 7626
  • Tests: Restore test of model reader and filter 7579

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.

Any easy way to get started with Helidon 4.0.0-M2 is using the helidon CLI

helidon init --version 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.
  • 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

  • WebSocket: Added support for WS endpoints in application scope 7340
  • WebServer: Support Http.Header.X_HELIDON_CN 7345
  • WebServer: Resource limits 7302
  • WebServer: Media Context and streaming 7396
  • WebServer: Http2Connection should ignore a max concurrent streams setting of zero from the client 7346
  • WebServer: Additional HTTP status codes. 7408
  • WebServer: Add configuration support for EXECUTOR_SHUTDOWN_MILLIS 6955
  • WebClient: include proxy setting for relative uris 4.x 7425
  • WebClient: Webclient redesign 7255
  • WebClient: WebClient Follow Up 7341
  • WebClient: Support for proxy config properties in client and request 7190
  • WebClient: Output stream redirect support 7366
  • WebClient: HTTP Proxy TODOs 7287
  • WebClient: Fixed ClientUri to extract query params when created from a URI 7297
  • WebClient: Create a different config setting for inbound and outbound HTTP1 header 7362
  • WebClient: ConcurrentModificationException in Http2ClientConnection.writeWindowsUpdate 7395
  • WebClient: Change default to SYSTEM proxy in WebClient 7292
  • WebClient: Cached connection close detection 7398
  • WebClient: 7301 WebClient - Local connection cache switch 7353
  • Uplevel Nima 7361
  • Tracing: Refactor to Tracing providers 7264
  • Serialization: Make sure JEP-290 is enforced in Níma 7334
  • Security: Unified constants for configuring outbound id and secret. 7415
  • Security: Tenant now uses WebClientSecurity module 7394
  • Security: Make check for audience claim in access token optional in OIDC provider 6959
  • OCI: Global Config Source 7352
  • OCI: Follow-up items for OCI Global Config 7387
  • OCI: Enables OIDC integration tests and fixes a couple of problems in WebClient 7390
  • OCI: Adds OciSecretsConfigSourceProvider.java 7391
  • Media: Header and Media type API consistency 7351
  • Inject: LoomServer parallel listener start 7200
  • Inject: Interceptor creator now uses TypeName (and related changes) 7420
  • gRPC: Support creating routes from standard gRPC bindable services 7384
  • gRPC: Fix gRPC to calculate the correct class name for method request and response types 7228
  • DBClient: Issue #7187 - Blocking DBClient Part 2 7231
  • DBClient: #7230 - JDBC type specific setters based on EclipseLink 7246
  • Config: Use common config 7336
  • Common: Using SE flavor instead of Nima 7338
  • Common: Remove public constructors from production types. 7335
  • Common: Remove non-virtual executor support 7324
  • Common: Remove VirtualExecutorUtil.java 7263
  • Common: Encode all characters that should be encoded in URI, including % itself. 7314
  • Builders: Support Supplier in builder setters for types that have a builder. 7284
  • Builders: Supplier in builder 7402
  • Builders: Provider support in builders 7365
  • Builders: Prototype builder update 7281
  • Builders: Fix references to interceptor. Now using decorator for builders. 7405
  • Builders: Class model and builder generation reworked 7256
  • Builders: Allowed values are now checked when validating a builder. 7400
  • Tests: TCK Tracking: Jakarta EE 10 Core Profile #6799 6885
  • Tests: Make OciMetricsDataTest.beforeEach public 7333
  • Tests: Fix tests disabled during WebClient redesign #7286 7299
  • Tests: Fix intermittently failing test. 7379
  • Test: Helidon Arquillian module should only depend on MP core 7440
  • Examples: Enable disabled pokemon jpa/hibernate example test 7436
  • Examples: Archetype: remove unused file 7253
  • Examples: Archetype: Feature parity with 3.x + renaming from nima to se 7409
  • Examples: Archetype : generate module-info file 7232
  • Examples: Add app.yaml to quickstart 7217
  • Docs: javadocs: update external cross reference links and offline package-lists 7401
  • Docs: Update prereqs in Helidon Injection README 7326
  • Docs: Update development guidelines to include naming rules for builder types. 7148
  • Docs: PR replaces previous Nima removal PR 7347
  • Docs: Fix openapi links 7431
  • Docs: Add white paper to README.MD 7378
  • Dependencies: upgrade microprofile-openapi-api to 3.1.1 and add direct dependency 7453
  • Dependencies: Upgrade to OCI SDK 3.12.1 (#7163) 7211
  • Dependencies: Upgrade okio and oci-sdk 7262
  • Dependencies: Upgrade microprofile-health to 4.0.1 and microprofile-lra-api to 2.0 7454
  • Dependencies: Upgrade microprofile config to 3.0.3 7434
  • Dependencies: Upgrade grpc-java to 1.57.1 and remove repackaging of io.grpc 7304
  • Dependencies: Upgrade eclipselink to 4.0.2 7435
  • Dependencies: Upgrade Jersey to 3.1.3 7258
  • Dependencies: JMS bumpup 3.0 -> 3.1 7380
  • Dependencies: Force upgrade of bytebuddy to 1.14.6 to support Java 21. 7438
  • Build: remove license headers in archetype generated files 7236
  • Build: Use Helidon copyright module for generated code 7192
  • Build: Java 21 7222
  • Build: Integrate build tools 4.0.0-M1 7330
  • Build: Address maven 3.9.2 plugin issues 7214
  • Build: Add -proc:full to javac to explicitly enable annotation processing 7452

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 Heldon 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.

CHANGES

  • Config: Config with injection 7080
  • Config: Generate config metadata fix. 7145
  • GraphQL: Update GraphQLServiceTest to use @ServerTest and Http1Client 6795
  • Grpc: Support for grpc proto packages. 7158
  • Inject: All Pico services should default to a lesser than DEFAULT_WEIGHT 6590
  • Inject: Allow empty list injection 7160
  • Inject: Annotation for Named that accepts a class 6779
  • Inject: Attempt to do type regeneration turned into an error condition instead of being logged 7155
  • Inject: Constructors are now intercepted with appropriate interceptors only. 6648
  • Inject: Custom Annotation Processor Refinements 6883
  • Inject: Fix pico lookup method returning from generic criteria 6582
  • Inject: Fixes incremental compilation for Pico services and running unit tests from IDE 6863
  • Inject: Inheritance in DefaulQualifierAndValue 6639
  • Inject: Interceptor Redo 6658
  • Inject: Issue 6634 fix - interceptor args 6640
  • Inject: Pico ConfiguredBy services with abstract base 6589
  • Inject: Pico anno processor rewrite 6705
  • Inject: Pico interceptor arguments are now correctly handled. 6642
  • Inject: Preparation for Pico Extensibility Enhancements 6936
  • Inject: Rename Pico -> Inject / Injection 7174 6682
  • Inject: TypeInfo and TypedElementName API name tuning 6841
  • Inject: module-info parsing 7156
  • LRA: Fix LRA Logging 6734
  • LRA: LRA coordinator docker fix 6727
  • LRA: expunge reactive webclient 7112
  • MP Config: convertToHelidon exception fix 6834
  • MP Metrics: MP Metrics 5.0 support for 4.x 7139
  • MP RestClient: Helidon connector configuration and redirects 7169
  • MP RestClient: Initial implementation of Helidon connector for Jakarta REST client 7039
  • MP Server: Support for injection of ServerRequest and ServerResponse also via CDI 6784
  • MP Server: Helidon main class 7136
  • MP Telemetry: MicroProfile Telemetry Support 6493
  • MP Telemetry: cleanup dependencies 6815
  • Media: Fix TODO to handle close call on entity 6501
  • Media: Move SnakeYAML log suppression to slightly earlier in the code path 6661
  • Messaging: WLS JMS connector doesn't support named factory bean 6923
  • Metrics: Convert PrometheusSupport from a reactive WebServer Service to a HelidonFeatureSupport 6837
  • Metrics: Fix path handling for metrics observe provider 7178
  • Metrics: MicroMeter contains Nima and SE integration 7090
  • Neo4j: Alternative implementation of Neo4jHealthCheck based on io.helidon.heath.HealthCheck 6850
  • Neo4j: Nima support 6909
  • OCI: Pico extensibility support for the OCI SDK 6982
  • OpenAPI 3.1 support for 4.x 6954
  • OpenAPI: OpenApiFeature instead of SeOpenApiFeature 7103
  • Reactive removal: Module helidon-reactive-webclient-jaxrs is no longer needed 6816
  • Reactive removal: Remove grpc and MP grpc based on Netty grpc from Helidon 7069
  • Reactive removal: common/rest and vault 7033
  • Reactive removal: Remove reactive module and netty and any additional cleanup 7165
  • Security: rework to synchronous 6230
  • Telemetry: Remove Microprofile dependencies from SE Telemetry 6998
  • Tracing: Add Baggage to Helidon Span 6581
  • Tracing: Support for different propagators for Jaeger OpenTelemetry integration. 6586
  • WebClient: Add header and config builder method to webclient builder 7056
  • WebClient: Add relativeUris configuration to determine if relative or absolute URI will be used in the request 6952
  • WebClient: Add static factory methods to Http1Client 7119
  • WebClient: Additional methods for Http1ClientRequest 6983
  • WebClient: Keep alive is now configurable per request 7122
  • WebClient: Shortcuts for media support 6951
  • WebClient: Skip uri encoding feature 6910
  • WebClient: Support for lastEndpointUri() in Webclient responses 7113
  • WebClient: Use current context instead of creating new one in ClientRequest 7014
  • WebClient: Validate http request and response headers when using the webclient 6515
  • WebClient: WebClient Proxy Support 6441
  • WebClient: configuration for timeouts and keepAlive 6971
  • WebClient: read timeout per request 7135
  • WebClient: redirect support 6929
  • WebClient: security propagation module 7109
  • WebClient: services for Níma client (HTTP/1 only for now). 6752
  • WebClient: should have a mode that is resilient to bad media/content types 6999
  • WebClient: support for properties 7028
  • WebServer: Avoid reflecting back user data in exception messages 6990
  • WebServer: Convenient method status(int) in ServerResponse. 6833
  • WebServer: HTTP/2 header continuation 6907
  • WebServer: Rename ServerConfig to WebServerConfig 7108
  • WebServer: Set running flag to false in shutdownhook 6428
  • WebServer: TLS reloading fixed 7140
  • WebServer: Writing to closed socket with a silent error 6887
  • Builders: updates 6710
  • Builders: builder toString method update 7142
  • Builders: support lowercase for modifiers names 6844
  • Builders: ConfigBean not resolving config correctly 6652
  • Builders: Default prefixed builder types renamed to be suffixed 6796
  • Builders: Document assumptions about types of current processing round 7072
  • Builders: Fix error messages in validation task of builder processor. 7070
  • Builders: Follow up changes for builders PR 7074
  • Builders: GeneratedConfigBean should be easily available from Config-driven-services 6680
  • Builders: New config builders 7008
  • Builders: Optional Builder methods should default to package private 6593
  • Builders: Pico cfg driven with additional ctor injection points fix 6612
  • Builders: TypeInfo and Builder Refinements 6729
  • Build: Change provided and optional to just optional - iteration 1 (#6495) 6503
  • Build: Change provided and optional to just optional - iteration 2 (#6495) 6650
  • Build: Fixed parallel build. 7111
  • Build: Switch metrics API jar scope to compile from provided 6677
  • Dependencies: Kafka bump up 2.8.1 > 3.4.0 6708
  • Dependencies: Update grpc-java to version 1.54.1 6693
  • Dependencies: Upgrade Jakarta Annotations to 2.1.1 6595
  • Dependencies: Upgrade Jakarta EL to 5.0.1 6603
  • Dependencies: Upgrade Jakarta jsonb to 3.0.0 and jsonp to 2.1.1 6602
  • Dependencies: Upgrade graphql-java to 18.x 6965
  • Dependencies: Upgrade jersey to 3.1.2 7147
  • Dependencies: Upgrade to WebSocket 2.1 API 6617
  • Dependencies: Upgrades JPA to 3.1 6684
  • Dependencies: dependency upgrades: grpc, guava, jackson, netty 7162
  • Docs: MP Telemetry Documentation 6772
  • Docs: Some minor tweaks to the REST documentation 6686
  • Docs: Update documentation of composite provider flag. 6597
  • Docs: improve pico integration docs for oci sdk 7040
  • Docs: fix links for openapi in 4x 6688
  • Docs: New document describing the client and server WebSocket APIs in Nima 6578
  • Examples: Add metrics to quickstarts 7114
  • Examples: Creates a clean set of Pico examples 6800
  • Examples: Create file validations 6608
  • Examples: Fix Helidon Archetype generates broken projects 6722
  • Examples: Fix archetype build 7177
  • Examples: Fix params of @ExampleObject annotations in examples (#6791) 6792
  • Examples: Fix post merge compile error in examples.micrometer.se.MainTest 7115
  • Examples: MP Telemetry examples 6813
  • Examples: Nima custom archetype 6327
  • Examples: OCI examples remove reactive API 6969
  • Examples: Pico example pre req changes 6801
  • Examples: Port of static content example to Nima webserver 6778
  • Examples: Porting of example to Nima and removal of reactive dependencies 6839
  • Examples: Refactor examples/nima/media into examples/media/multipart 6812
  • Examples: Relocate Pico Examples 6783
  • Examples: Removed examples/webserver/jersey 6877
  • Examples: SE/Reactive archetype removal 6671
  • Examples: Temporarily remove examples generated by OpenAPITools 6667
  • Examples: Update examples/graphql/basics to use Nima 6854
  • Examples: Update examples/logging to use Nima 6865 6862 6861
  • Examples: Update examples/logging/logback-aot to use Nima 6866
  • Examples: Updates to (standalone) Quickstart SE to use Nima and @ServerTest 6770
  • Examples: Updates to Quickstart SE to use Nima and @ServerTest 6766
  • Examples: archetypes generating poorly formatted code 6622
  • Test: Add @target(ElementType.METHOD) for annotation @mptest 6489
  • Test: Use Hamcrest assertions instead of JUnit in tests/integration/jms (#1749) 6643
  • Test: 7097 flaky HTTP/2 bookstore test 7137
  • Test: Add enum related config bean tests 6592
  • Test: Convenient flushing on response commit 6673
  • Test: Disable intermittently-failing async metrics MP test until we understand the failure 6980
  • Test: Port of tests/functional/config-profiles over to Nima 6826
  • Test: Re-enables ServerTest.java in nima/openapi 6585
  • Test: Reenables JerseyPropertiesTest.java in microprofile/server 6594
  • Test: Removed old bookstore-se app and renamed bookstore-nima to bookstore-se 6790
  • Test: Removed tests/integration/native-image/se-1 6882
  • Test: Update MessagingHealthTest to use Nima WebClient instead of Reactive WebClient 6814

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.

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

This is the fifth 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 some backward incompatible API changes.

Java 19 or newer is required to use Heldon 4.0.0-ALPHA5.

CHANGES

  • Config: Configuration fixes 6145
  • Config: Describe disabling config token replacement 6170
  • FaultTolerance: Reactive FT Module Info fix 6238
  • HTTP2: Issue 5425: Added configurable validate-path and max-concurrent-streams to HTTP 2. 5981
  • Media: Reactive Media Common deprecated cleanup 6098
  • Messaging: AQ connector @ConnectorAttribute 6038
  • OCI: Register OciMetricsSupport service only when enable flag is set to true 6053
  • Security: Nima and Reactive implementation of OIDC provider separated 6055
  • Security: OIDC logout functionality fixed 6131
  • Security: Reloadable server TLS KeyStore 5964
  • Tracing: Fix order of initialization of tracing and security. (#5987) 6034
  • Tracing: Fix parent handling in OpenTelemetry 6092
  • WebClient: Need to use a ConcurrentHashMap in DefaultDnsResolver 6207
  • WebServer: 100 continue request reset fix 6251
  • WebServer: 100 continue triggered by content request 5965
  • WebServer: ContentEncodingContext Builder and passing ContentEncodingContext instance from WebServer to Http1Connection. 5921
  • WebServer: Port to Nima of enhancement to allow WebSocket applications on different ports 6004
  • WebServer: Proposal to implement a more efficient webserver shutdown strategy 5876
  • WebServer: Refactor Níma connection context 6109
  • WebServer: Static content update 6195
  • WebServer: Switch default back-pressure strategy to AUTO_FLUSH from LINEAR. 5983
  • WebServer: Update BodyPart to return Optional instead of a nullable String 6101
  • Webserver: Support for interruption of HTTP/2 connections for efficient shutdowns 6041
  • Build: Configure helidon-mave-plugin jlink-image to use --enable-preview 6048
  • Build: Correct arrangement of fields, methods and inner types. 6114
  • Build: Fix duplicate maven-failsafe-plugin declaration in dbclient integration test 6241
  • Build: Idea code style 6111
  • Build: Remove user specific package from the code style. 6144
  • Build: Use https in pom.xml schemaLocation - iteration 1 (#5657) 6043 and others
  • Dependencies: Cleanup Helidon BOM by removing artifacts that are not deployed 6047
  • Dependencies: Upgrade Jersey 3.1.1 6171
  • Dependencies: Upgrade Weld to 5.x #5815 5830
  • Dependencies: jakarta.activation cleanup 6138
  • Docs: Restore navbar glyphs 6179
  • Examples: Add application parent pom for Nima applications. Use in nima examples. 6232
  • Examples: Nima Quickstart Archetype 6229
  • Tests: Use Hamcrest assertions instead of JUnit 6160 and others
  • Tests: LRA TCK failing randomly #6106 6107
  • Tests: intermittent issue on OciMetricsSupportTest 6151

This is the fourth 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 some backward incompatible API changes.

Java 19 or newer is required to use Heldon 4.0.0-ALPHA4.

MicroProfile Support

4.0.0-ALPHA4 now supports MicroProfile 5 running on Nima WebServer. Please give it a try! If you are upgrading an existing Helidon 3.x MicroProfile application and run into an error concerning io.common.HelidonConsoleHandler then change logging.properties to use io.helidon.logging.jul.HelidonConsoleHandler instead.

CHANGES

  • Logging: Change JUL to System.Logger in most modules 5936
  • Messaging: WLS JMS Object-Based Security 5852
  • MicroProfile: Deprecate MicroProfile Tracing 5909
  • OCI: Replace OCI Java SDK shaded jar with v3 for OCI integration 5908
  • OCI: helidon metrics to oci integration 5945
  • Pico: Builder updates, fixes and enhancements 5977
  • Security: Default tenant is not included for propagation 5900
  • Security: Oidc tenant name now properly escaped 5873
  • Tests: Dbclient Integration Tests Fixed 4860
  • WebServer: implement a more efficient webserver shutdown strategy 5876
  • WebServer: Shutdown hook alignment Níma and MP. 5913
  • WebSocket: UriQuery should not support null parameters. 5950
  • WebSocket: client and testing update 5831
  • Dependencies: Upgrade OCI SDK to 3.2.1 5956
  • Docs: Documentation updates to correct wrong instructions for HOCON config parsing 5975
  • Examples: examples missing helidon-config-yaml dependency 5919
  • HTTP/2: Configurable protocols 5883

This is the third 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 some backward incompatible API changes.

Java 19 or newer is required to use Heldon 4.0.0-ALPHA3.

MicroProfile Support

4.0.0-ALPHA3 now supports MicroProfile 5 running on Nima WebServer. Please give it a try! If you are upgrading an existing Helidon 3.x MicroProfile application and run into an error concerning io.common.HelidonConsoleHandler then change logging.properties to use io.helidon.logging.jul.HelidonConsoleHandler instead.

CHANGES

  • CORS: Fix CORS annotation handling error in certain cases 5105
  • Common: Add info to CharBuf exceptions 5376
  • Common: Features formatting 5765
  • Common: Fix inconsistent status name. 5641
  • Common: Name all threads. 5397
  • Common: builder interceptor support 5591
  • Common: custom exception for CharBuffer 5505
  • Config: Add built-in enum config support 5795
  • Config: Cannot debug in Eclipse IDE Version: 2022-09 (4.25.0) #5706 5708
  • Config: Provide MP config profile support for application.yaml (#5565) 5586
  • DBClient: Handle exception on inTransaction apply 5700
  • Fault Tolerance: Fixed race condition on bulkhead. 5747
  • FaultTolerance:Use lazy values to initialized HealthSupport FT handlers 5147
  • GraalVM: 4836 graalvm 22 4.x 5378
  • Grpc: Issue 4567 - Grpc component Does not handle package directive in proto files. 5284
  • Health: Builtin Helidon health features doubling fix 5615
  • Health: Pass correct config to health providers 5572
  • JMS: JMS connector update 5592
  • LRA: 5405 LRA recovery cycle detection 5778
  • LRA: LRA false warning 5556
  • Logging: Observe log 5656
  • MP Client: Client tracing interceptor no longer clears exception 5620
  • MP FaultTolerance: Implementation of MP FT over Nima VTs 5271
  • MP Messaging: Bump-up reactive messaging/ops to 3.0 5526
  • MP Metrics: Fix problems causing MP metrics TCK failures 5631
  • MP Metrics: Move fetch of metrics from endpoint so it too is retried 5143
  • MP: Add null check to MP Server.Builder.config() (#5363) 5374
  • Media: Added method hasEntity to readable entity 5602
  • Media: Support customize encoder and media context in Nima WebServer (#5256) 5257
  • Messaging: 5510 kafka prod nack 4x 5531
  • Metrics: Fix improper handling of metrics global tags 5814
  • Metrics: Fix incorrect tags comparison when trying to match metric IDs 5550
  • MicroProfile: MP on Níma 5176
  • OpenAPI: 5650 openapi examples issues 5651
  • Pico: Introduce Pico ConfigBean Builder Extensions 5482
  • Pico: Consolidates the pico spi with the api into the new replacement "pico" module 5400
  • Pico: Extend Builder to support abstract and concrete codegen, and add validation of required attributes during builder().build() 5228
  • Pico: Introduce Helidon Pico 5141
  • Pico: Introduces Pico Builder 5195
  • Pico: Move bean utils from spi to processor 5448
  • Pico: Pico Tools - Part 1 of N 5598
  • Reactive: Multi.forEachCS 5532
  • Security: Accidentally removed updateRequest method returned 5843
  • Security: Add relativeUris flag in OidcConfig to allow Oidc webclient to use relative path on the request URI 5336
  • Security: CipherSuiteTest intermittent failure 5711
  • Security: Jwt scope handling extended over array support 5573
  • Security: OIDC multi-tenant and lazy loading implementation 5846
  • Security: Use only public APIs to read PKCS#1 keys 5240
  • WebClient: Custom DNS resolvers for Nima 4876
  • WebServer Nima: Add WebServer.Builder configuration option to support not registering JVM shutdown hook 5739
  • WebServer: 5409 duration timeout 5709
  • WebServer: Add Context to Loom Webserver. 5593
  • WebServer: Add Max Re-Route configurable 5587
  • WebServer: Add ServerResponse.reset() to support ErrorHandlers 5694
  • WebServer: AllowThreadLocals configurable 5292
  • WebServer: Error handling support in HTTP for Nima WebServer. 5436
  • WebServer: Fix handling of entity length in HTTP/2. 5610
  • WebServer: Fix handling of optional whitespace at the beginning of headers. 5441
  • WebServer: Fix user log entry of access log. 5715
  • WebServer: HTTP upgrade handler for Websockets 5569
  • WebServer: Níma: Static content handling rework 5543
  • WebServer: NullPointerException when there is an illegal character in the request (#5470) 5472
  • WebServer: Support for "raw protocol" string 5575
  • WebServer: Support for optional entity in Níma. 5200
  • WebServer: Throw an exception when route does not finish, reroute, or next 5834
  • WebServer: set transfer encoding as response header 5646
  • WebSocket: Tyrus integration into Nima 5464
  • Build: Remove dependency on yaml config from nima module. 5381
  • Build: Remove license-report from maven lifecycle 5246
  • Build: Upgrade dependency check plugin to 7.4.4 5807
  • Build: cleanup pom files with duplicate declarations of maven-compiler-plugin 5810
  • Dependencies: Fix Guava version to match that required by the grpc-java libraries 5504
  • Dependencies: Manage protobuf version using BOM 5178
  • Dependencies: Neo4j driver update 5751
  • Dependencies: Ugrade jersey to 3.0.9 5789
  • Dependencies: Upgrade PostgreSQL JDBC driver dependency to 42.4.3 5561
  • Dependencies: Upgrade build-tools to 3.0.3, fix hbs template file copyright 5735
  • Dependencies: Upgrade grpc-java to 1.49.2 5361
  • Dependencies: Upgrade netty to 4.1.86.Final and use netty bom 5734
  • Dependencies: Upgrade protobuf-java 5134
  • Dependencies: Upgrade to jackson-databind-2.13.4.2 via bom 2.13.4.20221013 5304
  • Docs: 5618 flatMapCompletionStage javadoc fix 5624
  • Docs: Replace deprecated ServerConfiguration.builder() on WebServer.builder() in docs (#5023) 5121
  • Docs: WLS connector doc typo 5802
  • Examples: 4269 openapi tools examples 5250
  • Examples: Make JSON-B a default option for Helidon MP projects 5207
  • Examples: Use property to skip execution of eclipselink weave 5312
  • Examples: [Archetypes] database choices should be before packaging 5293
  • Examples: remove -Ddocker.build=true 5485
  • Examples:Tracing config updates in archetype 5001
  • Tests: Intermittent failure (WebClient tracing test) 5755
  • Tests: Add some retries because post-request metrics updates occur after the response is sent 5122
  • Tests: Additional testing for Nima's websocket implementation 5595
  • Tests: Close client after each test to avoid intermittent failures on MacOS 5155
  • Tests: Fix Intermittent TestJBatchEndpoint.runJob 5542
  • Tests: Fix Intermittent TestJBatchEndpoint.runJob 5567
  • Tests: Fix intermittent jBatch test 5249
  • Tests: Fix problems in tracing e2e test 5280
  • Tests: Fixed OpentraceableClientE2ETest to be more deterministic 5536
  • Tests: Log4j integration test 5301
  • Tests: MP Opentracing TCK fix 5599
  • Tests: Make Github pipeline more robust by increasing HTTP ttl and adding a retry 5164
  • Tests: Named port Nima ServerTest and RoutingTest 5551
  • Tests: New FT Nima executors and larger multiplier for TCK timeouts in pipeline 5317
  • Tests: Remove retries from executor metrics test fix; use the pre-existing countdown latch in GreetService instead 5109
  • Tests: Simplify named socket WebTarget injection in Tests 5314
  • Tests: TempDir support for tests 5508
  • Tests: Updated bulkhead test to properly wait until Task 1 is enqueued 5562
  • Tests: Updated test to use in-memory logging handler to avoid problems with flushing 5180
  • Tests: Various metrics test improvements to avoid intermittent failures 5611

This is the second 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.

Helidon 4.0.0 is a major release that includes significant new features and fixes. As a major release it also includes some backward incompatible API changes.

Java 19 is required to use Heldon 4.0.0.

CHANGES

  • Common: Refactor HTTP header class names to a more natural approach. 4858
  • Config: Refactor helidon config 4.0 4776
  • Config: Use common Config in common configurable. 5015
  • Config: fix for issue in handling ConfigProperties using List 4959
  • DBClient: Helidon DBClient does not trigger an Exception when no sane DB connection can be obtained 4773
  • Dependencies: Upgrade EclipseLink to 3.0.3 and Hibernate to 6.1.4.Final 5101
  • Dependencies: Upgrade reactive streams to 1.0.4 5046
  • Dependencies: Upgrade snakeyaml to 1.32 4923
  • Dependencies: Update graphql-java to 17.4 4983
  • FT: retry checkMetricsForExecutorService 5103
  • JAX-RS: Register a low-priority exception mapper to log internal errors 5082
  • Logging: Logging refactoring 4825
  • MicroProfile: Fix identification of parallel startup of CDI 4964
  • Native Image: remove redundant reflect-config.json 4844
  • Nima: Context support for Níma WebServer 4867
  • Nima: Perf improvements 4818
  • Nima: Port and cleanup of old reactive tests for Nima bulkheads 4823
  • Nima: Shutdown executors while stopping the server 4819
  • Reactive: MultiFromBlockingInputStream RC fix 4x 5055
  • Security: Access token refresh - 4.x backport 4822
  • WebServer: Default header size increased to 16K for Http1ConnectionProvider in NIMA 5017
  • WebServer: Use Header.create() for both header names and header values. 4864
  • WebServer: Watermarked response backpressure 4x 5063
  • Doc: Fix invalid example in se/config/advanced-configuration.adoc - backport 4.x (#4775) 4944
  • Doc: Fix misplaced attribute settings 4955
  • Doc: Formatting of generated Helidon SE quickstart 4967
  • Doc: Preamble fix 5051
  • Doc: Ported Access Log documentation to 4.x 5054
  • Examples: 4834 4835 fix archetype test issues 4841
  • Examples: Remove module-info files from examples 4895
  • Examples: WebClient dependency in generated Helidon SE Quickstart should be in test scope 5019
  • Examples: add serial config required for oracle driver 4961
  • Examples: fix db issues in Helidon archetype 4805
  • Examples: k8s and v8o support in archetype 4891
  • Test: 5068 mock connector beans xml 4x 5070
  • Test: Ported TestInstance.Lifecycle.PER_CLASS fix to 4.x 5052
  • Test: Updated intermittently failing CircuitBreakerTest 5033
  • Test: Add robustness to some of the timing-susceptible metrics tests; add util matcher with retry 5032
  • Test: EchoServiceTest timeout 5007
  • Test: Ported combined FT test to Nima and enhancements to Async 4840
  • Test: Removed deprecated tests, disabled pipelining test. 5010
  • Test: Special Windows build Config TCK profile no longer needed - 4.x 4870
  • Test: Vault tests 5026
  • Test: integration tests should run on every build 5080

We are pleased to announce Helidon 4.0.0-ALPHA1. This is the first 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 this build is the introduction of Helidon Nima -- a ground up webserver implementation based on JDK Project Loom. More information to come.

Helidon 4.0.0 is a major release that includes significant new features and fixes. As a major release it also includes some backward incompatible API changes.

Notable Changes

  • Java 19 early access (with Loom support) as the minimal Java version
  • Using System.Logger instead of java util logging (incremental change)
  • HelidonServiceLoader is now part of helidon-common module
  • Introduction of @Weight, Weighted and Weights instead of @Priority and Prioritized, to base ordering on a double (allows to fit a component between any other two components), all modules using priority are refactored (except for MicroProfile where required by specifications).
    • higher weight means a component is more important
    • moved priority related types to MP config (as that is the lowest level MP module)
    • replaces all instances in SE that use priority with weight (no dependency on Jakarta, predictible and easy to understand behavior)
  • Introduction of MediaType as the abstraction of any media type, as used by Config, static content and HTTP in general. See MediaType and MediaTypes
  • MapperManager now supports mapping qualifiers
  • new helidon-common-parameters module contains an abstraction of a container that has named values (one or more); this is used in path parameters, query parameters, form parameters etc.
  • new helidon-common-uri module contains URI abstraction (path with possible parameters, query, and fragment)
  • Header processing now uses HeaderName and HeaderValue types. This allows you to prepare constants with custom names and values that are often reused. It also allows us to improve parsing speed of HTTP requests.

CHANGES

  • Nima: 4748
  • Nima: a few optimizations 4809
  • Nima: Config and name 4802
  • Nima: Use a single SocketHttpClient. 4794
  • Nima: Http exception refactoring 4804
  • Nima: Cleaner stack when running HTTP requests. 4768
  • Nima: Fix query params being lost on upgrade requests. 4796
  • Common: Move DirectHandler to HTTP common and refactor reactive and Nima 4782
  • Common: Updates to Helidon Common, Part 1 4693
  • Common: Updates to Helidon Common, Part 2 4718
  • Config: Unescape the keys when config is returned as a map in Main branch (#4678) 4716
  • Dependencies: Upgrade Postgre driver to 42.4.1 4779
  • Docs: Adopt review comments on doc updates (#4627) 4721
  • Docs: update old K8s deployment yaml (#4760) 4762
  • Examples: Fix intermittent failure - archetype build (FT timeout) 4690
  • MicroProfile: MP path based static content should use index.html (4.x) 4737
  • Build: 4.0 version and poms 4655