diff --git a/docs/content.zh/docs/deployment/java_compatibility.md b/docs/content.zh/docs/deployment/java_compatibility.md index a8054cea3f88d9..43092c92dde1d2 100644 --- a/docs/content.zh/docs/deployment/java_compatibility.md +++ b/docs/content.zh/docs/deployment/java_compatibility.md @@ -30,6 +30,16 @@ This page lists which Java versions Flink supports and what limitations apply (i Support for Java 11 was added in 1.10.0. +### Native Kubernetes minimum version + +Flink's native Kubernetes integration talks to the Kubernetes API server through the JDK built-in +`java.net.http` HTTP client (via the Fabric8 Kubernetes client), including the WebSocket-based watches that back +leader election and the pod / ConfigMap informers. Because of [JDK-8245245](https://bugs.openjdk.org/browse/JDK-8245245), +WebSocket requests whose URL query contains percent-encoded characters are mishandled on Java 11 releases older +than 11.0.19. Running native Kubernetes — in particular Kubernetes high availability — therefore requires +**Java 11.0.19 or newer** (the fix was backported via [JDK-8299381](https://bugs.openjdk.org/browse/JDK-8299381)). +Java 17 and later are unaffected. + ### Untested Flink features The following Flink features have not been tested with Java 11: diff --git a/docs/content/docs/deployment/java_compatibility.md b/docs/content/docs/deployment/java_compatibility.md index a8054cea3f88d9..43092c92dde1d2 100644 --- a/docs/content/docs/deployment/java_compatibility.md +++ b/docs/content/docs/deployment/java_compatibility.md @@ -30,6 +30,16 @@ This page lists which Java versions Flink supports and what limitations apply (i Support for Java 11 was added in 1.10.0. +### Native Kubernetes minimum version + +Flink's native Kubernetes integration talks to the Kubernetes API server through the JDK built-in +`java.net.http` HTTP client (via the Fabric8 Kubernetes client), including the WebSocket-based watches that back +leader election and the pod / ConfigMap informers. Because of [JDK-8245245](https://bugs.openjdk.org/browse/JDK-8245245), +WebSocket requests whose URL query contains percent-encoded characters are mishandled on Java 11 releases older +than 11.0.19. Running native Kubernetes — in particular Kubernetes high availability — therefore requires +**Java 11.0.19 or newer** (the fix was backported via [JDK-8299381](https://bugs.openjdk.org/browse/JDK-8299381)). +Java 17 and later are unaffected. + ### Untested Flink features The following Flink features have not been tested with Java 11: diff --git a/flink-dist/pom.xml b/flink-dist/pom.xml index 5dc15a3d1af95a..d8fa2c6140134f 100644 --- a/flink-dist/pom.xml +++ b/flink-dist/pom.xml @@ -593,6 +593,26 @@ under the License. true + + + forbid-okhttp-on-core-classpath + + enforce + + + + + + com.squareup.okhttp3:* + com.squareup.okio:* + + OkHttp/okio must not be on the core classpath or in the Flink distribution. Use the built-in java.net.http (JDK) client, or isolate OkHttp to a plugin classloader / standalone connector uber-JAR. + + + + diff --git a/flink-kubernetes/pom.xml b/flink-kubernetes/pom.xml index 329fc3e43119e1..d864d33d029c45 100644 --- a/flink-kubernetes/pom.xml +++ b/flink-kubernetes/pom.xml @@ -31,7 +31,7 @@ under the License. jar - 7.3.1 + 7.8.0 --add-opens=java.base/java.util=ALL-UNNAMED @@ -75,10 +75,11 @@ under the License. - + io.fabric8 - kubernetes-httpclient-okhttp + kubernetes-httpclient-jdk ${kubernetes.client.version} ${flink.markBundledAsOptional} @@ -131,8 +132,6 @@ under the License. com.fasterxml.jackson.core:jackson-databind com.fasterxml.jackson.dataformat:jackson-dataformat-yaml com.fasterxml.jackson.datatype:jackson-datatype-jsr310 - com.squareup.okhttp3:* - com.squareup.okio:okio org.snakeyaml:* org.yaml:* @@ -197,21 +196,6 @@ under the License. com.fasterxml.jackson org.apache.flink.kubernetes.shaded.com.fasterxml.jackson - - okhttp3/internal/publicsuffix - META-INF - - **/NOTICE - - - - okhttp3 - org.apache.flink.kubernetes.shaded.okhttp3 - - - okio - org.apache.flink.kubernetes.shaded.okio - org.snakeyaml org.apache.flink.kubernetes.shaded.org.snakeyaml @@ -225,16 +209,6 @@ under the License. relocated package: keep each dependency's multi-release (META-INF/versions/N) classes aligned with its relocated base classes. No-op for non-multi-release jars. --> - - META-INF/versions/(\d+)/okhttp3/ - META-INF/versions/$1/org/apache/flink/kubernetes/shaded/okhttp3/ - true - - - META-INF/versions/(\d+)/okio/ - META-INF/versions/$1/org/apache/flink/kubernetes/shaded/okio/ - true - META-INF/versions/(\d+)/io/fabric8/ META-INF/versions/$1/org/apache/flink/kubernetes/shaded/io/fabric8/ diff --git a/flink-kubernetes/src/main/resources/META-INF/NOTICE b/flink-kubernetes/src/main/resources/META-INF/NOTICE index 318ce6cd045dc8..3ca314cab49058 100644 --- a/flink-kubernetes/src/main/resources/META-INF/NOTICE +++ b/flink-kubernetes/src/main/resources/META-INF/NOTICE @@ -11,34 +11,31 @@ This project bundles the following dependencies under the Apache Software Licens - com.fasterxml.jackson.core:jackson-databind:2.21.3 - com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.21.3 - com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.21.3 -- com.squareup.okhttp3:logging-interceptor:3.14.9 -- com.squareup.okhttp3:okhttp:3.14.9 -- com.squareup.okio:okio:1.17.2 -- io.fabric8:kubernetes-client:7.3.1 -- io.fabric8:kubernetes-client-api:7.3.1 -- io.fabric8:kubernetes-httpclient-okhttp:7.3.1 -- io.fabric8:kubernetes-model-admissionregistration:7.3.1 -- io.fabric8:kubernetes-model-apiextensions:7.3.1 -- io.fabric8:kubernetes-model-apps:7.3.1 -- io.fabric8:kubernetes-model-autoscaling:7.3.1 -- io.fabric8:kubernetes-model-batch:7.3.1 -- io.fabric8:kubernetes-model-certificates:7.3.1 -- io.fabric8:kubernetes-model-common:7.3.1 -- io.fabric8:kubernetes-model-coordination:7.3.1 -- io.fabric8:kubernetes-model-core:7.3.1 -- io.fabric8:kubernetes-model-discovery:7.3.1 -- io.fabric8:kubernetes-model-events:7.3.1 -- io.fabric8:kubernetes-model-extensions:7.3.1 -- io.fabric8:kubernetes-model-flowcontrol:7.3.1 -- io.fabric8:kubernetes-model-gatewayapi:7.3.1 -- io.fabric8:kubernetes-model-metrics:7.3.1 -- io.fabric8:kubernetes-model-networking:7.3.1 -- io.fabric8:kubernetes-model-node:7.3.1 -- io.fabric8:kubernetes-model-policy:7.3.1 -- io.fabric8:kubernetes-model-rbac:7.3.1 -- io.fabric8:kubernetes-model-resource:7.3.1 -- io.fabric8:kubernetes-model-scheduling:7.3.1 -- io.fabric8:kubernetes-model-storageclass:7.3.1 -- io.fabric8:zjsonpatch:7.3.1 +- io.fabric8:kubernetes-client:7.8.0 +- io.fabric8:kubernetes-client-api:7.8.0 +- io.fabric8:kubernetes-httpclient-jdk:7.8.0 +- io.fabric8:kubernetes-model-admissionregistration:7.8.0 +- io.fabric8:kubernetes-model-apiextensions:7.8.0 +- io.fabric8:kubernetes-model-apps:7.8.0 +- io.fabric8:kubernetes-model-autoscaling:7.8.0 +- io.fabric8:kubernetes-model-batch:7.8.0 +- io.fabric8:kubernetes-model-certificates:7.8.0 +- io.fabric8:kubernetes-model-common:7.8.0 +- io.fabric8:kubernetes-model-coordination:7.8.0 +- io.fabric8:kubernetes-model-core:7.8.0 +- io.fabric8:kubernetes-model-discovery:7.8.0 +- io.fabric8:kubernetes-model-events:7.8.0 +- io.fabric8:kubernetes-model-extensions:7.8.0 +- io.fabric8:kubernetes-model-flowcontrol:7.8.0 +- io.fabric8:kubernetes-model-gatewayapi:7.8.0 +- io.fabric8:kubernetes-model-metrics:7.8.0 +- io.fabric8:kubernetes-model-networking:7.8.0 +- io.fabric8:kubernetes-model-node:7.8.0 +- io.fabric8:kubernetes-model-policy:7.8.0 +- io.fabric8:kubernetes-model-rbac:7.8.0 +- io.fabric8:kubernetes-model-resource:7.8.0 +- io.fabric8:kubernetes-model-scheduling:7.8.0 +- io.fabric8:kubernetes-model-storageclass:7.8.0 +- io.fabric8:zjsonpatch:7.8.0 - org.snakeyaml:snakeyaml-engine:2.6 - org.yaml:snakeyaml:2.3 diff --git a/flink-metrics/flink-metrics-datadog/pom.xml b/flink-metrics/flink-metrics-datadog/pom.xml index 6ed67d22f8e481..631b6d6f784b1d 100644 --- a/flink-metrics/flink-metrics-datadog/pom.xml +++ b/flink-metrics/flink-metrics-datadog/pom.xml @@ -90,6 +90,8 @@ under the License. com.squareup.okhttp3:* com.squareup.okio:* + + org.jetbrains.kotlin:* diff --git a/flink-metrics/flink-metrics-datadog/src/main/resources/META-INF/NOTICE b/flink-metrics/flink-metrics-datadog/src/main/resources/META-INF/NOTICE index ac3e32f4c90bc0..74d9ff9f97370d 100644 --- a/flink-metrics/flink-metrics-datadog/src/main/resources/META-INF/NOTICE +++ b/flink-metrics/flink-metrics-datadog/src/main/resources/META-INF/NOTICE @@ -6,5 +6,10 @@ The Apache Software Foundation (http://www.apache.org/). This project bundles the following dependencies under the Apache Software License 2.0. (http://www.apache.org/licenses/LICENSE-2.0.txt) -- com.squareup.okhttp3:okhttp:3.14.9 -- com.squareup.okio:okio:1.17.2 +- com.squareup.okhttp3:okhttp:4.12.0 +- com.squareup.okio:okio:3.6.0 +- com.squareup.okio:okio-jvm:3.6.0 +- org.jetbrains.kotlin:kotlin-stdlib:1.9.10 +- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10 +- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10 +- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10 diff --git a/flink-metrics/flink-metrics-influxdb/pom.xml b/flink-metrics/flink-metrics-influxdb/pom.xml index 5c6e46157238c5..549e982a045c59 100644 --- a/flink-metrics/flink-metrics-influxdb/pom.xml +++ b/flink-metrics/flink-metrics-influxdb/pom.xml @@ -49,7 +49,7 @@ under the License. org.influxdb influxdb-java - 2.17 + 2.24 ${flink.markBundledAsOptional} @@ -96,6 +96,8 @@ under the License. com.squareup.okhttp3:* com.squareup.okio:* com.squareup.retrofit2:* + + org.jetbrains.kotlin:* diff --git a/flink-metrics/flink-metrics-influxdb/src/main/resources/META-INF/NOTICE b/flink-metrics/flink-metrics-influxdb/src/main/resources/META-INF/NOTICE index 7b175feb13141c..dbb1a2d269a4d0 100644 --- a/flink-metrics/flink-metrics-influxdb/src/main/resources/META-INF/NOTICE +++ b/flink-metrics/flink-metrics-influxdb/src/main/resources/META-INF/NOTICE @@ -7,15 +7,20 @@ The Apache Software Foundation (http://www.apache.org/). This project bundles the following dependencies under the Apache Software License 2.0. (http://www.apache.org/licenses/LICENSE-2.0.txt) - com.squareup.moshi:moshi:1.8.0 -- com.squareup.okhttp3:logging-interceptor:3.14.9 -- com.squareup.okhttp3:okhttp:3.14.9 -- com.squareup.okio:okio:1.17.2 -- com.squareup.retrofit2:converter-moshi:2.6.2 -- com.squareup.retrofit2:retrofit:2.6.2 +- com.squareup.okhttp3:logging-interceptor:4.12.0 +- com.squareup.okhttp3:okhttp:4.12.0 +- com.squareup.okio:okio:3.6.0 +- com.squareup.okio:okio-jvm:3.6.0 +- com.squareup.retrofit2:converter-moshi:2.9.0 +- com.squareup.retrofit2:retrofit:2.9.0 +- org.jetbrains.kotlin:kotlin-stdlib:1.9.10 +- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10 +- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10 +- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10 This project bundles the following dependencies under the MIT license. (https://opensource.org/licenses/MIT) -- org.influxdb:influxdb-java:2.17 +- org.influxdb:influxdb-java:2.24 This project bundles a file called "publicsuffixes.gz": diff --git a/flink-metrics/flink-metrics-otel/pom.xml b/flink-metrics/flink-metrics-otel/pom.xml index ee2b5d984da3c6..1158b929f98cdf 100644 --- a/flink-metrics/flink-metrics-otel/pom.xml +++ b/flink-metrics/flink-metrics-otel/pom.xml @@ -170,6 +170,8 @@ under the License. io.opentelemetry:* com.squareup.okhttp3:* com.squareup.okio:* + + org.jetbrains.kotlin:* diff --git a/flink-metrics/flink-metrics-otel/src/main/resources/META-INF/NOTICE b/flink-metrics/flink-metrics-otel/src/main/resources/META-INF/NOTICE index 29824ba39165b5..b7334fb9beb797 100644 --- a/flink-metrics/flink-metrics-otel/src/main/resources/META-INF/NOTICE +++ b/flink-metrics/flink-metrics-otel/src/main/resources/META-INF/NOTICE @@ -22,5 +22,10 @@ This project bundles the following dependencies under the Apache Software Licens - io.opentelemetry:opentelemetry-exporter-otlp-common:1.30.1 - io.opentelemetry:opentelemetry-exporter-common:1.30.1 - io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.30.1 -- com.squareup.okhttp3:okhttp:3.14.9 -- com.squareup.okio:okio:1.17.2 +- com.squareup.okhttp3:okhttp:4.12.0 +- com.squareup.okio:okio:3.6.0 +- com.squareup.okio:okio-jvm:3.6.0 +- org.jetbrains.kotlin:kotlin-stdlib:1.9.10 +- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10 +- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10 +- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10 diff --git a/flink-models/flink-model-openai/src/main/resources/META-INF/NOTICE b/flink-models/flink-model-openai/src/main/resources/META-INF/NOTICE index f245bfdfa84eec..0fddede0ada31c 100644 --- a/flink-models/flink-model-openai/src/main/resources/META-INF/NOTICE +++ b/flink-models/flink-model-openai/src/main/resources/META-INF/NOTICE @@ -23,7 +23,7 @@ This project bundles the following dependencies under the Apache Software Licens - org.apache.httpcomponents.client5:httpclient5:5.3.1 - org.apache.httpcomponents.core5:httpcore5:5.2.4 - org.apache.httpcomponents.core5:httpcore5-h2:5.2.4 -- org.jetbrains:annotations:13.0 +- org.jetbrains:annotations:17.0.0 - org.jetbrains.kotlin:kotlin-reflect:1.9.10 - org.jetbrains.kotlin:kotlin-stdlib:1.9.10 - org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10 diff --git a/flink-models/flink-model-triton/src/main/resources/META-INF/NOTICE b/flink-models/flink-model-triton/src/main/resources/META-INF/NOTICE index 9a789b1b238eeb..6ba5e113e9e663 100644 --- a/flink-models/flink-model-triton/src/main/resources/META-INF/NOTICE +++ b/flink-models/flink-model-triton/src/main/resources/META-INF/NOTICE @@ -12,8 +12,8 @@ This project bundles the following dependencies under the Apache Software Licens - com.squareup.okhttp3:okhttp:4.12.0 - com.squareup.okio:okio:3.6.0 - com.squareup.okio:okio-jvm:3.6.0 -- org.jetbrains:annotations:13.0 -- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.21 -- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 +- org.jetbrains:annotations:17.0.0 +- org.jetbrains.kotlin:kotlin-stdlib:1.9.10 +- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10 +- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10 - org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10 \ No newline at end of file diff --git a/pom.xml b/pom.xml index 883febb9b8210e..483e2b73d6c49a 100644 --- a/pom.xml +++ b/pom.xml @@ -163,7 +163,10 @@ under the License. 0.10.9.7 2.75.0 4.32.1 - 3.14.9 + 4.12.0 + + 1.9.10 2.0.5 1.10.3 2.15.1 @@ -667,6 +670,33 @@ under the License. logging-interceptor ${okhttp.version} + + org.jetbrains.kotlin + kotlin-stdlib + ${kotlin.version} + + + org.jetbrains.kotlin + kotlin-stdlib-common + ${kotlin.version} + + + org.jetbrains.kotlin + kotlin-stdlib-jdk7 + ${kotlin.version} + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + ${kotlin.version} + + + + org.jetbrains + annotations + 17.0.0 + + com.squareup.okhttp3:*:(,4.0):*:test + + End-of-life OkHttp 3.x is not allowed (no security patches). Use the built-in java.net.http (JDK) client on the core classpath, or a maintained OkHttp 4.x+ isolated to a plugin classloader or a standalone connector uber-JAR. + + + + forbid-log4j-1