github Azure/azure-sdk-for-java azure-data-tables_12.0.0

latest releases: azure-compute-batch_1.0.0-beta.1, azure-sdk-template-three_1.0.0-beta.3796273, azure-sdk-template-two_1.0.0-beta.3796273...
2 years ago

12.0.0 (2021-06-11)

Bug fixes

  • Fixed issue where clients builders would not throw when calling buildClient() or buildAsyncClient() if no endpoint had been set.
  • Fixed issue where TableClient's and TableClientAsync's submitTransaction() and submitTransactionWithResponse() could not be called from inside a Reactor thread (e.g. calling it inside a chain of reactive operations, such as myOtherOperation.then(result -> client.submitTransaction(transactionActions)).
  • Fixed issue that would make an exception be raised when calling submitTransaction() if Java's SecurityManager was enabled and no ReflectPermission had been granted.

New Features

  • Introduced the following classes:
    • TableAccessPolicies
    • TableTransactionAction
    • TableTransactionActionType
    • TableTransactionFailedException
    • TableTransactionResult
  • Added support for generating SAS tokens at the Account and Table Service level in all clients. Introduced the following related classes:
    • TableAccountSasPermission
    • TableAccountSasResourceType
    • TableAccountSasService
    • TableAccountSasSignatureValues
    • TableSasIpRange
    • TableSasPermission
    • TableSasSignatureValues
  • Added the following methods to TableClient, TableAsyncClient:
    • listAccessPolicies()
    • setAccessPolicies()
    • setAccessPoliciesWithResponse()
    • generateSasToken()
  • Added the following methods to TableServiceClient, TableServiceAsyncClient:
    • getProperties()
    • getPropertiesWithResponse()
    • setProperties()
    • setPropertiesWithResponse()
    • getStatistics()
    • getStatisticsWithResponse()
    • generateAccountSasToken()

Breaking Changes

  • Removed the TableBatch and TableAsyncBatch types, as well as the methods TableAsyncClient.createBatch() and TableClient.createBatch(). In their place, batch operations can now be submitted via the following methods:
    • TableAsyncClient.submitTransaction(List<TableTransactionAction> transactionalBatch)
    • TableAsyncClient.submitTransactionWithResponse(List<TableTransactionAction> transactionalBatch)
    • TableClient.submitTransaction(List<TableTransactionAction> transactionalBatch)
    • TableClient.submitTransactionWithResponse(List<TableTransactionAction> transactionalBatch, Duration timeout, Context context)
  • Renamed BatchOperationResponse to TableTransactionActionResponse
  • deleteEntity() variants in TableClient and TableAsyncClient now accept an ifUnchanged flag instead of an eTag parameter for conditional operations. When said flag is set to true, the ETag of a given TableEntity will be matched with the ETag of the entity in the Table service.
  • Replaced deleteEntityWithResponse(String partitionKey, String rowKey, String eTag) with deleteEntityWithResponse(TableEntity entity, boolean ifUnchanged) in TableAsyncClient.
  • Replaced deleteEntityWithResponse(String partitionKey, String rowKey, String eTag, Duration timeout, Context context) with deleteEntityWithResponse(TableEntity entity, boolean ifUnchanged, Duration timeout, Context context) in TableClient.
  • Removed remaining public APIs supporting the use of TableEntity subclasses from TableAsyncClient.
  • Removed the following method overloads from TableClient and TableAsyncClient:
    • upsertEntity(TableEntity entity, TableEntityUpdateMode updateMode)
    • updateEntity(TableEntity entity, TableEntityUpdateMode updateMode, boolean ifUnchanged)
    • getEntity(String partitionKey, String rowKey, List<String> select)
  • Client builders now also throw an IllegalStateException when calling buildClient() and buildAsyncClient() if multiple forms of authentication are provided, with the exception of sasToken + connectionString; or if endpoint and/or sasToken are set alongside a connectionString and the endpoint and/or SAS token in the latter are different than the former, respectively.
  • The following methods and their WithResponse variants in TableClient and TableAsyncClient now throw an IllegalArgumentException instead of an IllegalStateException when an empty TableEntity is provided:
    • createEntity()
    • upsertEntity()
    • updateEntity()
    • deleteEntity()

Don't miss a new azure-sdk-for-java release

NewReleases is sending notifications on new releases.