Skip to content

Commit

Permalink
Merge branch 'main' into 7564_add_JaxRs-annotation
Browse files Browse the repository at this point in the history
  • Loading branch information
dalexandrov authored Dec 5, 2023
2 parents c82f046 + 2a709f5 commit b56a6fb
Show file tree
Hide file tree
Showing 288 changed files with 8,875 additions and 1,767 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,6 @@ jobs:
- name: Upload Staged Artifacts
uses: actions/upload-artifact@v3
with:
name: io-helidon-staged-artifacts
name: io-helidon-artifacts-${{ github.ref_name }}
path: parent/target/nexus-staging/
retention-days: 90
69 changes: 68 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,72 @@ For Helidon 2.x releases please see [Helidon 2.x CHANGELOG.md](https://github.co

For Helidon 1.x releases please see [Helidon 1.x CHANGELOG.md](https://github.com/oracle/helidon/blob/helidon-1.x/CHANGELOG.md)

## [4.0.1]

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

Thanks to @lilac for their contributions.


## [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.
Expand Down Expand Up @@ -845,7 +911,8 @@ Helidon 4.0.0 is a major release that includes significant new features and fixe
- MicroProfile: MP path based static content should use index.html (4.x) [4737](https://github.com/oracle/helidon/pull/4737)
- Build: 4.0 version and poms [4655](https://github.com/oracle/helidon/pull/4655)

[4.0.0-RC2]: https://github.com/oracle/helidon/compare/4.0.0-RC2...4.0.0
[4.0.1]: https://github.com/oracle/helidon/compare/4.0.0...4.0.1
[4.0.0]: https://github.com/oracle/helidon/compare/4.0.0-RC2...4.0.0
[4.0.0-RC2]: https://github.com/oracle/helidon/compare/4.0.0-RC1...4.0.0-RC2
[4.0.0-RC1]: https://github.com/oracle/helidon/compare/4.0.0-M2...4.0.0-RC1
[4.0.0-M2]: https://github.com/oracle/helidon/compare/4.0.0-M1...4.0.0-M2
Expand Down
2 changes: 1 addition & 1 deletion NOTICE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Project Helidon
===============

Copyright (c) 2017, 2022 Oracle and/or its affiliates.
Copyright (c) 2017, 2023 Oracle and/or its affiliates.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
2 changes: 0 additions & 2 deletions applications/mp/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,12 @@
<goals>
<goal>generateResourceConfig</goal>
</goals>
<phase>package</phase>
</execution>
<execution>
<id>build-native-image</id>
<goals>
<goal>compile</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
Expand Down
54 changes: 54 additions & 0 deletions applications/parent/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -184,13 +184,15 @@
<executions>
<execution>
<id>resource-config</id>
<phase>package</phase>
<configuration>
<!-- generate records for all module's resources -->
<isDetectionEnabled>true</isDetectionEnabled>
</configuration>
</execution>
<execution>
<id>build-native-image</id>
<phase>package</phase>
<configuration>
<!-- generate an argument file for native image - great for troubleshooting -->
<useArgFile>true</useArgFile>
Expand All @@ -214,6 +216,58 @@
</pluginManagement>
</build>
<profiles>
<profile>
<id>native-image-skip</id>
<activation>
<property>
<name>native.image.skip</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<executions>
<execution>
<id>resource-config</id>
<phase>none</phase>
</execution>
<execution>
<id>build-native-image</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>native-image-static</id>
<activation>
<property>
<name>native.image.buildStatic</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<executions>
<execution>
<id>build-native-image</id>
<configuration>
<buildArgs combine.children="append">
<arg>--static</arg>
</buildArgs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>helidon-cli</id>
<activation>
Expand Down
2 changes: 0 additions & 2 deletions applications/se/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,12 @@
<goals>
<goal>generateResourceConfig</goal>
</goals>
<phase>package</phase>
</execution>
<execution>
<id>build-native-image</id>
<goals>
<goal>compile</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
Expand Down
6 changes: 3 additions & 3 deletions archetypes/helidon/src/main/archetype/common/docker.xml
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,11 @@
</includes>
</templates>
<model>
<list key="poms">
<value>pom.xml</value>
<list key="poms" if="!${multi-module}">
<value>ADD pom.xml .</value>
</list>
<list key="src-dirs" if="!${multi-module}">
<value>src</value>
<value>ADD src src</value>
</list>
<list key="native-sections" if="${docker.native-image}">
<value file="files/README.native.md"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@

# 1st stage, build the app
FROM maven:3.8.4-openjdk-17-slim as build
FROM container-registry.oracle.com/java/openjdk:21 as build

WORKDIR /usr/share

# Install maven
RUN set -x && \
curl -O https://archive.apache.org/dist/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz && \
tar -xvf apache-maven-*-bin.tar.gz && \
rm apache-maven-*-bin.tar.gz && \
mv apache-maven-* maven && \
ln -s /usr/share/maven/bin/mvn /bin/

WORKDIR /helidon

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ WORKDIR /helidon
# Incremental docker builds will always resume after that, unless you update
# the pom
{{#poms}}
ADD {{.}} {{.}}
{{.}}
{{/poms}}
RUN mvn package -Dmaven.test.skip -Declipselink.weave.skip {{#docker-phase1-options}}{{.}}{{^last}} {{/last}}{{/docker-phase1-options}}

# Do the Maven build!
# Incremental docker builds will resume here when you change sources
{{#src-dirs}}
ADD {{.}} {{.}}
{{.}}
{{/src-dirs}}
RUN mvn package -DskipTests

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ docker run -d --name jaeger\
-p 14268:14268\
-p 14269:14269\
-p 9411:9411\
jaegertracing/all-in-one:1.38
jaegertracing/all-in-one:1.43
```

### View Tracing Using Jaeger UI
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@
<artifactId>{{artifactId}}</artifactId>
<version>{{project-version}}</version>

<properties>
{{#mainClass}}
<properties>
<mainClass>{{mainClass}}</mainClass>
{{/mainClass}}
</properties>
{{/mainClass}}

<dependencies>
{{#dependencies}}
Expand Down
23 changes: 4 additions & 19 deletions archetypes/helidon/src/main/archetype/common/observability.xml
Original file line number Diff line number Diff line change
Expand Up @@ -277,18 +277,18 @@ curl -H 'Accept: application/json' -X GET http://localhost:8080/metrics
<value if="${flavor} == 'se'">io.helidon.webserver.observe.metrics</value>
<value if="${flavor} == 'se'">io.helidon.metrics.api</value>
</list>
<list key="readme-sections">
<list key="readme-sections" if="${flavor} == 'se'">
<value><![CDATA[
## Try metrics
```
# Prometheus Format
curl -s -X GET http://localhost:8080/metrics
curl -s -X GET http://localhost:8080/observe/metrics
# TYPE base:gc_g1_young_generation_count gauge
. . .
# JSON Format
curl -H 'Accept: application/json' -X GET http://localhost:8080/metrics
curl -H 'Accept: application/json' -X GET http://localhost:8080/observe/metrics
{"base":...
. . .
```
Expand Down Expand Up @@ -404,21 +404,12 @@ curl -X GET http://localhost:8080/observe/health/ready
optional="true">
<option value="jaeger"
name="Jaeger"
description="Send traces to a Jaeger backend" >
description="Send traces to a Jaeger backend">
<output>
<model>
<list key="dependencies">
<map order="800">
<value key="groupId">io.helidon.tracing.providers</value>
<value key="artifactId">helidon-tracing-providers-jaeger</value>
</map>
</list>
<list key="readme-sections">
<value file="/common/files/README.jaeger.md"/>
</list>
<list key="config-properties">
<value>tracing.global=false</value>
</list>
</model>
</output>
</option>
Expand All @@ -427,12 +418,6 @@ curl -X GET http://localhost:8080/observe/health/ready
description="Send traces to a Zipkin backend">
<output>
<model>
<list key="dependencies">
<map order="800">
<value key="groupId">io.helidon.tracing.providers</value>
<value key="artifactId">helidon-tracing-providers-zipkin</value>
</map>
</list>
<list key="readme-sections">
<value file="/common/files/README.zipkin.md"/>
</list>
Expand Down
Loading

0 comments on commit b56a6fb

Please sign in to comment.