Azure Cosmos DB Java SDK for SQL API: Release notes and resources

This is the original Azure Cosmos DB Sync Java SDK v2 for SQL API which supports synchronous operations.

Important

This is not the latest Java SDK for Azure Cosmos DB! Consider using Azure Cosmos DB Java SDK v4 for your project. To upgrade, follow the instructions in the Migrate to Azure Cosmos DB Java SDK v4 guide and the Reactor vs RxJava guide.

SDK Download Maven
API documentation Java API reference documentation
Contribute to SDK GitHub
Get started Get started with the Java SDK
Web app tutorial Web application development with Azure Cosmos DB
Minimum supported runtime Java Development Kit (JDK) 7+

Release notes

2.5.1

  • Fixes master partition cache issue on documentCollection query.

2.5.0

  • Added support for 449 retry custom configuration.

2.4.7

  • Fixes connection pool timeout issue.
  • Fixes auth token refresh on internal retries.

2.4.6

  • Updated correct client side replica policy tag on databaseAccount and made databaseAccount configuration reads from cache.

2.4.5

  • Avoiding retry on invalid partition key range error, if user provides pkRangeId.

2.4.4

  • Optimized partition key range cache refreshes.
  • Fixes the scenario where the SDK doesn't entertain partition split hint from server and results in incorrect client side routing caches refresh.

2.4.2

  • Optimized collection cache refreshes.

2.4.1

  • Added support to retrieve inner exception message from request diagnostic string.

2.4.0

  • Introduced version api on PartitionKeyDefinition.

2.3.0

  • Added separate timeout support for direct mode.

2.2.3

  • Consuming null error message from service and producing document client exception.

2.2.2

  • Socket connection improvement, adding SoKeepAlive default true.

2.2.0

  • Added request diagnostics string support.

2.1.3

  • Fixed bug in PartitionKey for Hash V2.

2.1.2

  • Added support for composite indexes.
  • Fixed bug in global endpoint manager to force refresh.
  • Fixed bug for upserts with pre-conditions in direct mode.

2.1.1

  • Fixed bug in gateway address cache.

2.1.0

  • Multi-region write support added for direct mode.
  • Added support for handling IOExceptions thrown as ServiceUnavailable exceptions, from a proxy.
  • Fixed a bug in endpoint discovery retry policy.
  • Fixed a bug to ensure null pointer exceptions are not thrown in BaseDatabaseAccountConfigurationProvider.
  • Fixed a bug to ensure QueryIterator does not return nulls.
  • Fixed a bug to ensure large PartitionKey is allowed

2.0.0

  • Multi-region write support added for gateway mode.

1.16.4

  • Fixed a bug in Read partition Key ranges for a query.

1.16.3

  • Fixed a bug in setting continuation token header size in DirectHttps mode.

1.16.2

  • Added streaming fail over support.
  • Added support for custom metadata.
  • Improved session handling logic.
  • Fixed a bug in partition key range cache.
  • Fixed a NPE bug in direct mode.

1.16.1

  • Added support for Unique Index.
  • Added support for limiting continuation token size in feed-options.
  • Fixed a bug in Json Serialization (timestamp).
  • Fixed a bug in Json Serialization (enum).
  • Dependency on com.fasterxml.jackson.core:jackson-databind upgraded to 2.9.5.

1.16.0

  • Improved Connection Pooling for Direct Mode.
  • Improved Prefetch improvement for non-orderby cross partition query.
  • Improved UUID generation.
  • Improved Session consistency logic.
  • Added support for multipolygon.
  • Added support for Partition Key Range Statistics for Collection.
  • Fixed a bug in Multi-region support.

1.15.0

1.14.0

  • Internal changes for Microsoft friends libraries.

1.13.0

  • Fixed an issue in reading single partition key ranges.
  • Fixed an issue in ResourceID parsing that affects database with short names.
  • Fixed an issue cause by partition key encoding.

1.12.0

  • Critical bug fixes to request processing during partition splits.
  • Fixed an issue with the Strong and BoundedStaleness consistency levels.

1.11.0

  • Added support for a new consistency level called ConsistentPrefix.
  • Fixed a bug in reading collection in session mode.

1.10.0

  • Enabled support for partitioned collection with as low as 2,500 RU/sec and scale in increments of 100 RU/sec.
  • Fixed a bug in the native assembly which can cause NullRef exception in some queries.

1.9.6

  • Fixed a bug in the query engine configuration that may cause exceptions for queries in Gateway mode.
  • Fixed a few bugs in the session container that may cause an "Owner resource not found" exception for requests immediately after collection creation.

