Couchbase Scala SDK Release Notes and Archives
Release notes, installation instructions, and download archive for the Couchbase Scala Client.
Version 1.3.0 (26 April 2022)
Version 1.3.0 is the first release of the 1.3 series.
The two headline changes in this release:
-
Supports the new functionality of Couchbase Server 7.1.
-
Bundles the public server security certificates for Couchbase Capella, to make it easier for users to get started with Capella.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.3.0
-
com.couchbase.client:core-io:2.3.0
-
io.projectreactor:reactor-core:3.4.17
-
org.reactivestreams:reactive-streams:1.0.3
Improvements
-
SCBC-352: Scala SDK now bundles the public Capella CA certificate.
-
JVMCBC-1074: When trying to connect to Capella without enabling TLS, an exception will be returned stating that TLS is required (instead of an
UnknownHostException). -
JVMCBC-1076: Deprecated
Event.createdAt()in favor of a version that returns anInstant. -
JVMCBC-1078: The SDK now allows you to customize the
schedulerThreadCount. -
JVMCBC-1079: Added
ConnectionStringSDK 3 compatibility attributes. -
JVMCBC-1082: Updated maintenance dependencies.
-
JVMCBC-1085: The last connect attempt failure is now stored and exposed through
Diagnostics.
Bugs
-
SCBC-350:
NOT_STOREDis now correctly handled asDocAlreadyExistswhen inserting a document. -
SCBC-353: Fixed issue where incorrect
GetAllIndexesresponse is returned on the default collection. -
JVMCBC-1077: Shutting down a
ClusterEnvironmentnow correctly stops aMeterowned by the cluster. This plugs a resource leak whereLoggingMeterworker threads would never be stopped.
Version 1.2.6 (2 March 2022)
There are no changes at the Scala SDK layer in this release, but there are bugfixes and improvements in the underlying core-io library.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.2.6
-
com.couchbase.client:core-io:2.2.6
-
io.projectreactor:reactor-core:3.4.14
-
org.reactivestreams:reactive-streams:1.0.3
Bugs
-
JVMCBC-1060: Fixed an issue where rate limited exceptions were not thrown for
SearchIndexManagererrors. -
JVMCBC-1071: The SDK now ensures that negative values are not sent to the
ValueRecorder.
New Features
-
JVMCBC-1057: Added core infrastructure for the Backup service. Users can now make custom HTTP requests to the Backup service.
-
JVMCBC-1064: When implementing a custom
RetryStrategy, a new overload ofRetryAction.noRetrylets you specify an exception translator for converting the default request cancellation exception into your preferred exception class.
Improvements
-
JVMCBC-1065:
RetryReason.allowsNonIdempotentRetry()is now public, so you can call it from a customRetryStrategy. -
JVMCBC-1066: When
SecurityConfig.Builder.trustCertificate(Path)is given a file containing more than one certificate, it now trusts all the certificates instead of just the first one. Likewise, the result ofSecurityConfig.decodeCertificates(List<String>)now includes all certificates in each string, not just the first certificate in each string. -
JVMCBC-1068: Added explicit handling of
FeatureNotAvailablefor Magma on CE. -
JVMCBC-1069: Added explicit handling of
FeatureNotAvailablefor Query CE.
Version 1.2.5 (2 February 2022)
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.2.5
-
com.couchbase.client:core-io:2.2.5
-
io.projectreactor:reactor-core:3.4.14
-
org.reactivestreams:reactive-streams:1.0.3
Bugs
-
SCBC-339:
QueryIndexManagerwatchIndexesnow refreshes on every try. -
JVMCBC-1046: Do not load global config if node not in seed node list anymore.
-
JVMCBC-1058: When a non-default scope or collection is being created with memcached buckets, the correct
FeatureNotAvailableExceptionis now thrown.
Improvements
-
SCBC-341: Removed the Azure link type from the analytics management API, due to a change in the underlying server API. (Note that this interface is marked
@Stability.Volatile, indicating that it can change.) -
SCBC-315: Custom conflict resolution added to the bucket management API.
-
SCBC-319: FTS options now include
IncludeLocationsand Operator. -
SCBC-333: Query API now supports preserving TTL.
-
SCBC-335: Index management API now supports managing indexes for a collection.
-
SCBC-342: Send configured user timeout to search.
-
JVMCBC-1037: Avoid
whenCompleteclosure for timeout cancellation. This is a small internal performance optimisation. -
JVMCBC-1045: Added an internal watchdog that updates the cluster configuration if the number of nodes changes.
-
JVMCBC-1048: Always set
RequestContextonRequestSpan. -
JVMCBC-1056: Log more info on unexpected endpoint disconnect.
-
JVMCBC-1059: Handles any
retry:truefield in a query error result by retrying it. -
JVMCBC-1055, JVMCBC-1047, JVMCBC-1051: Updating dependencies. Netty goes from 4.1.72.Final to 4.1.73.Final. Jackson from 2.13.0 to 2.13.1. Reactor from 3.4.12 to 3.4.14. log4j (an optional dependency) from 2.15.0 to 2.17.1.
Version 1.2.4 (9 December 2021)
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.2.4
-
com.couchbase.client:core-io:2.2.4
-
io.projectreactor:reactor-core:3.4.12
-
org.reactivestreams:reactive-streams:1.0.3
Improvements
-
SCBC-334: Bucket Management API - Added Storage Option for Magma.
-
JVMCBC-1033, JVMCBC-1034: Updated internal and external dependencies to their latest bugfix versions. Also updated OpenTelemetry to 1.7.x.
-
JVMCBC-1035: Made the (internal) subDocumentField is now serializable. This is needed for Apache Spark integration.
-
JVMCBC-1032: Adde (volatile) support for Rate/Quota Limits. This is needed for Couchbase Capella.
-
JVMCBC-1039: Included httpStatus in Query and Analytics Error Context, as well as the vbucket in the KV error context. This helps with debugging.
Version 1.2.3 (2 November 2021)
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.2.3
-
com.couchbase.client:core-io:2.2.3
-
io.projectreactor:reactor-core:3.4.9
-
org.reactivestreams:reactive-streams:1.0.3
Improvements
-
JVMCBC-1026: Added support for Error Map v2.
-
SCBC-326: Added
LookupInResult.contentAsBytes().
Version 1.2.2 (6 October 2021)
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.2.2
-
com.couchbase.client:core-io:2.2.2
-
io.projectreactor:reactor-core:3.4.9
-
org.reactivestreams:reactive-streams:1.0.3
Improvements
-
SCBC-265: Added an eventing management API.
-
SCBC-332: Fixes to
JsonObjectandJsonArray: improvements to the API for Safe transformations,fromSeq, fixed some conversion issues. -
JVMCBC-1015: Improved client side error message when TLS is enforced on the server side.
-
JVMCBC-1016: Gracefully handle more invalid connection string cases.
-
JVMCBC-1022: Batch-Log messages in DefaultEventBus. Now events which are overflowing are not directly logged to stderr but rather batched up and logged at interval. Note that this implies some "loss of precision", as not all dropped events are logged - one event per type is preserved.
Interface Affecting
-
SCBC-331: Promoted Manager interfaces to committed.
Bugs
-
SCBC-330: Ensured that JsonObjectSafe is recursive.
-
JVMCBC-1017: Fixed issue with Threshold Logging Tracing not working due to RequestContext not being set.
-
JVMCBC-1020: Added
targetproperty to QueryRequest and ensured it is honored for prepare and execute, so they are both run on the same node. This fix removes need forTargetedQueryRequest.
Version 1.2.1 (1 September 2021)
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.2.1
-
com.couchbase.client:core-io:2.2.1
-
io.projectreactor:reactor-core:3.4.9
-
org.reactivestreams:reactive-streams:1.0.3
Improvements
-
SCBC-328: Update collections compat dependency.
-
SCBC-325: Add serialization support for Apache Spark.
-
SCBC-329: Expose all builder methods on SecurityConfig.
-
JVMCBC-1010: Maintenance dependency bump.
-
JVMCBC-990: WaitUntilReady timing out with 6.0.x and unhealthy seed nodes.
-
JVMCBC-999: Properly map server query timeout while streaming.
-
JVMCBC-1004: Configure and apply default log level for ConsoleLogger.
-
JVMCBC-1005: Allow to export Context as Map.
-
JVMCBC-1006: ErrorContext must be included in message.
Bug fixes
-
JVMCBC-1002: Default log level reverted to INFO.
-
JVMCBC-1007: LoggingMeter incorrectly marked as Volatile in SDK 3.2.
Version 1.2.0 (20 July 2021)
Version 1.2.0 is the first GA release of the 1.2 series, promoting to GA support for the scopes and collections provided by Couchbase Server 7.0, and also OpenTelemetry. In addition, a supported release for Scala 2.13 is now provided.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.2.0
-
com.couchbase.client:core-io:2.2.0
-
io.projectreactor:reactor-core:3.4.6
-
org.reactivestreams:reactive-streams:1.0.3
Improvement
-
SCBC-217: Provide a published and officially supported Scala 2.13 build.
-
SCBC-231: Update analytics management API to support compound dataverse names.
-
SCBC-232: Manage remote analytics links.
-
SCBC-240: Add analytics support for collections.
-
SCBC-309: Map Query Error 13014 to AuthenticationException.
-
SCBC-205: Provide a Scala version of the Travel Sample Application backend.
-
JVMCBC-980: Add exception wrappers to Tracers and Meters.
-
JVMCBC-987: Allow supplying an SDK2-compatible memcached hashing strategy.
-
JVMCBC-988: Map Query Error 13014 to AuthenticationException.
-
JVMCBC-989: Add timeout_ms to threshold logging tracer output.
-
JVMCBC-991: Optimize metric dispatching.
-
JVMCBC-992: Cache NodeIdentifier in NodeInfo.
-
JVMCBC-993: Optimize early discard of events which are not going to be logged.
-
JVMCBC-996: Throw FeatureNotAvailableException if scope level queries are not available.
-
JVMCBC-997: Duplicate attributes from dispatch_to_server to improve tracing.
-
JVMCBC-998: Performance: Do not set tracing spans if not needed.
-
JVMCBC-981: Support CoreHttpClient requests to manager service.
-
JVMCBC-984: Dependency bump: Netty 4.1.63 to 4.1.65, micrometer 1.6.6 to 1.7.0.
-
JCBC-1787: Validate expiry instants.
-
JCBC-1838: Add support for SDK2-compatible LegacyTranscoder.
-
JCBC-1841: Update OpenTelemetry to 1.3.0.
Interface Changes
All interface changes are to interfaces that are currently in beta and marked @Stability.Volatile or @Stability.Uncommitted.
-
JVMCBC-978: Rename AggregatingMeter to LoggingMeter.
-
JVMCBC-934: Threshold and Orphan output is now in new format.
-
JVMCBC-979: Rename ThresholdRequestTracer to ThresholdLoggingTracer
-
SCBC-297: Promote collection APIs from Volatile to Committed.
Bug Fixes
-
SCBC-270: Add redundant error handling for collection manager errors.
-
SCBC-296: JsonArraySafe should create an object wrapping a JsonObject.
-
JVMCBC-949: Opening a non-default collection on an memcached bucket now fails fast.
-
JVMCBC-983: Ignore slow subscribers on certain Flux intervals.
Version 1.1.8 (1 March 2022)
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.1.8
-
com.couchbase.client:core-io:2.1.8
-
io.projectreactor:reactor-core:3.4.15
-
org.reactivestreams:reactive-streams:1.0.3
Bug Fixes
-
JVMCBC-1067: Internal and external maintenance dependencies are updated to their latest available bugfix releases (including Netty to 4.1.74.Final).
-
JVMCBC-1046: Added fix to not load the global config if a node is not in the seed node list anymore.
-
JVMCBC-1006:
ErrorContextis now included in the message of aCouchbaseException.
Version 1.1.7 (11 August 2021)
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.1.7
-
com.couchbase.client:core-io:2.1.7
-
io.projectreactor:reactor-core:3.4.6
-
org.reactivestreams:reactive-streams:1.0.3
Bug Fixes
-
JVMCBC-949: Opening a non-default collection on an memcached bucket now fails fast.
-
JVMCBC-983: Slow subscribers are now ignored on certain Flux intervals.
-
JVMCBC-990: The SDK now gracefully handles cluster-level WaitUntilReady against clusters < 6.5.
-
SCBC-296: Fixes a
JsonArraySafebug.
Improvements
-
JVMCBC-996: Throw
FeatureNotAvailableExceptionif scope level queries are not available. -
JVMCBC-988: Query error code 13014 is now mapped to
AuthenticationException. -
JVMCBC-987: Allow supplying an SDK2-compatible memcached hashing strategy.
-
JVMCBC-999: Properly map server query timeout while streaming.
Version 1.1.6 (4 June 2021)
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.1.6
-
com.couchbase.client:core-io:2.1.6
-
io.projectreactor:reactor-core:3.4.6
-
org.reactivestreams:reactive-streams:1.0.3
Bug Fixes
-
JVMCBC-972: Only open one GCCCP connection per node.
Improvements
-
SCBC-237: Added
ThresholdRequestTracerConfigand support for it inClusterEnvironment. -
SCBC-286: Added
AggregatingMeterConfig, and allow the coremeterproperty to be customized viaClusterEnvironment. -
JVMCBC-939: Improve no collection access handling.
-
JVMCBC-974: Restructure AggregatingMeter output format.
-
JVMCBC-975: Further improve wait until ready diagnostics.
-
JVMCBC-977: Improve bucket configuration handling (revEpoch).
Version 1.1.5 (6 May 2021)
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.1.5
-
com.couchbase.client:core-io:2.1.5
-
io.projectreactor:reactor-core:3.4.5
-
org.reactivestreams:reactive-streams:1.0.3
Version 1.1.4 (7 April 2021)
While there are no changes specific to the Scala SDK in this release, it does inherit fixes from the underlying core-io release.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.1.4
-
com.couchbase.client:core-io:2.1.4
-
io.projectreactor:reactor-core:3.4.4
-
org.reactivestreams:reactive-streams:1.0.3
Bug Fixes
-
JCBC-1798: Fixes ViewResult.metaData() throwing Exception when debug=true.
Version 1.1.3 (2 March 2021)
Version 1.1.3 is the fourth release of the 1.1 series, bringing stabilizations and enhancements over 1.1.2.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.1.3
-
com.couchbase.client:core-io:2.1.3
-
io.projectreactor:reactor-core:3.4.3
-
org.reactivestreams:reactive-streams:1.0.3
Improvements
-
SCBC-285: Expose property loading on environment.
-
JVMCBC-924, JVMCBC-925: Updated dependencies: Netty to 4.1.59, netty-tcnative-boringssl-static to 2.0.36, Reactor to 2.4.3, Jackson to 2.12.1.
-
JVMCBC-919: Support for Project Reactor BlockHound integration.
-
JVMCBC-926: Performance: Replace new byte[] full copies with ByteBufUtil.getBytes.
-
JVMCBC-927: Performance: Improve performance of metrics hot code path.
Bugs
-
JVMCBC-930: Threshold and Orphan Reporting now report the correct time units.
-
JVMCBC-932: Fixed a memory leak when OrphanReporter is disabled.
-
JVMCBC-933: ThresholdRequestTracer and OrphanReporter now use bounded queues.
Internal Improvements
-
JVMCBC-912: Refactor property loading.
-
JVMCBC-918: Move ProjectionsApplier into core.
-
JVMCBC-920: Move MutationState logic to core.
-
JVMCBC-921: Add OpenTelemetry attributes for spans.
-
JVMCBC-929: Retain stability annotations at runtime.
-
SCBC-284: Expose package-level APIs for Spark interop.
Version 1.1.2 (2 February 2020)
Version 1.1.2 is the third release of the 1.1 series, bringing stabilizations and enhancements over 1.1.1.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.1.2
-
com.couchbase.client:core-io:2.1.2
-
io.projectreactor:reactor-core:3.4.1
-
org.reactivestreams:reactive-streams:1.0.3
Bugs
-
SCBC-282: Collection map is no longer refreshed when using the default scope and default collection.
API Affecting
-
SCBC-288: CollectionManager::getScope is now deprecated, in favour of using getAllScopes.
Enhancements
-
JVMCBC-915: As a performance optimization, loading a collection now only fetches the information required for that collection, rather than the full collection manifest.
-
JVMCBC-916: Any send HTTP request will send a hostname if hostnames are used, rather than IP, leading to consistent hostname use across the system.
Version 1.1.1 (12 January 2020)
Version 1.1.1 is the second release of the 1.1 series, bringing stabilizations and enhancements over 1.1.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.1.1
-
com.couchbase.client:core-io:2.1.1
-
io.projectreactor:reactor-core:3.4.1
-
org.reactivestreams:reactive-streams:1.0.3
Bugs
-
JVMCBC-909: Retry opening the bucket until timeout when it is not found, to allow for it not yet being created.
-
JVMCBC-910: WaitUntilReady will now wait if bucket not present yet, before it starts to time out.
-
SCBC-274: Prepared non-adhoc queries on scopes were failing, as query_context was not being passed to the individual prepare and/or execute statements. This has now been fixed, and scope-level queries are working as expected.
Version 1.1.0 (2 December 2020)
Version 1.1.0 is the first GA release of the 1.1 series, bringing stabilizations and enhancements over 1.0.10 and the 1.0 SDK, and adding features to support Couchbase Server 6.6 and 7.0β.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.1.0
-
com.couchbase.client:core-io:2.1.0
-
io.projectreactor:reactor-core:3.4.0
-
org.reactivestreams:reactive-streams:1.0.3
Version 1.0.10 (3 November 2020)
Version 1.0.10 is a maintenance release, bringing enhancements over the last stable release.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.0.10
-
com.couchbase.client:core-io:2.0.11
-
io.projectreactor:reactor-core:3.3.9.RELEASE
-
org.reactivestreams:reactive-streams:1.0.3
Enhancements
-
JVMCBC-898: Added fallback for lastDispatchedTo in context, to improve debuggability.
-
JVMCBC-899: Updated OpenTelemetry to 0.9.1.
-
SCBC-252: Enhanced user management for collections/RBAC, to support future 7.0 release.
Version 1.0.9 (7 October 2020)
Version 1.0.9 is a maintenance release, bringing enhancements and bugfixes over the last stable release.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.0.9
-
com.couchbase.client:core-io:2.0.10
-
io.projectreactor:reactor-core:3.3.9.RELEASE
-
org.reactivestreams:reactive-streams:1.0.3
Bug Fixes
-
SCBC-254: Fixed a decode error (allocstall) on BucketSettings with certain long values sent from particular server versions by swapping out upickle for JsonObject decoding.
-
SCBC-257: Fixed FTS serialization issues.
-
JVMCBC-885: Allow overriding of
BestEffortRetryStrategy. -
JVMCBC-889: Make sure WaitUntilReady always times out.
-
JVMCBC-890: Enforce only negotiate PLAIN when using TLS with PasswordAuthenticator.
-
JVMCBC-892: Service pool idle time check now happen more often.
-
JVMCBC-894: BatchHelper: handle success case with no body gracefully.
-
JVMCBC-872: Subdoc 'no access' error code is now reported correctly. This helps users to identify and fix permissions errors for system XATTRs.
Enhancements
-
SCBC-233: Geopolygon search support.
-
SCBC-234: Added support for FTS hints (flex index).
-
SCBC-236: Added ephemeral bucket management support.
-
SCBC-238: Added N1QL support for collections, via new
Scope.querymethod. -
SCBC-249: Added GetResult.expiryTime(), which returns an Instant vs GetResult.expiry()'s Duration.
-
JVMCBC-888, JVMCBC-893: Dependency bumps: Netty to 4.1.52.Final, OpenTelemetry to 0.8.
-
JVMCBC-886: Improved LDAP auth failure handling.
-
JVMCBC-896: Fast dispatch pooled requests.
Version 1.0.8 (1 September 2020)
Version 1.0.8 is the ninth release of the Scala SDK, bringing enhancements and bugfixes over the last stable release.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.0.8
-
com.couchbase.client:core-io:2.0.9
-
io.projectreactor:reactor-core:3.3.9.RELEASE
-
org.reactivestreams:reactive-streams:1.0.3
Bug Fixes
-
JVMCBC-805: The client now handles bootstrapping against nodes much better which do not have the data service enabled (in an MDS setup).
-
JVMCBC-882: A bug has been fixed where when bootstrapping against a node with no data service enabled, the endpoint would not be cleaned up and would keep trying to reconnect.
-
JVMCBC-872: The client now more explicitly handles an error response code (
NO_ACCESS) when a subdocument request is performed against a system xattr. -
JVMCBC-873: Durability information is now properly unwrapped from an optional when exported and dumped (for example as part of an exception).
-
JVMCBC-880: The client now trackes multiple parallel bucket open attempts (against different buckets) in a better way, making sure that an internal state is only switched when all those bucket open attempts have completed (and not just the first one).
-
JVMCBC-878:
EndpointDiagnosticshad the local and remote hostnames mixed up, they now show up in the correct order.
Enhancements
-
JVMCBC-883: The client is now a little less verbose when performing a DNS SRV request and the underlying JDK operation times out.
-
JVMCBC-879: Updated internal and external dependencies to their latest maintenance releases.
-
JVMCBC-874: When dealing with unknown collections, the SDK now returns a more user friendly retry reason when it can (outdated manifest vs. collection not found).
-
JVMCBC-875: On the request timeout exception, the retry reasons are now accessible directly.
Version 1.0.7 (4 August 2020)
Version 1.0.7 is the eighth release of the Scala SDK, bringing enhancements, and bugfixes over the last stable release.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.0.7
-
com.couchbase.client:core-io:2.0.8
-
io.projectreactor:reactor-core:3.3.8.RELEASE
-
org.reactivestreams:reactive-streams:1.0.3
Bug Fixes
-
SCBC-247: Removed cas from
IncrementOptionsandDecrementOptions. CAS is not supported by the underlying protocol and should not have been exposed in these options. -
JVMCBC-870: A bug in the chunk response parser prohibited responses meant that View reduce responses were never completed, and as a result timed out on the user side. The completion of view results with reduce enabled has now been fixed.
Enhancements
-
JVMCBC-867: Performance improvement: do not grab ByteBuf slice when extracting server response time.
-
JVMCBC-869: Maintenance dependency bump: Netty → 4.1.51, Jackson → 2.11.1, Reactor → 3.3.7, OpenTelemetry → 0.6.0, Reactor Scala Extensions → 0.7.1.
Version 1.0.6 (14 July 2020)
Version 1.0.6 is the seventh release of the Scala SDK.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.0.6
-
com.couchbase.client:core-io:2.0.7
-
io.projectreactor:reactor-core:3.3.5.RELEASE
-
org.reactivestreams:reactive-streams:1.0.3
Enhancements
-
JVMCBC-865: Change the default idle timeout to 4.5s for http connections, to support performance improvements in query service.
Bug Fixes
-
SCBC-244: ViewQuery with keys does not work.
-
JVMCBC-849: Redundant global loading exceptions no longer propagated — now logged at
debuglevel. -
JVMCBC-856: A just-opened connection in pool no longer gets cleaned up prematurely .
-
JVMCBC-858: Channel writeAndFlush failures are no longer ignored.
-
JVMCBC-862: Race condition with node identifier change on bootstrap identified. New logic and some changes to the config provider code ensures that retry and resubscribe picks up fresh seed nodes.
-
JVMCBC-863: Bucket-Level ping report no longer includes other view and KV services buckets.
-
JVMCBC-866: Trailing : no longer added to IPv6 addresses without []. 'invalid IPv6 address' warnings now no longer produced when trying to connect to a valid Ipv6 address thus specified.
Version 1.0.5 (2 June 2020)
Version 1.0.5 is the sixth release of the Scala SDK. It brings no new changes to the Scala client itself, but inherits enhancements and bugfixes over the last stable release from the core-io dependency.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.0.5
-
com.couchbase.client:core-io:2.0.6
-
io.projectreactor:reactor-core:3.3.5.RELEASE
-
org.reactivestreams:reactive-streams:1.0.3
Enhancements
-
JVMCBC-852: Bumped Reactor to 3.3.5, Netty to 4.1.50.Final, and Jackson to 2.11.0.
-
JVMCBC-693: For performance, the KV bootstrap sequence is now partially pipelined.
Bug Fixes
-
JVMCBC-849: Duplicate global loading exceptions are now swallowed to remove redundant warnings from logging (this was a cosmetic-only issue).
Version 1.0.4 (7 May 2020)
Version 1.0.4 is the fifth release of the Scala SDK. It brings no new changes to the Scala client itself, but inherits enhancements and bugfixes over the last stable release from the core-io dependency.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.0.4
-
com.couchbase.client:core-io:2.0.5
-
io.projectreactor:reactor-core:3.3.4.RELEASE
-
org.reactivestreams:reactive-streams:1.0.3
Enhancements
-
JVMCBC-841: Bumped Netty dependency to 2.0.30, and reactor to 3.3.4.
Bug Fixes
-
JVMCBC-845: If a rebalance is stopped in the middle, an edge case occasionally causes KV ops to time out as the fast forward map is chosen over the retry. The behavior has now been changed so that the client will try the old and new servers to make sure the operation eventually gets dispatched to the right node.
Version 1.0.3 (7 April 2020)
Version 1.0.3 is the fourth release of the Scala SDK. It brings no new changes to the Scala client itself, but inherits enhancements and bugfixes over the last stable release from the core-io dependency.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.0.3
-
com.couchbase.client:core-io:2.0.4
-
io.projectreactor:reactor-core:3.3.1.RELEASE
-
org.reactivestreams:reactive-streams:1.0.2
Enhancements
-
JVMCBC-830: Added more convenient overloads for SecurityConfig and CertAuth. These overloads initialize both the SecurityConfig and the CertificateAuthenticator directly from a KeyStore or TrustStore.
-
JVMCBC-831: Improves timeout for waitUntilReady — the
waitUntilReadyhelper should now throw a proper timeout exception. -
JVMCBC-832: Added support for multiple ports per hostname in the connection string — without having to use the explicit SeedNode set overload.
-
JVMCBC-835: Using "localhost:8091" as a connection string would set the kv bootstrap port to 8091, which is not desired behavior. To prevent this from happening again, the code now checks for this condition, fails fast, and also provides guidance on what the connection string should look like instead.
-
JVMCBC-836: Enabled Unordered Execution by Default.
-
JVMCBC-837: Updates OpenTelemetry to 0.3 (beta).
-
JVMCBC-839: Bootstrap will now correctly use the mapped port if alternate addr is present.
Bug Fixes
-
JVMCBC-834: 'CollectionNotFoundException' now triggers a retry, and if no collection refresh is currently in progress it will proactively trigger a new one. Now Docs created under custom collection should no longer raise an exception when a collection has been created in the meantime, but the collection is not found as no refresh is in progress.
-
JVMCBC-826: A NullPointerException was occuring when LDAP is enabled. The code now explicitly fails the connection with a descriptive error message instructing the user what to do next (either use TLS which is preferred) or enable PLAIN on the password authenticator (insecure).
-
JVMCBC-827: Search query results row_hit typo resulted in 0 being returned for total rows. This has now been fixed.
-
JVMCBC-828: Omit internal config request in orphan reporting.
Version 1.0.2 (3 March 2020)
Version 1.0.2 is the third release of the Scala SDK, bringing enhancements and bugfixes over the last stable release.
The supported and tested dependencies for this release are:
-
com.couchbase.client:scala-client:1.0.2
-
com.couchbase.client:core-io:2.0.3
-
io.projectreactor:reactor-core:3.3.1.RELEASE
-
org.reactivestreams:reactive-streams:1.0.2
Enhancements
-
JVMCBC-813: Improved error message for bucket is missing.
-
JVMCBC-815: Check if key exceeds size limits.
-
JVMCBC-818: Trimmed netty stack in connect failures for more readable output.
-
JVMCBC-819: Distinguished bucket not found in select bucket failures.
-
JVMCBC-823: Added a global component to the core id.
-
JVMCBC-825: Support added for new VATTR HELLO flag.
-
SCBC-43: With huge thanks to our community, who submitted the patch, it is now possible to build versions of the SDK for 2.11 and 2.13. Couchbase only officially provides, tests and supports a Scala 2.12 build currently, but users are welcome to build their own jars for 2.11 or 2.13 following the README instructions.
Bug Fixes
-
SCBC-200: Dependencies now correctly shaded.
-
SCBC-207: Exists no longer returns wrong value if executed right after remove.
-
SCBC-216: Properly clear cache when repreparing/retrying query.
-
JVMCBC-824: Native Netty transports not included, resulting in fallback to default implementation. This was a regression in the 2.0.2 core-io release.
-
JCBC-1600: Using expiry together with document flags on a Sub-Document
mutateInno longer causes an incorrect flags field to be sent.
Version 1.0.1 (5th February 2020)
Version 1.0.1 is the second release of the 1.0 series, bringing new features, enhancements, and bugfixes over the last stable release.
New Features & Enhancements
-
SCBC-190: Exposed enableDnsSrv parameter on
IoConfig(), allowing DNS SRV to be used. -
SCBC-204: Added support for new server flag
createAsDeleted— for internal use only. -
SCBC-201: Exposed Java core environment through Scala ClusterEnvironment, allowing the event-bus to be accessed.
-
SCBC-198: Exposed environment getter through cluster. This allows a constructed environment to be shutdown without having to maintain a reference to it.
Version 1.0.0 (17th January 2020)
This is the first General Availability (GA) release of the new Couchbase Scala SDK. It brings a large number of improvements, bug-fixes and API changes from the previous beta release.
Stability Enhancements & Bug Fixes
-
SCBC-147: QueryIndexManager should return only GSI indexes
-
SCBC-151: Make sure all reactive ops are deferred; this ensures that
collection.reactive.remove(…)won’t perform a remove until the SMono is subscribed to -
SCBC-154: Make UserManager handle pre-LDAP clusters
-
SCBC-157: Handle projections of objects inside arrays correctly
-
SCBC-158: Handle 'too many set inserts' internal error while converting JSON to case classes
-
SCBC-163: ViewQuery does not send request
-
SCBC-167: Fix FTS consistentWith
-
SCBC-174: ReactiveCollection KV operations now do ClientVerified Observe check
-
SCBC-182: QueryOptions missing setters
API Changes
-
SCBC-159: Fix semantics of datastructures so they behave more like Scala collections
-
SCBC-162: All ReactiveBinaryCollection methods should return SMono
-
SCBC-164: Align with latest view RFC
-
SCBC-136: Track all Java environment changes
-
SCBC-138: Replace management API Scala exceptions with core ones
-
SCBC-139: GetSelecter is using incorrect exceptions
-
SCBC-155: Rename *master to *active throughout
-
SCBC-187: Remove scopeExists and collectionExists from CollectionManager
-
SCBC-188: Align UserAndMetadata with latest RFC
Pre-releases
Numerous Alpha and Beta releases were made in the run-up to the 1.0 release, and although unsupported, the release notes and download links are retained for archive purposes here.