Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support IGNORE and other optional arguments for timeseries commands #3860

Merged
merged 3 commits into from
Jun 14, 2024

Conversation

sazzad16
Copy link
Collaborator

@sazzad16 sazzad16 commented Jun 12, 2024

  • Re-implement TS.ADD command with optional arguments
  • Implement TS.INCRBY and TS.DECRBY commands with optional arguments
  • Support IGNORE argument for TS.[ CREATE | ALTER | ADD | INCRBY | DECRBY] commands

* Re-implement TS.ADD command with optional arguments
* Implement TS.INCRBY and TS.DECRBY commands with optional arguments
@sazzad16 sazzad16 added this to the 5.2.0 milestone Jun 12, 2024
@sazzad16 sazzad16 requested review from uglide and atakavci June 12, 2024 10:43
Copy link
Collaborator Author

@sazzad16 sazzad16 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To the reviewers, I am not 100% sure about the name of TSIncrByDecrByParams. We usually have one Params class for one command. But in this case, two different commands (TS.INCRBY and TS.DECRBY) have exactly same set of optional arguments. Could you suggest a better class to represent optional arguments of both commands.

@atakavci
Copy link
Contributor

you can try to extend from a generic base where generic type extends from base itself. And put almost everything into base and derive incrby and decrby .
like ...

public class TSArithmeticOpParams<T extends TSArithmeticOpParams<?>> implements IParams {

  private Long timestamp;
  private Long retentionPeriod;
  private EncodingFormat encoding;
  private Long chunkSize;
  private DuplicatePolicy duplicatePolicy;
  private Map<String, String> labels;

  public TSArithmeticOpParams() {
  }

  public T timestamp(long timestamp) {
    this.timestamp = timestamp;
    return (T) this;
  }

  @Override
  public void addParams(CommandArguments args) {
    // TODO Auto-generated method stub
    throw new UnsupportedOperationException("Unimplemented method 'addParams'");
  }
.
.
.

and derive like

public class TSDecrByParams extends TSArithmeticOpParams<TSDecrByParams> {

  public TSDecrByParams() {
  }