1.9.5

  • Added support for aggregation queries (COUNT, MIN, MAX, SUM, and AVG). See Aggregation support.
  • Added support for change feed.
  • Added support for collection quota information through RequestOptions.setPopulateQuotaInfo.
  • Added support for stored procedure script logging through RequestOptions.setScriptLoggingEnabled.
  • Fixed a bug where query in DirectHttps mode may stop responding when encountering throttle failures.
  • Fixed a bug in session consistency mode.
  • Fixed a bug which may cause NullReferenceException in HttpContext when request rate is high.
  • Improved performance of DirectHttps mode.

1.9.4

  • Added simple client instance-based proxy support with ConnectionPolicy.setProxy() API.
  • Added DocumentClient.close() API to properly shutdown DocumentClient instance.
  • Improved query performance in direct connectivity mode by deriving the query plan from the native assembly instead of the Gateway.
  • Set FAIL_ON_UNKNOWN_PROPERTIES = false so users don't need to define JsonIgnoreProperties in their POJO.
  • Refactored logging to use SLF4J.
  • Fixed a few other bugs in consistency reader.

1.9.3

  • Fixed a bug in the connection management to prevent connection leaks in direct connectivity mode.
  • Fixed a bug in the TOP query where it may throw NullReference exception.
  • Improved performance by reducing the number of network call for the internal caches.
  • Added status code, ActivityID and Request URI in DocumentClientException for better troubleshooting.

1.9.2

  • Fixed an issue in the connection management for stability.

1.9.1

  • Added support for BoundedStaleness consistency level.
  • Added support for direct connectivity for CRUD operations for partitioned collections.
  • Fixed a bug in querying a database with SQL.
  • Fixed a bug in the session cache where session token may be set incorrectly.

1.9.0

  • Added support for cross partition parallel queries.
  • Added support for TOP/ORDER BY queries for partitioned collections.
  • Added support for strong consistency.
  • Added support for name based requests when using direct connectivity.
  • Fixed to make ActivityId stay consistent across all request retries.
  • Fixed a bug related to the session cache when recreating a collection with the same name.
  • Added Polygon and LineString DataTypes while specifying collection indexing policy for geo-fencing spatial queries.
  • Fixed issues with Java Doc for Java 1.8.

1.8.1

  • Fixed a bug in PartitionKeyDefinitionMap to cache single partition collections and not make extra fetch partition key requests.
  • Fixed a bug to not retry when an incorrect partition key value is provided.

1.8.0

  • Added the support for multi-region database accounts.
  • Added support for automatic retry on throttled requests with options to customize the max retry attempts and max retry wait time. See RetryOptions and ConnectionPolicy.getRetryOptions().
  • Deprecated IPartitionResolver based custom partitioning code. Please use partitioned collections for higher storage and throughput.

1.7.1

  • Added retry policy support for rate limiting.

1.7.0

  • Added time to live (TTL) support for documents.

1.6.0

1.5.1

  • Fixed a bug in HashPartitionResolver to generate hash values in little-endian to be consistent with other SDKs.

1.5.0

  • Add Hash & Range partition resolvers to assist with sharding applications across multiple partitions.

1.4.0

  • Implement Upsert. New upsertXXX methods added to support Upsert feature.
  • Implement ID Based Routing. No public API changes, all changes internal.

1.3.0

  • Release skipped to bring version number in alignment with other SDKs

1.2.0

  • Supports GeoSpatial Index
  • Validates ID property for all resources. Ids for resources cannot contain ?, /, #, , characters or end with a space.
  • Adds new header "index transformation progress" to ResourceResponse.

1.1.0

  • Implements V2 indexing policy

1.0.0

  • GA SDK

Release and retirement dates

Microsoft will provide notification at least 12 months in advance of retiring an SDK in order to smooth the transition to a newer/supported version. New features and functionality and optimizations are only added to the current SDK, as such it is recommend that you always upgrade to the latest SDK version as early as possible.

Warning

After 30 May 2020, Azure Cosmos DB will no longer make bug fixes, add new features, and provide support to versions 1.x of the Azure Cosmos DB Java SDK for SQL API. If you prefer not to upgrade, requests sent from version 1.x of the SDK will continue to be served by the Azure Cosmos DB service.

After 29 February 2016, Azure Cosmos DB will no longer make bug fixes, add new features, and provide support to versions 0.x of the Azure Cosmos DB Java SDK for SQL API. If you prefer not to upgrade, requests sent from version 0.x of the SDK will continue to be served by the Azure Cosmos DB service.

