forked from Azure/azure-storage-java
-
Notifications
You must be signed in to change notification settings - Fork 0
/
BreakingChanges.txt
189 lines (153 loc) · 13.9 KB
/
BreakingChanges.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
Changes in 6.0.0
FILE
* Many File service APIs can now throw a URISyntaxException.
* Changed listShares() ShareListingDetails parameter to be an enum set like what is done for listing blobs.
OTHER
* DefaultEndpointsProtocol will now be explicitly included in generated connection strings.
* Connection string parsing has been substantially re-written and expanded. Please refer to current documentation about connection string formats.
Changes in 5.1.1
OTHER
* Reverted the code from 5.1.0 because it contained a regression and an accidental change.
Changes in 5.0.0
BLOB
* getQualifiedUri() has been deprecated. Please use getSnapshotQualifiedUri() instead. This new function will return the blob including the snapshot (if present) and no SAS token.
* getQualifiedStorageUri() has been deprecated. Please use getSnapshotQualifiedStorageUri() instead. This new function will return the blob including the snapshot (if present) and no SAS token.
* Fixed a bug where copying from a blob that included a SAS token and a snapshot did not use the SAS token.
FILE
* Fixed a bug where copying from a blob that included a SAS token and a snapshot did not use the SAS token.
QUEUE
* For addMessage() the CloudQueueMessage message passed in will be populated with the pop receipt, insertion/expiration time, and message ID.
Changes in 4.0.0
TABLE
* Removed deprecated table AtomPub support.
OTHER
* Removed deprecated constructors which take service clients in favor of constructors which take credentials.
* Removed deprecated Credentials and StorageKey classes. Please use the appropriate methods on StorageCredentialsAccountAndKey instead.
Changes in 3.0.0
BLOB
* Removed getSubDirectoryReference(). Use getDirectoryReference() instead.
* Changed maxResults argument of CloudBlobDirectory.ListBlobsSegmented() to type Integer instead of int.
* Deprecated startCopyFromBlob() on CloudBlob. Use startCopy() instead.
* Deprecated blob and container constructors which take service clients in favor of constructors which take credentials.
* Invalid lease duration and break period values will cause a client-side StorageException rather than failing on the service.
QUEUE
* Deprecated queue constructors which take service clients in favor of constructors which take credentials.
TABLE
* Removed getEntityClass() in TableQuery. Please use getClazzType() instead.
* Deprecated the setters for timestamp as this property is only modifiable by the service.
* Deprecated table constructors which take service clients in favor of constructors which take credentials.
FILE
* Removed getSubDirectoryReference(). Use getDirectoryReference() instead.
* Changed exception thrown by requesting a file's name from a URI with no file name from StorageException to IllegalArgumentException.
* Deprecated file, directory and share constructors which take service clients in favor of constructors which take credentials.
OTHER
* Removed deprecated AuthenticationScheme and its getter and setter. In the future only SharedKey will be used.
* Removed deprecated getter/setters for all request option properties on the service clients. Please use the default request options getter/setters instead.
* Deprecated the Credentials and StorageKey classes. Please use the appropriate methods on StorageCredentialsAccountAndKey instead.
* Changed library behavior to retry all exceptions thrown when parsing a response object.
* Changed behavior to stop removing query parameters passed in with the resource URI if that URI contains a SAS token. Some query parameters such as comp, restype, snapshot and api-version will still be removed.
Changes in 2.0.0
BLOB
* Deprecated getSubDirectoryReference(). Use getDirectoryReference() instead.
TABLE
* Loses millisecond precision when reading Date values on Table Entities written using versions of this library prior to 2.0.0, unless TableRequestOptions.dateBackwardCompatibility is set to true. See http://go.microsoft.com/fwlink/?LinkId=523753 for more details.
FILE
* Deprecated getSubDirectoryReference(). Use getDirectoryReference() instead.
OTHER
* Changed maxResults arguments of List*Segmented() methods to type Integer instead of int
* Added validation to ensure that the maxResults arguments of List*Segmented() methods are positive when non-null
* Added PARAMETER_SHOULD_BE_GREATER_OR_EQUAL attribute to SR which is used by Utility.assertGreaterThanOrEqual()
* Deprecated AuthenticationScheme and its getter and setter. In the future only SharedKey will be used.
Changes in 0.7.0
BLOB
* Removed CloudPageBlob openOutputStream methods in favor of equivalent openWriteNew methods.
* Removed SharedAccessBlobPolicy permissionsFromString(String) and permissionsToString(EnumSet) static methods in favor of setPermissionsFromString(String) and permissionsToString() instance methods.
* Moved LeaseDuration, LeaseState, and LeaseStatus from the storage package to the blob package
* Made the parse(String) methods in LeaseDuration, LeaseState, and LeaseStatus internal
* Removed BlobType enum parse() method
* Removed CopyStatus enum parse() method
* Removed some BlobProperties setter methods (all originally marked "Internal Use Only")
* BlockEntry searchMode field must be accessed through its getter/setter
* Applied MaximumExecutionTime to downloadToByteArray and downloadRangeToByteArray methods
* Deprecated ConcurrentRequestCount and SingleBlobPutThresholdInBytes getters and setters on the blob service client. Use the getters and setters located on the request options object accessible via getDefaultRequestOptions() instead.
QUEUE
* Removed SharedAccessQueuePolicy permissionsFromString(String) and permissionsToString(EnumSet) static methods in favor of setPermissionsFromString(String) and permissionsToString() instance methods.
* Removed CloudQueueMessage setExpirationTime(), setNextVisibleTime() and setPopReceipt() methods
TABLE
* Moved all execute and executeSegmented methods for TableOperations, TableBatchOperations, and TableQueries from CloudTableClient to CloudTable. The CloudTableClient methods are removed.
* Removed SharedAccessTablePolicy permissionsFromString(String) and permissionsToString(EnumSet) static methods in favor of setPermissionsFromString(String) and permissionsToString() instance methods.
* Removed CloudTableClient constructors taking only URI/StorageUri and throw if credentials passed into constructors are null as tables do not allow anonymous access
* Removed TableConstants class
* Deprecated the TablePayloadFormat getter and setter on the table service client. Use the getter and setter located on the request options object accessible via getDefaultRequestOptions() instead.
OTHER
* Changed package name from com.microsoft.windowsazure.storage to com.microsoft.azure.storage
* Removed OperationContext getCurrentRequestObject/setCurrentReqestObject methods
* Removed reserved methods from StorageCredentials classes
* Made the isUsePathStyleUris() method in ServiceClient protected
* RetryContext currentRetryCount and lastRequestResult fields must be accessed with their corresponding getters/setters
* Removed some classes/methods originally marked "Internal Use Only": Credentials.getSigningAccountName(), StorageCredentialsAccountAndKey.setSigningAccountName(), DeserializationHelper class
* Removed GeoReplicationStats.getGeoReplicationStatus(String)
* Deprecated LocationMode, RetryPolicyFactory, TimeoutInMs, and MaximumExecutionTimeInMs getters and setters on the service clients. Use the getters and setters located on the request options object accessible via getDefaultRequestOptions() instead.
* Removed server TimeoutInMs defaults. These are still settable via the DefaultRequestOptions object on the client if desired.
* Whitespace only metadata values are no longer accepted
Changes in 0.6.0
BLOB
* container.get{BlockBlob|PageBlob|Directory}Reference, directory.get{BlockBlob, PageBlob, SubDirectory}Reference 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.
* Fixed snapshot creates to inherit base blob's metadata/properties unless metadata/properties are specified.
* Deprecated CloudPageBlob openOutputStream methods in favor of equivalent openWriteNew methods.
* CloudBlobContainer(String, CloudBlobClient) and CloudBlobClient.getContainerReference(String) always treat the string parameter as a relative address.
* Deprecated SharedAccessBlobPolicy permissionsFromString(String) and permissionsToString(EnumSet) static methods in favor of setPermissionsFromString(String) and permissionsToString() instance methods.
QUEUE
* CloudQueue(String, CloudQueueClient) and CloudQueueClient.getQueueReference(String) always treat the string parameter as a relative address.
* Deprecated SharedAccessQueuePolicy permissionsFromString(String) and permissionsToString(EnumSet) static methods in favor of setPermissionsFromString(String) and permissionsToString() instance methods.
TABLE
* Moved all execute and executeSegmented methods for TableOperations, TableBatchOperations, and TableQueries from CloudTableClient to CloudTable. The CloudTableClient methods are now marked deprecated.
* CloudTable(String, CloudTableClient) and CloudTableClient.getTableReference(String) always treat the string parameter as a relative address.
* Deprecated SharedAccessTablePolicy permissionsFromString(String) and permissionsToString(EnumSet) static methods in favor of setPermissionsFromString(String) and permissionsToString() instance methods.
* TableOperation(TableEntity, TableOperationType) sets echoContent to false by default.
OTHER
* Removed OperationContext getCurrentOperationByteCount/setCurrentOperationByteCount and getIntermediateMD5/setIntermediateMD5 methods.
* Fixed translateException to handle 503 along with other special HTTP codes.
* Any exception thrown while parsing an error response is ignored and the original exception is returned.
* Deprecated OperationContext getCurrentRequestObject/setCurrentReqestObject methods.
Changes in 0.5.0
BLOB
* Removed setCopyState property from CloudBlob (was marked RESERVED FOR INTERNAL USE, but this was still accessible.)
* Modified the CloudBlobContainer exists, delete, uploadMetadata, downloadAttributes APIs to take AccessCondition in order to specify LeaseIDs for these operations.
* Added throws StorageException to listBlobs and listContainers.
* Added throws XMLStreamException to commitBlockList.
* Container and Blob ChangeLease now returns the new lease ID.
* Blob downloadRange now takes a Long for length instead of int.
* Blob downloadRange now downloads to a Stream(newly added). The previous downloadRange has been renamed to downloadRangeToByteArray. Added downloadToByteArray.
* getAttributes in ContainerResponse was made protected (the class was marked RESERVED FOR INTERNAL USE, but this was still accessible.)
* Removed sparse page blob feature.
* Moved LeaseAction enum from core package to blob package (was marked RESERVED FOR INTERNAL USE, but this was still accessible.)
* CloudBlobContainer.createIfNotExist was renamed to CloudBlobContainer.createIfNotExists.
* CloudBlobClient.streamMinimumReadSizeInBytes has been removed. This functionality is now CloudBlob.streamMinimumReadSizeInBytes (settable per-blob, not per-client.)
* CloudBlobClient.pageBlobStreamWriteSizeInBytes and CloudBlobClient.writeBlockSizeInBytes have been removed. This functionality is now CloudBlob.streamWriteSizeInBytes, settable per-blob, and now using only one variable.
* copyFromBlob has been renamed to startCopyFromBlob. This API requests the service to start copying a blob's contents, properties, and metadata to a new blob and returns the copy ID associated with the copy operation.
* CloudBlob.tryBreakLease() was removed, as this method didn't do anything useful (BreakLease is already idempotent.)
* Removed all getDirectoryReference, getPageBlobReference, getBlockBlobReference methods from CloudBlobClient.
* CloudContainer(String name, CloudBlobClient client) assert that client is not null.
QUEUE
* CloudQueue.createIfNotExist was renamed to CloudQueue.createIfNotExists.
* CloudQueue(String name, CloudQueueClient client) assert that client is not null.
TABLE
* Removed id field (along with getId, setId) from TableResult.
* CloudTable.createIfNotExist was renamed to CloudTable.createIfNotExists.
* CloudTable(String name, CloudTableClient client) assert that client is not null.
* inserts in TableOperation and TableBatchOperation do not echo content any more. This will cause the resulting HTTP status code on the TableResult for successful inserts to be 204 (no-content) rather than 201 (Created). Echo content can be re-enabled by using the insert(TableEntity, boolean) method and specifying true.
* Added throws StorageException to executeQuery methods for tables.
OTHER
* The packaging structure has changed to
1. com.microsoft.windowsazure.storage � RetryPolicies, LocationMode, StorageException, Storage Credentials etc. Basically all public classes that are common across services.
2. com.microsoft.windowsazure.storage.core � These classes are reserved for internal use and users never have to include this namespace in their projects.
3. com.microsoft.windowsazure.storage.blob
4. com.microsoft.windowsazure.storage.queue
5. com.microsoft.windowsazure.storage.table
* StorageErrorConstants: INVALID_XML_NODE_VALUE, UNSUPPORTED_XML_NODE has been removed.
* RetryResult class has been replaced by the RetryInfo class. Custom retry policies should implement RetryPolicyFactory and extend RetryPolicy.
* Event operations (including event firing) that occur during a request are no longer synchronized, thread safety is now guaranteed by a CopyOnWriteArrayList of the event listeners.
* Many project dependencies were removed from the pom. Current dependencies are junit, hamcrest, commons-lang3, jackson, and slf4j.