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

Prepare 0.4.4 release. #369

Merged
merged 57 commits into from
Jun 25, 2013
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
671e917
message count details.
May 8, 2013
0b69853
Merge pull request #679 from WindowsAzure/release
May 15, 2013
a3c14da
Merge branch 'dev' of https://github.com/gcheng/azure-sdk-for-java-pr…
May 15, 2013
69b37ab
initial check in for forward to feature.
May 16, 2013
5481757
additional implementation of forward to feature.
May 16, 2013
a6a749f
implement subscription forward to feature.
May 16, 2013
ff2faf4
implementing update for forward to feature.
May 16, 2013
a1a095a
update forward to integration test.
May 16, 2013
f0609a8
add more integration tests for forward to feature.
May 17, 2013
eb11213
refactoring and documentation work.
May 18, 2013
d2b1d41
Merge pull request #120 from gcheng/forwardto
May 20, 2013
255b68b
Merge pull request #681 from gcheng/dev
May 20, 2013
928fafe
initial check in for multiple property filter
May 20, 2013
d6abcae
complete the schema change for correlation filter.
May 22, 2013
931004c
integration test for multiple properties filter.
May 23, 2013
92c356e
initial check in for OData support.
May 23, 2013
fc61698
implement the integration tests for odata query.
May 23, 2013
a7fddd0
Merge branch 'dev' of https://github.com/gcheng/azure-sdk-for-java-pr…
May 23, 2013
cdecace
modification of service bus integration test.
May 23, 2013
dc4e7d2
remove invalid scenarios.
May 24, 2013
8d1b771
fix a broken unit test for odata query.
May 24, 2013
2c564fc
separate message count details into a separated namespace.
May 25, 2013
d41dfe0
fix a typo for the schema.
May 25, 2013
8852c2f
Merge pull request #121 from gcheng/multipropfilter
May 25, 2013
73f1d90
Merge pull request #684 from gcheng/dev
May 25, 2013
54a3ff2
Merge pull request #682 from gcheng/odata
May 28, 2013
409a112
a fix for servicebus schema.
May 28, 2013
d039ddd
Merge pull request #351 from WindowsAzure/release
xuezhai May 30, 2013
810ca6a
Merge pull request #122 from WindowsAzure/dev
Jun 3, 2013
704be53
remove bad service bus design.
Jun 3, 2013
e63622e
fix the schema for message count details.
Jun 4, 2013
004e9e6
Merge pull request #687 from gcheng/removeBadSBDesign
Jun 4, 2013
9e8f4a9
Merge branch 'dev' of https://github.com/gcheng/azure-sdk-for-java-pr…
Jun 4, 2013
15a6307
Merge pull request #123 from WindowsAzure/dev
Jun 4, 2013
7a16f2d
Merge branch 'dev' of https://github.com/gcheng/azure-sdk-for-java-pr…
Jun 4, 2013
74def0c
improving unit test for message count details.
Jun 5, 2013
5576dea
add javadoc for message count details.
Jun 5, 2013
1a61a24
remove newly introduced TODOs
Jun 5, 2013
2bfbfca
code review feedback
Jun 5, 2013
fe36b1f
Merge pull request #683 from gcheng/messagecount
Jun 5, 2013
57f75cc
updated sample code to use containerPermissions. added java & xml for…
t-aniba Jun 7, 2013
c06f38c
Revert "updated sample code to use containerPermissions. added java &…
t-aniba Jun 7, 2013
8ee99c9
fixed README.md fixes #360
t-aniba Jun 10, 2013
07297a3
harmonize the design with mooncake requirement.
Jun 10, 2013
e419ce6
Merge pull request #363 from WindowsAzure/master
xuezhai Jun 10, 2013
400c45c
Merge pull request #688 from WindowsAzure/master
xuezhai Jun 10, 2013
3ebd298
improve the unit test to ensure that the created correlation filter d…
Jun 11, 2013
63e3fc9
address code review fedback by trimming the / at the end of the sts end
Jun 11, 2013
bb2dc56
Merge pull request #364 from gcheng/mooncake
Jun 11, 2013
60bb459
Merge branch 'dev' of https://github.com/WindowsAzure/azure-sdk-for-j…
t-aniba Jun 11, 2013
921395a
Merge pull request #362 from t-aniba/dev
t-aniba Jun 11, 2013
a458658
more test improvements to validate the properties on correlation filter.
Jun 11, 2013
dec8063
Merge pull request #689 from gcheng/getrule
Jun 11, 2013
f9fb1ff
fixed mislabeled string
t-aniba Jun 13, 2013
2f76b2d
Merge pull request #365 from t-aniba/dev
t-aniba Jun 14, 2013
9fd2c2b
Merge pull request #690 from WindowsAzure/dev
Jun 25, 2013
3413c7d
Merge branch 'release' of https://github.com/WindowsAzure/azure-sdk-f…
Jun 25, 2013
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
117 changes: 57 additions & 60 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,13 @@ To get the source code of the SDK via git just type:
To get the binaries of this library as distributed by Microsoft, ready for use
within your project you can also have them installed by the Java package manager Maven.

