Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update version number for official 0.2.1 release #44

Closed
wants to merge 104 commits into from
Closed
Changes from 45 commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
6a25ef7
Initial implementation of table service
Dec 7, 2011
cfb7c93
Integration tests
Dec 8, 2011
bbcee3e
Cosmetic changes
Jan 9, 2012
9432fac
Implement table creation/deletion/querying
Jan 10, 2012
f481f38
Add support for "insertEntity"
Jan 11, 2012
28a3cec
Whitespaces
Jan 11, 2012
b3fc550
Add support for "updateEntity"
Jan 11, 2012
6696e2c
Add support for "DeleteEntity"
Jan 11, 2012
9cede50
Add support for "mergeEntity"
Jan 11, 2012
b9a00d4
Add support for "insertOrReplaceEntity"
Jan 11, 2012
a4f49b0
Add support for "insertOrMergeEntity"
Jan 11, 2012
bf53b9c
Add support for "getEntity" and "queryEntities"
Jan 11, 2012
a72bc2a
Rename a few classes, fix support for query continuation
Jan 12, 2012
711e23d
Fix bug with server sometimes sending back shorter ISO 8601 dates
Jan 12, 2012
06146b7
Adding test for query entities continuation
Jan 12, 2012
8fdbcf7
Adding a couple more unit test for query entities
Jan 12, 2012
3f5f5d7
Initial (not quite working yet) support for batch operations
Jan 13, 2012
802e9b0
Add full support for "batch" operation on tables
Jan 14, 2012
34de8fe
Additional test for "batch" operation
Jan 14, 2012
18c8255
Simple code refactorings
Jan 14, 2012
04cc644
Support for all batch operations
Jan 14, 2012
87ebda2
Commenting out an optional diagnostic line
lodejard Feb 13, 2012
2c2ca7e
Merge pull request #7 from loudej/tables
joostdenijs Feb 21, 2012
3a7d97c
Table Client commit
Feb 22, 2012
3e29e5c
Merge pull request #12 from joeg/tables
joostdenijs Feb 24, 2012
c4206d7
Combining listTables and queryTables operations. Fixes #216
lodejard Feb 14, 2012
ff44325
Date time for table should have precision only down to seconds. Fixes…
lodejard Feb 24, 2012
46e59a3
Use X-HTTP-Method for MERGE verb. Fixes #234
lodejard Feb 24, 2012
2115c8e
Bumping version to 0.2.0
lodejard Feb 24, 2012
a552797
Merge pull request #14 from loudej/issue-216
jcookems Feb 24, 2012
42a8cfd
Merge pull request #15 from loudej/issue-228
jcookems Feb 24, 2012
61fd153
Merge pull request #16 from loudej/issue-234
jcookems Feb 24, 2012
ee38b84
Merge pull request #17 from loudej/version-number
jcookems Feb 24, 2012
4af2c06
Adding copyright and license information to new table files.
jcookems Feb 27, 2012
41ea32f
Merge pull request #18 from jcookems/addboilerplate
joostdenijs Feb 27, 2012
b880047
Switched from HTML to Markdown and added Tables to the Features section
joostdenijs Mar 7, 2012
15a260e
Merge pull request #23 from joostdenijs/dev
jcookems Mar 8, 2012
fd92be1
Fix issue 198
jcookems Mar 8, 2012
f239a50
Fix #227, #244, and #251
jcookems Mar 8, 2012
37e8b0f
Fix #225
jcookems Mar 8, 2012
960abc5
Fix #252
jcookems Mar 8, 2012
4ac38a8
Fix #205
jcookems Mar 8, 2012
c372a00
Fix #257
jcookems Mar 8, 2012
2b3d4bf
Fix #228
jcookems Mar 8, 2012
3bf1d09
Fix #221 and #231
jcookems Mar 8, 2012
6243526
Fix #213
jcookems Mar 8, 2012
0078bd4
Fix for #243, #245, and #254
jcookems Mar 8, 2012
b329c89
Fix #209
jcookems Mar 8, 2012
c18bddb
Add Javadocs comments to /queue and /queue/models
adashcolinr Mar 15, 2012
88d99b5
add package.html files for javadocs
adashcolinr Mar 19, 2012
feb654d
Merge remote-tracking branch 'origin' into dev
adashcolinr Mar 19, 2012
571122b
Merge remote-tracking branch 'upstream/dev' into dev
adashcolinr Mar 19, 2012
2877e82
Fix Javadoc build warnings.
adashcolinr Mar 22, 2012
7d6bb0b
Merge branch 'fix205' of github.com:jcookems/azure-sdk-for-java into …
jcookems Mar 26, 2012
c3e41e7
Merge branch 'fix209' of github.com:jcookems/azure-sdk-for-java into …
jcookems Mar 26, 2012
38799cb
Merge branch 'fix221_231' of github.com:jcookems/azure-sdk-for-java i…
jcookems Mar 26, 2012
d98b36c
Merge branch 'fix225' of github.com:jcookems/azure-sdk-for-java into …
jcookems Mar 26, 2012
da5f63a
Merge pull request #25 from adashcolinr/dev
joostdenijs Mar 26, 2012
1782b84
Make fix suggested in code review feedback.
jcookems Mar 29, 2012
46d807c
Merge pull request #29 from jcookems/fix227_244_251
jcookems Mar 29, 2012
c1b94fc
Merge branch 'codereview' of github.com:jcookems/azure-sdk-for-java i…
jcookems Apr 3, 2012
84bcfaf
Update unit tests to cover EDM BINARY type.
jcookems Apr 3, 2012
75762f3
Merge branch 'fix213' of github.com:jcookems/azure-sdk-for-java into …
jcookems Apr 3, 2012
6a569ec
Replaced manual base16 conversion with Formatter call.
jcookems Apr 3, 2012
59f9439
Merge branch 'fix228' of github.com:jcookems/azure-sdk-for-java into …
jcookems Apr 3, 2012
adcf3ad
Added new ISO8601 unit tests
jcookems Apr 3, 2012
2962f94
Making variable name more descriptive.
jcookems Apr 3, 2012
88a3edc
Merge branch 'fix252' of github.com:jcookems/azure-sdk-for-java into …
jcookems Apr 3, 2012
2116310
Added unit test
jcookems Apr 3, 2012
76f6253
Merge branch 'fix257' of github.com:jcookems/azure-sdk-for-java into …
jcookems Apr 3, 2012
90442d2
Address root cause of the issue: the default response EntityInputStre…
jcookems Apr 4, 2012
bea4d6c
Adding more validation to unit test
jcookems Apr 4, 2012
bbf8b07
Minor name changes.
jcookems Apr 4, 2012
b479cf6
Merge branch 'fix243_245_254' of github.com:jcookems/azure-sdk-for-ja…
jcookems Apr 4, 2012
ab4f701
Merge pull request #27 from jcookems/codereview
jcookems Apr 4, 2012
c18b9d3
Merge branch 'dev-bookmark' of github.com:WindowsAzure/azure-sdk-for-…
jcookems Apr 4, 2012
d59baba
Merge pull request #28 from jcookems/fix213
jcookems Apr 4, 2012
f86207f
Merge branch 'dev-bookmark' of github.com:WindowsAzure/azure-sdk-for-…
jcookems Apr 4, 2012
e21de2b
Merge pull request #30 from jcookems/fix228
jcookems Apr 4, 2012
cadf5cd
Merge branch 'dev-bookmark' of github.com:WindowsAzure/azure-sdk-for-…
jcookems Apr 4, 2012
7ea8763
Merge pull request #31 from jcookems/fix252
jcookems Apr 4, 2012
b006f17
Merge branch 'dev-bookmark' of github.com:WindowsAzure/azure-sdk-for-…
jcookems Apr 4, 2012
eb216e1
Merge pull request #32 from jcookems/fix257
jcookems Apr 4, 2012
dc66cda
Add import statement missing from merge
jcookems Apr 4, 2012
fab505c
Merge pull request #36 from jcookems/dev-bookmark
jcookems Apr 4, 2012
3cc66d6
Merge branch 'dev-bookmark' of github.com:WindowsAzure/azure-sdk-for-…
jcookems Apr 4, 2012
922527a
Merge branch 'dev-bookmark' of github.com:WindowsAzure/azure-sdk-for-…
jcookems Apr 5, 2012
1a0f486
Merge branch 'fix243_245_254' of github.com:jcookems/azure-sdk-for-ja…
jcookems Apr 5, 2012
f587ac1
Merge branch 'dev' of github.com:WindowsAzure/azure-sdk-for-java into…
jcookems Apr 5, 2012
9a503ba
Simplify the processing of the batch error messages to avoid Jersey S…
jcookems Apr 5, 2012
f57a959
Merge branch 'fix243_245_254' of github.com:jcookems/azure-sdk-for-ja…
jcookems Apr 5, 2012
92b1db5
Adding unit test for batches that have errors.
jcookems Apr 5, 2012
d14c5c9
Fix minor spacing issues
jcookems Apr 5, 2012
bb5fbed
Merge pull request #33 from jcookems/fix243_245_254
jcookems Apr 5, 2012
564d8aa
fix the failed java unit test related to getBlob.
Apr 5, 2012
c884a33
Fix 236: Table: EdmType.GUID should map to java.util.UUID
jcookems Apr 5, 2012
2c82f1e
Added unit test for round-tripping UUID values
jcookems Apr 5, 2012
f338598
Fix issue #217 Table: QueryTablesOptions.Query not fully used.
Apr 6, 2012
e629c80
Merge pull request #40 from gcheng/dev-bookmark
Apr 6, 2012
640093e
Merge pull request #39 from jcookems/fix236
Apr 6, 2012
8dd4620
Making filter immutable, add filter to TableQuery, Rename RawStringFi…
Apr 7, 2012
4d82414
Addressing code review feedback...
Apr 9, 2012
9cafac5
Merge pull request #41 from gcheng/dev-bookmark
Apr 9, 2012
40c5baa
update the version number to 0.2.1
Apr 9, 2012
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -2,20 +2,21 @@
* Copyright 2011 Microsoft Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.microsoft.windowsazure.services.blob;

