Repository: Azure/azure-storage-java
Branch: master
Commit: 069b3e1ada9a
Files: 6
Total size: 104.7 KB
Directory structure:
gitextract_brjajcoj/
├── .idea/
│ └── workspace.xml
├── ISSUE_TEMPLATE.md
├── LICENSE
├── README.md
├── SECURITY.md
└── V12 Upgrade Story.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .idea/workspace.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AnalysisUIOptions">
<option name="SCOPE_TYPE" value="9" />
</component>
<component name="ChangeListManager">
<list default="true" id="48aead7e-0445-4862-95c0-508a84aabe26" name="Default" comment="">
<change type="DELETED" beforePath="$PROJECT_DIR$/.gitignore" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/.travis.yml" afterPath="" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/BreakingChanges.txt" afterPath="$PROJECT_DIR$/BreakingChanges.txt" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/ChangeLog.txt" afterPath="$PROJECT_DIR$/ChangeLog.txt" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pom.xml" afterPath="$PROJECT_DIR$/pom.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/AccountSASSignatureValues.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/AccountSASSignatureValues.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/AppendBlobAccessConditions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/AppendBlobAccessConditions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/AppendBlobURL.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/AppendBlobURL.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlobAccessConditions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlobAccessConditions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlobListDetails.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlobListDetails.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlobRange.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlobRange.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlobURL.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlobURL.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlockBlobURL.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlockBlobURL.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/Constants.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/Constants.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ContainerAccessConditions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ContainerAccessConditions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ContainerListDetails.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ContainerListDetails.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ContainerURL.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ContainerURL.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/DownloadResponse.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/DownloadResponse.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedAppendBlobs.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedAppendBlobs.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedBlobs.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedBlobs.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedBlockBlobs.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedBlockBlobs.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedContainers.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedContainers.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedPageBlobs.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedPageBlobs.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedServices.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedServices.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedStorageClient.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedStorageClient.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/HTTPGetterInfo.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/HTTPGetterInfo.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/IPRange.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/IPRange.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ListBlobsOptions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ListBlobsOptions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ListContainersOptions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ListContainersOptions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/LoggingFactory.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/LoggingFactory.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/LoggingOptions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/LoggingOptions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/Metadata.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/Metadata.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/PageBlobAccessConditions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/PageBlobAccessConditions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/PageBlobURL.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/PageBlobURL.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/PipelineOptions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/PipelineOptions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/RequestRetryFactory.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/RequestRetryFactory.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/RequestRetryOptions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/RequestRetryOptions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/SASQueryParameters.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/SASQueryParameters.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ServiceSASSignatureValues.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ServiceSASSignatureValues.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ServiceURL.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ServiceURL.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/StorageURL.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/StorageURL.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TelemetryFactory.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TelemetryFactory.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TelemetryOptions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TelemetryOptions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TransferManager.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TransferManager.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TransferManagerDownloadFromBlobOptions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TransferManagerDownloadFromBlobOptions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TransferManagerUploadToBlockBlobOptions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TransferManagerUploadToBlockBlobOptions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/Utility.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/Utility.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/implementation/package-info.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/implementation/package-info.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/AppendBlobAppendBlockHeaders.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/AppendBlobAppendBlockHeaders.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/AppendPositionAccessConditions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/AppendPositionAccessConditions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/BlobHierarchyListSegment.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/BlobHierarchyListSegment.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/ListBlobsFlatSegmentResponse.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/ListBlobsFlatSegmentResponse.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/ListBlobsHierarchySegmentResponse.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/ListBlobsHierarchySegmentResponse.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/ListBlobsIncludeItem.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/ListBlobsIncludeItem.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/ListContainersSegmentResponse.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/ListContainersSegmentResponse.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/SequenceNumberAccessConditions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/SequenceNumberAccessConditions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/SourceModifiedAccessConditions.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/SourceModifiedAccessConditions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/StorageError.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/StorageError.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/StorageErrorCode.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/StorageErrorCode.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/package-info.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/package-info.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/package-info.java" afterPath="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/package-info.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/APISpec.groovy" afterPath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/APISpec.groovy" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/AppendBlobAPITest.groovy" afterPath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/AppendBlobAPITest.groovy" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/BlobAPITest.groovy" afterPath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/BlobAPITest.groovy" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/BlockBlobAPITest.groovy" afterPath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/BlockBlobAPITest.groovy" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/ContainerAPITest.groovy" afterPath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/ContainerAPITest.groovy" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/PageBlobAPITest.groovy" afterPath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/PageBlobAPITest.groovy" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/Samples.java" afterPath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/Samples.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/ServiceAPITest.groovy" afterPath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/ServiceAPITest.groovy" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/TransferManagerTest.groovy" afterPath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/TransferManagerTest.groovy" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/blob/HelperTest.groovy" afterPath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/blob/HelperTest.groovy" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/blob/LoggingTest.groovy" afterPath="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/blob/LoggingTest.groovy" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/swagger/README.md" afterPath="$PROJECT_DIR$/swagger/README.md" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/swagger/generate.bat" afterPath="$PROJECT_DIR$/swagger/generate.bat" />
</list>
<ignored path="$PROJECT_DIR$/target/" />
<ignored path="$PROJECT_DIR$/blob-extensions/target/" />
<ignored path="$PROJECT_DIR$/blob/target/" />
<ignored path="$PROJECT_DIR$/file/target/" />
<ignored path="$PROJECT_DIR$/queue/target/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ExportTestResults" outputFolder="$USER_HOME$/Desktop/temp" userTempatePath="" />
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="DecodingPolicyFactory.class" pinned="false" current-in-tab="true">
<entry file="jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.1.0/client-runtime-2.1.0.jar!/com/microsoft/rest/v2/policy/DecodingPolicyFactory.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="459">
<caret line="36" column="0" lean-forward="false" selection-start-line="36" selection-start-column="0" selection-end-line="36" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="HttpResponseDecoder.class" pinned="false" current-in-tab="false">
<entry file="jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.1.0/client-runtime-2.1.0.jar!/com/microsoft/rest/v2/protocol/HttpResponseDecoder.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="833">
<caret line="81" column="41" lean-forward="false" selection-start-line="81" selection-start-column="41" selection-end-line="81" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="BufferedHttpResponse.class" pinned="false" current-in-tab="false">
<entry file="jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.1.0/client-runtime-2.1.0.jar!/com/microsoft/rest/v2/http/BufferedHttpResponse.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="15" column="39" lean-forward="false" selection-start-line="15" selection-start-column="33" selection-end-line="15" selection-end-column="43" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="HttpRequest.class" pinned="false" current-in-tab="false">
<entry file="jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.1.0/client-runtime-2.1.0.jar!/com/microsoft/rest/v2/http/HttpRequest.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="935">
<caret line="69" column="0" lean-forward="false" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" />
<folding>
<element signature="e#2012#2013#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="HttpPipelineBuilder.class" pinned="false" current-in-tab="false">
<entry file="jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.1.0/client-runtime-2.1.0.jar!/com/microsoft/rest/v2/http/HttpPipelineBuilder.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1734">
<caret line="132" column="23" lean-forward="false" selection-start-line="132" selection-start-column="23" selection-end-line="132" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Interface" />
<option value="Class" />
</list>
</option>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>10.3.0</find>
<find>BlobSASSignature</find>
<find>10.4.0</find>
<find>expect(Exception</find>
<find>requests.wa</find>
<find>PipelineOp</find>
<find>empty</find>
<find>// Etag headers without the quotes will be unaffected.</find>
<find>validateBa</find>
<find>STAGE</find>
<find><block_</find>
<find>HEAD</find>
<find>=====</find>
<find>10.5</find>
<find>debugg</find>
<find>"Azure Storage Java SDK"</find>
<find>201</find>
<find>https</find>
<find>getActive</find>
<find>blobCon</find>
<find>http</find>
<find>snap</find>
<find>[</find>
<find>UnexpectedLength</find>
<find>getEnv</find>
<find>Context.Non</find>
<find>Context</find>
<find>context</find>
<find>Context.NONE</find>
<find>Flowable</find>
</findStrings>
<replaceStrings>
<replace>UnsupportedOperationException</replace>
<replace>vNext</replace>
<replace>{@code Context} offers a means of passing arbitrary data (key/value pairs) to an * {@link com.microsoft.rest.v2.http.HttpPipeline}'s policy objects. Most applications do not need to pass * arbitrary data to the pipeline and can pass {@code Context.NONE} or {@code null}. Each context object is * immutable. The {@code withContext} with data method creates a new {@code Context} object that refers to * its parent, forming a linked list.</replace>
<replace>master</replace>
<replace>"0k5xscnapsn4prde12j"</replace>
<replace>LoggingFactory.class.getName()</replace>
</replaceStrings>
<dirStrings>
<dir>C:\Users\frley\Documents\azure-storage-java-v10</dir>
</dirStrings>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="GradleLocalSettings">
<option name="externalProjectsViewState">
<projects_view />
</option>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/queue/pom.xml" />
<option value="$PROJECT_DIR$/file/pom.xml" />
<option value="$PROJECT_DIR$/blob/pom.xml" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/GeneratedBlockBlobs.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/GeneratedContainers.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/GeneratedPageBlobs.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/GeneratedAppendBlobs.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/GeneratedBlobs.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TransferManagerDownloadFromBlobOptions.java" />
<option value="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/ContainerAPITest.groovy" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/SetResponseFieldFactory.java" />
<option value="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/BlockBlobAPITest.groovy" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/UploadFromNRFBufferPool.java" />
<option value="$PROJECT_DIR$/README.md" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/RequestRetryFactory.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlobRange.java" />
<option value="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/AppendBlobAPITest.groovy" />
<option value="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/PageBlobAPITest.groovy" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlockBlobURL.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TransferManagerUploadToBlockBlobOptions.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/LoggingOptions.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/DownloadResponse.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/PageBlobURL.java" />
<option value="$PROJECT_DIR$/swagger/generate.bat" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/AppendBlobURL.java" />
<option value="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/Samples.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ServiceSASSignatureValues.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/SASQueryParameters.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/LoggingFactory.java" />
<option value="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/blob/LoggingTest.groovy" />
<option value="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/blob/HelperTest.groovy" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/Constants.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/Utility.java" />
<option value="$PROJECT_DIR$/ChangeLog.txt" />
<option value="$PROJECT_DIR$/BreakingChanges.txt" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/BlobHierarchyListSegment.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedAppendBlobs.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedBlobs.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedBlockBlobs.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedContainers.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedPageBlobs.java" />
<option value="$PROJECT_DIR$/swagger/README.md" />
<option value="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/ServiceAPITest.groovy" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ServiceURL.java" />
<option value="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/APISpec.groovy" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TransferManager.java" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/StorageURL.java" />
<option value="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/TransferManagerTest.groovy" />
<option value="$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/BlobAPITest.groovy" />
<option value="$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlobURL.java" />
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="MavenProjectNavigator">
<treeState>
<expand>
<path>
<item name="" type="16c1761:MavenProjectsStructure$RootNode" />
<item name="Azure Storage Blob" type="9519ce18:MavenProjectsStructure$ProjectNode" />
</path>
<path>
<item name="" type="16c1761:MavenProjectsStructure$RootNode" />
<item name="Azure Storage Blob" type="9519ce18:MavenProjectsStructure$ProjectNode" />
<item name="Lifecycle" type="58874e2:MavenProjectsStructure$LifecycleNode" />
</path>
<path>
<item name="" type="16c1761:MavenProjectsStructure$RootNode" />
<item name="Azure Storage Blob" type="9519ce18:MavenProjectsStructure$ProjectNode" />
<item name="Plugins" type="7aea1407:MavenProjectsStructure$PluginsNode" />
</path>
</expand>
<select />
</treeState>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-8" />
<option name="y" value="-8" />
<option name="width" value="1936" />
<option name="height" value="1176" />
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
<manualOrder />
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="Scratches" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="azure-storage-java-v10" type="b2602c69:ProjectViewProjectNode" />
<item name="azure-storage-java-v10" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="azure-storage-java-v10" type="b2602c69:ProjectViewProjectNode" />
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="PackagesPane" />
<pane id="AndroidView" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="project.structure.last.edited" value="SDKs" />
<property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="settings.editor.selected.configurable" value="editor.preferences.tabs" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../azure-storage-perf/CaseRunners/java/pom.xml" />
</component>
<component name="RecentsManager">
<key name="IntroduceConstantDialog.RECENTS_KEY">
<recent name="com.microsoft.azure.storage.blob.Constants.UrlConstants" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\frley\Documents\azure-storage-java-v10" />
</key>
<key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
<recent name="com.microsoft.azure.storage.blob" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\frley\Documents\azure-storage-java-v10" />
<recent name="C:\Users\frley\Documents\azure-storage-java-v10\src\main\java\com\microsoft\azure\storage\blob" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager" selected="JUnit.BlobAPITest.Customer test">
<configuration name="BlobAPITest.Customer test" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
<option name="PATTERN" value="com.microsoft.azure.storage.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<module name="azure-storage-java-v10" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="com.microsoft.azure.storage" />
<option name="MAIN_CLASS_NAME" value="com.microsoft.azure.storage.BlobAPITest" />
<option name="METHOD_NAME" value="Customer test" />
<option name="TEST_OBJECT" value="method" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<patterns />
</configuration>
<configuration name="ContainerAPITest.List blobs flat" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
<option name="PATTERN" value="com.microsoft.azure.storage.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<module name="azure-storage-java-v10" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="com.microsoft.azure.storage" />
<option name="MAIN_CLASS_NAME" value="com.microsoft.azure.storage.ContainerAPITest" />
<option name="METHOD_NAME" value="List blobs flat" />
<option name="TEST_OBJECT" value="method" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<patterns />
</configuration>
<configuration name="TransferManagerTest.Download file" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
<option name="PATTERN" value="com.microsoft.azure.storage.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<module name="azure-storage-java-v10" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="com.microsoft.azure.storage" />
<option name="MAIN_CLASS_NAME" value="com.microsoft.azure.storage.TransferManagerTest" />
<option name="METHOD_NAME" value="Download file" />
<option name="TEST_OBJECT" value="method" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<patterns />
</configuration>
<configuration name="TransferManagerTest.Future test" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
<option name="PATTERN" value="com.microsoft.azure.storage.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<module name="azure-storage-java-v10" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="com.microsoft.azure.storage" />
<option name="MAIN_CLASS_NAME" value="com.microsoft.azure.storage.TransferManagerTest" />
<option name="METHOD_NAME" value="Future test" />
<option name="TEST_OBJECT" value="method" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<patterns />
</configuration>
<configuration default="true" type="Applet" factoryName="Applet">
<option name="WIDTH" value="400" />
<option name="HEIGHT" value="300" />
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<module />
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<module name="" />
<envs />
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<patterns />
</configuration>
<configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
<module name="" />
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
<option name="PROGRAM_PARAMETERS" />
<predefined_log_file id="idea.log" enabled="true" />
</configuration>
<configuration default="true" type="Remote" factoryName="Remote">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" value="javadebug" />
<option name="HOST" value="localhost" />
<option name="PORT" value="5005" />
</configuration>
<configuration default="true" type="TestNG" factoryName="TestNG">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="SUITE_NAME" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="GROUP_NAME" />
<option name="TEST_OBJECT" value="CLASS" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="OUTPUT_DIRECTORY" />
<option name="ANNOTATION_TYPE" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<option name="USE_DEFAULT_REPORTERS" value="false" />
<option name="PROPERTIES_FILE" />
<envs />
<properties />
<listeners />
</configuration>
<configuration name="com.microsoft.azure.storage.blob.* and 9 more" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="azure-storage-java-v10" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="pattern" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<patterns>
<pattern testClass="com.microsoft.azure.storage.blob.*" />
<pattern testClass="com.microsoft.azure.storage.APISpec" />
<pattern testClass="com.microsoft.azure.storage.AppendBlobAPITest" />
<pattern testClass="com.microsoft.azure.storage.BlobAPITest" />
<pattern testClass="com.microsoft.azure.storage.BlockBlobAPITest" />
<pattern testClass="com.microsoft.azure.storage.ContainerAPITest" />
<pattern testClass="com.microsoft.azure.storage.PageBlobAPITest" />
<pattern testClass="com.microsoft.azure.storage.Samples" />
<pattern testClass="com.microsoft.azure.storage.ServiceAPITest" />
<pattern testClass="com.microsoft.azure.storage.TransferManagerTest" />
</patterns>
</configuration>
<list size="5">
<item index="0" class="java.lang.String" itemvalue="JUnit.TransferManagerTest.Download file" />
<item index="1" class="java.lang.String" itemvalue="JUnit.TransferManagerTest.Future test" />
<item index="2" class="java.lang.String" itemvalue="JUnit.com.microsoft.azure.storage.blob.* and 9 more" />
<item index="3" class="java.lang.String" itemvalue="JUnit.ContainerAPITest.List blobs flat" />
<item index="4" class="java.lang.String" itemvalue="JUnit.BlobAPITest.Customer test" />
</list>
<recent_temporary>
<list size="5">
<item index="0" class="java.lang.String" itemvalue="JUnit.BlobAPITest.Customer test" />
<item index="1" class="java.lang.String" itemvalue="JUnit.ContainerAPITest.List blobs flat" />
<item index="2" class="java.lang.String" itemvalue="JUnit.com.microsoft.azure.storage.blob.* and 9 more" />
<item index="3" class="java.lang.String" itemvalue="JUnit.TransferManagerTest.Future test" />
<item index="4" class="java.lang.String" itemvalue="JUnit.TransferManagerTest.Download file" />
</list>
</recent_temporary>
</component>
<component name="ShelveChangesManager" show_recycled="false">
<option name="remove_strategy" value="false" />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="48aead7e-0445-4862-95c0-508a84aabe26" name="Default" comment="" />
<created>1536864753352</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1536864753352</updated>
</task>
<servers />
</component>
<component name="TestHistory">
<history-entry file="BlobAPITest_Customer_test - 2019.04.23 at 12h 06m 50s.xml">
<configuration name="BlobAPITest.Customer test" configurationId="JUnit" />
</history-entry>
<history-entry file="BlobAPITest_Customer_test - 2019.04.23 at 12h 09m 29s.xml">
<configuration name="BlobAPITest.Customer test" configurationId="JUnit" />
</history-entry>
<history-entry file="ContainerAPITest_List_blobs_flat - 2019.04.23 at 12h 02m 24s.xml">
<configuration name="ContainerAPITest.List blobs flat" configurationId="JUnit" />
</history-entry>
<history-entry file="TransferManagerTest_Future_test - 2019.04.11 at 16h 02m 36s.xml">
<configuration name="TransferManagerTest.Future test" configurationId="JUnit" />
</history-entry>
<history-entry file="TransferManagerTest_Future_test - 2019.04.11 at 16h 02m 50s.xml">
<configuration name="TransferManagerTest.Future test" configurationId="JUnit" />
</history-entry>
<history-entry file="TransferManagerTest_Future_test - 2019.04.11 at 16h 03m 28s.xml">
<configuration name="TransferManagerTest.Future test" configurationId="JUnit" />
</history-entry>
<history-entry file="TransferManagerTest_Future_test - 2019.04.11 at 16h 04m 30s.xml">
<configuration name="TransferManagerTest.Future test" configurationId="JUnit" />
</history-entry>
<history-entry file="TransferManagerTest_Future_test - 2019.04.11 at 16h 05m 40s.xml">
<configuration name="TransferManagerTest.Future test" configurationId="JUnit" />
</history-entry>
<history-entry file="com_microsoft_azure_storage_blob___and_9_more - 2019.04.19 at 12h 13m 06s.xml">
<configuration name="com.microsoft.azure.storage.blob.* and 9 more" configurationId="JUnit" />
</history-entry>
<history-entry file="com_microsoft_azure_storage_blob___and_9_more - 2019.04.19 at 13h 38m 17s.xml">
<configuration name="com.microsoft.azure.storage.blob.* and 9 more" configurationId="JUnit" />
</history-entry>
</component>
<component name="TodoView">
<todo-panel id="selected-file">
<is-autoscroll-to-source value="true" />
</todo-panel>
<todo-panel id="all">
<are-packages-shown value="true" />
<is-autoscroll-to-source value="true" />
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1176" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3292683" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Palette	" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3292683" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.19010417" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.5905923" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.22121535" sideWeight="0.5" order="5" side_tool="false" content_ui="combo" />
<window_info id="Structure" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2153518" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.31447747" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="7" side_tool="false" content_ui="combo" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3729626" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.40142095" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint type="java-line">
<dependency id="0" />
<url>file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/ContainerAPITest.groovy</url>
<line>896</line>
<properties />
<option name="timeStamp" value="135" />
</line-breakpoint>
<line-breakpoint type="java-line">
<dependency master-id="0" />
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.0/client-runtime-2.0.0.jar!/com/microsoft/rest/v2/policy/DecodingPolicyFactory.class</url>
<line>30</line>
<properties />
<option name="timeStamp" value="139" />
</line-breakpoint>
<line-breakpoint type="java-line">
<dependency master-id="1" />
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.0/client-runtime-2.0.0.jar!/com/microsoft/rest/v2/RestProxy.class</url>
<line>78</line>
<properties />
<option name="timeStamp" value="140" />
</line-breakpoint>
<line-breakpoint type="java-line">
<dependency master-id="1" />
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.0/client-runtime-2.0.0.jar!/com/microsoft/rest/v2/protocol/HttpResponseDecoder.class</url>
<line>100</line>
<properties />
<option name="timeStamp" value="142" />
</line-breakpoint>
<line-breakpoint type="java-line">
<dependency id="1" />
<url>file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/BlockBlobAPITest.groovy</url>
<line>349</line>
<properties />
<option name="timeStamp" value="146" />
</line-breakpoint>
<line-breakpoint type="java-line">
<dependency master-id="1" />
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.0/client-runtime-2.0.0.jar!/com/microsoft/rest/v2/RestProxy.class</url>
<line>270</line>
<properties />
<option name="timeStamp" value="148" />
</line-breakpoint>
<line-breakpoint type="java-line">
<dependency id="0" />
<url>file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/AppendBlobAPITest.groovy</url>
<line>166</line>
<properties />
<option name="timeStamp" value="149" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TransferManager.java</url>
<line>97</line>
<properties />
<option name="timeStamp" value="153" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlobURL.java</url>
<line>420</line>
<properties />
<option name="timeStamp" value="157" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedBlobs.java</url>
<line>471</line>
<properties />
<option name="timeStamp" value="159" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.3-SNAPSHOT/client-runtime-2.0.3-20190301.020454-11.jar!/com/microsoft/rest/v2/RestProxy.class</url>
<line>75</line>
<properties />
<option name="timeStamp" value="161" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.3-SNAPSHOT/client-runtime-2.0.3-20190301.020454-11.jar!/com/microsoft/rest/v2/http/HttpPipeline.class</url>
<line>38</line>
<properties />
<option name="timeStamp" value="162" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.3-SNAPSHOT/client-runtime-2.0.3-20190301.020454-11.jar!/com/microsoft/rest/v2/http/NettyClient.class</url>
<line>804</line>
<properties />
<option name="timeStamp" value="165" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.3-SNAPSHOT/client-runtime-2.0.3-20190301.020454-11.jar!/com/microsoft/rest/v2/http/NettyClient.class</url>
<line>802</line>
<properties />
<option name="timeStamp" value="166" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.3-SNAPSHOT/client-runtime-2.0.3-20190301.020454-11.jar!/com/microsoft/rest/v2/http/NettyClient.class</url>
<line>562</line>
<properties />
<option name="timeStamp" value="167" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.3-SNAPSHOT/client-runtime-2.0.3-20190301.020454-11.jar!/com/microsoft/rest/v2/http/NettyClient.class</url>
<line>667</line>
<properties />
<option name="timeStamp" value="168" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.3-SNAPSHOT/client-runtime-2.0.3-20190301.020454-11.jar!/com/microsoft/rest/v2/http/NettyClient.class</url>
<line>640</line>
<properties />
<option name="timeStamp" value="169" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.3-SNAPSHOT/client-runtime-2.0.3-20190301.020454-11.jar!/com/microsoft/rest/v2/http/NettyClient.class</url>
<line>629</line>
<properties />
<option name="timeStamp" value="170" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.3-SNAPSHOT/client-runtime-2.0.3-20190301.020454-11.jar!/com/microsoft/rest/v2/http/NettyClient.class</url>
<line>588</line>
<properties />
<option name="timeStamp" value="173" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.3-SNAPSHOT/client-runtime-2.0.3-20190301.020454-11.jar!/com/microsoft/rest/v2/http/NettyClient.class</url>
<line>579</line>
<properties />
<option name="timeStamp" value="175" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.3-SNAPSHOT/client-runtime-2.0.3-20190301.020454-11.jar!/com/microsoft/rest/v2/http/NettyClient.class</url>
<line>666</line>
<properties />
<option name="timeStamp" value="176" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.3-SNAPSHOT/client-runtime-2.0.3-20190301.020454-11.jar!/com/microsoft/rest/v2/http/NettyClient.class</url>
<line>806</line>
<properties />
<option name="timeStamp" value="179" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.3-SNAPSHOT/client-runtime-2.0.3-20190301.020454-11.jar!/com/microsoft/rest/v2/http/SharedChannelPool.class</url>
<line>226</line>
<properties />
<option name="timeStamp" value="180" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/AppendBlobAPITest.groovy</url>
<line>311</line>
<properties />
<option name="timeStamp" value="189" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/APISpec.groovy</url>
<line>307</line>
<properties />
<option name="timeStamp" value="191" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/AppendBlobAPITest.groovy</url>
<line>32</line>
<properties />
<option name="timeStamp" value="192" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/LoggingFactory.java</url>
<line>168</line>
<properties />
<option name="timeStamp" value="193" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/Samples.java</url>
<line>556</line>
<properties />
<option name="timeStamp" value="194" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/BlobAPITest.groovy</url>
<line>51</line>
<properties />
<option name="timeStamp" value="196" />
</line-breakpoint>
<line-breakpoint type="java-line">
<dependency master-id="2" />
<url>file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/Utility.java</url>
<line>286</line>
<properties />
<option name="timeStamp" value="197" />
</line-breakpoint>
<line-breakpoint type="java-line">
<dependency id="2" />
<url>file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/BlockBlobAPITest.groovy</url>
<line>152</line>
<properties />
<option name="timeStamp" value="198" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.1.0/client-runtime-2.1.0.jar!/com/microsoft/rest/v2/policy/DecodingPolicyFactory.class</url>
<line>30</line>
<properties />
<option name="timeStamp" value="201" />
</line-breakpoint>
<line-breakpoint type="java-method">
<url>jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.0.3-SNAPSHOT/client-runtime-2.0.3-20190301.020454-11.jar!/com/microsoft/rest/v2/http/NettyClient.class</url>
<line>734</line>
<properties class="com.microsoft.rest.v2.http.NettyClient.NettyAdapter" method="shutdownGracefully">
<option name="EMULATED" value="true" />
</properties>
<option name="timeStamp" value="178" />
</line-breakpoint>
<breakpoint enabled="true" type="java-exception">
<properties class="org.codehaus.groovy.runtime.typehandling.GroovyCastException" package="org.codehaus.groovy.runtime.typehandling" />
<option name="timeStamp" value="200" />
</breakpoint>
</breakpoints>
<breakpoints-dialog>
<breakpoints-dialog />
</breakpoints-dialog>
<option name="time" value="202" />
</breakpoint-manager>
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/ContainerCreateHeaders.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="22" column="19" lean-forward="false" selection-start-line="22" selection-start-column="19" selection-end-line="22" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/blob/LoggingTest.groovy">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3519">
<caret line="234" column="11" lean-forward="false" selection-start-line="234" selection-start-column="11" selection-end-line="234" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/blob/HelperTest.groovy">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="15351">
<caret line="926" column="147" lean-forward="false" selection-start-line="926" selection-start-column="147" selection-end-line="926" selection-end-column="147" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/Constants.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2601">
<caret line="166" column="53" lean-forward="false" selection-start-line="166" selection-start-column="53" selection-end-line="166" selection-end-column="53" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ChangeLog.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="1" column="181" lean-forward="false" selection-start-line="1" selection-start-column="181" selection-end-line="1" selection-end-column="181" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/BreakingChanges.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="1" column="0" lean-forward="false" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedAppendBlobs.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="111">
<caret line="184" column="12" lean-forward="false" selection-start-line="184" selection-start-column="12" selection-end-line="184" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedBlockBlobs.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="204" column="16" lean-forward="false" selection-start-line="204" selection-start-column="16" selection-end-line="204" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedContainers.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="100">
<caret line="355" column="8" lean-forward="false" selection-start-line="355" selection-start-column="8" selection-end-line="355" selection-end-column="8" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedPageBlobs.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="264">
<caret line="228" column="17" lean-forward="false" selection-start-line="228" selection-start-column="17" selection-end-line="228" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="-1665">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/Utility.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="192">
<caret line="76" column="0" lean-forward="false" selection-start-line="76" selection-start-column="0" selection-end-line="76" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ServiceURL.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="270" column="12" lean-forward="false" selection-start-line="270" selection-start-column="12" selection-end-line="270" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/BlobDownloadHeaders.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="209">
<caret line="254" column="26" lean-forward="false" selection-start-line="254" selection-start-column="19" selection-end-line="254" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/GeneratedBlobs.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="248" column="13" lean-forward="false" selection-start-line="248" selection-start-column="13" selection-end-line="248" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/BlobHierarchyListSegment.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="102">
<caret line="19" column="0" lean-forward="false" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/BlobCreateSnapshotHeaders.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
<caret line="83" column="68" lean-forward="false" selection-start-line="83" selection-start-column="68" selection-end-line="83" selection-end-column="68" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TransferManager.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="370">
<caret line="451" column="36" lean-forward="false" selection-start-line="451" selection-start-column="36" selection-end-line="451" selection-end-column="36" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/UploadFromNRFBufferPool.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-401">
<caret line="55" column="4" lean-forward="false" selection-start-line="55" selection-start-column="4" selection-end-line="55" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/PageBlobAPITest.groovy">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="217">
<caret line="203" column="8" lean-forward="false" selection-start-line="203" selection-start-column="8" selection-end-line="203" selection-end-column="8" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/BlockBlobAPITest.groovy">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="438">
<caret line="662" column="5" lean-forward="false" selection-start-line="662" selection-start-column="5" selection-end-line="662" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/AnonymousCredentials.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="282">
<caret line="60" column="24" lean-forward="false" selection-start-line="60" selection-start-column="24" selection-end-line="60" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/CommonRestResponse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="27" column="19" lean-forward="false" selection-start-line="27" selection-start-column="19" selection-end-line="27" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/ServiceAPITest.groovy">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="85">
<caret line="18" column="0" lean-forward="false" selection-start-line="18" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/APISpec.groovy">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="9231">
<caret line="573" column="17" lean-forward="false" selection-start-line="573" selection-start-column="17" selection-end-line="573" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.1.0/client-runtime-2.1.0.jar!/com/microsoft/rest/v2/http/HttpPipelineBuilder.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1734">
<caret line="132" column="23" lean-forward="false" selection-start-line="132" selection-start-column="23" selection-end-line="132" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.1.0/client-runtime-2.1.0.jar!/com/microsoft/rest/v2/http/HttpPipeline.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="23" column="43" lean-forward="false" selection-start-line="23" selection-start-column="13" selection-end-line="23" selection-end-column="43" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/AppendBlobAPITest.groovy">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4981">
<caret line="315" column="17" lean-forward="false" selection-start-line="315" selection-start-column="17" selection-end-line="315" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/AccountSASSignatureValues.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="425">
<caret line="39" column="19" lean-forward="false" selection-start-line="39" selection-start-column="19" selection-end-line="39" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/TransferManagerTest.groovy">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="7021">
<caret line="429" column="5" lean-forward="false" selection-start-line="429" selection-start-column="5" selection-end-line="429" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ServiceSASSignatureValues.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="5508">
<caret line="375" column="28" lean-forward="false" selection-start-line="375" selection-start-column="28" selection-end-line="375" selection-end-column="28" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/SASQueryParameters.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="9860">
<caret line="643" column="61" lean-forward="false" selection-start-line="643" selection-start-column="61" selection-end-line="643" selection-end-column="61" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/ContainerAPITest.groovy">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="10472">
<caret line="642" column="13" lean-forward="false" selection-start-line="642" selection-start-column="13" selection-end-line="642" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.1.0/client-runtime-2.1.0.jar!/com/microsoft/rest/v2/http/HttpRequest.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="935">
<caret line="69" column="0" lean-forward="false" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" />
<folding>
<element signature="e#2012#2013#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.1.0/client-runtime-2.1.0.jar!/com/microsoft/rest/v2/protocol/HttpResponseDecoder.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="833">
<caret line="81" column="41" lean-forward="false" selection-start-line="81" selection-start-column="41" selection-end-line="81" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.1.0/client-runtime-2.1.0.jar!/com/microsoft/rest/v2/http/BufferedHttpResponse.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="15" column="39" lean-forward="false" selection-start-line="15" selection-start-column="33" selection-end-line="15" selection-end-column="43" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/swagger/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="323">
<caret line="19" column="0" lean-forward="false" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" />
<folding />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/swagger/generate.bat">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="2" column="47" lean-forward="false" selection-start-line="2" selection-start-column="47" selection-end-line="2" selection-end-column="47" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/microsoft/azure/storage/BlobAPITest.groovy">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="986">
<caret line="73" column="5" lean-forward="false" selection-start-line="73" selection-start-column="5" selection-end-line="73" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/models/BlobMetadata.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="21" column="19" lean-forward="false" selection-start-line="21" selection-start-column="19" selection-end-line="21" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/TelemetryFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="425">
<caret line="46" column="19" lean-forward="false" selection-start-line="46" selection-start-column="19" selection-end-line="46" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/RequestIDFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="32" column="19" lean-forward="false" selection-start-line="32" selection-start-column="19" selection-end-line="32" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/RequestRetryFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="391">
<caret line="48" column="11" lean-forward="false" selection-start-line="48" selection-start-column="11" selection-end-line="48" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/SetResponseFieldFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="204">
<caret line="31" column="12" lean-forward="false" selection-start-line="31" selection-start-column="12" selection-end-line="31" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/LoggingFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1190">
<caret line="103" column="11" lean-forward="false" selection-start-line="103" selection-start-column="11" selection-end-line="103" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/StorageURL.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2397">
<caret line="162" column="33" lean-forward="false" selection-start-line="162" selection-start-column="33" selection-end-line="162" selection-end-column="33" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlobListDetails.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1547">
<caret line="116" column="41" lean-forward="false" selection-start-line="116" selection-start-column="41" selection-end-line="116" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/BlobURL.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4930">
<caret line="306" column="5" lean-forward="false" selection-start-line="306" selection-start-column="5" selection-end-line="306" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/microsoft/azure/storage/blob/ICredentials.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="153">
<caret line="22" column="23" lean-forward="false" selection-start-line="22" selection-start-column="23" selection-end-line="22" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pom.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="156" column="30" lean-forward="false" selection-start-line="147" selection-start-column="12" selection-end-line="160" selection-end-column="21" />
<folding />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/com/microsoft/rest/v2/client-runtime/2.1.0/client-runtime-2.1.0.jar!/com/microsoft/rest/v2/policy/DecodingPolicyFactory.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="459">
<caret line="36" column="0" lean-forward="false" selection-start-line="36" selection-start-column="0" selection-end-line="36" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<settings>
<artifact-editor />
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="FacetStructureConfigurable.UI">
<settings>
<last-edited>No facets are configured</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ModuleStructureConfigurable.UI">
<settings>
<last-edited>azure-storage-java-v10</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
<option value="0.6" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectJDKs.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<last-edited>Maven: cglib:cglib-nodep:3.2.7</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>
================================================
FILE: ISSUE_TEMPLATE.md
================================================
### Which service(blob, file, queue, table) does this issue concern?
### Which version of the SDK was used?
Please note that if your issue is with v11, we are recommending customers either move back to v11 or move to v12 (currently in preview) if at all possible. Hopefully this resolves your issue, but if there is some reason why moving away from v11 is not possible at this time, please do continue to ask your question and we will do our best to support you. The README for this SDK has been updated to point to more information on why we have made this decision.
### What problem was encountered?
### Have you found a mitigation/solution?
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) Microsoft Corporation. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE
================================================
FILE: README.md
================================================
# Microsoft Azure Storage SDK for Java
## If you would like to access our latest Java SDK, please refer to the Storage SDK v12 for Java link in the table below. If you would like more information on our decision to upgrade our Java SDK and the path forward, please refer to [this document](https://github.com/Azure/azure-storage-java/blob/master/V12%20Upgrade%20Story.md). If you would like more information on Azure's burgeoning effort to coordinate the development of the SDKs across services, of which this change is a part, please refer to [this article](https://azure.microsoft.com/en-us/blog/previewing-azure-sdks-following-new-azure-sdk-api-standards/).
## We will continue to respond to issues here, but prefer that you post them on the [v12 repo](https://github.com/azure/azure-sdk-for-java). Thank you for your patience. We look forward to continuing to work together with you.
| SDK Name | Version | Description | Maven/API Reference Links |
| ------------- | ------------- | ----------- | ----- |
| [Storage SDK v12 for Java](https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/storage) | v12.0.0 | The next generation Storage SDK. Supports sync and async IO. Includes blobs, queues, and files each in separate artifacts. (The package directory prefixed with "microsoft-" holds v11. The others are v12.) | [Maven](https://search.maven.org/search?q=g:com.azure%20AND%20a:azure-storage-blob) - [Reference](https://docs.microsoft.com/en-us/java/api/overview/azure/storage-blob-readme?view=azure-java-stable)
| [Blob Storage SDK v11 for Java](https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/storage/microsoft-azure-storage-blob) | v11.0.1 | A stepping stone in our path to v12. We do not currently recommend adopting this. | [Maven](https://mvnrepository.com/artifact/com.microsoft.azure/azure-storage-blob) - [Reference](https://docs.microsoft.com/en-us/java/api/overview/azure/storage/client?view=azure-java-stable) |
| [Storage SDK v8 for Java](https://github.com/azure/azure-storage-java/tree/legacy-master) | v8 | Legacy Storage SDK (sync only) | [Maven](https://mvnrepository.com/artifact/com.microsoft.azure/azure-storage) - [Reference](https://docs.microsoft.com/en-us/java/api/overview/azure/storage_stable?view=azure-java-legacy)|
| [Storage SDK for Android](https://github.com/Azure/azure-storage-android) | v2 | Storage SDK for Android | [Maven](https://mvnrepository.com/artifact/com.microsoft.azure.android/azure-storage-android) - [Reference](http://azure.github.io/azure-storage-android/)
| [Azure Management Libraries for Java](https://github.com/Azure/azure-libraries-for-java) | v1 | Management libraries including Storage Resource Provider APIs | [Maven](https://mvnrepository.com/artifact/com.microsoft.azure/azure-mgmt-resources) - [Reference](http://azure.github.io/azure-storage-android/)|
## For more details, please visit the proper location for each repo.
================================================
FILE: SECURITY.md
================================================
<!-- BEGIN MICROSOFT SECURITY.MD V0.0.8 BLOCK -->
## Security
Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).
If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below.
## Reporting Security Issues
**Please do not report security vulnerabilities through public GitHub issues.**
Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).
If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey).
You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc).
Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
* Full paths of source file(s) related to the manifestation of the issue
* The location of the affected source code (tag/branch/commit or direct URL)
* Any special configuration required to reproduce the issue
* Step-by-step instructions to reproduce the issue
* Proof-of-concept or exploit code (if possible)
* Impact of the issue, including how an attacker might exploit the issue
This information will help us triage your report more quickly.
If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs.
## Preferred Languages
We prefer all communications to be in English.
## Policy
Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd).
<!-- END MICROSOFT SECURITY.MD BLOCK -->
================================================
FILE: V12 Upgrade Story.md
================================================
# Azure Storage Java V12 Changes & Roadmap
This document is directed towards customers of Azure Storage who have engaged with either the v8 (synchronous) or v10 (asynchronous) versions of the Java SDK. As part of responding to the feedback we've received on these SDKs, we've determined the best course of action is to fully fix the problems encountered, rather than try to incrementally improve a foundation that had issues. Unfortunately, this will require a few breaking changes as we course correct. The rest of this document covers:
- Why we broke from the original architecture in the first place
- Why we have decided it is necessary to break again
- Why `com.azure.storage` v12 represents the culmination of our SDK efforts so far
- How we will support our customers going forward to ensure they that have the best Cloud Storage experience
# From V8 to V10
After several years of experience with the CloudBlob model of v1-8, we realized there were crucial problems with this SDK as scale and complexity continued to grow:
- The CloudBlob model is not thread safe and much of its behavior is opaque to users. Java applications very often have quite a few threads running, so offering a core type that is not thread safe caused many problems for customers.
- The object-oriented caching behavior frequently made it unclear what was stored locally and what was consistent with the remote blob. It wasn't clear when customers had an up-to-date view of the data and when requests were happening behind the scenes.
- The package size was large. Because all three Storage services (blob, queue, file) were in one artifact, many customers found the dependency was unnecessarily large when only working with one service.
- The SDK featured purely synchronous IO. While we know that many customers still want sync apis, some are also moving towards asynchronous IO to take advantage of possible performance gains. It is important to us that we position ourselves to be successful both with current standards and with the future of Java development.
# From V10 to V12
While v10 and v11 took a respectable stab at ameliorating the issues with v8, it had several problems of its own that grew increasingly apparent as more customers adopted it. The introduction of v12 comes as a result of the following problems:
- An unstable networking stack. Any customer who used these SDKs with a larger workload encountered sporadic "Connection Reset By Peer" exceptions. This exception was a result of a custom Rx-Netty implementation that simply did not have the maturity needed to support larger scale applications, especially ones that followed a sync-over-async pattern.
- Lack of friendly synchronous support. For any customer that did not already have a purely asynchronous workflow in their application, every API became a sync-over-async call. In addition to contributing to the problems in the networking stack, the blocking was verbose and error prone (as forgetting it would result in no IO operation being sent).
- Architectural mistakes. The core types of the SDK—URL types like BlobURL—while true to their function, were clunky and unintuitive. Additionally, the bare-bones naming conventions led to several key features being "hidden". It was not discoverable how to do something as fundamental as create a SAS token because there was no generateSAS method, and figuring how to attach a SAS to a URL was yet another problem. The TransferManager type similarly "hid" very important file transfer methods.
- Lack of convenience. It was a very austere API surface that strictly adhered to the REST API. Methods like `exists()` did not exist. While the SDK did not prohibit customers from doing something functionally equivalent to an exists call by calling getProperties and handling a 404, the purpose of an SDK is arguably to provide exactly this kind of convenience, and v10/11 failed in this regard.
# V12: The best of both worlds
Listening to your feedback in conjunction with an effort to unify the Azure SDK experience across services led to us deciding that, despite the upgrade pain for existing customers, this second upgrade would ultimately be the right thing to do in the long run. We have taken the cumulative learnings of versions 1-11 to produce an API that is stable, intuitive, and efficient. Some of the highlights include:
- Side-by-side sync and async apis. Each type (Container, Blob, etc.) has both a sync and async client. It is easy and intuitive to use whichever one is preferable in a given context without having to bother about clutter from the other. Further, because these apis live in the same package and have very similar signatures, it is much easier for customers to gradually upgrade from sync to async should they so desire.
- Several key features from v8 that were missing in v10, notably, BlobInputStream and BlobOutputStream. With the addition of sync apis, BlobInputStream and BlobOutputStream fit nicely within this story. Customers who have long depended on these types will find the same interface and will require minimal upgrade. We will also be adding Client-Side Encryption as we bring the library to full parity.
- Thread-safety and immutability. It is still safe to share clients across threads, and there should still be no confusion about when the client is in sync with the service as there is no state maintained on the client. State may be returned as the result of a method call, but there is no pretense of storing state on a client that could be immediately invalid.
- A reactive framework update, from RxJava to Reactor. The biggest payoff here is the switch to Reactor and ReactorNetty. Both Reactor and Reactor-Netty are much more mature than the ReactiveX + custom-ReactiveX-Netty-interface we were using. Both Reactor and ReactorNetty are maintained by Spring and support other large projects, making them safer and more modern, while similar to what was present in v10.
- An extension packages model to keep the package size small. The three Azure Storage services will be in different artifacts. Similarly, features like Client-Side Encryption will be offered in artifacts separate from the core sdk components, which will reduce the footprint of Azure Storage wherever possible.
- Perf increases over purely synchronous HTTP Clients (e.g. OkHttp). In our long running stress tests, we have observed 3x better performance using Reactor-Netty over OkHttp when using our sync apis. The async apis perform even better. We will publish more detailed performance results before we GA v12.
- Conformance to Azure-wide standards. The new API surface follows guidelines that are standardizing the experience for all Azure SDKs. This will give a coherent story for any developers working within the Azure ecosystem. These APIs should be idiomatic, intuitive, and convenient for Java developers of all experience levels.
# Our Long Term Plan
It has always been our intention and highest priority to provide the best experience and tools for our customers. While we have made some mistakes in the recent past, we are still committed to this goal. Every effort we make is ultimately to empower you to build your products better. To that end, you may expect from us:
- A more stable API. Going forward, we will be making a concerted effort to minimize even minor breaks. This new API surface represents the sum of our learnings and discussions with you and is our long-term strategy.
- Prioritizing v12. New development, bug fixes, and support for service features will be added to v12 exclusively; only security patches will be made to any version prior to v12.
- Rapid and honest communication over Github. It will remain a priority for us to answer questions on Github and discuss bugs/feature requests. We are also happy to discuss contributions. A strong community of support and collaboration is important to us.
- Making upgrade as easy as possible. We will be providing more detailed documentation about the upgrade paths, including several samples that give a side-by-side comparison for v8 and v12 code. Furthermore, because we are shipping v12 in a different package and artifact (com.azure vs com.microsoft.azure), side-by-side loading should be very simple to do so customers can upgrade at their own pace.
# Thank you
Thank you for your feedback in the past and going forward. We apologize for any inconvenience this has caused. However, we strongly believe that these updates will allow a path towards greater success. Please feel free to contact us on Github with any suggestions.
gitextract_brjajcoj/ ├── .idea/ │ └── workspace.xml ├── ISSUE_TEMPLATE.md ├── LICENSE ├── README.md ├── SECURITY.md └── V12 Upgrade Story.md
Condensed preview — 6 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (113K chars).
[
{
"path": ".idea/workspace.xml",
"chars": 91026,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"AnalysisUIOptions\">\n <option name=\"SC"
},
{
"path": "ISSUE_TEMPLATE.md",
"chars": 650,
"preview": "### Which service(blob, file, queue, table) does this issue concern?\n\n\n### Which version of the SDK was used?\nPlease not"
},
{
"path": "LICENSE",
"chars": 1162,
"preview": " MIT License\n\n Copyright (c) Microsoft Corporation. All rights reserved.\n\n Permission is hereby granted, free o"
},
{
"path": "README.md",
"chars": 2929,
"preview": "# Microsoft Azure Storage SDK for Java\n## If you would like to access our latest Java SDK, please refer to the Storage S"
},
{
"path": "SECURITY.md",
"chars": 2757,
"preview": "<!-- BEGIN MICROSOFT SECURITY.MD V0.0.8 BLOCK -->\n\n## Security\n\nMicrosoft takes the security of our software products an"
},
{
"path": "V12 Upgrade Story.md",
"chars": 8664,
"preview": "# Azure Storage Java V12 Changes & Roadmap\r\n\r\nThis document is directed towards customers of Azure Storage who have "
}
]
About this extraction
This page contains the full source code of the Azure/azure-storage-java GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 6 files (104.7 KB), approximately 26.5k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.