<dependency>
<groupId>com.microsoft.windowsazure</groupId>
<artifactId>microsoft-windowsazure-api</artifactId>
<version>0.4.3</version>
</dependency>
```xml
<dependency>
<groupId>com.microsoft.windowsazure</groupId>
<artifactId>microsoft-windowsazure-api</artifactId>
<version>0.4.2</version>
</dependency>
```

##Minimum Requirements

Expand All @@ -72,67 +74,62 @@ account. To host your Java code in Windows Azure, you additionally need to down
the full Windows Azure SDK for Java - which includes packaging, emulation, and
deployment tools.

##Code Samples
##Code Sample

The following is a quick example on how to set up a Azure blob using the API
and uploading a file to it. For additional information on using the client libraries to access Azure services see the How To guides listed [here](http://www.windowsazure.com/en-us/develop/java/).

```java
import java.io.*;

import com.microsoft.windowsazure.services.core.storage.*;
import com.microsoft.windowsazure.services.blob.client.*;

public class BlobSample {
public static final String storageConnectionString =
"DefaultEndpointsProtocol=http;"
+ "AccountName=your_account_name;"
+ "AccountKey= your_account_key";

public static void main(String[] args) {
try {
CloudStorageAccount account;
CloudBlobClient serviceClient;
CloudBlobContainer container;
CloudBlockBlob blob;

account = CloudStorageAccount.parse(storageConnectionString);
serviceClient = account.createCloudBlobClient();
// Container name must be lower case.
container = serviceClient.getContainerReference("blobsample");
container.createIfNotExist();

// Set anonymous access on the container.
BlobContainerPermissions containerPermissions;
containerPermissions = new BlobContainerPermissions();
container.uploadPermissions(containerPermissions);

// Upload an image file.
blob = container.getBlockBlobReference("image1.jpg");
File fileReference = new File("c:\\myimages\\image1.jpg");
blob.upload(new FileInputStream(fileReference), fileReference.length());
} catch (FileNotFoundException fileNotFoundException) {
System.out.print("FileNotFoundException encountered: ");
System.out.println(fileNotFoundException.getMessage());
System.exit(-1);
} catch (StorageException storageException) {
System.out.print("StorageException encountered: ");
System.out.println(storageException.getMessage());
System.exit(-1);
} catch (Exception e) {
System.out.print("Exception encountered: ");
System.out.println(e.getMessage());
System.exit(-1);
}

import com.microsoft.windowsazure.services.core.storage.*;
import com.microsoft.windowsazure.services.blob.client.*;

public class BlobSample {
public static final String storageConnectionString =
"DefaultEndpointsProtocol=http;" +
"AccountName=your_account_name;" +
"AccountKey= your_account_name";

public static void main(String[] args)
{
try
{
CloudStorageAccount account;
CloudBlobClient serviceClient;
CloudBlobContainer container;
CloudBlockBlob blob;

account = CloudStorageAccount.parse(storageConnectionString);
serviceClient = account.createCloudBlobClient();
// Container name must be lower case.
container = serviceClient.getContainerReference("blobsample");
container.createIfNotExist();

// Set anonymous access on the container.
BlobContainerPermissions containerPermissions;
containerPermissions = new BlobContainerPermissions();

// Upload an image file.
blob = container.getBlockBlobReference("image1.jpg");
File fileReference = new File ("c:\\myimages\\image1.jpg");
blob.upload(new FileInputStream(fileReference), fileReference.length());
}
catch (FileNotFoundException fileNotFoundException)
{
System.out.print("FileNotFoundException encountered: ");
System.out.println(fileNotFoundException.getMessage());
System.exit(-1);
}
catch (StorageException storageException)
{
System.out.print("StorageException encountered: ");
System.out.println(storageException.getMessage());
System.exit(-1);
}
catch (Exception e)
{
System.out.print("Exception encountered: ");
System.out.println(e.getMessage());
System.exit(-1);
}

}
}

}
```

#Need Help?

Expand Down
8 changes: 5 additions & 3 deletions microsoft-azure-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.8.0</version>
<version>0.8.3</version>
<executions>
<execution>
<phase>generate-sources</phase>
Expand All @@ -154,16 +154,18 @@
</executions>
<configuration>
<extension>true</extension>
<debug>true</debug>
<verbose>true</verbose>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version>0.6.0</version>
<version>0.6.4</version>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.0</version>
<version>0.6.4</version>
</plugin>
</plugins>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -195,13 +195,13 @@ ReceiveSubscriptionMessageResult receiveSubscriptionMessage(String topicPath, St
/**
* Creates a queue.
*
* @param queue
* A <code>Queue</code> object that represents the queue to create.
* @param queueInfo
* A <code>QueueInfo</code> object that represents the queue to create.
* @return A <code>CreateQueueResult</code> object that represents the result.
* @throws ServiceException
* If a service exception is encountered.
*/
CreateQueueResult createQueue(QueueInfo queue) throws ServiceException;
CreateQueueResult createQueue(QueueInfo queueInfo) throws ServiceException;

/**
* Deletes a queue.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
* Copyright 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.serviceBus.implementation;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/**
* Copyright 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.
Expand All @@ -15,29 +15,30 @@

package com.microsoft.windowsazure.services.serviceBus.implementation;

import com.microsoft.windowsazure.services.core.utils.ConnectionStringSyntaxException;

import java.net.URI;
import java.net.URISyntaxException;

import com.microsoft.windowsazure.services.core.utils.ConnectionStringSyntaxException;

/**
* Class that encapsulates all the various settings needed
* to connect to Service Bus, provided via either a
* connection string or via separate configuration variables.
* <p/>
* The connection string is looked for first, falling back
* to separate config values if not found.
* The connection string is looked for first, falling back to separate config values if not found.
*/
class ServiceBusConnectionSettings {
private String uri;
private String wrapUri;
private String wrapName;
private String wrapPassword;

public ServiceBusConnectionSettings(String connectionString, String uri, String wrapUri, String wrapName, String wrapPassword) throws ConnectionStringSyntaxException, URISyntaxException {
public ServiceBusConnectionSettings(String connectionString, String uri, String wrapUri, String wrapName,
String wrapPassword) throws ConnectionStringSyntaxException, URISyntaxException {
if (connectionString != null) {
parseConnectionString(connectionString);
} else {
}
else {
this.uri = uri;
this.wrapUri = wrapUri;
this.wrapName = wrapName;
Expand All @@ -61,7 +62,8 @@ public String getWrapPassword() {
return wrapPassword;
}

private boolean parseConnectionString(String connectionString) throws URISyntaxException, ConnectionStringSyntaxException {
private boolean parseConnectionString(String connectionString) throws URISyntaxException,
ConnectionStringSyntaxException {
ServiceBusConnectionString cs = new ServiceBusConnectionString(connectionString);
setUri(cs);
setWrapUri(cs);
Expand All @@ -79,8 +81,9 @@ private void setWrapUri(ServiceBusConnectionString connectionString) throws URIS
URI hostUri = new URI(uri);
String namespace = hostUri.getHost().split("\\.")[0];
wrapUri = "https://" + namespace + "-sb.accesscontrol.windows.net/WRAPv0.9";
} else {
wrapUri = connectionString.getStsEndpoint();
}
else {
wrapUri = connectionString.getStsEndpoint().replaceAll("\\/$", "") + "/WRAPv0.9";
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -267,9 +267,13 @@ public void deleteMessage(BrokeredMessage message) throws ServiceException {
}

@Override
public CreateQueueResult createQueue(QueueInfo entry) throws ServiceException {
return new CreateQueueResult(getResource().path(entry.getPath())
.type("application/atom+xml;type=entry;charset=utf-8").put(QueueInfo.class, entry));
public CreateQueueResult createQueue(QueueInfo queueInfo) throws ServiceException {
Builder webResourceBuilder = getResource().path(queueInfo.getPath()).type(
"application/atom+xml;type=entry;charset=utf-8");
if ((queueInfo.getForwardTo() != null) && !queueInfo.getForwardTo().isEmpty()) {
webResourceBuilder.header("ServiceBusSupplementaryAuthorization", queueInfo.getForwardTo());
}
return new CreateQueueResult(webResourceBuilder.put(QueueInfo.class, queueInfo));
}

@Override
Expand All @@ -296,8 +300,12 @@ public ListQueuesResult listQueues(ListQueuesOptions options) throws ServiceExce

@Override
public QueueInfo updateQueue(QueueInfo queueInfo) throws ServiceException {
return getResource().path(queueInfo.getPath()).type("application/atom+xml;type=entry;charset=utf-8")
.header("If-Match", "*").put(QueueInfo.class, queueInfo);
Builder webResourceBuilder = getResource().path(queueInfo.getPath())
.type("application/atom+xml;type=entry;charset=utf-8").header("If-Match", "*");
if ((queueInfo.getForwardTo() != null) && !queueInfo.getForwardTo().isEmpty()) {
webResourceBuilder.header("ServiceBusSupplementaryAuthorization", queueInfo.getForwardTo());
}
return webResourceBuilder.put(QueueInfo.class, queueInfo);
}

private WebResource listOptions(AbstractListOptions<?> options, WebResource path) {
Expand All @@ -307,6 +315,9 @@ private WebResource listOptions(AbstractListOptions<?> options, WebResource path
if (options.getSkip() != null) {
path = path.queryParam("$skip", options.getSkip().toString());
}
if (options.getFilter() != null) {
path = path.queryParam("$filter", options.getFilter());
}
return path;
}

Expand Down Expand Up @@ -345,10 +356,14 @@ public TopicInfo updateTopic(TopicInfo topicInfo) throws ServiceException {
}

@Override
public CreateSubscriptionResult createSubscription(String topicPath, SubscriptionInfo subscription) {
return new CreateSubscriptionResult(getResource().path(topicPath).path("subscriptions")
.path(subscription.getName()).type("application/atom+xml;type=entry;charset=utf-8")
.put(SubscriptionInfo.class, subscription));
public CreateSubscriptionResult createSubscription(String topicPath, SubscriptionInfo subscriptionInfo) {
Builder webResourceBuilder = getResource().path(topicPath).path("subscriptions")
.path(subscriptionInfo.getName()).type("application/atom+xml;type=entry;charset=utf-8");
if ((subscriptionInfo.getForwardTo() != null) && (!subscriptionInfo.getForwardTo().isEmpty())) {
webResourceBuilder.header("ServiceBusSupplementaryAuthorization", subscriptionInfo.getForwardTo());

}
return new CreateSubscriptionResult(webResourceBuilder.put(SubscriptionInfo.class, subscriptionInfo));
}

@Override
Expand Down Expand Up @@ -377,9 +392,13 @@ public ListSubscriptionsResult listSubscriptions(String topicPath, ListSubscript
@Override
public SubscriptionInfo updateSubscription(String topicName, SubscriptionInfo subscriptionInfo)
throws ServiceException {
return getResource().path(topicName).path("subscriptions").path(subscriptionInfo.getName())
.type("application/atom+xml;type=entry;charset=utf-8").header("If-Match", "*")
.put(SubscriptionInfo.class, subscriptionInfo);
Builder webResourceBuilder = getResource().path(topicName).path("subscriptions")
.path(subscriptionInfo.getName()).type("application/atom+xml;type=entry;charset=utf-8")
.header("If-Match", "*");
if ((subscriptionInfo.getForwardTo() != null) && !subscriptionInfo.getForwardTo().isEmpty()) {
webResourceBuilder.header("ServiceBusSupplementaryAuthorization", subscriptionInfo.getForwardTo());
}
return webResourceBuilder.put(SubscriptionInfo.class, subscriptionInfo);
}

@Override
Expand Down
Loading