Skip to content

Latest commit

 

History

History
285 lines (193 loc) · 12.8 KB

CHANGELOG.md

File metadata and controls

285 lines (193 loc) · 12.8 KB

Changelog

[Unreleased]

[0.14.0] - 2024-06-26

Bugfixes

  • Significantly reduce memory allocation overhead and excessive GC pressure (#401)

Internal and API changes

  • Bump org.testcontainers:junit-jupiter version to 1.19.3 (#442)
  • Bump testcontainers-java-tarantool version to 1.2.0 (#442)
  • Bump netty version to 4.1.104.Final (#446)
  • Bump msgpack-java version to 0.9.6
  • Add support for crud yield_every option (#458)
  • Add support for crud force_map_call option (#459)
  • Add support for crud fullscan option (#460)
  • Add support for crud prefer_replica option (#461)
  • Add support for crud balance option (#462)
  • Add support for crud vshard_router option (#463)
  • Add support for crud fetch_latest_metadata option (#465)
  • Use toString in StringValues to map incorrect UTF-8 string

Features

  • Add Interval type support (#447)

[0.13.0] - 2023-11-16

Internal and API changes

  • [breaking change] replace List type with Collection for the arguments client API method parameters
  • Bump testcontainers-java-tarantool to 1.0.1 (#400)
  • Add "mode" option for select operation (#107)
  • Change using of proxy client parameters (mode, rollback_on_error, stop_on_error) with enum classes (#419)
  • Change using of option names with the String type in the internal API to using with the ProxyOption enum class (#420)

Bugfixes

  • Fix Instant converter to parse 8 bytes datetime (#408)
  • Fix infinite loop when retrying to get a connection (#440)

[0.12.1] - 2023-08-04

Bugfixes

  • Fix losing address connections in discovery if restart happens faster than discovery task (#404)
  • Add toString in tarantool proxy entities (#406)

[0.12.0] - 2023-06-09

Internal and API changes

  • [breaking change] Split call* client API methods into calls with Tuple result as a return type and calls with generic Object as a return type (#123)
  • Add buildSingleValueResultMapper() in mapper builder for generic call result mappers. That will simplify the support for auto object converter in SpringData module.

Bugfixes

  • Support both string and integer values in index fields metadata

[0.11.2] - 2023-05-04

Bugfixes

  • Fix lack of closing when greeting fails (#379)
  • Get rid of double executor in retrying (#382)

[0.11.1] - 2023-04-24

Bugfixes

  • Fix hasMetadata logic

[0.11.0] - 2023-04-12

Internal and API changes

  • Remove config request timeout as default parameter in crud client
  • Add hasMetadata in TarantoolTuple
  • Add "can convert value" check to TupleResultConverter
  • Support Datetime type (#214)

Bugfixes

  • Add details for the case of space metadata fetching failure (#200)
  • Close public access to TarantoolResult*Impl (#326)
  • Add deep copy instead of shallow copy in default message pack mapper (#166)

Refactor

  • Split retrying into more detailed modules (#341)

Features

  • Add a factory builder for constructing mapper hierarchies

[0.10.1] - 2023-01-13

Internal and API changes

  • Add ability to pass retrying executor in client builder (#339)
  • Do not use sync calls instead of async in retrying (#299)

[0.10.0] - 2022-12-29

Features

  • Add fields option to ProxySpace for controlling the result tuple fields (#236)
  • Parse metadata from crud response (#272)

Bugfixes

  • Add parsing of the batch operation errors (#334)

Internal and API changes

  • Move metadata parsing to separate converters (#325)
  • Add simple to use TarantoolTupleResultMapper factory (#321)
  • Use netty part dependencies instead of netty-all (#295)
  • Refactor mappers and split TarantoolResultConverter (#301)
  • [breaking change] TarantoolResultConverter was removed, use DefaultArrayValueToTarantoolResultConverter or DefaultMapValueToTarantoolTupleResultConverter instead (#301)
  • [breaking change] ConverterWrapper was moved to converters package (#301)
  • [breaking change] *MapperFactory classes were moved to separate package (#301)
  • [breaking change] TarantoolTupleMultiResult was renamed to MultiValueTarantoolTupleResult (#301)
  • [breaking change] TarantoolTupleSingleResult was renamed to SingleValueTarantoolTupleResult (#301)
  • [breaking change] *MapperFactory methods were renamed (#301)
  • [breaking change] *DefaultConverter converters moved into mappers.converters.value.defaults package (#301)
  • [breaking change] All converters from mappers.converters.value.custom moved into mappers.converters.value package (#301)
  • Return back the jmh-generator-annprocess dependency

[0.9.2] - 2022-11-15

Features

  • Adding default mapper for long arrays (#290)

Internal and API changes

  • Add dependency management (#296)
  • Bump testcontainers-java-tarantool to 0.5.3 (#296)
  • Bump slf4j-api to 2.0.3 (#296)
  • Bump jackson-databind to 2.14.0 (#296)
  • Bump jackson-annotations to 2.14.0 (#296)
  • Bump org.testcontainers:junit-jupiter to 1.17.4 (#296)
  • Add junit class ordering according the order before junit-jupiter 5.8.0 (#296)
  • Bump logback-classic to 1.3.4 (#296)
  • Remove org.junit.jupiter:junit-jupiter (#296)
  • Remove jmh-generator-annprocess (#296)

[0.9.1] - 2022-10-13

Features

  • Enable Short to Integer converters (#282)

Internal and API changes

  • Changed TarantoolNullField class to singleton (#195)
  • Bump netty to 4.1.78 (#280)

Security

  • Bump jackson-databind to 2.14.1-rc1 (#284)

[0.9.0] - 2022-10-03

Features

  • Added options parameter to Tarantool Space API (#266)
  • Added bucket id parameter to Tarantool Space API (#270)
  • Added support for insert_many and replace_many CRUD operations (#259)

[0.8.2] - 2022-09-16

Features

  • Added client EventLoopThreadsNumber property for control netty work threads (#253)

Misc

  • Removed code duplication in *ProxyOperations builders (#256)
  • Refactor CRUDOperationOptions to a hierarchy of classes (#258)

[0.8.1] - 2022-08-18

Features

  • Added StringValueToByteArray converter (#230)
  • Added IPROTO constants to align code more with Tarantool

[0.8.0] - 2022-05-20

Features

  • [breaking change] Use ValueType for registering ValueConverters (#213)
  • Removed reflection in value converters search for performance (#178)
  • Added objects converters for ArrayList and HashMap for increasing performance (#207)
  • Fixed converting performance with targetType (#212)
  • Added microbenchmark tests
  • Added support for SSl/TLS (#180)
  • Added support for IPv6 (#199)

Bugfixes

  • Fixed TarantoolClientConfig.Builder
  • Fixed incorrect fieldNumber in the index metadata (#203)

[0.7.2] - 2022-04-06

Bugfixes

  • Fix CVE-2020-36518: jackson-databind bump to 2.12.6
  • Fix CVE-2021-43797: bump netty-all to 4.1.75.Final
  • Fix NPE in AbstractTarantoolConnectionManager when AddressProvider returns null

[0.7.1] - 2022-04-06

Features

  • Added new error: TarantoolAccessDeniedException

Bugfixes

  • Fixed stackoverflow on comparing two null fields #150
  • Fixed overwriting endpoint by TarantoolClusterDiscoveryConfig.Builder.withEndpoint() #173
  • Fixed closing connections to nodes not returned by address provider #77
  • Fixed NPE in RetryingTarantoolClient #184

[0.7.0] - 2022-02-21

Features

  • Added refresh() method in connection manager to reestablish lacking connections
  • Predefined discovery addressProviders now call refresh() when addresses change
  • Added new exception type TarantoolNoSuchProcedureException which is useful in retry policies (for example to handle errors caused by not initialized instance states)
  • Breaking change error checking callbacks in retry policies now have Predicate type
  • Added method to client builder for easy messagepack mapper configuration
  • Added method to client builder which allows to use user defined TarantoolClientConfig

Bugfixes

  • Concurrency issue in connection manager which caused connection creation over defined limit

[Older]

Features

  • Full support for Tarantool field types available in 1.10 and new field types introduced in 2.x: UUID, decimal, double
  • Customizable mapping between the protocol primitives (MsgPack) into POJOs
  • Default TarantoolTuple object with field access API
  • Seamless working with standalone and Cartridge cluster Tarantool instances.

Cluster support is available via a proxy using the customizable API functions exposed on Tarantool router.

  • Built-in support for CRUD API (https://github.com/tarantool/crud)
  • Schema fetching support for built-in spaces formats and DDL metadata (https://github.com/tarantool/ddl)
  • Built-in examples for external server nodes discovery with HTTP or binary discovery endpoints
  • Customizable request retry policies for reliable communication
  • Automatic reconnects on connection failure