Version Release Date Retirement Date
2.5.1 June 03, 2020 ---
2.5.0 May 12, 2020 ---
2.4.7 Feb 20, 2020 ---
2.4.6 Jan 24, 2020 ---
2.4.5 Nov 10, 2019 ---
2.4.4 Oct 24, 2019 ---
2.4.2 Sep 26, 2019 ---
2.4.1 Jul 18, 2019 ---
2.4.0 May 04, 2019 ---
2.3.0 Apr 24, 2019 ---
2.2.3 Apr 16, 2019 ---
2.2.2 Apr 05, 2019 ---
2.2.0 Mar 27, 2019 ---
2.1.3 Mar 13, 2019 ---
2.1.2 Mar 09, 2019 ---
2.1.1 Dec 13, 2018 ---
2.1.0 Nov 20, 2018 ---
2.0.0 Sept 21, 2018 ---
1.16.4 Sept 10, 2018 May 30, 2020
1.16.3 Sept 09, 2018 May 30, 2020
1.16.2 June 29, 2018 May 30, 2020
1.16.1 May 16, 2018 May 30, 2020
1.16.0 March 15, 2018 May 30, 2020
1.15.0 Nov 14, 2017 May 30, 2020
1.14.0 Oct 28, 2017 May 30, 2020
1.13.0 August 25, 2017 May 30, 2020
1.12.0 July 11, 2017 May 30, 2020
1.11.0 May 10, 2017 May 30, 2020
1.10.0 March 11, 2017 May 30, 2020
1.9.6 February 21, 2017 May 30, 2020
1.9.5 January 31, 2017 May 30, 2020
1.9.4 November 24, 2016 May 30, 2020
1.9.3 October 30, 2016 May 30, 2020
1.9.2 October 28, 2016 May 30, 2020
1.9.1 October 26, 2016 May 30, 2020
1.9.0 October 03, 2016 May 30, 2020
1.8.1 June 30, 2016 May 30, 2020
1.8.0 June 14, 2016 May 30, 2020
1.7.1 April 30, 2016 May 30, 2020
1.7.0 April 27, 2016 May 30, 2020
1.6.0 March 29, 2016 May 30, 2020
1.5.1 December 31, 2015 May 30, 2020
1.5.0 December 04, 2015 May 30, 2020
1.4.0 October 05, 2015 May 30, 2020
1.3.0 October 05, 2015 May 30, 2020
1.2.0 August 05, 2015 May 30, 2020
1.1.0 July 09, 2015 May 30, 2020
1.0.1 May 12, 2015 May 30, 2020
1.0.0 April 07, 2015 May 30, 2020
0.9.5-prelease Mar 09, 2015 February 29, 2016
0.9.4-prelease February 17, 2015 February 29, 2016
0.9.3-prelease January 13, 2015 February 29, 2016
0.9.2-prelease December 19, 2014 February 29, 2016
0.9.1-prelease December 19, 2014 February 29, 2016
0.9.0-prelease December 10, 2014 February 29, 2016

FAQ

1. How will customers be notified of the retiring SDK?

Microsoft will provide 12 month advance notification to the end of support of the retiring SDK in order to facilitate a smooth transition to a supported SDK. Further, customers will be notified through various communication channels – Azure Management Portal, Developer Center, blog post, and direct communication to assigned service administrators.

2. Can customers author applications using a "to-be" retired Azure Cosmos DB SDK during the 12 month period?

Yes, customers will have full access to author, deploy and modify applications using the "to-be" retired Azure Cosmos DB SDK during the 12 month grace period. During the 12 month grace period, customers are advised to migrate to a newer supported version of Azure Cosmos DB SDK as appropriate.

3. Can customers author and modify applications using a retired Azure Cosmos DB SDK after the 12 month notification period?

After the 12 month notification period, the SDK will be retired. Any access to Azure Cosmos DB by an applications using a retired SDK will not be permitted by the Azure Cosmos DB platform. Further, Microsoft will not provide customer support on the retired SDK.

4. What happens to Customer’s running applications that are using unsupported Azure Cosmos DB SDK version?

Any attempts made to connect to the Azure Cosmos DB service with a retired SDK version will be rejected.

5. Will new features and functionality be applied to all non-retired SDKs?

New features and functionality will only be added to new versions. If you are using an old, non-retired, version of the SDK your requests to Azure Cosmos DB will still function as previous but you will not have access to any new capabilities.

6. What should I do if I cannot update my application before a cut-off date?

We recommend that you upgrade to the latest SDK as early as possible. Once an SDK has been tagged for retirement you will have 12 months to update your application. If, for whatever reason, you cannot complete your application update within this timeframe then please contact the Cosmos DB Team and request their assistance before the cutoff date.

See also

To learn more about Cosmos DB, see Microsoft Azure Cosmos DB service page.