import com.microsoft.windowsazure.services.blob.implementation.BlobExceptionProcessor;
import com.microsoft.windowsazure.services.blob.implementation.BlobRestProxy;
import com.microsoft.windowsazure.services.blob.implementation.ISO8601DateConverter;
import com.microsoft.windowsazure.services.blob.implementation.SharedKeyFilter;
import com.microsoft.windowsazure.services.blob.implementation.SharedKeyLiteFilter;
import com.microsoft.windowsazure.services.core.Builder;
@@ -28,5 +29,6 @@ public void register(Builder.Registry registry) {
registry.add(BlobRestProxy.class);
registry.add(SharedKeyLiteFilter.class);
registry.add(SharedKeyFilter.class);
registry.add(ISO8601DateConverter.class);
}
}
Original file line number Diff line number Diff line change
@@ -69,10 +69,10 @@
import com.microsoft.windowsazure.services.blob.models.SetContainerMetadataOptions;
import com.microsoft.windowsazure.services.core.ServiceException;
import com.microsoft.windowsazure.services.core.ServiceFilter;
import com.microsoft.windowsazure.services.core.utils.CommaStringBuilder;
import com.microsoft.windowsazure.services.core.utils.pipeline.ClientFilterAdapter;
import com.microsoft.windowsazure.services.core.utils.pipeline.HttpURLConnectionClient;
import com.microsoft.windowsazure.services.core.utils.pipeline.PipelineHelpers;
import com.microsoft.windowsazure.services.core.utils.pipeline.PipelineHelpers.EnumCommaStringBuilder;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.WebResource.Builder;
@@ -155,18 +155,18 @@ private HashMap<String, String> getMetadataFromHeaders(ClientResponse response)
}