  public static TSDecrByParams params() {
    return new TSDecrByParams();
  }
.
.

@atakavci
Copy link
Contributor

atakavci commented Jun 12, 2024

for future reference if you need to reuse something in a case like this;

public final CommandObject<Long> tsAdd(String key, long timestamp, double value, TSCreateParams createParams) { 

just extend a dummy TSAdd from TSCreateParams and use it. It will pay off when the time comes.

atakavci
atakavci previously approved these changes Jun 12, 2024
Copy link
Contributor

@atakavci atakavci left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good, thanks

and rename to TSIncrOrDecrByParams
@sazzad16 sazzad16 changed the title Cover optional arguments for timeseries commands Support IGNORE and other optional arguments for timeseries commands Jun 13, 2024
@sazzad16 sazzad16 merged commit e7503d7 into redis:master Jun 14, 2024
5 checks passed
@sazzad16 sazzad16 deleted the ts-incr-decr-by-params branch June 14, 2024 04:16
@sazzad16 sazzad16 restored the ts-incr-decr-by-params branch June 14, 2024 04:17
sazzad16 added a commit that referenced this pull request Jun 14, 2024
…3860)

* Re-implement TS.ADD command with optional arguments
* Implement TS.INCRBY and TS.DECRBY commands with optional arguments
* Support IGNORE argument for TS.[ CREATE | ALTER | ADD | INCRBY | DECRBY] commands

---

* Cover optional arguments for timeseries commands
   - Re-implement TS.ADD command with optional arguments
   - Implement TS.INCRBY and TS.DECRBY commands with optional arguments

* Introduce EncodingFormat enum for <COMPRESSED|UNCOMPRESSED>

* Support IGNORE option
   and rename to TSIncrOrDecrByParams
sazzad16 added a commit that referenced this pull request Jun 14, 2024
…mmands (#3860)"

This reverts commit e7503d7.

The commit e7503d7 is merged (cherry-picked) into 5.2.0 branch by commit ac18fd0.
@sazzad16 sazzad16 deleted the ts-incr-decr-by-params branch June 14, 2024 05:04
sazzad16 added a commit that referenced this pull request Jul 10, 2024
…3860)

* Re-implement TS.ADD command with optional arguments
* Implement TS.INCRBY and TS.DECRBY commands with optional arguments
* Support IGNORE argument for TS.[ CREATE | ALTER | ADD | INCRBY | DECRBY] commands

---

* Cover optional arguments for timeseries commands
   - Re-implement TS.ADD command with optional arguments
   - Implement TS.INCRBY and TS.DECRBY commands with optional arguments

* Introduce EncodingFormat enum for <COMPRESSED|UNCOMPRESSED>

* Support IGNORE option
   and rename to TSIncrOrDecrByParams
sazzad16 added a commit that referenced this pull request Jul 10, 2024
…3860)

* Re-implement TS.ADD command with optional arguments
* Implement TS.INCRBY and TS.DECRBY commands with optional arguments
* Support IGNORE argument for TS.[ CREATE | ALTER | ADD | INCRBY | DECRBY] commands

---

* Cover optional arguments for timeseries commands
   - Re-implement TS.ADD command with optional arguments
   - Implement TS.INCRBY and TS.DECRBY commands with optional arguments

* Introduce EncodingFormat enum for <COMPRESSED|UNCOMPRESSED>

* Support IGNORE option
   and rename to TSIncrOrDecrByParams
@sazzad16 sazzad16 modified the milestones: 5.2.0, 5.1.4 Jul 10, 2024
uglide added a commit that referenced this pull request Sep 27, 2024
* Initial support for client-side caching (#3658)

* Support for client-side caching - phase 2 (#3673)

* Code re-use?

* Stop forcing to read push notifications before checking cache and remove BCAST

* Rename variable

* Remove ensureFillSafe()

* Refactor peeking and reading push notifications

* Cleanup comments

* Fix transaction failure tests using mock (#3683)

Now we have to mock Protocol#read(RedisInputStream, ClientSideCache) instead of Protocol#read(RedisInputStream).

* Support client-side caching from UnifiedJedis (#3691)

* Support client side caching from UnifiedJedis

* Support client side caching as a separate parameter

* format imports

* Support CSC in sentinel mode

* undo change

* Client-side caching by hashing command arguments (#3700)

* Support TTL in client side caching (using Caffeine library)

* Also Guava cache

* format pom.xml

* Client-side caching by command arguments

TODO: Compute hash code.

* send keys

* todo comment for clean-up

* rename method to invalidate

* Client-side caching by hashing command arguments

* Hash command arguments for CaffeineCSC using OpenHFT hashing

* Clean-up keyHashes map

* added javadoc

* rename method

* remove lock

* descriptive name

* descriptive names and fix

* common default values in base class

* Cover Redis commands for client side caching (#3702)

* Support Client-side caching through URI/URL (#3703)

* Support Client-side caching through URI/URL

* check idx of '=' sign

* nicer exception

* edit/fix condition

* rename param

* Throw IllegalArgumentException at all such cases

* Test GuavaCSC and CaffeineCSC (#3742)

* Support white-list and black-list commands and keys (#3755)

* Create csc package

* Create csc.util package

* Create a config interface for client-side caching

* Default isCacheable

* Config to WhiteList/BlackList commands and String keys

* Create csc test package(s)

* Test white-list/black-list commands and keys

* Merge fix

* Remove csc.util package

* Fix javadoc links

* Added ClientSideCacheable interface and removed ClientSideCacheConfig interface

* Format imports

* Re-create csc.util package

* Rename to allow/deny instead of white/black

* Introduce interface(s) for hashing CommandObject (#3743)

* Client-side cache related naming changes (#3758)

Changes:
1. CommandLongHashing is renamed to CommandLongHasher.
2. Expanded the names of GuavaCSC (GuavaClientSideCache) and CaffeineCSC (CaffeineClientSideCache).

* Reformat clientSideCache variable names (#3761)

* Format tabs in pom.xml

* Use Experimental annotation

* Fix client side cache tests (#3799)

Due to redis/redis#13167 

* Fix JedisClusterClientSideCacheTest

* Fix JedisSentineledClientSideCacheTest

* Remove openhft hashing from source dependency (#3800)

* Test different functionalities of client side cache (#3828)

* Test JedisURIHelper#getClientSideCache(URI) (#3835)

* Merge fix: after introducing EndpointConfig in #3836

* Tweak maximumSize test in CaffeineClientSideCacheTest

* Little more tweak maximumSize test in CaffeineClientSideCacheTest

* Fix incompatibilities with the latest RedisStack (#3855)

* Fix tests

- Skip Graph tests
- Fix JSON RESP3 test

* JSON.GET behaves identically on RESP2 and RESP3

* Revert "Fix incompatibilities with the latest RedisStack (#3855)"

This reverts commit 6b9d338.

* [TEMPORARY] [TEST] Use redis-stack-server:7.4.0-rc1 image for testing

* Support RediSearch DIALECT 5 (#3831)

- [x] Avoid escaping at query time
- [ ] Alias for tag fields (EXACT)
- [x] Avoid repeating for numeral equality
- [x] New dialect (5)

* Support FLOAT16 and BFLOAT16 VecSim storage types (#3849)

* Test: INTERSECTS and DIJOINT conditions support in GeoSearch (#3862)

* Support IGNORE and other optional arguments for timeseries commands (#3860)

* Re-implement TS.ADD command with optional arguments
* Implement TS.INCRBY and TS.DECRBY commands with optional arguments
* Support IGNORE argument for TS.[ CREATE | ALTER | ADD | INCRBY | DECRBY] commands

---

* Cover optional arguments for timeseries commands
   - Re-implement TS.ADD command with optional arguments
   - Implement TS.INCRBY and TS.DECRBY commands with optional arguments

* Introduce EncodingFormat enum for <COMPRESSED|UNCOMPRESSED>

* Support IGNORE option
   and rename to TSIncrOrDecrByParams

* Polish #3860: Separate params for TS.INCRBY and TS.DECRBY (#3863)

* Support indexing of MISSING and EMPTY values (#3866)

* Little tweak maximumSize test in CaffeineClientSideCacheTest

* Inject ClientSideCacheable via set method (#3882)

* Use CommandObject(s) as cache-key (#3875)

and remove hashing of CommandObject(s).

* #3886 merge fix

* Revert "[TEMPORARY] [TEST] Use redis-stack-server:7.4.0-rc1 image for testing"

This reverts commit 92c09f3.

* More tweak maximumSize test in CaffeineClientSideCacheTest

This reverts and modifies commit 3534996.

* Remove client side cache support through uri/url (#3892)

This partially reverts #3703 and #3835

* Bump com.google.guava:guava from 33.0.0-jre to 33.2.1-jre (#3893)

* Prepare client side caching - design 2 (#3889)

* Separate CacheConnection

* Introduce CacheKey and CacheEntry

* Little tweak maximumSize test in CaffeineClientSideCacheTest

* Remove resetting timeout; we'll PING instead

* Refactor Client-Side Caching implementation (#3900)

* adding a DataProvider to access connection from cache

* resolve keys from commandarguments

* clean up in unifiiedjedis and add csc test with ssl

* - fix readtimeout exception with sockets for consuming invalidations pending in buffer
- apply a default list of cacheable commands to DefaultClientSideCacheable
- fix failing unit tests with cacheable / non-cacheable keys
- remove formatting changes

* - add serialization for cache instances
- add unit test with UnifiedJedis
- add benchmark for CSC execution
- clean unused imports

* - added 'Cache' interface and 'DefaultCache' implementation in regard to design doc
- added 'EvictionPolicy' interface and LRU implementation
- move cache object validation and cache control stuf from 'ClientSideCache' into 'CacheConnection'
- make guava and caffeine caches experimental

* - added SSLSocketWrapper and plug it to use 'available'
- handle exceptions properly
- fix some issues with unit tests

* implementing thread safety

* - fix eviction issue and add related test
- fix consuming invalidation messages on a response read
- introduce cachestats
- fix potential issue with cacheKeysRelatedtoRedisKey cleanup
- tests for sequential access, concurrent acces and maxsize

* - renmae abstract cache class
- add test case for returning new instance of cache object

* - change order of execution in sequential acces test

* -  flush the cache on any disconnect
- replace LRU policy references with EvictionPolicy interface
-  add some constructor overloads to enable custom eviction policies on cache

* fix testcache

* fix javadoc issue

* - fix multithreaded eviction policy issue
- update guava and caffeine implementations according to abstract cache

* Jedis test plan coverage for CSC (#3918)

* initial changes

* cover tests for JedisPooled and functionality

* fix javadoc

* cover new tests for JedisCluster and JedisSentineled

* Fix CSC allow-and-deny-list and rename Cacheable interface

* Tag CommandArguments#getKeys() as Internal

* cover lruEvictionTest

* Address code reviews and more updates

* fix format and more minor changes

* format Connection

* modify WeakReference usage

* Use ExecutorService.shutdownNow() in tests (#3922)

* Use ExecutorService.shutdownNow()

* More ExecutorService.shutdownNow() and other changes

* [minor change] Avoid creating same CacheKey twice

* Support caching null values (#3939)

* caching null results

* add more assertion

* Adding CacheConfig (#3919)

* add cacheconfig

* remove empty file

* -modify constructors with cache as public
- trim guava caffeine

* remove cachetype

* - add getCache to UnifiedJedis
- add builder method to CacheConfig

* add evictionpolicy to cacheconfig

* - unifiedjedis constructor with cacheconfig
-  wrap IOException on protocol read error

* fix merge issue

---------

Co-authored-by: M Sazzadul Hoque <7600764+sazzad16@users.noreply.github.com>

* Polish "Adding CacheConfig"

Polish #3919 - address some pending change requests

- Swap contructor placements
- Fix grammar in exception message

* Adding Cache class to CacheConfig (#3942)

* adding cacheclass to cacheconfig

* - add cachefactory test

* - revert connection ctors to public
- udpate some tests with UnifiedJedis.getCache
- add ping to flaky tests

* remove unnecessary anonymous types

* change ctor access modifiers

* fix test name

* make cachefactory methods static

* removing pings  due to still flaky with inv messages

* - drop CustomCache in tests and use TestCache
- check null cacheable issue with defaultcache
- support both ctors in custom cache classes regarding to value of cacheconfig.cacheable

* remove unncessary maxsize

* - remove inline anonymious

* Server version check for CSC activation  (#3954)

* checking server version for CSC

* fix format change

* fix noauth hello exception in integration tests

* fix version check

* remove redundant check

* remove unused imports

* 'toString' for Version

* rename to RedisVersion

* moving RedisVersion package

---------

Co-authored-by: Igor Malinovskiy <u.glide@gmail.com>
Co-authored-by: atakavci <58048133+atakavci@users.noreply.github.com>
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Oct 4, 2024
This PR contains the following updates:

| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
| [org.threeten:threetenbp](https://www.threeten.org/threetenbp)
([source](https://github.com/ThreeTen/threetenbp)) | dependencies |
misk/gradle/libs.versions.toml | gradle | minor | `1.6.9` -> `1.7.0` |
| [app.cash.tempest:tempest-bom](https://github.com/cashapp/tempest) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2024.08.07.002316-64f40ef` -> `2024.09.04.165019-8430cf3` |
| [org.postgresql:postgresql](https://jdbc.postgresql.org)
([source](https://github.com/pgjdbc/pgjdbc)) | dependencies |
misk/gradle/libs.versions.toml | gradle | minor | `42.3.9` -> `42.7.4` |
| [com.squareup.okio:okio](https://github.com/square/okio) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch | `3.9.0`
-> `3.9.1` |
| [org.mockito:mockito-core](https://github.com/mockito/mockito) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`5.13.0` -> `5.14.1` |
| [ch.qos.logback:logback-core](http://logback.qos.ch)
([source](https://github.com/qos-ch/logback),
[changelog](https://logback.qos.ch/news.html)) | dependencies |
misk/gradle/libs.versions.toml | gradle | minor | `1.4.14` -> `1.5.6` |
| [ch.qos.logback:logback-classic](http://logback.qos.ch)
([source](https://github.com/qos-ch/logback),
[changelog](https://logback.qos.ch/news.html)) | dependencies |
misk/gradle/libs.versions.toml | gradle | minor | `1.4.14` -> `1.5.6` |
|
[org.jetbrains.kotlinx:kotlinx-coroutines-core](https://github.com/Kotlin/kotlinx.coroutines)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.8.1` -> `1.9.0` |
| [org.jooq:jooq](http://www.jooq.org)
([source](https://github.com/jOOQ/jOOQ)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `3.18.2` -> `3.18.20`
|
| [redis.clients:jedis](https://github.com/redis/jedis) | dependencies |
misk/gradle/libs.versions.toml | gradle | minor | `5.1.5` -> `5.2.0` |
| [com.google.guava:guava-bom](https://github.com/google/guava)
([source](http://svn.sonatype.org/spice/trunk/oss/oss-parent-9)) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`33.3.0-jre` -> `33.3.1-jre` |
| [io.grpc:grpc-stub](https://github.com/grpc/grpc-java) | dependencies
| misk/gradle/libs.versions.toml | gradle | minor | `1.60.0` -> `1.68.0`
|
| [io.grpc:grpc-protobuf](https://github.com/grpc/grpc-java) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.60.0` -> `1.68.0` |
| [io.grpc:grpc-netty](https://github.com/grpc/grpc-java) | dependencies
| misk/gradle/libs.versions.toml | gradle | minor | `1.60.0` -> `1.68.0`
|
| [io.grpc:protoc-gen-grpc-java](https://github.com/grpc/grpc-java) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.60.0` -> `1.68.0` |
| [io.grpc:grpc-bom](https://github.com/grpc/grpc-java) | dependencies |
misk/gradle/libs.versions.toml | gradle | minor | `1.60.0` -> `1.68.0` |
| [io.grpc:grpc-api](https://github.com/grpc/grpc-java) | dependencies |
misk/gradle/libs.versions.toml | gradle | minor | `1.60.0` -> `1.68.0` |
|
[com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.43.0` -> `2.45.1` |
|
[com.google.apis:google-api-services-storage](http://nexus.sonatype.org/oss-repository-hosting.html)
([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`v1-rev20240916-2.0.0` -> `v1-rev20240924-2.0.0` |
|
[com.google.cloud:google-cloud-spanner](https://github.com/googleapis/java-spanner)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`6.75.0` -> `6.76.0` |
| [com.google.api:gax](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.52.0` -> `2.54.1` |
|
[com.google.errorprone:error_prone_annotations](https://errorprone.info)
([source](https://github.com/google/error-prone)) | dependencies |
misk/gradle/libs.versions.toml | gradle | minor | `2.31.0` -> `2.32.0` |
|
[com.netflix.concurrency-limits:concurrency-limits-core](https://github.com/Netflix/concurrency-limits)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`0.5.1` -> `0.5.2` |
|
[org.apache.commons:commons-lang3](https://commons.apache.org/proper/commons-lang/)
([source](https://gitbox.apache.org/repos/asf?p=commons-lang.git)) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`3.16.0` -> `3.17.0` |
| [commons-io:commons-io](https://commons.apache.org/proper/commons-io/)
([source](https://gitbox.apache.org/repos/asf?p=commons-io.git)) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.16.1` -> `2.17.0` |
| [app.cash.sqldelight:runtime](https://github.com/cashapp/sqldelight) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.0.0`
-> `2.0.2` |
|
[app.cash.sqldelight:mysql-dialect](https://github.com/cashapp/sqldelight)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.0.0` -> `2.0.2` |
|
[app.cash.sqldelight:jdbc-driver](https://github.com/cashapp/sqldelight)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.0.0` -> `2.0.2` |
|
[app.cash.sqldelight:gradle-plugin](https://github.com/cashapp/sqldelight)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.0.0` -> `2.0.2` |
|
[com.google.protobuf:protoc](https://developers.google.com/protocol-buffers/)
([source](https://github.com/protocolbuffers/protobuf)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `3.25.4` -> `3.25.5` |
|
[com.google.protobuf:protobuf-java](https://developers.google.com/protocol-buffers/)
([source](https://github.com/protocolbuffers/protobuf)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `3.25.4` -> `3.25.5` |
| [com.squareup.okhttp3:mockwebserver](https://square.github.io/okhttp/)
([source](https://github.com/square/okhttp)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `5.0.0-alpha.13` ->
`5.0.0-alpha.14` |
| [com.squareup.okhttp3:okhttp](https://square.github.io/okhttp/)
([source](https://github.com/square/okhttp)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `5.0.0-alpha.13` ->
`5.0.0-alpha.14` |
| [io.netty:netty-handler](https://netty.io/)
([source](https://github.com/netty/netty)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `4.1.112.Final` ->
`4.1.113.Final` |
| [io.netty:netty-bom](https://netty.io/)
([source](https://github.com/netty/netty)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `4.1.112.Final` ->
`4.1.113.Final` |
|
[io.micrometer:micrometer-registry-prometheus](https://github.com/micrometer-metrics/micrometer)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`1.12.9` -> `1.12.10` |
|
[io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`1.12.9` -> `1.12.10` |
|
[com.vanniktech.maven.publish.base](https://github.com/vanniktech/gradle-maven-publish-plugin)
| plugin | misk/gradle/libs.versions.toml | gradle | minor | `0.27.0` ->
`0.28.0` |
|
[com.vanniktech:gradle-maven-publish-plugin](https://github.com/vanniktech/gradle-maven-publish-plugin)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`0.27.0` -> `0.28.0` |
| [org.junit.jupiter:junit-jupiter-params](https://junit.org/junit5/)
([source](https://github.com/junit-team/junit5)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `5.11.0` -> `5.11.1` |
| [org.junit.jupiter:junit-jupiter-engine](https://junit.org/junit5/)
([source](https://github.com/junit-team/junit5)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `5.11.0` -> `5.11.1` |
| [org.junit.jupiter:junit-jupiter-api](https://junit.org/junit5/)
([source](https://github.com/junit-team/junit5)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `5.11.0` -> `5.11.1` |
|
[com.fasterxml.jackson.module:jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.17.2` -> `2.18.0` |
|
[com.fasterxml.jackson.datatype:jackson-datatype-jsr310](https://github.com/FasterXML/jackson-modules-java8)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.17.2` -> `2.18.0` |
|
[com.fasterxml.jackson.dataformat:jackson-dataformat-yaml](https://github.com/FasterXML/jackson-dataformats-text)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.17.2` -> `2.18.0` |
|
[com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson)
([source](https://github.com/FasterXML/jackson-databind)) | dependencies
| misk/gradle/libs.versions.toml | gradle | minor | `2.17.2` -> `2.18.0`
|
|
[com.fasterxml.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.17.2` -> `2.18.0` |
|
[com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.17.2` -> `2.18.0` |
|
[com.fasterxml.jackson.core:jackson-annotations](https://github.com/FasterXML/jackson)
([source](https://github.com/FasterXML/jackson-annotations)) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.17.2` -> `2.18.0` |
|
[com.google.auth:google-auth-library-oauth2-http](https://github.com/googleapis/google-auth-library-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.24.1` -> `1.27.0` |
|
[com.google.auth:google-auth-library-credentials](https://github.com/googleapis/google-auth-library-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.24.1` -> `1.27.0` |
| [io.gitlab.arturbosch.detekt:detekt-test-utils](https://detekt.dev)
([source](https://github.com/detekt/detekt)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.23.6` -> `1.23.7` |
| [io.gitlab.arturbosch.detekt:detekt-test](https://detekt.dev)
([source](https://github.com/detekt/detekt)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.23.6` -> `1.23.7` |
| [io.gitlab.arturbosch.detekt:detekt-psi-utils](https://detekt.dev)
([source](https://github.com/detekt/detekt)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.23.6` -> `1.23.7` |
| [io.gitlab.arturbosch.detekt:detekt-parser](https://detekt.dev)
([source](https://github.com/detekt/detekt)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.23.6` -> `1.23.7` |
| [io.gitlab.arturbosch.detekt:detekt-gradle-plugin](https://detekt.dev)
([source](https://github.com/detekt/detekt)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.23.6` -> `1.23.7` |
| [io.gitlab.arturbosch.detekt:detekt-api](https://detekt.dev)
([source](https://github.com/detekt/detekt)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.23.6` -> `1.23.7` |
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.38.1` -> `1.39.1` |
| [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.38.1` -> `1.39.1` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.27.14` -> `2.28.11` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.27.14` -> `2.28.11` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.27.14` -> `2.28.11` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.27.14` -> `2.28.11` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.27.14` -> `2.28.11` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.27.14` -> `2.28.11` |
| [com.amazonaws:aws-java-sdk-sqs](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.770` ->
`1.12.772` |
| [com.amazonaws:aws-java-sdk-s3](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.770` ->
`1.12.772` |
|
[com.amazonaws:aws-java-sdk-dynamodb](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.770` ->
`1.12.772` |
| [com.amazonaws:aws-java-sdk-core](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.770` ->
`1.12.772` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>ThreeTen/threetenbp (org.threeten:threetenbp)</summary>

###
[`v1.7.0`](https://github.com/ThreeTen/threetenbp/releases/tag/v1.7.0)

See the [change
notes](https://www.threeten.org/threetenbp/changes-report.html) for more
information.

</details>

<details>
<summary>pgjdbc/pgjdbc (org.postgresql:postgresql)</summary>

###
[`v42.7.4`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#4274-2024-08-22-080000--0400)

##### Added

- chore: SCRAM dependency to 3.1 and support channel binding [PR
#&#8203;3188](https://github.com/pgjdbc/pgjdbc/pull/3188)
- chore: Add PostgreSQL 15, 16, and 17beta1 to CI tests [PR
#&#8203;3299](https://github.com/pgjdbc/pgjdbc/pull/3299)
- test: Update to 17beta3 [PR
#&#8203;3308](https://github.com/pgjdbc/pgjdbc/pull/3308)
- chore: Implement direct SSL ALPN connections [PR
#&#8203;3252](https://github.com/pgjdbc/pgjdbc/pull/3252)
- translation: Add Korean translation file [PR
#&#8203;3276](https://github.com/pgjdbc/pgjdbc/pull/3276)

##### Fixed

- fix: PgInterval ignores case for represented interval string [PR
#&#8203;3344](https://github.com/pgjdbc/pgjdbc/pull/3344)
- perf: Avoid extra copies when receiving int4 and int2 in PGStream [PR
#&#8203;3295](https://github.com/pgjdbc/pgjdbc/pull/3295)
- fix: Add support for Infinity::numeric values in ResultSet.getObject
[PR #&#8203;3304](https://github.com/pgjdbc/pgjdbc/pull/3304)
- fix: Ensure order of results for getDouble [PR
#&#8203;3301](https://github.com/pgjdbc/pgjdbc/pull/3301)
- perf: Replace BufferedOutputStream with unsynchronized
PgBufferedOutputStream, allow configuring different Java and SO_SNDBUF
buffer sizes [PR
#&#8203;3248](https://github.com/pgjdbc/pgjdbc/pull/3248)
- fix: Fix SSL tests [PR
#&#8203;3260](https://github.com/pgjdbc/pgjdbc/pull/3260)
- fix: Support bytea in preferQueryMode=simple [PR
#&#8203;3243](https://github.com/pgjdbc/pgjdbc/pull/3243)
- fix: Fix [#&#8203;3234](https://github.com/pgjdbc/pgjdbc/issues/3234)
- Return -1 as update count for stored procedure calls [PR
#&#8203;3235](https://github.com/pgjdbc/pgjdbc/pull/3235)
- fix: Fix [#&#8203;3224](https://github.com/pgjdbc/pgjdbc/issues/3224)
- conversion for TIME '24:00' to LocalTime breaks in binary-mode [PR
#&#8203;3225](https://github.com/pgjdbc/pgjdbc/pull/3225)
- perf: Speed up getDate by parsing bytes instead of String [PR
#&#8203;3141](https://github.com/pgjdbc/pgjdbc/pull/3141)
- fix: support PreparedStatement.setBlob(1, Blob) and
PreparedStatement.setClob(1, Clob) for lobs that return -1 for length
[PR #&#8203;3136](https://github.com/pgjdbc/pgjdbc/pull/3136)
- fix: Validates resultset Params in PGStatement constructor. uses
assertThro… [PR
#&#8203;3171](https://github.com/pgjdbc/pgjdbc/pull/3171)
- fix: Validates resultset parameters [PR
#&#8203;3167](https://github.com/pgjdbc/pgjdbc/pull/3167)
- docs: Replace greater to with greater than [PR
#&#8203;3315](https://github.com/pgjdbc/pgjdbc/pull/3315)
- docs: Clarify binaryTransfer and prepareThreshold [PR
#&#8203;3338](https://github.com/pgjdbc/pgjdbc/pull/3338)
- docs: use.md, typo [PR
#&#8203;3314](https://github.com/pgjdbc/pgjdbc/pull/3314)
- test: Use docker v2 which changes docker-compose to docker compose
[#&#8203;3339](https://github.com/pgjdbc/pgjdbc/pull/3339)
- refactor: Merge PgPreparedStatement#setBinaryStream int and long
methods [PR #&#8203;3165](https://github.com/pgjdbc/pgjdbc/pull/3165)
- test: Test both binaryMode=true,false when creating connections in
DatabaseMetaDataTest [PR
#&#8203;3231](https://github.com/pgjdbc/pgjdbc/pull/3231)
- docs: Fixed typos in all source code and documentations [PR
#&#8203;3242](https://github.com/pgjdbc/pgjdbc/pull/3242)
- chore: Remove self-hosted runner [PR
#&#8203;3227](https://github.com/pgjdbc/pgjdbc/pull/3227)
- docs: Add cancelSignalTimeout in README [PR
#&#8203;3190](https://github.com/pgjdbc/pgjdbc/pull/3190)
- docs: Document READ_ONLY_MODE in README [PR
#&#8203;3175](https://github.com/pgjdbc/pgjdbc/pull/3175)
- test: Test for +/- infinity double values [PR
#&#8203;3294](https://github.com/pgjdbc/pgjdbc/pull/3294)
- test: Switch localhost and auth-test around for test-gss [PR
#&#8203;3343](https://github.com/pgjdbc/pgjdbc/pull/3343)
- fix: remove preDescribe from internalExecuteBatch [PR
#&#8203;2883](https://github.com/pgjdbc/pgjdbc/pull/2883)

##### Deprecated

- test: Deprecate all PostgreSQL versions older than 9.1 [PR
#&#8203;3335](https://github.com/pgjdbc/pgjdbc/pull/3335)

###
[`v42.7.3`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#4273-2024-04-14-145100--0400)

##### Changed

- chore: gradle config enforces 17+ [PR
#&#8203;3147](https://github.com/pgjdbc/pgjdbc/pull/3147)

##### Fixed

- fix: boolean types not handled in SimpleQuery mode [PR
#&#8203;3146](https://github.com/pgjdbc/pgjdbc/pull/3146)
    -   make sure we handle boolean types in simple query mode
    -   support uuid as well
- handle all well known types in text mode and change `else if` to
`switch`
- fix: released new versions of 42.2.29, 42.3.10, 42.4.5, 42.5.6, 42.6.2
to deal with `NoSuchMethodError on ByteBuffer#position` when running on
Java 8

###
[`v42.7.2`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#4272-2024-02-21-082300--0500)

##### Security

- security: SQL Injection via line comment generation, it is possible in
`SimpleQuery` mode to generate a line comment by having a placeholder
for a numeric with a `-`
such as `-?`. There must be second placeholder for a string immediately
after. Setting the parameter to a -ve value creates a line comment.
This has been fixed in this version fixes
[CVE-2024-1597](https://www.cve.org/CVERecord?id=CVE-2024-1597).
Reported by [Paul Gerste](https://github.com/paul-gerste-sonarsource).
See the [security
advisory](https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-24rp-q3w6-vc56)
for more details. This has been fixed in versions 42.7.2, 42.6.1 42.5.5,
42.4.4, 42.3.9, 42.2.28.jre7. See the security advisory for work
arounds.

##### Changed

- fix: Use simple query for isValid. Using Extended query sends two
messages checkConnectionQuery was never ever set or used, removed [PR
#&#8203;3101](https://github.com/pgjdbc/pgjdbc/pull/3101)
- perf: Avoid autoboxing bind indexes by
[@&#8203;bokken](https://github.com/bokken) in [PR
#&#8203;1244](https://github.com/pgjdbc/pgjdbc/pull/1244)
- refactor: Document that encodePassword will zero out the password
array, and remove driver's default encodePassword by
[@&#8203;vlsi](https://github.com/vlsi) in [PR
#&#8203;3084](https://github.com/pgjdbc/pgjdbc/pull/3084)

##### Added

- feat: Add PasswordUtil for encrypting passwords client side [PR
#&#8203;3082](https://github.com/pgjdbc/pgjdbc/pull/3082)

###
[`v42.7.1`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#4271-2023-12-06-083400--0500)

##### Changed

- perf: improve performance of PreparedStatement.setBlob,
BlobInputStream, and BlobOutputStream with dynamic buffer sizing [PR
#&#8203;3044](https://github.com/pgjdbc/pgjdbc/pull/3044)

##### Fixed

- fix: Apply connectTimeout before SSLSocket.startHandshake to avoid
infinite wait in case the connection is broken [PR
#&#8203;3040](https://github.com/pgjdbc/pgjdbc/pull/3040)
- fix: support waffle-jna 2.x and 3.x by using reflective approach for
ManagedSecBufferDesc [PR
#&#8203;2720](https://github.com/pgjdbc/pgjdbc/pull/2720) Fixes [Issue
#&#8203;2690](https://github.com/pgjdbc/pgjdbc/issues/2720).
- fix: NoSuchMethodError on ByteBuffer#position When Running on Java 8
when accessing arrays, fixes [Issue
#&#8203;3014](https://github.com/pgjdbc/pgjdbc/issues/3014)
- Revert "[PR #&#8203;2925](https://github.com/pgjdbc/pgjdbc/pull/2925)
Use canonical DateStyle name" [PR
#&#8203;3035](https://github.com/pgjdbc/pgjdbc/pull/3035)
Fixes [Issue #&#8203;3008](https://github.com/pgjdbc/pgjdbc/issues/3008)
- Revert "[PR ##&#8203;2973](https://github.com/pgjdbc/pgjdbc/pull/2973)
feat: support SET statements combining with other queries with semicolon
in PreparedStatement" [PR
#&#8203;3010](https://github.com/pgjdbc/pgjdbc/pull/3010)
Fixes [Issue #&#8203;3007](https://github.com/pgjdbc/pgjdbc/issues/3007)
- fix: avoid timezone conversions when sending LocalDateTime to the
database [#&#8203;2852](https://github.com/pgjdbc/pgjdbc/pull/3010)
Fixes [Issue #&#8203;1390](https://github.com/pgjdbc/pgjdbc/issues/1390)
    ,[Issue #&#8203;2850](https://github.com/pgjdbc/pgjdbc/issues/2850)
Closes \[Issue
[#&#8203;1391](https://github.com/pgjdbc/pgjdbc/issues/1391)(https://github.com/pgjdbc/pgjdbc/issues/1391)

###
[`v42.7.0`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#4270-2023-11-20-093300--0500)

##### Changed

- fix: Deprecate for removal PGPoint.setLocation(java.awt.Point) to cut
dependency to `java.desktop` module. [PR
#&#8203;2967](https://github.com/pgjdbc/pgjdbc/pull/2967)
- feat: return all catalogs for getCatalogs metadata query closes [ISSUE
#&#8203;2949](https://github.com/pgjdbc/pgjdbc/issues/2949) [PR
#&#8203;2953](https://github.com/pgjdbc/pgjdbc/pull/2953)
- feat: support SET statements combining with other queries with
semicolon in PreparedStatement [PR
##&#8203;2973](https://github.com/pgjdbc/pgjdbc/pull/2973)

##### Fixed

- chore: add styleCheck Gradle task to report style violations [PR
#&#8203;2980](https://github.com/pgjdbc/pgjdbc/pull/2980)
- fix: Include currentXid in "Error rolling back prepared transaction"
exception message [PR
#&#8203;2978](https://github.com/pgjdbc/pgjdbc/pull/2978)
- fix: add varbit as a basic type inside the TypeInfoCache [PR
#&#8203;2960](https://github.com/pgjdbc/pgjdbc/pull/2960)
- fix: Fix failing tests for version 16. [PR
#&#8203;2962](https://github.com/pgjdbc/pgjdbc/pull/2962)
- fix: allow setting arrays with ANSI type name [PR
#&#8203;2952](https://github.com/pgjdbc/pgjdbc/pull/2952)
- feat: Use KeepAlive to confirm LSNs [PR
#&#8203;2941](https://github.com/pgjdbc/pgjdbc/pull/2941)
- fix: put double ' around log parameter [PR
#&#8203;2936](https://github.com/pgjdbc/pgjdbc/pull/2936) fixes [ISSUE
#&#8203;2935](https://github.com/pgjdbc/pgjdbc/issues/2935)
- fix: Fix Issue
[#&#8203;2928](https://github.com/pgjdbc/pgjdbc/issues/2928) number of
ports not equal to number of servers in datasource [PR
#&#8203;2929](https://github.com/pgjdbc/pgjdbc/pull/2929)
- fix: Use canonical DateStyle name
([#&#8203;2925](https://github.com/pgjdbc/pgjdbc/issues/2925)) fixes
[pgbouncer issue](https://github.com/pgbouncer/pgbouncer/issues/776)
- fix: Method getFastLong should be able to parse all longs [PR
#&#8203;2881](https://github.com/pgjdbc/pgjdbc/pull/2881)
- docs: Fix typos in info.html [PR
#&#8203;2860](https://github.com/pgjdbc/pgjdbc/pull/2860)
- fix: Return correct default from
PgDatabaseMetaData.getDefaultTransactionIsolation [PR
#&#8203;2992](https://github.com/pgjdbc/pgjdbc/pull/2992) fixes [Issue
#&#8203;2991](https://github.com/pgjdbc/pgjdbc/issues/2991)
-   test: fix assertion in RefCursorFetchTestultFetchSize rows
-   test: use try-with-resources in LogicalReplicationStatusTest

###
[`v42.6.0`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#4260-2023-03-17-153434--0400)

##### Changed

- fix: use PhantomReferences instead of `Obejct.finalize()` to track
Connection leaks [PR
#&#8203;2847](https://github.com/pgjdbc/pgjdbc/pull/2847)

The change replaces all uses of Object.finalize with PhantomReferences.
The leaked resources (Connections) are tracked in a helper thread that
is active as long as
there are connections in use. By default, the thread keeps running for
30 seconds after all
the connections are released. The timeout is set with
pgjdbc.config.cleanup.thread.ttl system property.

- refactor:(loom) replace the usages of synchronized with ReentrantLock
[PR #&#8203;2635](https://github.com/pgjdbc/pgjdbc/pull/2635)
Fixes [Issue #&#8203;1951](https://github.com/pgjdbc/pgjdbc/issues/1951)

###
[`v42.5.4`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#4254-2023-02-15-102104--0500)

##### Fixed

- fix: fix testGetSQLTypeQueryCache by searching for xid type. We used
to search for box type but it is now cached. xid is not cached, this
nuance is required for the test.
- fix OidValueCorrectnessTest BOX_ARRAY OID, by adding BOX_ARRAY to the
oidTypeName map \[PR
[#&#8203;2810](https://github.com/pgjdbc/pgjdbc/issues/2810)]\((https://github.com/pgjdbc/pgjdbc/pull/2810).
- fixes [Issue
#&#8203;2804](https://github.com/pgjdbc/pgjdbc/issues/2804).
- fix: Make sure that github CI runs tests on all [PRs
#&#8203;2809](\(https://github.com/pgjdbc/pgjdbc/pull/2809\)).

###
[`v42.5.3`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#4253-2023-02-03-082450--0500)

##### Fixed

- fix: Add box to TypeInfoCache, fixes [Issue
#&#8203;2746](https://github.com/pgjdbc/pgjdbc/issues/2746) [PR
#&#8203;2747](https://github.com/pgjdbc/pgjdbc/pull/2747)
- fix: regression in PgResultSet LONG_MIN copy and paste error fixes
[Issue #&#8203;2748](https://github.com/pgjdbc/pgjdbc/issues/2748)
[PR#2749](https://github.com/pgjdbc/pgjdbc/pull/2749)

###
[`v42.5.2`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#4252-2023-01-31-143046--0500)

##### Changed

- regression: This release has 2 known regressions which make it
unusable see the notes above. We advise people to use 42.5.3 instead.
- docs: specify that timeouts are in seconds and there is a maximum.
Housekeeping on some tests fixes [#Issue
2671](https://github.com/pgjdbc/pgjdbc/issues/2671) [PR
#&#8203;2686](https://github.com/pgjdbc/pgjdbc/pull/2686)
- docs: clarify binaryTransfer and add it to README [PR#
2698](https://github.com/pgjdbc/pgjdbc/pull/2698)
- docs: Document the need to encode reserved characters in the
connection URL [PR
#&#8203;2700](https://github.com/pgjdbc/pgjdbc/pull/2700)
- feat: Define binary transfer for custom types
dynamically/automatically fixes [Issue
#&#8203;2554](https://github.com/pgjdbc/pgjdbc/issues/2554) [PR
#&#8203;2556](https://github.com/pgjdbc/pgjdbc/pull/2556)

##### Added

- fix: added gssResponseTimeout as part of [PR
#&#8203;2687](https://github.com/pgjdbc/pgjdbc/pull/2687) to make sure
we don't wait forever on a GSS RESPONSE

##### Fixed

- fix: Ensure case of XML tags in Maven snippet is correct [PR
#&#8203;2682](https://github.com/pgjdbc/pgjdbc/pull/2682)
- fix: Make sure socket is closed if an exception is thrown in
createSocket fixes [Issue
#&#8203;2684](https://github.com/pgjdbc/pgjdbc/issues/2684) [PR
#&#8203;2685](https://github.com/pgjdbc/pgjdbc/pull/2685)
- fix: Apply patch from [Issue
#&#8203;2683](https://github.com/pgjdbc/pgjdbc/issues/2683) to fix
hanging ssl connections [PR
#&#8203;2687](https://github.com/pgjdbc/pgjdbc/pull/2687)
- fix - binary conversion of (very) long numeric values (longer than 4
\* 2^15 digits) [PR
#&#8203;2697](https://github.com/pgjdbc/pgjdbc/pull/2697) fixes [Issue
#&#8203;2695](https://github.com/pgjdbc/pgjdbc/issues/2695)
- minor: enhance readability connection of startup params [PR
#&#8203;2705](https://github.com/pgjdbc/pgjdbc/pull/2785)

###
[`v42.5.1`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#4251-2022-11-23-101459--0500)

##### Security

- security: StreamWrapper spills to disk if setText, or setBytea sends
very large Strings or arrays to the server. createTempFile creates a
file which can be read by other users on unix like systems (Not macos).
This has been fixed in this version fixes CVE-2022-41946 see the
[security
advisory](https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-562r-vg33-8x8h)
for more details. Reported by [Jonathan
Leitschuh](https://github.com/JLLeitschuh) This has been fixed in
versions 42.5.1, 42.4.3 42.3.8, 42.2.27.jre7. Note there is no fix for
42.2.26.jre6. See the security advisory for work arounds.

##### Fixed

- fix: make sure we select array_in from pg_catalog to avoid duplicate
array_in functions fixes [#Issue
2548](https://github.com/pgjdbc/pgjdbc/issues/2548) [PR
#&#8203;2552](https://github.com/pgjdbc/pgjdbc/issues/2552)
- fix: binary decoding of bool values [PR
#&#8203;2640](https://github.com/pgjdbc/pgjdbc/pull/2640)
- perf: improve performance of PgResultSet
getByte/getShort/getInt/getLong for float-typed columns [PR
#&#8203;2634](https://github.com/pgjdbc/pgjdbc/pull/2634)
- chore: fix various spelling errors [PR
#&#8203;2592](https://github.com/pgjdbc/pgjdbc/pull/2592)
- chore: Feature/urlparser improve URLParser [PR
#&#8203;2641](https://github.com/pgjdbc/pgjdbc/pull/2592)

###
[`v42.5.0`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#4250-2022-08-23-112011--0400)

##### Changed

- fix: revert change in [PR
#&#8203;1986](https://github.com/pgjdbc/pgjdbc/pull/1986) where float
was aliased to float4 from float8.
float now aliases to float8 [PR
#&#8203;2598](https://github.com/pgjdbc/pgjdbc/pull/2598) fixes [Issue
#&#8203;2597](https://github.com/pgjdbc/pgjdbc/issues/2597)

###
[`v42.4.2`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#4242-2022-08-17-103340--0400)

##### Changed

- fix: add alias to the generated getUDT() query for clarity (PR
[#&#8203;2553](https://github.com/pgjdbc/pgjdbc/issues/2553))\[https://github.com/pgjdbc/pgjdbc/pull/2553]

##### Added

- fix: make setObject accept UUID array [PR
#&#8203;2587](https://github.com/pgjdbc/pgjdbc/pull/2587)

##### Fixed

- fix: regression with GSS. Changes introduced to support building with
Java 17 caused failures [Issue
#&#8203;2588](https://github.com/pgjdbc/pgjdbc/issues/2588)
- fix: set a timeout to get the return from requesting SSL upgrade. [PR
#&#8203;2572](https://github.com/pgjdbc/pgjdbc/pull/2572)
- feat: synchronize statement executions (e.g. avoid deadlock when
Connection.isValid is executed from concurrent threads)

###
[`v42.4.1`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#4241-2022-08-01-162420--0400)

##### Security

- fix: CVE-2022-31197 Fixes SQL generated in PgResultSet.refresh() to
escape column identifiers so as to prevent SQL injection.
- Previously, the column names for both key and data columns in the
table were copied as-is into the generated
SQL. This allowed a malicious table with column names that include
statement terminator to be parsed and
        executed as multiple separate commands.
- Also adds a new test class ResultSetRefreshTest to verify this change.
    -   Reported by [Sho Kato](https://github.com/kato-sho)

##### Changed

-   chore: skip publishing pgjdbc-osgi-test to Central
-   chore: bump Gradle to 7.5
-   test: update JUnit to 5.8.2

##### Added

- chore: added Gradle Wrapper Validation for verifying
gradle-wrapper.jar
- chore: added "permissions: contents: read" for GitHub Actions to avoid
unintentional modifications by the CI
-   chore: support building pgjdbc with Java 17
- feat: synchronize statement executions (e.g. avoid deadlock when
Connection.isValid is executed from concurrent threads)

###
[`v42.4.0`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#4240-2022-06-09-081402--0400)

##### Changed

- fix: added GROUP_STARTUP_PARAMETERS boolean property to determine
whether or not to group
startup parameters in a transaction (default=false like 42.2.x) fixes
[Issue #&#8203;2425](https://github.com/pgjdbc/pgjdbc/issues/2497)
pgbouncer cannot deal with transactions in statement pooling mode [PR
#&#8203;2425](https://github.com/pgjdbc/pgjdbc/pull/2425)

##### Fixed

- fix: queries with up to 65535 (inclusive) parameters are supported now
(previous limit was 32767)
[PR #&#8203;2525](https://github.com/pgjdbc/pgjdbc/pull/2525), [Issue
#&#8203;1311](https://github.com/pgjdbc/pgjdbc/issues/1311)
- fix: workaround JarIndex parsing issue by using
groupId/artifactId-version directory namings.
Regression since 42.2.13. [PR
#&#8203;2531](https://github.com/pgjdbc/pgjdbc/pull/2531), [issue
#&#8203;2527](https://github.com/pgjdbc/pgjdbc/issues/2527)
-   fix: use Locale.ROOT for toUpperCase() toLowerCase() calls
-   doc: add Vladimir Sitnikov's PGP key
- fix: return correct base type for domain from getUDTs [PR
#&#8203;2520](https://github.com/pgjdbc/pgjdbc/pull/2520) [Issue
#&#8203;2522](https://github.com/pgjdbc/pgjdbc/issues/2522)
- perf: utcTz static and renamed to UTC_TIMEZONE [PR
#&#8203;2519](https://github.com/pgjdbc/pgjdbc/pull/2520)
- doc: fix release version for
[#&#8203;2377](https://github.com/pgjdbc/pgjdbc/issues/2377) (it should
be 42.3.6, not 42.3.5)

</details>

<details>
<summary>square/okio (com.squareup.okio:okio)</summary>

###
[`v3.9.1`](https://github.com/square/okio/blob/HEAD/CHANGELOG.md#Version-391)

*2024-09-12*

- Fix: Support paths containing a single dot (".") in `Path.relativeTo`.
- Fix: Do not read from the upstream source when a 0-byte read is
requested.
- Fix: Update kotlinx.datetime to 0.6.0 to correct a Gradle module
metadata problem with 0.5.0.
Note: this artifact is only used in 'okio-fakefilesystem' and
'okio-nodefilesystem' and not in the Okio core.

</details>

<details>
<summary>mockito/mockito (org.mockito:mockito-core)</summary>

### [`v5.14.1`](https://github.com/mockito/mockito/releases/tag/v5.14.1)

<sup><sup>*Changelog generated by [Shipkit Changelog Gradle
Plugin](https://github.com/shipkit/shipkit-changelog)*</sup></sup>

##### 5.14.1

- 2024-09-30 - [2
commit(s)](https://github.com/mockito/mockito/compare/v5.14.0...v5.14.1)
by Brice Dutheil, dependabot\[bot]
- fix: gradle mockitoAgent configuration should not be transitive
[(#&#8203;3454)](https://github.com/mockito/mockito/pull/3454)
- Bump bytebuddy from 1.15.2 to 1.15.3
[(#&#8203;3452)](https://github.com/mockito/mockito/pull/3452)
- Allow for installing a Java agent within the Mockito jar, without
exposing Byte Buddy's attach mechanism.
[(#&#8203;3437)](https://github.com/mockito/mockito/pull/3437)

### [`v5.14.0`](https://github.com/mockito/mockito/releases/tag/v5.14.0)

<sup><sup>*Changelog generated by [Shipkit Changelog Gradle
Plugin](https://github.com/shipkit/shipkit-changelog)*</sup></sup>

##### 5.14.0

- 2024-09-27 - [9
commit(s)](https://github.com/mockito/mockito/compare/v5.13.0...v5.14.0)
by Ali-Hassan, Brice Dutheil, David Saff, Rafael Winterhalter,
dependabot\[bot]
- Bump org.junit.platform:junit-platform-launcher from 1.11.0 to 1.11.1
[(#&#8203;3451)](https://github.com/mockito/mockito/pull/3451)
- Bump bytebuddy from 1.15.1 to 1.15.2
[(#&#8203;3450)](https://github.com/mockito/mockito/pull/3450)
- Update Documentation of ArgumentCaptor.java
[(#&#8203;3448)](https://github.com/mockito/mockito/pull/3448)
- Split subprojects
[(#&#8203;3447)](https://github.com/mockito/mockito/pull/3447)
- Separate extensions from integration tests
[(#&#8203;3443)](https://github.com/mockito/mockito/issues/3443)
- Bump org.eclipse.platform:org.eclipse.osgi from 3.20.0 to 3.21.0
[(#&#8203;3440)](https://github.com/mockito/mockito/pull/3440)
- Bump com.gradle.enterprise from 3.18 to 3.18.1
[(#&#8203;3439)](https://github.com/mockito/mockito/pull/3439)
- Allow for installing a Java agent within the Mockito jar, without
exposing Byte Buddy's attach mechanism.
[(#&#8203;3437)](https://github.com/mockito/mockito/pull/3437)
- Bump bytebuddy from 1.15.0 to 1.15.1
[(#&#8203;3434)](https://github.com/mockito/mockito/pull/3434)
- Fixes [#&#8203;3419](https://github.com/mockito/mockito/issues/3419):
Disable mocks with an error message
[(#&#8203;3424)](https://github.com/mockito/mockito/pull/3424)
- Accessing a mock after clearInlineMocks could provide much more useful
error message.
[(#&#8203;3419)](https://github.com/mockito/mockito/issues/3419)

</details>

<details>
<summary>Kotlin/kotlinx.coroutines
(org.jetbrains.kotlinx:kotlinx-coroutines-core)</summary>

###
[`v1.9.0`](https://github.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-190)

[Compare
Source](https://github.com/Kotlin/kotlinx.coroutines/compare/1.8.1...1.9.0)

##### Features

- Wasm/WASI target support
([#&#8203;4064](https://github.com/Kotlin/kotlinx.coroutines/issues/4064)).
Thanks, [@&#8203;igoriakovlev](https://github.com/igoriakovlev)!
- `limitedParallelism` now optionally accepts the name of the dispatcher
view for easier debugging
([#&#8203;4023](https://github.com/Kotlin/kotlinx.coroutines/issues/4023)).
- No longer initialize `Dispatchers.IO` on the JVM when other standard
dispatchers are accessed
([#&#8203;4166](https://github.com/Kotlin/kotlinx.coroutines/issues/4166)).
Thanks, [@&#8203;metalhead8816](https://github.com/metalhead8816)!
- Introduced the `Flow<T>.chunked(size: Int): Flow<List<T>>` operator
that groups emitted values into groups of the given size
([#&#8203;1290](https://github.com/Kotlin/kotlinx.coroutines/issues/1290)).
- Closeable dispatchers are instances of `AutoCloseable` now
([#&#8203;4123](https://github.com/Kotlin/kotlinx.coroutines/issues/4123)).

##### Fixes

- Calling `hasNext` on a `Channel`'s iterator is idempotent
([#&#8203;4065](https://github.com/Kotlin/kotlinx.coroutines/issues/4065)).
Thanks, [@&#8203;gitpaxultek](https://github.com/gitpaxultek)!
- `CoroutineScope()` created without an explicit dispatcher uses
`Dispatchers.Default` on Native
([#&#8203;4074](https://github.com/Kotlin/kotlinx.coroutines/issues/4074)).
Thanks, [@&#8203;whyoleg](https://github.com/whyoleg)!
- Fixed a bug that prevented non-Android `Dispatchers.Main` from
initializing when the Firebase dependency is used
([#&#8203;3914](https://github.com/Kotlin/kotlinx.coroutines/issues/3914)).
- Ensured a more intuitive ordering of tasks in `runBlocking`
([#&#8203;4134](https://github.com/Kotlin/kotlinx.coroutines/issues/4134)).
- Forbid casting a `Mutex` to `Semaphore`
([#&#8203;4176](https://github.com/Kotlin/kotlinx.coroutines/issues/4176)).
- Worked around a stack overflow that may occur when calling
`asDeferred` on a `Future` many times
([#&#8203;4156](https://github.com/Kotlin/kotlinx.coroutines/issues/4156)).

##### Deprecations and promotions

- Advanced the deprecation levels for `BroadcastChannel`-based API
([#&#8203;4197](https://github.com/Kotlin/kotlinx.coroutines/issues/4197)).
- Advanced the deprecation levels for the old `kotlinx-coroutines-test`
API
([#&#8203;4198](https://github.com/Kotlin/kotlinx.coroutines/issues/4198)).
- Deprecated `Job.cancelFutureOnCompletion`
([#&#8203;4173](https://github.com/Kotlin/kotlinx.coroutines/issues/4173)).
- Promoted `CoroutineDispatcher.limitedParallelism` to stable
([#&#8203;3864](https://github.com/Kotlin/kotlinx.coroutines/issues/3864)).
- Promoted `CoroutineStart.ATOMIC` from `ExperimentalCoroutinesApi` to
`DelicateCoroutinesApi`
([#&#8203;4169](https://github.com/Kotlin/kotlinx.coroutines/issues/4169)).
- Promoted `CancellableContinuation.resume` with an `onCancellation`
lambda to stable, providing extra arguments to the lambda
([#&#8203;4088](https://github.com/Kotlin/kotlinx.coroutines/issues/4088)).
- Marked the classes and interfaces that are not supposed to be
inherited from with the new `InternalForInheritanceCoroutinesApi` opt-in
([#&#8203;3770](https://github.com/Kotlin/kotlinx.coroutines/issues/3770)).
- Marked the classes and interfaces inheriting from which is not stable
with the new `ExperimentalForInheritanceCoroutinesApi` opt-in
([#&#8203;3770](https://github.com/Kotlin/kotlinx.coroutines/issues/3770)).

##### Other

- Kotlin was updated to 2.0
([#&#8203;4137](https://github.com/Kotlin/kotlinx.coroutines/issues/4137)).
- Reworked the documentation for `CoroutineStart` and `Channel`-based
API
([#&#8203;4147](https://github.com/Kotlin/kotlinx.coroutines/issues/4147),
[#&#8203;4148](https://github.com/Kotlin/kotlinx.coroutines/issues/4148),
[#&#8203;4167](https://github.com/Kotlin/kotlinx.coroutines/issues/4167)).
Thanks, [@&#8203;globsterg](https://github.com/globsterg)!
- Simplified the internal implementation of `Job`
([#&#8203;4053](https://github.com/Kotlin/kotlinx.coroutines/issues/4053)).
-   Small tweaks, fixes, and documentation improvements.

</details>

<details>
<summary>redis/jedis (redis.clients:jedis)</summary>

### [`v5.2.0`](https://github.com/redis/jedis/releases/tag/v5.2.0):
5.2.0 GA

#### Enhanced Client-side caching

We are happy to announce that improved [server-assisted, client-side
caching](https://redis.io/docs/manual/client-side-caching/) is now
generally available! Special thanks to all our beta testers for their
valuable feedback, which helped us refine and improve the initial
implementation.

Client-side caching is supported exclusively with the RESP3 protocol
with Redis >= 7.4 and is available in UnifiedJedis, JedisPooled, and
JedisCluster and other classes.

##### How to try Client-Side Caching

1. [Install
Jedis](https://redis.io/docs/connect/clients/java/jedis/#install)
**5.2.0**
2.  Use the following code example to get started:

```java
public class CSCExampleTest {
  public static void main() {

    HostAndPort node = HostAndPort.from("localhost:6379");
    JedisClientConfig clientConfig = DefaultJedisClientConfig.builder()
        .resp3()                // RESP3 protocol is required for client-side caching
        //.user("myuser")       // Redis server username (optional)
        //.password("mypass")   // Redis user's password (optional)
        .build();

    CacheConfig cacheConfig = getCacheConfig();
    Cache cache = CacheFactory.getCache(cacheConfig);

    try (UnifiedJedis client = new UnifiedJedis(node, clientConfig, cache)) {
      client.set("foo", "bar");
      client.get("foo");
      client.get("foo"); // Cache hit

      System.out.println("Cache size: " + cache.getSize()); // 1
      System.out.println(cache.getStats().toString());

      //Let's change the value of "foo" to invalidate the value stored in the local cache
      client.mset("foo", "new_value", "ignore_me:1", "another_value");

      Thread.sleep(1000); // wait for the cache invalidation to happen

      System.out.println(client.get("foo")); // Cache miss
      System.out.println(cache.getStats().toString());

      client.get("ignore_me:1"); // Client will ignore this key

      System.out.println("Cache size: " + cache.getSize()); // still 1

      // check the cache stats
      System.out.println(cache.getStats().toString());

    } catch (InterruptedException e) {
      throw new RuntimeException(e);
    }
  }

  private static CacheConfig getCacheConfig() {

    // This is a simple cacheable implementation that ignores keys starting with "ignore_me"
    Cacheable cacheable = new DefaultCacheable() {

      final String IGNORE_PREFIX = "ignore_me";

      @&#8203;Override
      public boolean isCacheable(ProtocolCommand command, List<Object> keys) {
        // assuming we'll only execute methods with string keys
        List<String> stringKeys = keys.stream()
            .filter(obj -> obj instanceof String)
            .map(obj -> (String) obj)
            .collect(Collectors.toList());

        for (String key : stringKeys) {
          if (key.startsWith(IGNORE_PREFIX)) {
            return false;
          }
        }

        return isDefaultCacheableCommand(command);
      }
    };

    // Create a cache with a maximum size of 10000 entries
    return CacheConfig.builder()
        .maxSize(10000)
        .cacheable(cacheable)
        .build();
  }
}
```

It is possible to limit or ignore commands or keys for client-side
caching. The `getCacheConfig` method presented above provides an example
of how to achieve that.

#### 🔥 Breaking Changes

- JedisConnectionException contains HostAndPort from
DefaultJedisSocketFactory
([#&#8203;3896](https://github.com/redis/jedis/issues/3896))
- Address change in JSON.GET command without path
([#&#8203;3858](https://github.com/redis/jedis/issues/3858))
- Modify and fail-fast GeoSearchParam
([#&#8203;3827](https://github.com/redis/jedis/issues/3827))
- Support transaction from UnifiedJedis without calling multi first
([#&#8203;3804](https://github.com/redis/jedis/issues/3804))
- Reduce the log level of validateObject to WARN
([#&#8203;3750](https://github.com/redis/jedis/issues/3750))

#### 🧪 Experimental Features

- Support automatic namespacing
([#&#8203;3781](https://github.com/redis/jedis/issues/3781))
- Added support for ADDSCORES argument in FT.AGGREGATE
([#&#8203;3908](https://github.com/redis/jedis/issues/3908))
- Support IGNORE and other optional arguments for timeseries commands
([#&#8203;3860](https://github.com/redis/jedis/issues/3860))

#### 🚀 New Features

- Support Hash field expiration
([#&#8203;3826](https://github.com/redis/jedis/issues/3826))
- Add equals and hashCode to Timeseries Params classes
([#&#8203;3959](https://github.com/redis/jedis/issues/3959))
- Decoding FT.SEARCH reply can be disabled at field level
([#&#8203;3926](https://github.com/redis/jedis/issues/3926))
- Get enriched Connection information
([#&#8203;3745](https://github.com/redis/jedis/issues/3745))
- Support execute the read-only command on replica nodes
([#&#8203;3848](https://github.com/redis/jedis/issues/3848))
- JedisConnectionException contains HostAndPort from
DefaultJedisSocketFactory
([#&#8203;3896](https://github.com/redis/jedis/issues/3896))
- Support \[S]PUBLISH in pipelines and transactions
([#&#8203;3859](https://github.com/redis/jedis/issues/3859))
- Support Hash field expiration
([#&#8203;3826](https://github.com/redis/jedis/issues/3826))
- Custom connection pool to MultiClusterPooledConnectionProvider
([#&#8203;3801](https://github.com/redis/jedis/issues/3801))
- PubSub handle array of messages for RESP2
([#&#8203;3811](https://github.com/redis/jedis/issues/3811))
- Support transaction from UnifiedJedis without calling multi first
([#&#8203;3804](https://github.com/redis/jedis/issues/3804))
- Add last entry id for XREADs and support XREADs reply as map
([#&#8203;3791](https://github.com/redis/jedis/issues/3791))
- Add Experimental, Internal and VisibleForTesting annotations
([#&#8203;3790](https://github.com/redis/jedis/issues/3790))
- Implement equals and hashcode in Params classes
([#&#8203;3728](https://github.com/redis/jedis/issues/3728))
- Add support for redis command: CLIENT TRACKINGINFO
([#&#8203;3751](https://github.com/redis/jedis/issues/3751))
- Support the MAXAGE option for CLIENT KILL
([#&#8203;3754](https://github.com/redis/jedis/issues/3754))
- Polish [#&#8203;3741](https://github.com/redis/jedis/issues/3741)
([#&#8203;3746](https://github.com/redis/jedis/issues/3746))
- Add support for the NOVALUES option of HSCAN
([#&#8203;3741](https://github.com/redis/jedis/issues/3741))
- Support issuing Latency commands
([#&#8203;3729](https://github.com/redis/jedis/issues/3729))

#### 🐛 Bug Fixes

- Accept null replies for BZPOPMAX and BZPOPMIN commands
([#&#8203;3930](https://github.com/redis/jedis/issues/3930))
- Fix empty LUA table reply
([#&#8203;3924](https://github.com/redis/jedis/issues/3924))
- Ensure closing connection in Pipeline
([#&#8203;3865](https://github.com/redis/jedis/issues/3865))
- Address change in JSON.GET command without path
([#&#8203;3858](https://github.com/redis/jedis/issues/3858))
- Consider null values in empty StreamPendingSummary
([#&#8203;3793](https://github.com/redis/jedis/issues/3793))
- Fix UnifiedJedis pexpireAt glitch
([#&#8203;3782](https://github.com/redis/jedis/issues/3782))
- Use expiryOption in PipelineBase.expireAt
([#&#8203;3777](https://github.com/redis/jedis/issues/3777))
- Stop connection fetching before sync/exec
([#&#8203;3756](https://github.com/redis/jedis/issues/3756))
- Check for thread interrupt in subscribe process of PubSub
([#&#8203;3726](https://github.com/redis/jedis/issues/3726))
- Avoid NPE in MultiNodePipelineBase.java
([#&#8203;3697](https://github.com/redis/jedis/issues/3697))
- Fix probable missing (RESP3) protocol processing
([#&#8203;3692](https://github.com/redis/jedis/issues/3692))
- Use circuit breaker fallback exception list
([#&#8203;3664](https://github.com/redis/jedis/issues/3664))

#### 🧰 Maintenance

- Deprecate Triggers and Functions feature
([#&#8203;3968](https://github.com/redis/jedis/issues/3968))
- Bump org.apache.httpcomponents.client5:httpclient5-fluent from 5.3.1
to 5.4 ([#&#8203;3962](https://github.com/redis/jedis/issues/3962))
- Bump org.apache.maven.plugins:maven-surefire-plugin from 3.3.1 to
3.5.0 ([#&#8203;3950](https://github.com/redis/jedis/issues/3950))
- Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.8.0 to
3.10.0 ([#&#8203;3949](https://github.com/redis/jedis/issues/3949))
- Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.5 to 3.2.6
([#&#8203;3957](https://github.com/redis/jedis/issues/3957))
- Added JavaDoc for basic JedisCluster constructors
([#&#8203;3304](https://github.com/redis/jedis/issues/3304))
- Bump org.locationtech.jts:jts-core from 1.19.0 to 1.20.0
([#&#8203;3948](https://github.com/redis/jedis/issues/3948))
- Add A-A failover scenario test
([#&#8203;3935](https://github.com/redis/jedis/issues/3935))
- Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.4 to 3.2.5
([#&#8203;3936](https://github.com/redis/jedis/issues/3936))
- Fix codecov upload
([#&#8203;3933](https://github.com/redis/jedis/issues/3933))
- Rename readonly config param to specify Redis Cluster
([#&#8203;3932](https://github.com/redis/jedis/issues/3932))
- Modify Connection.toIdentityString and test
([#&#8203;3931](https://github.com/redis/jedis/issues/3931))
- Revert "Creating CODEOWNERS for the examples
([#&#8203;3570](https://github.com/redis/jedis/issues/3570))"
([#&#8203;3897](https://github.com/redis/jedis/issues/3897))
- Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.5 to
3.3.1 ([#&#8203;3891](https://github.com/redis/jedis/issues/3891))
- Bump org.hamcrest:hamcrest from 2.2 to 3.0
([#&#8203;3914](https://github.com/redis/jedis/issues/3914))
- Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.7.0 to 3.8.0
([#&#8203;3909](https://github.com/redis/jedis/issues/3909))
- Bump net.javacrumbs.json-unit:json-unit from 2.38.0 to 2.40.1
([#&#8203;3903](https://github.com/redis/jedis/issues/3903))
- Bump org.apache.maven.plugins:maven-release-plugin from 3.0.1 to 3.1.1
([#&#8203;3890](https://github.com/redis/jedis/issues/3890))
- Fixed typo in Javadoc
([#&#8203;3917](https://github.com/redis/jedis/issues/3917))
- Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.1 to 3.4.2
([#&#8203;3910](https://github.com/redis/jedis/issues/3910))
- Bump com.kohlschutter.junixsocket:junixsocket-core from 2.9.1 to
2.10.0 ([#&#8203;3901](https://github.com/redis/jedis/issues/3901))
- Bump jackson.version from 2.17.1 to 2.17.2
([#&#8203;3902](https://github.com/redis/jedis/issues/3902))
- Add Scenario tests
([#&#8203;3847](https://github.com/redis/jedis/issues/3847))
- Modify the judgment that reads a response as empty to isEmpty method
([#&#8203;3888](https://github.com/redis/jedis/issues/3888))
- Replace `synchronized` with `j.u.c.l.ReentrantLock` for Loom
([#&#8203;3480](https://github.com/redis/jedis/issues/3480))
- Extract messages of unsupported exception as constants
([#&#8203;3887](https://github.com/redis/jedis/issues/3887))
- Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.3 to 3.7.0
([#&#8203;3851](https://github.com/redis/jedis/issues/3851))
- Bump org.sonatype.plugins:nexus-staging-maven-plugin from 1.6.13 to
1.7.0 ([#&#8203;3850](https://github.com/redis/jedis/issues/3850))
- Bump com.google.code.gson:gson from 2.10.1 to 2.11.0
([#&#8203;3842](https://github.com/redis/jedis/issues/3842))
- Merge doc tests into main branch to keep in-sync with the code
([#&#8203;3861](https://github.com/redis/jedis/issues/3861))
- Deprecate unused Set<Tuple> builders
([#&#8203;3857](https://github.com/redis/jedis/issues/3857))
- Disable Redis Graph tests
([#&#8203;3856](https://github.com/redis/jedis/issues/3856))
- Introduce EndpointConfig and load endpoint settings from the
endpoints.json file
([#&#8203;3836](https://github.com/redis/jedis/issues/3836))
- Address Gears test fail - Cleanup Function libraries
([#&#8203;3840](https://github.com/redis/jedis/issues/3840))
- Bump jackson.version from 2.17.0 to 2.17.1
([#&#8203;3833](https://github.com/redis/jedis/issues/3833))
- Add methods in CommandArguments and RawableFactory
([#&#8203;3834](https://github.com/redis/jedis/issues/3834))
- Modify and fail-fast GeoSearchParam
([#&#8203;3827](https://github.com/redis/jedis/issues/3827))
- Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.0 to 3.4.1
([#&#8203;3822](https://github.com/redis/jedis/issues/3822))
- Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.3 to 3.2.4
([#&#8203;3823](https://github.com/redis/jedis/issues/3823))
- Bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.0
([#&#8203;3819](https://github.com/redis/jedis/issues/3819))
- Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.2 to 3.2.3
([#&#8203;3818](https://github.com/redis/jedis/issues/3818))
- Add more tests for the CommandObjects class
([#&#8203;3809](https://github.com/redis/jedis/issues/3809))
- Resolve compile warnings
([#&#8203;3810](https://github.com/redis/jedis/issues/3810))
- Bump com.kohlschutter.junixsocket:junixsocket-core from 2.9.0 to 2.9.1
([#&#8203;3806](https://github.com/redis/jedis/issues/3806))
- Bump org.jacoco:jacoco-maven-plugin from 0.8.11 to 0.8.12
([#&#8203;3805](https://github.com/redis/jedis/issues/3805))
- Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1
([#&#8203;3807](https://github.com/redis/jedis/issues/3807))
- Deprecate unused JSON.ARRAPPEND in CommandObjects
([#&#8203;3798](https://github.com/redis/jedis/issues/3798))
- Extensive unit tests for the CommandObjects class
([#&#8203;3796](https://github.com/redis/jedis/issues/3796))
- Add extensive tests for UnifiedJedis
([#&#8203;3788](https://github.com/redis/jedis/issues/3788))
- Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.1 to 3.2.2
([#&#8203;3794](https://github.com/redis/jedis/issues/3794))
- Add Experimental, Internal and VisibleForTesting annotations
([#&#8203;3790](https://github.com/redis/jedis/issues/3790))
- Add TS.INFO \[DEGUB] and CF.MEXISTS in pipelined commands
([#&#8203;3787](https://github.com/redis/jedis/issues/3787))
- Bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.1 to
3.13.0 ([#&#8203;3786](https://github.com/redis/jedis/issues/3786))
- Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.0 to 3.2.1
([#&#8203;3785](https://github.com/redis/jedis/issues/3785))
- Pipelined tests for lists and sets, and API typo fix
([#&#8203;3772](https://github.com/redis/jedis/issues/3772))
- Extensive unit tests for PipeliningBase
([#&#8203;3778](https://github.com/redis/jedis/issues/3778))
- Bump jackson.version from 2.16.2 to 2.17.0
([#&#8203;3776](https://github.com/redis/jedis/issues/3776))
- Bump org.apache.maven.plugins:maven-gpg-plugin from 3.1.0 to 3.2.0
([#&#8203;3775](https://github.com/redis/jedis/issues/3775))
- Fix typo in SetPipelineCommands method name
([#&#8203;3773](https://github.com/redis/jedis/issues/3773))
- Streamline test execution
([#&#8203;3760](https://github.com/redis/jedis/issues/3760))
- Add pipelined tests for sorted sets
([#&#8203;3771](https://github.com/redis/jedis/issues/3771))
- Geo pipelined tests
([#&#8203;3767](https://github.com/redis/jedis/issues/3767))
- Reenable clustering tests
([#&#8203;3764](https://github.com/redis/jedis/issues/3764))
- GETSET command is deprecated since Redis 6.2.0
([#&#8203;3768](https://github.com/redis/jedis/issues/3768))
- Add tests for Stream pipelined commands
([#&#8203;3763](https://github.com/redis/jedis/issues/3763))
- Bump jackson.version from 2.16.1 to 2.16.2
([#&#8203;3762](https://github.com/redis/jedis/issues/3762))
- Bump org.json:json from
[`2024020`](https://github.com/redis/jedis/commit/20240205) to
[`2024030`](https://github.com/redis/jedis/commit/20240303)
([#&#8203;3752](https://github.com/redis/jedis/issues/3752))
- Add Hashes pipeline commands unit tests
([#&#8203;3288](https://github.com/redis/jedis/issues/3288))
- Add unit tests for pipelining - migrate and db commands
([#&#8203;3759](https://github.com/redis/jedis/issues/3759))
- Reduce the log level of validateObject to WARN
([#&#8203;3750](https://github.com/redis/jedis/issues/3750))
- Bump org.json:json from
[`2023101`](https://github.com/redis/jedis/commit/20231013) to
[`2024020`](https://github.com/redis/jedis/commit/20240205)
([#&#8203;3706](https://github.com/redis/jedis/issues/3706))
- Bump com.kohlschutter.junixsocket:junixsocket-core from 2.8.3 to 2.9.0
([#&#8203;3724](https://github.com/redis/jedis/issues/3724))
-   Running doctests also on emb-examples ([#&

</details>

GitOrigin-RevId: 8a275b1c484ffdcd889591afa909c0ac94f02667
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants