statefun-flink-distribution
Copyright 2014-2023 The Apache Software Foundation

This product includes software developed at
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.fasterxml.jackson.core:jackson-annotations:2.13.4
- com.fasterxml.jackson.core:jackson-core:2.13.4
- com.fasterxml.jackson.core:jackson-databind:2.13.4.2
- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.13.4
- com.google.auto.service:auto-service-annotations:1.0-rc6
- com.google.errorprone:error_prone_annotations:2.3.4
- com.google.guava:failureaccess:1.0.1
- com.google.guava:guava:29.0-jre
- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
- com.google.j2objc:j2objc-annotations:1.3
- com.kohlschutter.junixsocket:junixsocket-common:2.3.2
- com.kohlschutter.junixsocket:junixsocket-core:2.3.2
- com.kohlschutter.junixsocket:junixsocket-native-common:2.3.2
- com.squareup.okhttp3:okhttp:3.14.6
- com.squareup.okio:okio:1.17.2
- commons-codec:commons-codec:1.15
- commons-collections:commons-collections:3.2.2
- commons-io:commons-io:2.11.0
- commons-lang:commons-lang:2.6
- commons-logging:commons-logging:1.1.3
- io.dropwizard.metrics:metrics-core:3.2.6
- joda-time:joda-time:2.5
- org.apache.commons:commons-compress:1.21
- org.apache.commons:commons-lang3:3.3.2
- org.apache.kafka:kafka-clients:3.2.3
- org.checkerframework:checker-qual:2.11.1
- org.lz4:lz4-java:1.8.0
- org.objenesis:objenesis:2.1

This project bundles the following dependencies under the BSD license.
See bundled license files under "META-INF/licenses" for details.

- com.esotericsoftware.kryo:kryo:2.24.0
- com.esotericsoftware.minlog:minlog:1.2
- com.github.luben:zstd-jni:1.5.2-1
- com.google.protobuf:protobuf-java:3.7.1

This project bundles the following dependencies under the ICU license.
See bundled license files under "META-INF/licenses" for details.

- com.ibm.icu:icu4j:67.1