private WebResource addOptionalBlobListingIncludeQueryParam(ListBlobsOptions options, WebResource webResource) {
EnumCommaStringBuilder sb = new EnumCommaStringBuilder();
CommaStringBuilder sb = new CommaStringBuilder();
sb.addValue(options.isIncludeSnapshots(), "snapshots");
sb.addValue(options.isIncludeUncommittedBlobs(), "uncommittedblobs");
sb.addValue(options.isIncludeMetadata(), "metadata");
webResource = addOptionalQueryParam(webResource, "include", sb.getValue());
webResource = addOptionalQueryParam(webResource, "include", sb.toString());
return webResource;
}

private WebResource addOptionalContainerIncludeQueryParam(ListContainersOptions options, WebResource webResource) {
EnumCommaStringBuilder sb = new EnumCommaStringBuilder();
CommaStringBuilder sb = new CommaStringBuilder();
sb.addValue(options.isIncludeMetadata(), "metadata");
webResource = addOptionalQueryParam(webResource, "include", sb.getValue());
webResource = addOptionalQueryParam(webResource, "include", sb.toString());
return webResource;
}

Original file line number Diff line number Diff line change
@@ -25,11 +25,11 @@ public class ContainerACLDateAdapter extends XmlAdapter<String, Date> {

@Override
public Date unmarshal(String arg0) throws Exception {
return new ContainerACLDateConverter().parse(arg0);
return new ISO8601DateConverter().parse(arg0);
}

@Override
public String marshal(Date arg0) throws Exception {
return new ContainerACLDateConverter().format(arg0);
return new ISO8601DateConverter().format(arg0);
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/**
* Copyright 2011 Microsoft Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.microsoft.windowsazure.services.blob.implementation;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;

/*
* "not quite" ISO 8601 date time conversion routines
*/
public class ISO8601DateConverter {
// Note: because of the trailing "0000000", this is not quite ISO 8601 compatible
private static final String DATETIME_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'";
private static final String SHORT_DATETIME_PATTERN = "yyyy-MM-dd'T'HH:mm:ss'Z'";

public String format(Date date) {
return getFormat().format(date);
}

public String shortFormat(Date date) {
return getShortFormat().format(date);
}

public Date parse(String date) throws ParseException {
if (date == null)
return null;

// Sometimes, the date comes back without the ".SSSSSSS" part (presumably when the decimal value
// of the date is "0". Use the short format in that case.
if (date.indexOf('.') < 0)
return getShortFormat().parse(date);
else
return getFormat().parse(date);
}

private DateFormat getFormat() {
DateFormat iso8601Format = new SimpleDateFormat(DATETIME_PATTERN, Locale.US);
iso8601Format.setTimeZone(TimeZone.getTimeZone("GMT"));
return iso8601Format;
}

private DateFormat getShortFormat() {
DateFormat iso8601Format = new SimpleDateFormat(SHORT_DATETIME_PATTERN, Locale.US);
iso8601Format.setTimeZone(TimeZone.getTimeZone("GMT"));
return iso8601Format;
}
}
Original file line number Diff line number Diff line change
@@ -2,15 +2,15 @@
* Copyright 2011 Microsoft Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.microsoft.windowsazure.services.blob.implementation;

@@ -44,6 +44,18 @@ public SharedKeyFilter(@Named(BlobConfiguration.ACCOUNT_NAME) String accountName
this.signer = new HmacSHA256Sign(accountKey);
}

protected String getHeader(ClientRequest cr, String headerKey) {
return SharedKeyUtils.getHeader(cr, headerKey);
}

protected HmacSHA256Sign getSigner() {
return signer;
}

protected String getAccountName() {
return accountName;
}

@Override
public ClientResponse handle(ClientRequest cr) throws ClientHandlerException {
// Only sign if no other filter is handling authorization
@@ -60,6 +72,7 @@ public ClientResponse handle(ClientRequest cr) throws ClientHandlerException {
return this.getNext().handle(cr);
}

@Override
public void onBeforeStreamingEntity(ClientRequest clientRequest) {
// All headers should be known at this point, time to sign!
sign(clientRequest);
@@ -105,11 +118,11 @@ public void sign(ClientRequest cr) {
cr.getHeaders().putSingle("Authorization", "SharedKey " + this.accountName + ":" + signature);
}

private void addOptionalDateHeader(ClientRequest cr) {
protected void addOptionalDateHeader(ClientRequest cr) {
String date = getHeader(cr, "Date");
if (date == "") {
date = new RFC1123DateConverter().format(new Date());
cr.getHeaders().add("Date", date);
cr.getHeaders().putSingle("Date", date);
}
}

@@ -209,8 +222,4 @@ private String getCanonicalizedResource(ClientRequest cr) {

return result;
}

private String getHeader(ClientRequest cr, String headerKey) {
return SharedKeyUtils.getHeader(cr, headerKey);
}
}
Original file line number Diff line number Diff line change
@@ -2,15 +2,15 @@
* Copyright 2011 Microsoft Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.microsoft.windowsazure.services.blob.implementation;

@@ -59,6 +59,7 @@ public ClientResponse handle(ClientRequest cr) throws ClientHandlerException {
return this.getNext().handle(cr);
}

@Override
public void onBeforeStreamingEntity(ClientRequest clientRequest) {
// All headers should be known at this point, time to sign!
sign(clientRequest);
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.microsoft.windowsazure.services.core.utils;

import java.util.List;

public class CommaStringBuilder {
private final StringBuilder sb = new StringBuilder();

public void add(String representation) {
if (sb.length() > 0) {
sb.append(",");
}
sb.append(representation);
}

public void addValue(boolean value, String representation) {
if (value) {
add(representation);
}
}

public static String join(List<String> values) {
CommaStringBuilder sb = new CommaStringBuilder();

for (String value : values) {
sb.add(value);
}

return sb.toString();
}

public static String join(String... values) {
CommaStringBuilder sb = new CommaStringBuilder();

for (String value : values) {
sb.add(value);
}

return sb.toString();
}

@Override
public String toString() {
if (sb.length() == 0)
return null;
return sb.toString();
}
}
Loading