forked from Azure/azure-storage-java
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog.txt
212 lines (188 loc) · 14.8 KB
/
ChangeLog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
2014.12.20 Version 2.0.0
* Deprecated getSubDirectoryReference() for blob directories and file directories. Use getDirectoryReference() instead.
* Fixed a bug where maxResults was not verified to be positive for list operations.
* Fixed a bug where high precision Date values stored on Table Entites were forced to fit into milliseconds resulting in inaccuracies. Precision is limited to 1 millisecond by Java.util.Date. If greater precision is required, the String should be used directly.
* Added TableRequestOptions.dateBackwardCompatibility, which supports reading Date values on Table Entities written using versions of this library prior to 2.0.0. See http://go.microsoft.com/fwlink/?LinkId=523753 for more details.
* Deprecated AuthenticationScheme and its getter and setter. In the future only SharedKey will be used.
2014.11.03 Version 1.3.1
* Reverted timestamp bug fix from 1.3.0 for further consideration.
2014.11.03 Version 1.3.0
* Added support for EndpointSuffix which was previously not accepted in Account Strings.
* Fixed a bug where high precision timestamps were forced to fit into milliseconds resulting in inaccuracies. Precision is limited to 1 millisecond by Java.util.Date. If greater precision is required, the String should be used directly.
2014.08.01 Version 1.2.0
* Added the NameValidator class which contains helpers that check to see if resource names are valid.
* Fixed a bug where the RequestUrl of a LogRecord was not correctly HTML4 decoded. Added a dependency on Apache Commons Lang3.
* Made FileRange class and ListFilesAndDirectories method in the CloudFileDirectory class public.
2014.07.01 Version 1.1.0
* Changed the maven group id and artifact id. The new group id is com.microsoft.azure and the new artifact id is azure-storage.
* Added File Service support. The File Service and the associated SDK APIs are in preview.
* Added CloudAnalyticsClient and related methods to simplify Storage Analytics logging and metrics use case scenarios.
* Fixed a bug where an empty file would be left over during the downloadToFile error case.
* Updated StorageErrorCodeStrings class.
* Requests made using SAS credentials have the api-version query parameter appended to the URI.
* Fixed a null pointer exception that resulted when the first request was made with a blob created using the uri-only constructor (no sas creds appended).
2014.05.12 Version 1.0.0
* Updated service version to 2014-02-14
* Fixed null-reference when null listingDetails are passed to listBlobsSegmented(String, boolean, EnumSet<BlobListingDetails>, int, ResultContinuation, BlobRequestOptions, OperationContext) overload
* StorageUri may contain only a secondary endpoint
2014.05.06 Version 0.7.0
* Created a DefaultRequestOptions object for each service client
* Deprecated getter/setters for all request option properties on the service clients
* Removed server timeout defaults. These are still settable via the DefaultRequestOptions object on the client if desired
* Removed OperationContext getCurrentRequestObject/setCurrentReqestObject methods
* Removed SharedAccess{Blob|Queue|Table}Policy permissionsFromString(String) and permissionsToString(EnumSet) static methods in favor of setPermissionsFromString(String) and permissionsToString() instance methods
* Moved all execute and executeSegmented methods for TableOperations, TableBatchOperations, and TableQueries from CloudTableClient to CloudTable. The CloudTableClient methods are removed
* Deprecated getEntityClass() in TableQuery. Please use getClazzType() instead.
* Removed CloudPageBlob openOutputStream methods in favor of equivalent openWriteNew methods
* Removed reserved methods from StorageCredentials classes
* Made the isUsePathStyleUris() method in ServiceClient protected
* Removed CloudTableClient constructors taking only URI/StorageUri and throw if credentials passed into constructors are null as tables do not allow anonymous access
* Removed extraneous ServiceClient constructors
* Moved LeaseDuration, LeaseState, and LeaseStatus from the storage package to the blob package
* Made the parse(String) methods in LeaseDuration, LeaseState, and LeaseStatus internal
* RetryContext currentRetryCount and lastRequestResult fields must be accessed with their corresponding getters/setters
* BlockEntry searchMode field must be accessed through its getter/setter
* BlockEntry has an additional constructor taking only block id
* Removed BlobType enum parse() method
* Removed CopyStatus enum parse() method
* Removed CloudQueueMessage setExpirationTime(), setNextVisibleTime() and setPopReceipt() methods
* Removed TableConstants class
* Removed some classes/methods originally marked "Internal Use Only": Credentials.getSigningAccountName(), StorageCredentialsAccountAndKey.setSigningAccountName(), DeserializationHelper class, some BlobProperties setter methods
* Applied MaximumExecutionTime to downloadToByteArray and downloadRangeToByteArray methods
* Removed GeoReplicationStats.getGeoReplicationStatus(String)
* Moved SharedAccessPolicy, Permissions base classes (and serializers/deserializers) from core to storage
* Added container/queue/table constructors taking only URI or StorageUri to enable direct instantiation with a SAS token
* Fixed LeaseState so that it is parsed correctly. Previously, a leased blob returned LeaseState.UNSPECIFIED rather than LeaseState.LEASED
* Fixed the CloudTable(URI) method to correctly handle partition key and row key limits for passed in SAS tokens
* Fixed an issue that allowed whitespace metadata values to be set
* Changed package name from com.microsoft.windowsazure.storage to com.microsoft.azure.storage
* Deprecated AtomPub format for tables
* Added support for secondary location access in Azure Storage Emulator
* Removed unnecessary exceptions specified in the throws clause of method declarations
* Fixed issue with path-style uris and sas credentials
* Added CloudAnalyticsClient class to simplify storage account analytics logging and metrics scenarios.
2014.02.19 Version 0.6.0
* Removed OperationContext getCurrentOperationByteCount/setCurrentOperationByteCount and getIntermediateMD5/setIntermediateMD5 methods
* Deprecated OperationContext getCurrentRequestObject/setCurrentReqestObject methods
* Deprecated SharedAccess{Blob|Queue|Table}Policy permissionsFromString(String) and permissionsToString(EnumSet) static methods in favor of setPermissionsFromString(String) and permissionsToString() instance methods
* Moved all execute and executeSegmented methods for TableOperations, TableBatchOperations, and TableQueries from CloudTableClient to CloudTable. The CloudTableClient methods are now marked deprecated.
* Deprecated CloudPageBlob openOutputStream methods in favor of equivalent openWriteNew methods
* container.get{BlockBlob|PageBlob|Directory}Reference, directory.get{BlockBlob, PageBlob, SubDirectory}Reference always treat the string parameter as a relative address
* {CloudBlobContainer|CloudQueue|CloudTable}(String, CloudBlobClient) always treat the string parameter as a relative address
* If the parent of a blob is the container, Cloud{BlockBlob|PageBlob|BlobDirectory}.getParent() returns a valid CloudBlobDirectory with an empty prefix. Similarly, container.getDirectoryReference("") gets a valid CloudBlobDirectory representing the container.
* Blob downloads resume on every retry
* TableOperation(TableEntity, TableOperationType) sets echoContent to false by default
* Fixed translateException to handle 503 along with other special HTTP codes
* Fixed an issue so that the ContentMD5 is only calculated when the length is unknown or is within the single blob upload threshold for block blob uploads.
* Fixed snapshot creates to inherit base blob's metadata/properties unless metadata/properties are specified
* Any exception thrown while parsing an error response is ignored and the original exception is returned
* Added additional constructors to TableServiceEntity and DynamicTableEntity taking partition key, row key, etc
* Added support for Null Retry Policies
* Added a resize method for page blobs
* Added openWriteExisting() and openWriteExisting(AccessCondition, BlobRequestOptions, OperationContext) methods to PageBlob allowing output streams to be opened on existing page blobs.
* Added StorageEventMultiCasters to OperationContext for when a retry occurs ("Retrying") and when the request is complete ("RequestComplete").
* Added static StorageEventMultiCasters for SendingRequest, ResponseReceived, RequestComplete and Retrying to Operation Context
* Added maximum execution time, settable for all requests via Cloud{Blob|Queue|Table}Client.setMaximumExecutionTime(Integer) or for an individual request via {Blob|Queue|Table}RequestOptions.setMaximumExecutionTime(Integer)
2013.12.10 Version 0.5.0
* Fixed content disposition parsing in BlobDeserializationHelper and added it to BlobProperties
* Fixed etag for snapshots, which was previously not set correctly in CloudBlob
* Fixed etag parsing so that quotes around etag are removed
* Added Copy to BlobListingDetails enum and added logic and fixed xml parsers to enable that option when listing blobs
* Fixed blob/container BreakLease so that the breakPeriodInSeconds is honored
* Sending request event on the opContext is now fired before the connection is set up
* Added Json support for tables
* JsonMinimalMetadata is now the default payload format (rather than AtomPub). Payload format can be specified for all table requests by using CloudTableClient.setTablePayloadFormat or for an individual table request by using TableRequestOptions.setTablePayloadFormat
* Added read from secondary support for blobs/queue/tables
* Fixed Canonicalizer to ignore empty header values while signing
* Added additional query parameters for Blob SAS introduced in 2013-08-15
* Enabled echo content (on or off) option for table inserts
* Enabled setting user headers on the operation context
* Moved LeaseAction enum from core package to blob package (internal use only)
* Added support for optional Service Properties
* Blob downloadToByteArray and downloadRangeToByteArray return the number of bytes copied to the byte array
2013.07.03 Version 0.4.4
* Windows Azure China environment support
* Service Bus metadata support updated to the latest version
* Rich Odata entity query support for Service Bus Queue/Topic/Subscription
* Added support for Service Bus message forwarding
* Added support for Service Bus message count details
* Made sure the response stream is drained to prevent socket exhaustion in Storage
* Added support for all flavors of SharedKey and SharedKeyLite message signing through AuthenticationScheme property on client classes in Storage
2013.05.27 Version 0.4.3
* Added support for updating existing Queue/Topic/Subscription for Service Bus
* Added support for message lock renewal to support long running message processing for Service Bus
* Added new properties to Queue/Topic/Subscription/Rule for Service Bus
* Added support for rebinding content key for Media Services
2013.04.16 Version 0.4.2
* Fixed a bunch of GB18030 encoding issues
* Fixed a service bus issue when the locale is not UTC
2013.03.12 Version 0.4.1
* Added "Azure-SDK-For-Java/<version>" To User-Agent HTTP header
* Added connection string support for Service Bus
* Added new methods to break lease for Storage Blob which doesn't require a lease id and returns the result as an object. Deprecated the old breakLease() methods.
* Added a new method to get the historical events for Media Services
* Fixed Storage Table encoding issue for special characters
* BlobOutputStream now commits block list using LATEST instead of UNCOMMITTED
* Added RequestResult to StorageEvents
* Fixed issue when accessing OperationContext RequestResults
* Fixed the return value of BlobInputStream.read
* Fixed CloudPageBlob.downloadPageRanges to retrieve the blob length
* Fixed MD5 validation in BlobInputStream
* Return ETag in TableResult not only for Insert but also for other operations
2013.01.18 Version 0.4.0
* Added support for Windows Azure Media Services
* Updated dependencies to non-beta stable versions
* Added a Sending Request Event to OperationContext in Storage Client code
* Fixed a bug in the Storage client in blob download resume for blobs greater than 2GB
2012.10.29 Version 0.3.3
* In the blob client, fixed a bug which allows users to call write APIs on a blob snapshot reference
* Updated the URL parse method in storage client libraries, to allow users to pass a URL ending with "/"
* Updated the parsing response header code in blob client APIs
* Updated the storage client library user agent version from 0.1.2 to 0.1.3
* Added more test cases in storage client tests
2012.10.16 Version 0.3.2
* Implemented a more graceful timeout Exception
* Implemented a better Exception for an empty header returned by the Azure Storage Service
* Added Fluent setters for Blob Models
2012.09.11 Version 0.3.1
* Added Javadocs to 1.7 Storage Support from 0.3.0 release
* Fixed bug where getqueue for an invalid queue returns 200 and the exception is not wrapped in a ServiceException
* Fixed the error when deleting a blob snapshot in the Service Layer
* Changed the PageBlob length parameter from an int to a long
* Return an Etag for create and copy Blob in Service Layer
* Updated the BlobRestProxy.copyBlob to correctly honor source access conditions
* Updated the BlobRestProxy.getBlob to correctly honor setComputeRangeMD5 option
* Added international support for ServiceBus URIs
* Added encoding for special characters when serializing entity to XML in Table Service Layer
2012.06.02 Version 0.3.0
* Added 1.7 Storage Support
* Added Javadocs for com.microsoft.windowsazure.services.table
2012.05.02 Version 0.2.2
* Added Javadoc comments to Azure Blob Service Layer
* Fixed a URL encoding issue in Table Client Layer
* Made CloudTableClient use Iterator instead of Iterable
2012.04.11 Version 0.2.1
* Added Service Layer support for Azure Table
* Added Javadoc comments to Azure Queue Service Layer
2012.02.28 Version 0.2.0
* Added Support for Azure Table in com.microsoft.windowsazure.services.table
* Added Client Tests for Table
* Added a dependency on apache commons-lang3 3.1
* ResultsSegment exposes an ArrayList instead of an Iterable
* UserAgent updated to v1.1.2
2012.01.31 Version 0.1.3
* Updated User Agent to v0.1.1
* Updated License Headers
* Blob Client Mark update
* Retry Logic updated in Blob and Queue Client to not retry
* Error Response parsing updated for Table compatibility
* MD5 is delay calculated on copy streams
* Date parsing support for various number of fractional decimals
* StorageErrorResponse updated to support lower case xml for tables
2011.12.22 Version 0.1.2
* Fixed CloudBlob.download to lock to ETag during a resume
* Ensured that Client Side Exceptions are not resumed
2011.12.14 Version 0.1.1
* Commenting/documentation changes
2011.12.09 Version 0.1.0
* Initial Release