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

Dev #41

Merged
merged 74 commits into from
Jun 26, 2013
Merged

Dev #41

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
6e5475c
Merge pull request #324 from gcheng/dev
Apr 12, 2013
17f6254
Merge pull request #329 from gcheng/dev
Apr 22, 2013
8886e89
Merge pull request #332 from gcheng/dev
Apr 24, 2013
37c0aab
Merge pull request #334 from gcheng/dev
Apr 30, 2013
671e917
message count details.
May 8, 2013
46c37e4
update for 0.4.3
guangyang May 9, 2013
4ebe62f
Merge pull request #338 from gcheng/dev
May 10, 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
0fcf775
Merge pull request #342 from WindowsAzure/dev
May 17, 2013
d85d0ff
Merge pull request #343 from gcheng/dev
May 17, 2013
f0609a8
add more integration tests for forward to feature.
May 17, 2013
eb11213
refactoring and documentation work.
May 18, 2013
36489bd
fix two scenario tests for CI machine.
May 20, 2013
aa4c680
Merge pull request #40 from gcheng/cibugfix
May 20, 2013
0487fcd
Merge pull request #344 from gcheng/release
May 20, 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
189c804
Merge branch 'dev' of https://github.com/guangyang/azure-sdk-for-java…
guangyang May 22, 2013
ab64e30
Merge branch 'release' of https://github.com/WindowsAzure/azure-sdk-f…
guangyang May 22, 2013
24b88f1
update pom.xml to 0.4.3
guangyang May 22, 2013
7f4c8e5
update changelog for 0.4.2 and 0.4.3
guangyang May 22, 2013
abd2999
update based on code review feedback
guangyang May 22, 2013
b095b91
Merge pull request #345 from guangyang/release
guangyang May 22, 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
10 changes: 10 additions & 0 deletions ChangeLog.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
2013.05.27 Version 0.4.3
* Added support for updating existing Queue/Topic/Subscription for Service Bus
* Added support for message lock renewal to support long running message processing for Service Bus
* Added new properties to Queue/Topic/Subscription/Rule for Service Bus
* Added support for rebinding content key for Media Services

2013.04.16 Version 0.4.2
* Fixed a bunch of GB18030 encoding issues
* Fixed a service bus issue when the locale is not UTC

2013.03.12 Version 0.4.1
* Added "Azure-SDK-For-Java/<version>" To User-Agent HTTP header
* Added connection string support for Service Bus
Expand Down
170 changes: 89 additions & 81 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,41 @@
#Windows Azure SDK for Java

This SDK allows you to build Windows Azure applications in Java that allow
you to take advantage of Azure scalable cloud computing resources: table and blob
storage, messaging through Service Bus.

For documentation please see the [Windows Azure Java Developer Center](http://www.windowsazure.com/en-us/develop/java/)
This project provides a client library in Java that makes it easy to consume Windows Azure services. For documentation please see the [Windows Azure Java Developer Center](http://www.windowsazure.com/en-us/develop/java/).

#Features
* Blob
* Create/Read/Update/Delete Blobs
* Queue
* Create/Delete Queues
* Insert/Peek Queue Messages
* Advanced Queue Operations
* Media Services
* Upload Media Files to Media Services
* Change the encoding on uploaded Media Services
* Provide streaming or download access to uploaded/transformed Media Files

* Storage
* Blob
* Create/Read/Update/Delete containers
* Create/Read/Update/Delete blobs
* Queue
* Create/Delete Queues
* Insert/Peek Queue Messages
* Advanced Queue Operations
* Table
* Create/Read/Update/Delete tables
* Create/Read/Update/Delete entities
* Batch operation
* Service Bus
* Use either the Queue or Topic/Subscription Model
* Queues
* Create/Read/Update/Delete queues
* Send/Receive/Unlock/Delete messages
* Renew message lock
* Topics
* Create/Read/Update/Delete topics
* Create/Read/Update/Delete subscriptions
* Create/Read/Update/Delete rules
* Send/Receive/Unlock/Delete messages
* Renew message lock
* Media Services
* Create/Read/Update/Delete access policies
* Create/Read/Update/Delete asset files
* Create/Read/Update/Delete assets
* Create/Read/Update/Delete/Rebind content keys
* Create/Read/Update/Cancel/Delete jobs
* Service Runtime
* Retrieve information about the state of your Azure Compute instances
* Table
* Manage Tables
* Table Entity Operations
* Entity Group Transactions (Batch)
* Retrieve information about the state of your Azure Compute instances


#Getting Started

Expand All @@ -42,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.2</version>
</dependency>
```xml
<dependency>
<groupId>com.microsoft.windowsazure</groupId>
<artifactId>microsoft-windowsazure-api</artifactId>
<version>0.4.2</version>
</dependency>
```

##Minimum Requirements

Expand All @@ -61,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
10 changes: 6 additions & 4 deletions microsoft-azure-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.microsoft.windowsazure</groupId>
<artifactId>microsoft-windowsazure-api</artifactId>
<version>0.4.2</version>
<version>0.4.3</version>
<packaging>jar</packaging>

<name>Microsoft Windows Azure Client API</name>
Expand Down 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";
}
}
}
Loading