diff --git a/data-plane/THIRD-PARTY.txt b/data-plane/THIRD-PARTY.txt index e437e4f04a..4969b5b5b4 100644 --- a/data-plane/THIRD-PARTY.txt +++ b/data-plane/THIRD-PARTY.txt @@ -5,22 +5,22 @@ Lists of 237 third-party dependencies. (Apache License 2.0) brotli4j (com.aayushatharva.brotli4j:brotli4j:1.16.0 - https://github.com/hyperxpro/Brotli4j/brotli4j) (Apache License 2.0) native-linux-x86_64 (com.aayushatharva.brotli4j:native-linux-x86_64:1.16.0 - https://github.com/hyperxpro/Brotli4j/natives/native-linux-x86_64) (Apache License 2.0) service (com.aayushatharva.brotli4j:service:1.16.0 - https://github.com/hyperxpro/Brotli4j/service) - (The Apache Software License, Version 2.0) Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.16.1 - https://github.com/FasterXML/jackson) - (The Apache Software License, Version 2.0) Jackson-core (com.fasterxml.jackson.core:jackson-core:2.16.1 - https://github.com/FasterXML/jackson-core) - (The Apache Software License, Version 2.0) jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.16.1 - https://github.com/FasterXML/jackson) - (The Apache Software License, Version 2.0) Jackson-dataformat-CSV (com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.16.1 - https://github.com/FasterXML/jackson-dataformats-text) - (The Apache Software License, Version 2.0) Jackson-dataformat-YAML (com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.16.1 - https://github.com/FasterXML/jackson-dataformats-text) - (The Apache Software License, Version 2.0) Jackson datatype: jdk8 (com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.16.1 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8) - (The Apache Software License, Version 2.0) Jackson datatype: JSR310 (com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.16.1 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310) - (The Apache Software License, Version 2.0) jackson-module-scala (com.fasterxml.jackson.module:jackson-module-scala_2.13:2.16.1 - https://github.com/FasterXML/jackson-module-scala) + (The Apache Software License, Version 2.0) Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.17.0 - https://github.com/FasterXML/jackson) + (The Apache Software License, Version 2.0) Jackson-core (com.fasterxml.jackson.core:jackson-core:2.17.0 - https://github.com/FasterXML/jackson-core) + (The Apache Software License, Version 2.0) jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.17.0 - https://github.com/FasterXML/jackson) + (The Apache Software License, Version 2.0) Jackson-dataformat-CSV (com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.17.0 - https://github.com/FasterXML/jackson-dataformats-text) + (The Apache Software License, Version 2.0) Jackson-dataformat-YAML (com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.17.0 - https://github.com/FasterXML/jackson-dataformats-text) + (The Apache Software License, Version 2.0) Jackson datatype: jdk8 (com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.17.0 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8) + (The Apache Software License, Version 2.0) Jackson datatype: JSR310 (com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.17.0 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310) + (The Apache Software License, Version 2.0) jackson-module-scala (com.fasterxml.jackson.module:jackson-module-scala_2.13:2.17.0 - https://github.com/FasterXML/jackson-module-scala) (Apache License, Version 2.0) Caffeine cache (com.github.ben-manes.caffeine:caffeine:3.1.5 - https://github.com/ben-manes/caffeine) (BSD 2-Clause License) zstd-jni (com.github.luben:zstd-jni:1.5.6-3 - https://github.com/luben/zstd-jni) (The Apache Software License, Version 2.0) bucket4j-core (com.github.vladimir-bukhtoyarov:bucket4j-core:7.6.0 - http://github.com/vladimir-bukhtoyarov/bucket4j/bucket4j-core) (The Apache Software License, Version 2.0) FindBugs-jsr305 (com.google.code.findbugs:jsr305:3.0.2 - http://findbugs.sourceforge.net/) (Apache-2.0) Gson (com.google.code.gson:gson:2.10.1 - https://github.com/google/gson/gson) - (Apache 2.0) error-prone annotations (com.google.errorprone:error_prone_annotations:2.24.0 - https://errorprone.info/error_prone_annotations) + (Apache 2.0) error-prone annotations (com.google.errorprone:error_prone_annotations:2.26.1 - https://errorprone.info/error_prone_annotations) (The Apache Software License, Version 2.0) Guava InternalFutureFailureAccess and InternalFutures (com.google.guava:failureaccess:1.0.1 - https://github.com/google/guava/failureaccess) - (Apache License, Version 2.0) Guava: Google Core Libraries for Java (com.google.guava:guava:33.0.0-jre - https://github.com/google/guava) + (Apache License, Version 2.0) Guava: Google Core Libraries for Java (com.google.guava:guava:33.1.0-jre - https://github.com/google/guava) (Apache License, Version 2.0) J2ObjC Annotations (com.google.j2objc:j2objc-annotations:2.8 - https://github.com/google/j2objc/) (BSD-3-Clause) Protocol Buffers [Core] (com.google.protobuf:protobuf-java:3.25.2 - https://developers.google.com/protocol-buffers/protobuf-java/) (BSD-3-Clause) Protocol Buffers [Util] (com.google.protobuf:protobuf-java-util:3.25.2 - https://developers.google.com/protocol-buffers/protobuf-java-util/) @@ -32,11 +32,10 @@ Lists of 237 third-party dependencies. (Apache License 2.0) Metrics Core Library (com.yammer.metrics:metrics-core:2.2.0 - http://metrics.codahale.com/metrics-core/) (Apache License, Version 2.0) Apache Commons BeanUtils (commons-beanutils:commons-beanutils:1.9.4 - https://commons.apache.org/proper/commons-beanutils/) (Apache License, Version 2.0) Apache Commons CLI (commons-cli:commons-cli:1.4 - http://commons.apache.org/proper/commons-cli/) - (Apache-2.0) Apache Commons Codec (commons-codec:commons-codec:1.16.1 - https://commons.apache.org/proper/commons-codec/) (Apache-2.0) Apache Commons Codec (commons-codec:commons-codec:1.17.0 - https://commons.apache.org/proper/commons-codec/) (Apache License, Version 2.0) Apache Commons Collections (commons-collections:commons-collections:3.2.2 - http://commons.apache.org/collections/) (The Apache Software License, Version 2.0) Commons Digester (commons-digester:commons-digester:2.1 - http://commons.apache.org/digester/) - (Apache-2.0) Apache Commons IO (commons-io:commons-io:2.15.1 - https://commons.apache.org/proper/commons-io/) + (Apache-2.0) Apache Commons IO (commons-io:commons-io:2.16.1 - https://commons.apache.org/proper/commons-io/) (The Apache Software License, Version 2.0) Apache Commons Logging (commons-logging:commons-logging:1.2 - http://commons.apache.org/proper/commons-logging/) (Apache License, Version 2.0) Apache Commons Validator (commons-validator:commons-validator:1.7 - http://commons.apache.org/proper/commons-validator/) (Unknown license) contract (dev.knative.eventing.kafka.broker:contract:1.0-SNAPSHOT - no url defined) @@ -57,38 +56,38 @@ Lists of 237 third-party dependencies. (Apache License, Version 2.0) Fabric8 :: Kubernetes :: Java Client (io.fabric8:kubernetes-client:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-client) (Apache License, Version 2.0) Fabric8 :: Kubernetes :: Java Client API (io.fabric8:kubernetes-client-api:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-client-api) (Apache License, Version 2.0) Fabric8 :: Kubernetes :: HttpClient :: JDK (io.fabric8:kubernetes-httpclient-jdk:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-httpclient-jdk) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Admission Registration, Authentication and Authorization (io.fabric8:kubernetes-model-admissionregistration:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-admissionregistration) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: API Extensions (io.fabric8:kubernetes-model-apiextensions:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-apiextensions) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Apps (io.fabric8:kubernetes-model-apps:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-apps) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Autoscaling (io.fabric8:kubernetes-model-autoscaling:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-autoscaling) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Batch (io.fabric8:kubernetes-model-batch:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-batch) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Certificates (io.fabric8:kubernetes-model-certificates:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-certificates) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Common (io.fabric8:kubernetes-model-common:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-common) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Coordination (io.fabric8:kubernetes-model-coordination:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-coordination) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Core (io.fabric8:kubernetes-model-core:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-core) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Discovery (io.fabric8:kubernetes-model-discovery:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-discovery) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Events (io.fabric8:kubernetes-model-events:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-events) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Extensions (io.fabric8:kubernetes-model-extensions:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-extensions) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: FlowControl (io.fabric8:kubernetes-model-flowcontrol:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-flowcontrol) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Sigs :: Gateway API (io.fabric8:kubernetes-model-gatewayapi:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-gatewayapi) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Metrics (io.fabric8:kubernetes-model-metrics:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-metrics) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Networking (io.fabric8:kubernetes-model-networking:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-networking) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Node (io.fabric8:kubernetes-model-node:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-node) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Policy (io.fabric8:kubernetes-model-policy:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-policy) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: RBAC (io.fabric8:kubernetes-model-rbac:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-rbac) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Resource (io.fabric8:kubernetes-model-resource:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-resource) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Scheduling (io.fabric8:kubernetes-model-scheduling:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-scheduling) - (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Storage Class (io.fabric8:kubernetes-model-storageclass:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-storageclass) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Admission Registration, Authentication and Authorization (io.fabric8:kubernetes-model-admissionregistration:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-admissionregistration) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: API Extensions (io.fabric8:kubernetes-model-apiextensions:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-apiextensions) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Apps (io.fabric8:kubernetes-model-apps:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-apps) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Autoscaling (io.fabric8:kubernetes-model-autoscaling:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-autoscaling) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Batch (io.fabric8:kubernetes-model-batch:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-batch) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Certificates (io.fabric8:kubernetes-model-certificates:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-certificates) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Common (io.fabric8:kubernetes-model-common:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-common) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Coordination (io.fabric8:kubernetes-model-coordination:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-coordination) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Core (io.fabric8:kubernetes-model-core:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-core) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Discovery (io.fabric8:kubernetes-model-discovery:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-discovery) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Events (io.fabric8:kubernetes-model-events:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-events) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Extensions (io.fabric8:kubernetes-model-extensions:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-extensions) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: FlowControl (io.fabric8:kubernetes-model-flowcontrol:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-flowcontrol) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Sigs :: Gateway API (io.fabric8:kubernetes-model-gatewayapi:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-gatewayapi) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Metrics (io.fabric8:kubernetes-model-metrics:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-metrics) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Networking (io.fabric8:kubernetes-model-networking:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-networking) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Node (io.fabric8:kubernetes-model-node:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-node) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Policy (io.fabric8:kubernetes-model-policy:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-policy) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: RBAC (io.fabric8:kubernetes-model-rbac:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-rbac) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Resource (io.fabric8:kubernetes-model-resource:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-resource) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Scheduling (io.fabric8:kubernetes-model-scheduling:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-scheduling) + (Apache License, Version 2.0) Fabric8 :: Kubernetes Model :: Storage Class (io.fabric8:kubernetes-model-storageclass:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-model-generator/kubernetes-model-storageclass) (Apache License, Version 2.0) Fabric8 :: Kubernetes :: JUnit :: Server Mock (io.fabric8:kubernetes-server-mock:6.10.0 - https://github.com/fabric8io/kubernetes-client/junit/kubernetes-server-mock) - (Apache License, Version 2.0) Fabric8 :: Mock Web Server (io.fabric8:mockwebserver:6.10.0 - https://github.com/fabric8io/kubernetes-client/junit/mockwebserver) - (Apache License, Version 2.0) Fabric8 :: Service Catalog :: Client (io.fabric8:servicecatalog-client:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-extensions/service-catalog/servicecatalog-client) - (Apache License, Version 2.0) Fabric8 :: Service Catalog :: Model (io.fabric8:servicecatalog-model:6.10.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-extensions/service-catalog/servicecatalog-model) + (Apache License, Version 2.0) Fabric8 :: Mock Web Server (io.fabric8:mockwebserver:6.11.0 - https://github.com/fabric8io/kubernetes-client/junit/mockwebserver) + (Apache License, Version 2.0) Fabric8 :: Service Catalog :: Client (io.fabric8:servicecatalog-client:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-extensions/service-catalog/servicecatalog-client) + (Apache License, Version 2.0) Fabric8 :: Service Catalog :: Model (io.fabric8:servicecatalog-model:6.11.0 - https://github.com/fabric8io/kubernetes-client/kubernetes-extensions/service-catalog/servicecatalog-model) (The Apache Software License, Version 2.0) zjsonpatch (io.fabric8:zjsonpatch:0.3.0 - https://github.com/fabric8io/zjsonpatch/) (BSD-2-Clause) org-crac (io.github.crac:org-crac:0.1.3 - https://github.com/crac/org.crac) - (The Apache Software License, Version 2.0) micrometer-commons (io.micrometer:micrometer-commons:1.12.2 - https://github.com/micrometer-metrics/micrometer) - (The Apache Software License, Version 2.0) micrometer-core (io.micrometer:micrometer-core:1.12.2 - https://github.com/micrometer-metrics/micrometer) - (The Apache Software License, Version 2.0) micrometer-observation (io.micrometer:micrometer-observation:1.12.2 - https://github.com/micrometer-metrics/micrometer) - (The Apache Software License, Version 2.0) micrometer-registry-prometheus (io.micrometer:micrometer-registry-prometheus:1.12.2 - https://github.com/micrometer-metrics/micrometer) + (The Apache Software License, Version 2.0) micrometer-commons (io.micrometer:micrometer-commons:1.12.5 - https://github.com/micrometer-metrics/micrometer) + (The Apache Software License, Version 2.0) micrometer-core (io.micrometer:micrometer-core:1.12.5 - https://github.com/micrometer-metrics/micrometer) + (The Apache Software License, Version 2.0) micrometer-observation (io.micrometer:micrometer-observation:1.12.5 - https://github.com/micrometer-metrics/micrometer) + (The Apache Software License, Version 2.0) micrometer-registry-prometheus (io.micrometer:micrometer-registry-prometheus:1.12.5 - https://github.com/micrometer-metrics/micrometer) (Apache License, Version 2.0) Netty/Buffer (io.netty:netty-buffer:4.1.108.Final - https://netty.io/netty-buffer/) (Apache License, Version 2.0) Netty/Codec (io.netty:netty-codec:4.1.108.Final - https://netty.io/netty-codec/) (Apache License, Version 2.0) Netty/Codec/DNS (io.netty:netty-codec-dns:4.1.108.Final - https://netty.io/netty-codec-dns/) @@ -112,7 +111,7 @@ Lists of 237 third-party dependencies. (The Apache License, Version 2.0) OpenTelemetry Java (io.opentelemetry:opentelemetry-exporter-logging:1.32.0 - https://github.com/open-telemetry/opentelemetry-java) (The Apache License, Version 2.0) OpenTelemetry Java (io.opentelemetry:opentelemetry-exporter-zipkin:1.32.0 - https://github.com/open-telemetry/opentelemetry-java) (The Apache License, Version 2.0) OpenTelemetry Java (io.opentelemetry:opentelemetry-extension-incubator:1.32.0-alpha - https://github.com/open-telemetry/opentelemetry-java) - (The Apache License, Version 2.0) OpenTelemetry Java (io.opentelemetry:opentelemetry-extension-trace-propagators:1.17.0 - https://github.com/open-telemetry/opentelemetry-java) + (The Apache License, Version 2.0) OpenTelemetry Java (io.opentelemetry:opentelemetry-extension-trace-propagators:1.32.0 - https://github.com/open-telemetry/opentelemetry-java) (The Apache License, Version 2.0) OpenTelemetry Java (io.opentelemetry:opentelemetry-sdk:1.32.0 - https://github.com/open-telemetry/opentelemetry-java) (The Apache License, Version 2.0) OpenTelemetry Java (io.opentelemetry:opentelemetry-sdk-common:1.32.0 - https://github.com/open-telemetry/opentelemetry-java) (The Apache License, Version 2.0) OpenTelemetry Java (io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.32.0 - https://github.com/open-telemetry/opentelemetry-java) @@ -125,49 +124,49 @@ Lists of 237 third-party dependencies. (The Apache Software License, Version 2.0) Prometheus Java Span Context Supplier - Common (io.prometheus:simpleclient_tracer_common:0.16.0 - http://github.com/prometheus/client_java/simpleclient_tracer/simpleclient_tracer_common) (The Apache Software License, Version 2.0) Prometheus Java Span Context Supplier - OpenTelemetry (io.prometheus:simpleclient_tracer_otel:0.16.0 - http://github.com/prometheus/client_java/simpleclient_tracer/simpleclient_tracer_otel) (The Apache Software License, Version 2.0) Prometheus Java Span Context Supplier - OpenTelemetry Agent (io.prometheus:simpleclient_tracer_otel_agent:0.16.0 - http://github.com/prometheus/client_java/simpleclient_tracer/simpleclient_tracer_otel_agent) - (The Apache Software License, Version 2.0) Quarkus - ArC - Runtime (io.quarkus:quarkus-arc:3.8.4 - https://github.com/quarkusio/quarkus) - (Apache License, Version 2.0) Quarkus - Bootstrap - Runner (io.quarkus:quarkus-bootstrap-runner:3.8.4 - https://github.com/quarkusio/quarkus) - (The Apache Software License, Version 2.0) Quarkus - Core - Runtime (io.quarkus:quarkus-core:3.8.4 - https://github.com/quarkusio/quarkus) - (The Apache Software License, Version 2.0) Quarkus - Development mode - SPI (io.quarkus:quarkus-development-mode-spi:3.8.4 - https://github.com/quarkusio/quarkus) + (The Apache Software License, Version 2.0) Quarkus - ArC - Runtime (io.quarkus:quarkus-arc:3.10.2 - https://github.com/quarkusio/quarkus) + (Apache License, Version 2.0) Quarkus - Bootstrap - Runner (io.quarkus:quarkus-bootstrap-runner:3.10.2 - https://github.com/quarkusio/quarkus) + (The Apache Software License, Version 2.0) Quarkus - Core - Runtime (io.quarkus:quarkus-core:3.10.2 - https://github.com/quarkusio/quarkus) + (The Apache Software License, Version 2.0) Quarkus - Development mode - SPI (io.quarkus:quarkus-development-mode-spi:3.10.2 - https://github.com/quarkusio/quarkus) (Apache License, Version 2.0) Quarkus - FS Util (io.quarkus:quarkus-fs-util:0.0.10 - https://quarkus.io/) - (The Apache Software License, Version 2.0) Quarkus - IDE Launcher (io.quarkus:quarkus-ide-launcher:3.8.4 - https://github.com/quarkusio/quarkus) - (The Apache Software License, Version 2.0) Quarkus - Mutiny - Runtime (io.quarkus:quarkus-mutiny:3.8.4 - https://github.com/quarkusio/quarkus) - (The Apache Software License, Version 2.0) Quarkus - Netty - Runtime (io.quarkus:quarkus-netty:3.8.4 - https://github.com/quarkusio/quarkus) - (The Apache Software License, Version 2.0) Quarkus - SmallRye Context Propagation - Runtime (io.quarkus:quarkus-smallrye-context-propagation:3.8.4 - https://github.com/quarkusio/quarkus) - (The Apache Software License, Version 2.0) Quarkus - Vert.x - Runtime (io.quarkus:quarkus-vertx:3.8.4 - https://github.com/quarkusio/quarkus) - (The Apache Software License, Version 2.0) Quarkus - Vert.x Late Bound MDC Provider (io.quarkus:quarkus-vertx-latebound-mdc-provider:3.8.4 - https://github.com/quarkusio/quarkus) - (The Apache Software License, Version 2.0) Quarkus - Virtual Threads - Runtime (io.quarkus:quarkus-virtual-threads:3.8.4 - https://github.com/quarkusio/quarkus) - (Apache License, Version 2.0) ArC - Runtime (io.quarkus.arc:arc:3.8.4 - https://github.com/quarkusio/quarkus) + (The Apache Software License, Version 2.0) Quarkus - IDE Launcher (io.quarkus:quarkus-ide-launcher:3.10.2 - https://github.com/quarkusio/quarkus) + (The Apache Software License, Version 2.0) Quarkus - Mutiny - Runtime (io.quarkus:quarkus-mutiny:3.10.2 - https://github.com/quarkusio/quarkus) + (The Apache Software License, Version 2.0) Quarkus - Netty - Runtime (io.quarkus:quarkus-netty:3.10.2 - https://github.com/quarkusio/quarkus) + (The Apache Software License, Version 2.0) Quarkus - SmallRye Context Propagation - Runtime (io.quarkus:quarkus-smallrye-context-propagation:3.10.2 - https://github.com/quarkusio/quarkus) + (The Apache Software License, Version 2.0) Quarkus - Vert.x - Runtime (io.quarkus:quarkus-vertx:3.10.2 - https://github.com/quarkusio/quarkus) + (The Apache Software License, Version 2.0) Quarkus - Vert.x Late Bound MDC Provider (io.quarkus:quarkus-vertx-latebound-mdc-provider:3.10.2 - https://github.com/quarkusio/quarkus) + (The Apache Software License, Version 2.0) Quarkus - Virtual Threads - Runtime (io.quarkus:quarkus-virtual-threads:3.10.2 - https://github.com/quarkusio/quarkus) + (Apache License, Version 2.0) ArC - Runtime (io.quarkus.arc:arc:3.10.2 - https://github.com/quarkusio/quarkus) (The Apache Software License, Version 2.0) SmallRye Context Propagation: Core (io.smallrye:smallrye-context-propagation:2.1.0 - https://github.com/smallrye/smallrye-context-propagation) (The Apache Software License, Version 2.0) SmallRye Context Propagation: API (io.smallrye:smallrye-context-propagation-api:2.1.0 - https://github.com/smallrye/smallrye-context-propagation) (The Apache Software License, Version 2.0) SmallRye Context Propagation: Storage (io.smallrye:smallrye-context-propagation-storage:2.1.0 - https://github.com/smallrye/smallrye-context-propagation) - (Apache License, Version 2.0) SmallRye Fault Tolerance: Vert.x Integration (io.smallrye:smallrye-fault-tolerance-vertx:6.2.6 - http://smallrye.io) - (Apache License, Version 2.0) SmallRye Common: Annotations (io.smallrye.common:smallrye-common-annotation:2.2.0 - http://smallrye.io) - (Apache License, Version 2.0) SmallRye Common: Classloader (io.smallrye.common:smallrye-common-classloader:2.2.0 - http://smallrye.io) - (Apache License, Version 2.0) SmallRye Common: Constraints (io.smallrye.common:smallrye-common-constraint:2.2.0 - http://smallrye.io) - (Apache License, Version 2.0) SmallRye Common: Expressions (io.smallrye.common:smallrye-common-expression:2.2.0 - http://smallrye.io) - (Apache License, Version 2.0) SmallRye Common: Functions (io.smallrye.common:smallrye-common-function:2.2.0 - http://smallrye.io) - (Apache License, Version 2.0) SmallRye Common: IO (io.smallrye.common:smallrye-common-io:2.2.0 - http://smallrye.io) - (Apache License, Version 2.0) SmallRye Common: OS (io.smallrye.common:smallrye-common-os:2.2.0 - http://smallrye.io) - (Apache License, Version 2.0) SmallRye Common: Vert.x Context Utilities (io.smallrye.common:smallrye-common-vertx-context:2.2.0 - http://smallrye.io) - (Apache License, Version 2.0) SmallRye Config: CDI (io.smallrye.config:smallrye-config:3.5.4 - https://smallrye.io) - (Apache License, Version 2.0) SmallRye Config: Common (io.smallrye.config:smallrye-config-common:3.5.4 - https://smallrye.io) - (Apache License, Version 2.0) SmallRye Config: Core (io.smallrye.config:smallrye-config-core:3.5.4 - https://smallrye.io) - (Apache License, Version 2.0) SmallRye Mutiny - Core library (io.smallrye.reactive:mutiny:2.5.8 - https://smallrye.io/smallrye-mutiny) - (Apache License, Version 2.0) SmallRye Mutiny - Integration with SmallRye Context Propagation (io.smallrye.reactive:mutiny-smallrye-context-propagation:2.5.8 - https://smallrye.io/smallrye-mutiny) - (The Apache Software License, Version 2.0) SmallRye Mutiny - Vert.x Auth Common (io.smallrye.reactive:smallrye-mutiny-vertx-auth-common:3.11.0 - https://smallrye.io/smallrye-mutiny-vertx-bindings) - (The Apache Software License, Version 2.0) SmallRye Mutiny - Vert.x Core (io.smallrye.reactive:smallrye-mutiny-vertx-core:3.11.0 - https://smallrye.io/smallrye-mutiny-vertx-bindings) - (The Apache Software License, Version 2.0) SmallRye Mutiny - Runtime Helpers (io.smallrye.reactive:smallrye-mutiny-vertx-runtime:3.11.0 - https://smallrye.io/smallrye-mutiny-vertx-bindings) - (The Apache Software License, Version 2.0) SmallRye Mutiny - Vert.x URI Template (io.smallrye.reactive:smallrye-mutiny-vertx-uri-template:3.11.0 - https://smallrye.io/smallrye-mutiny-vertx-bindings) - (The Apache Software License, Version 2.0) SmallRye Mutiny - Vert.x Web Client (io.smallrye.reactive:smallrye-mutiny-vertx-web-client:3.11.0 - https://smallrye.io/smallrye-mutiny-vertx-bindings) - (The Apache Software License, Version 2.0) SmallRye Mutiny - Vert.x Web Common (io.smallrye.reactive:smallrye-mutiny-vertx-web-common:3.11.0 - https://smallrye.io/smallrye-mutiny-vertx-bindings) - (The Apache Software License, Version 2.0) SmallRye Mutiny - Code Generator (io.smallrye.reactive:vertx-mutiny-generator:3.11.0 - https://smallrye.io/smallrye-mutiny-vertx-bindings) + (Apache License, Version 2.0) SmallRye Fault Tolerance: Vert.x Integration (io.smallrye:smallrye-fault-tolerance-vertx:6.3.0 - http://smallrye.io) + (Apache License, Version 2.0) SmallRye Common: Annotations (io.smallrye.common:smallrye-common-annotation:2.3.0 - http://smallrye.io) + (Apache License, Version 2.0) SmallRye Common: Classloader (io.smallrye.common:smallrye-common-classloader:2.3.0 - http://smallrye.io) + (Apache License, Version 2.0) SmallRye Common: Constraints (io.smallrye.common:smallrye-common-constraint:2.3.0 - http://smallrye.io) + (Apache License, Version 2.0) SmallRye Common: Expressions (io.smallrye.common:smallrye-common-expression:2.3.0 - http://smallrye.io) + (Apache License, Version 2.0) SmallRye Common: Functions (io.smallrye.common:smallrye-common-function:2.3.0 - http://smallrye.io) + (Apache License, Version 2.0) SmallRye Common: IO (io.smallrye.common:smallrye-common-io:2.3.0 - http://smallrye.io) + (Apache License, Version 2.0) SmallRye Common: OS (io.smallrye.common:smallrye-common-os:2.3.0 - http://smallrye.io) + (Apache License, Version 2.0) SmallRye Common: Vert.x Context Utilities (io.smallrye.common:smallrye-common-vertx-context:2.3.0 - http://smallrye.io) + (Apache License, Version 2.0) SmallRye Config: CDI (io.smallrye.config:smallrye-config:3.7.1 - https://smallrye.io) + (Apache License, Version 2.0) SmallRye Config: Common (io.smallrye.config:smallrye-config-common:3.7.1 - https://smallrye.io) + (Apache License, Version 2.0) SmallRye Config: Core (io.smallrye.config:smallrye-config-core:3.7.1 - https://smallrye.io) + (Apache License, Version 2.0) SmallRye Mutiny - Core library (io.smallrye.reactive:mutiny:2.6.0 - https://smallrye.io/smallrye-mutiny) + (Apache License, Version 2.0) SmallRye Mutiny - Integration with SmallRye Context Propagation (io.smallrye.reactive:mutiny-smallrye-context-propagation:2.6.0 - https://smallrye.io/smallrye-mutiny) + (The Apache Software License, Version 2.0) SmallRye Mutiny - Vert.x Auth Common (io.smallrye.reactive:smallrye-mutiny-vertx-auth-common:3.12.0 - https://smallrye.io/smallrye-mutiny-vertx-bindings) + (The Apache Software License, Version 2.0) SmallRye Mutiny - Vert.x Core (io.smallrye.reactive:smallrye-mutiny-vertx-core:3.12.0 - https://smallrye.io/smallrye-mutiny-vertx-bindings) + (The Apache Software License, Version 2.0) SmallRye Mutiny - Runtime Helpers (io.smallrye.reactive:smallrye-mutiny-vertx-runtime:3.12.0 - https://smallrye.io/smallrye-mutiny-vertx-bindings) + (The Apache Software License, Version 2.0) SmallRye Mutiny - Vert.x URI Template (io.smallrye.reactive:smallrye-mutiny-vertx-uri-template:3.12.0 - https://smallrye.io/smallrye-mutiny-vertx-bindings) + (The Apache Software License, Version 2.0) SmallRye Mutiny - Vert.x Web Client (io.smallrye.reactive:smallrye-mutiny-vertx-web-client:3.12.0 - https://smallrye.io/smallrye-mutiny-vertx-bindings) + (The Apache Software License, Version 2.0) SmallRye Mutiny - Vert.x Web Common (io.smallrye.reactive:smallrye-mutiny-vertx-web-common:3.12.0 - https://smallrye.io/smallrye-mutiny-vertx-bindings) + (The Apache Software License, Version 2.0) SmallRye Mutiny - Code Generator (io.smallrye.reactive:vertx-mutiny-generator:3.12.0 - https://smallrye.io/smallrye-mutiny-vertx-bindings) (Eclipse Public License - v 1.0) (The Apache Software License, Version 2.0) vertx-auth-common (io.vertx:vertx-auth-common:4.5.7 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-auth-parent/vertx-auth-common) (Eclipse Public License - v 1.0) (The Apache Software License, Version 2.0) vertx-codegen (io.vertx:vertx-codegen:4.5.7 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-codegen) (Eclipse Public License - v 2.0) (The Apache Software License, Version 2.0) Vert.x Core (io.vertx:vertx-core:4.5.7 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-core) - (Eclipse Public License - v 1.0) (The Apache Software License, Version 2.0) Vert.x JUnit 5 support :: Core (io.vertx:vertx-junit5:4.4.7 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-junit5) + (Eclipse Public License - v 1.0) (The Apache Software License, Version 2.0) Vert.x JUnit 5 support :: Core (io.vertx:vertx-junit5:4.5.7 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-junit5) (Eclipse Public License - v 1.0) (The Apache Software License, Version 2.0) Vert.x metrics implementation for Micrometer.io (io.vertx:vertx-micrometer-metrics:4.5.7 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-micrometer-metrics) - (Eclipse Public License - v 1.0) (The Apache Software License, Version 2.0) Vert.x OpenTelemetry (io.vertx:vertx-opentelemetry:4.4.7 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-tracing-parent/vertx-opentelemetry) + (Eclipse Public License - v 1.0) (The Apache Software License, Version 2.0) Vert.x OpenTelemetry (io.vertx:vertx-opentelemetry:4.5.7 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-tracing-parent/vertx-opentelemetry) (Eclipse Public License - v 1.0) (The Apache Software License, Version 2.0) Vert.x URI Template (io.vertx:vertx-uri-template:4.5.7 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-uri-template) (Eclipse Public License - v 1.0) (The Apache Software License, Version 2.0) vertx-web-client (io.vertx:vertx-web-client:4.5.7 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-web-parent/vertx-web-client) (Eclipse Public License - v 1.0) (The Apache Software License, Version 2.0) vertx-web-common (io.vertx:vertx-web-common:4.5.7 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-web-parent/vertx-web-common) @@ -183,7 +182,7 @@ Lists of 237 third-party dependencies. (EPL 2.0) (GPL2 w/ CPE) jakarta.transaction API (jakarta.transaction:jakarta.transaction-api:2.0.1 - https://projects.eclipse.org/projects/ee4j.jta) (Eclipse Public License 1.0) JUnit (junit:junit:4.12 - http://junit.org) (Apache License, Version 2.0) Byte Buddy (without dependencies) (net.bytebuddy:byte-buddy:1.14.11 - https://bytebuddy.net/byte-buddy) - (Apache License, Version 2.0) Byte Buddy agent (net.bytebuddy:byte-buddy-agent:1.14.10 - https://bytebuddy.net/byte-buddy-agent) + (Apache License, Version 2.0) Byte Buddy agent (net.bytebuddy:byte-buddy-agent:1.14.12 - https://bytebuddy.net/byte-buddy-agent) (Apache License, Version 2.0) (MIT License) Logstash Logback Encoder (net.logstash.logback:logstash-logback-encoder:7.2 - https://github.com/logfellow/logstash-logback-encoder) (The MIT License) JOpt Simple (net.sf.jopt-simple:jopt-simple:5.0.4 - http://jopt-simple.github.io/jopt-simple) (MIT) argparse4j (net.sourceforge.argparse4j:argparse4j:0.7.0 - http://argparse4j.github.io) @@ -213,16 +212,17 @@ Lists of 237 third-party dependencies. (New BSD License) Hamcrest Core (org.hamcrest:hamcrest-core:1.3 - https://github.com/hamcrest/JavaHamcrest/hamcrest-core) (BSD-2-Clause) (Public Domain, per Creative Commons CC0) HdrHistogram (org.hdrhistogram:HdrHistogram:2.1.12 - http://hdrhistogram.github.io/HdrHistogram/) (Apache License, version 2.0) JBoss Logging I18n Annotations (org.jboss.logging:jboss-logging-annotations:2.2.1.Final - http://www.jboss.org/jboss-logging-tools-parent/jboss-logging-annotations) - (Apache License 2.0) JBoss Threads (org.jboss.threads:jboss-threads:3.5.1.Final - http://www.jboss.org/jboss-threads) + (Apache License 2.0) JBoss Threads (org.jboss.threads:jboss-threads:3.6.1.Final - http://www.jboss.org) + (Apache License, Version 2.0) Java Concurrency Tools Core Library (org.jctools:jctools-core:4.0.3 - https://github.com/JCTools) (Eclipse Public License v2.0) JUnit Jupiter (Aggregator) (org.junit.jupiter:junit-jupiter:5.10.1 - https://junit.org/junit5/) - (Eclipse Public License v2.0) JUnit Jupiter API (org.junit.jupiter:junit-jupiter-api:5.10.1 - https://junit.org/junit5/) - (Eclipse Public License v2.0) JUnit Jupiter Engine (org.junit.jupiter:junit-jupiter-engine:5.10.1 - https://junit.org/junit5/) - (Eclipse Public License v2.0) JUnit Jupiter Params (org.junit.jupiter:junit-jupiter-params:5.10.1 - https://junit.org/junit5/) - (Eclipse Public License v2.0) JUnit Platform Commons (org.junit.platform:junit-platform-commons:1.10.1 - https://junit.org/junit5/) - (Eclipse Public License v2.0) JUnit Platform Engine API (org.junit.platform:junit-platform-engine:1.10.1 - https://junit.org/junit5/) + (Eclipse Public License v2.0) JUnit Jupiter API (org.junit.jupiter:junit-jupiter-api:5.10.2 - https://junit.org/junit5/) + (Eclipse Public License v2.0) JUnit Jupiter Engine (org.junit.jupiter:junit-jupiter-engine:5.10.2 - https://junit.org/junit5/) + (Eclipse Public License v2.0) JUnit Jupiter Params (org.junit.jupiter:junit-jupiter-params:5.10.2 - https://junit.org/junit5/) + (Eclipse Public License v2.0) JUnit Platform Commons (org.junit.platform:junit-platform-commons:1.10.2 - https://junit.org/junit5/) + (Eclipse Public License v2.0) JUnit Platform Engine API (org.junit.platform:junit-platform-engine:1.10.2 - https://junit.org/junit5/) (Public Domain, per Creative Commons CC0) LatencyUtils (org.latencyutils:LatencyUtils:2.0.3 - http://latencyutils.github.io/LatencyUtils/) (The Apache Software License, Version 2.0) LZ4 and xxHash (org.lz4:lz4-java:1.8.0 - https://github.com/lz4/lz4-java) - (MIT) mockito-core (org.mockito:mockito-core:5.8.0 - https://github.com/mockito/mockito) + (MIT) mockito-core (org.mockito:mockito-core:5.11.0 - https://github.com/mockito/mockito) (MIT) mockito-junit-jupiter (org.mockito:mockito-junit-jupiter:5.12.0 - https://github.com/mockito/mockito) (Apache License, Version 2.0) Objenesis (org.objenesis:objenesis:3.3 - http://objenesis.org/objenesis) (GNU General Public License (GPL), version 2, with the Classpath exception) JMH Core (org.openjdk.jmh:jmh-core:1.37 - http://openjdk.java.net/projects/code-tools/jmh/jmh-core/) diff --git a/data-plane/pom.xml b/data-plane/pom.xml index 55f301f5f6..cd3a150bbe 100644 --- a/data-plane/pom.xml +++ b/data-plane/pom.xml @@ -42,10 +42,10 @@ 2.38.0 - 4.4.7 + 4.5.7 4.0.0 - 1.11.5 - 1.17.0 + 1.12.5 + 1.32.0 2.14.1 3.25.2 7.6.0 @@ -60,7 +60,7 @@ 3.7.1 2.6.1.Final 3.4.4 - 3.8.4 + 3.10.2 4.9.2 2.38.0 diff --git a/data-plane/receiver-loom/src/main/java/dev/knative/eventing/kafka/broker/receiverloom/LoomKafkaProducer.java b/data-plane/receiver-loom/src/main/java/dev/knative/eventing/kafka/broker/receiverloom/LoomKafkaProducer.java index a1ba796715..54aa4f308b 100644 --- a/data-plane/receiver-loom/src/main/java/dev/knative/eventing/kafka/broker/receiverloom/LoomKafkaProducer.java +++ b/data-plane/receiver-loom/src/main/java/dev/knative/eventing/kafka/broker/receiverloom/LoomKafkaProducer.java @@ -15,18 +15,20 @@ */ package dev.knative.eventing.kafka.broker.receiverloom; +import com.google.common.util.concurrent.Uninterruptibles; import dev.knative.eventing.kafka.broker.core.ReactiveKafkaProducer; import dev.knative.eventing.kafka.broker.core.tracing.kafka.ProducerTracer; +import io.opentelemetry.context.Context; import io.vertx.core.Future; import io.vertx.core.Promise; import io.vertx.core.Vertx; import io.vertx.core.impl.ContextInternal; import io.vertx.core.impl.VertxInternal; +import io.vertx.core.impl.future.PromiseInternal; import io.vertx.core.tracing.TracingPolicy; import java.util.Objects; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.TimeUnit; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicBoolean; import org.apache.kafka.clients.producer.Producer; import org.apache.kafka.clients.producer.ProducerRecord; @@ -41,17 +43,15 @@ public class LoomKafkaProducer implements ReactiveKafkaProducer { private final Producer producer; - private final BlockingQueue> eventQueue; + private final ExecutorService executorService; private final AtomicBoolean isClosed; private final ProducerTracer tracer; private final VertxInternal vertx; - private final Thread sendFromQueueThread; private final Promise closePromise = Promise.promise(); public LoomKafkaProducer(Vertx v, Producer producer) { Objects.requireNonNull(v, "Vertx cannot be null"); this.producer = producer; - this.eventQueue = new LinkedBlockingQueue<>(); this.isClosed = new AtomicBoolean(false); this.vertx = (VertxInternal) v; final var ctxInt = ((ContextInternal) v.getOrCreateContext()).unwrap(); @@ -62,73 +62,54 @@ public LoomKafkaProducer(Vertx v, Producer producer) { this.tracer = null; } + ExecutorService executorService; if (Boolean.parseBoolean(System.getenv("ENABLE_VIRTUAL_THREADS"))) { - this.sendFromQueueThread = Thread.ofVirtual().start(this::sendFromQueue); + executorService = Executors.newVirtualThreadPerTaskExecutor(); } else { - this.sendFromQueueThread = new Thread(this::sendFromQueue); - this.sendFromQueueThread.start(); + executorService = Executors.newSingleThreadExecutor(); } + this.executorService = Context.taskWrapping(executorService); } @Override public Future send(ProducerRecord record) { - final Promise promise = Promise.promise(); if (isClosed.get()) { - promise.fail("Producer is closed"); - } else { - eventQueue.add(new RecordPromise<>(record, this.vertx.getOrCreateContext(), promise)); + return Future.failedFuture("Producer is closed"); } + PromiseInternal promise = vertx.promise(); + executorService.execute(() -> sendFromQueue(new RecordPromise<>(record, promise))); return promise.future(); } - private void sendFromQueue() { - // Process queue elements until this is closed and the tasks queue is empty - while (!isClosed.get() || !eventQueue.isEmpty()) { - try { - final var recordPromise = eventQueue.poll(2000, TimeUnit.MILLISECONDS); - if (recordPromise == null) { - continue; + private void sendFromQueue(RecordPromise recordPromise) { + final var startedSpan = this.tracer == null + ? null + : this.tracer.prepareSendMessage(recordPromise.context(), recordPromise.record); + + recordPromise + .promise + .future() + .onComplete(v -> { + if (startedSpan != null) { + startedSpan.finish(recordPromise.context()); + } + }) + .onFailure(cause -> { + if (startedSpan != null) { + startedSpan.fail(recordPromise.context(), cause); + } + }); + try { + producer.send(recordPromise.record, (metadata, exception) -> { + if (exception != null) { + recordPromise.fail(exception); + return; } - - final var startedSpan = this.tracer == null - ? null - : this.tracer.prepareSendMessage(recordPromise.getContext(), recordPromise.getRecord()); - - recordPromise - .getPromise() - .future() - .onComplete(v -> { - if (startedSpan != null) { - startedSpan.finish(recordPromise.getContext()); - } - }) - .onFailure(cause -> { - if (startedSpan != null) { - startedSpan.fail(recordPromise.getContext(), cause); - } - }); - try { - producer.send( - recordPromise.getRecord(), - (metadata, exception) -> recordPromise.getContext().runOnContext(v -> { - if (exception != null) { - recordPromise.getPromise().fail(exception); - return; - } - recordPromise.getPromise().complete(metadata); - })); - } catch (final KafkaException exception) { - recordPromise - .getContext() - .runOnContext(v -> recordPromise.getPromise().fail(exception)); - } - } catch (InterruptedException e) { - logger.debug("Interrupted while waiting for event queue to be populated."); - break; - } + recordPromise.complete(metadata); + }); + } catch (final KafkaException exception) { + recordPromise.fail(exception); } - - logger.debug("Background thread completed."); } @Override @@ -141,12 +122,9 @@ public Future close() { Thread.ofVirtual().start(() -> { try { - while (!eventQueue.isEmpty()) { - logger.debug("Waiting for the eventQueue to become empty"); - Thread.sleep(2000L); - } - logger.debug("Waiting for sendFromQueueThread thread to complete"); - sendFromQueueThread.join(); + executorService.shutdown(); + logger.debug("Waiting for tasks to complete"); + Uninterruptibles.awaitTerminationUninterruptibly(executorService); logger.debug("Closing the producer"); producer.close(); closePromise.complete(); @@ -178,35 +156,29 @@ public Producer unwrap() { } private static class RecordPromise { - private final ProducerRecord record; - private final ContextInternal context; - private final Promise promise; + final ProducerRecord record; + final PromiseInternal promise; - private RecordPromise(ProducerRecord record, ContextInternal context, Promise promise) { + RecordPromise(ProducerRecord record, PromiseInternal promise) { this.record = record; - this.context = context; this.promise = promise; } - public ProducerRecord getRecord() { - return record; + ContextInternal context() { + return promise.context(); } - public Promise getPromise() { - return promise; + void complete(RecordMetadata result) { + promise.complete(result); } - public ContextInternal getContext() { - return context; + void fail(Throwable cause) { + promise.fail(cause); } } // Function needed for testing public boolean isSendFromQueueThreadAlive() { - return sendFromQueueThread.isAlive(); - } - - public int getEventQueueSize() { - return eventQueue.size(); + return !executorService.isTerminated(); } } diff --git a/data-plane/receiver-loom/src/test/java/dev/knative/eventing/kafka/broker/receiverloom/LoomKafkaProducerTest.java b/data-plane/receiver-loom/src/test/java/dev/knative/eventing/kafka/broker/receiverloom/LoomKafkaProducerTest.java index f81711c9fc..3f41e099fb 100644 --- a/data-plane/receiver-loom/src/test/java/dev/knative/eventing/kafka/broker/receiverloom/LoomKafkaProducerTest.java +++ b/data-plane/receiver-loom/src/test/java/dev/knative/eventing/kafka/broker/receiverloom/LoomKafkaProducerTest.java @@ -15,9 +15,7 @@ */ package dev.knative.eventing.kafka.broker.receiverloom; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -128,7 +126,6 @@ public void testCloseIsWaitingForEmptyQueue(VertxTestContext testContext) { .onComplete(ar -> { testContext.verify(() -> { assertTrue(ar.succeeded()); - assertEquals(0, producer.getEventQueueSize()); assertFalse(producer.isSendFromQueueThreadAlive()); checkpoints.flag();