Azure SDK for Java (November 2019)
The Azure SDK team is pleased to make available the November 2019 client library GA release. This represents the updated release of the ground-up rewrite of the client libraries to ensure consistency, idiomatic design, and excellent developer experience and productivity. This GA release includes new and updated client libraries for Identity, Key Vault (keys, secrets and certificates) , and Storage (Blobs and Queues). Some of the libraries are released as preview and they are Azure App Configuration, Event Hubs and Event Hubs , Checkpoint Store, Storage File.
Installation Instructions
To use the GA and preview libraries, refer to the Maven dependency information below, which may be copied into your projects Maven pom.xml
file as appropriate. If you are using a different build tool, refer to its documentation on how to specify dependencies.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-data-appconfiguration</artifactId>
<version>1.0.0-preview.6/version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-security-keyvault-certificates</artifactId>
<version>4.0.0-preview.5</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-security-keyvault-keys</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-security-keyvault-keys</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-messaging-eventhubs</artifactId>
<version>5.0.0-preview.5</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-messaging-eventhubs-checkpointstore-blob</artifactId>
<version>1.0.0-preview.3</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>12.0.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob-batch</artifactId>
<version>12.0.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob-cryptography</artifactId>
<version>12.0.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-file-share</artifactId>
<version>12.0.0-preview.5</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-queue</artifactId>
<version>12.0.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core-tracing-opencensus</artifactId>
<version>1.0.0-preview.4</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-cosmos</artifactId>
<version>4.0.0-preview.1</version>
</dependency>
Feedback
If you have a bug or feature request for one of the libraries, please post an issue to GitHub.
Changelog
Detailed change logs are linked to in the Quick Links below. Here are some critical call outs.
- Designed based on the Azure SDK Design Guidelines for Java, resulting in a consistent API design and common feature set such as HTTP retries, logging, transport protocols, authentication protocols, etc.
- Modernized API making use of Java 8 features such as streams, new date / time, functional interfaces, etc, to offer an improved and more productive developer experience.
- Synchronous and asynchronous APIs offer developers simplicity for simple cases, and full asynchronousity when performance and scalability matters. Reactive streams are offered using Project Reactor.
App Configuration
- Renamed addSetting, getSetting, deleteSetting, setSetting, listSettings, listSettingRevisions to addConfigurationSetting, getConfigurationSetting, deleteConfigurationSetting, setConfigurationSetting, listConfigurationSettings, listRevisions for consistency naming across languages.
- Ensured exceptions are consistent for certain operations (c.f. other languages).
- Renamed asOfDayTime to acceptDateTime, and lock to isReadOnly.
- ConfigurationCredentialsPolicy no longer explored to public and moved to implementation folder.
- Fixed AzConfig Revisions Range Returns 416 Status Code
- Added ConfigurationServiceVersion class for version
- Added more samples including conditional request, setReadOnly, clearReadOnly, listRevisions, etc.
Azure Identity
- The getToken(TokenRequest tokenRequest) methods on all the credentials are changed to getToken(TokenRequestContext tokenRequestContext).
- All credentials are moved from com.azure.identity.credential package to com.azure.identity package
- DeviceCodeChallenge is renamed to DeviceCodeInfo, with int expiresIn() replaced with OffsetDateTime expiresOn() returning the time of the device code expiration
- All methods containing uri is renamed to contain url for consistency
Event Hubs
- Added Proxy support for Event Hubs sync and async clients.
- EventHubConsumer and EventHubAsyncConsumer now provides last enqueued event information.
- Refactored azure-messaging-eventhubs to extract AMQP implementation details to azure-core-amqp module.
- Added modules support for JDK 9+ and renamed model classes to support Java bean naming convention.
Event Hub Checkpoint Store
- Added modules support for JDK 9+.
Key Vault (Secrets, Keys and Certificates)
- Updated to be fully compliant with the Java 9 Platform Module System.
- Getters and setters were updated to use Java Bean notation.
- Added importCertificate API to CertificateClient and CertificateAsyncClient.
- Changed
VoidResponse
toResponse<Void>
on sync API, andMono<VoidResponse>
toMono<Response<Void>>
on async API.
Storage (Blob, Files and Queues)
- Renaming of common class names to be prepended with module name
- URL parameters were replaced with String parameters
- File and Blob download response type changed
- File and Blob copy are now using Poller
- Blob access condition class structure was flattened and renamed
- Removed duplicate upload methods and renamed download methods in Storage File
- File upload changed to take InputStream instead of ByteBuffer
- Storage File was renamed to Storage File Share
- General API renaming and consistency changes
Tracing
- Added tracing support for AMQP client libraries
Need help?
- For reference documentation visit the Azure SDK for Java documentation.
- For tutorials, samples, quick starts and other documentation, visit Azure for Java Developers.
- For build reports on code quality, test coverage, etc, visit Azure Java SDK.
- File an issue via Github Issues.
- Check previous questions or ask new ones on StackOverflow using
azure-java-sdk
tag.