From ab43525988def0fec74aa9b09a3737552bc24d22 Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Fri, 11 Nov 2011 13:59:39 -0800 Subject: [PATCH 01/17] Adding delegate methods to Topic --- .../services/serviceBus/Topic.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Topic.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Topic.java index af9b38bf36ca..38ca9a1100ca 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Topic.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Topic.java @@ -1,6 +1,7 @@ package com.microsoft.windowsazure.services.serviceBus; import javax.ws.rs.core.MediaType; +import javax.xml.datatype.Duration; import com.microsoft.windowsazure.services.serviceBus.implementation.Content; import com.microsoft.windowsazure.services.serviceBus.implementation.Entry; @@ -19,6 +20,11 @@ public Topic(Entry entry) { super(entry, entry.getContent().getTopicDescription()); } + public Topic(String name) { + this(); + setName(name); + } + public String getName() { return getEntry().getTitle(); } @@ -27,4 +33,54 @@ public Topic setName(String value) { getEntry().setTitle(value); return this; } + + public Duration getDefaultMessageTimeToLive() { + return getModel().getDefaultMessageTimeToLive(); + } + + public Topic setDefaultMessageTimeToLive(Duration value) { + getModel().setDefaultMessageTimeToLive(value); + return this; + } + + public Long getMaxSizeInMegabytes() { + return getModel().getMaxSizeInMegabytes(); + } + + public Topic setMaxSizeInMegabytes(Long value) { + getModel().setMaxSizeInMegabytes(value); + return this; + } + + public Boolean isRequiresDuplicateDetection() { + return getModel().isRequiresDuplicateDetection(); + } + + public Topic setRequiresDuplicateDetection(Boolean value) { + getModel().setRequiresDuplicateDetection(value); + return this; + } + + public Duration getDuplicateDetectionHistoryTimeWindow() { + return getModel().getDuplicateDetectionHistoryTimeWindow(); + } + + public Topic setDuplicateDetectionHistoryTimeWindow(Duration value) { + getModel().setDuplicateDetectionHistoryTimeWindow(value); + return this; + } + + public Boolean isEnableBatchedOperations() { + return getModel().isEnableBatchedOperations(); + } + + public Topic setEnableBatchedOperations(Boolean value) { + getModel().setEnableBatchedOperations(value); + return this; + } + + public Long getSizeInBytes() { + return getModel().getSizeInBytes(); + } + } From 455dded713c5120c112e613c48aa6e25eb74e40f Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Mon, 14 Nov 2011 12:24:52 -0800 Subject: [PATCH 02/17] Building out REST operations over Subscription entry --- .../serviceBus/ListSubscriptionsResult.java | 16 +++++ .../serviceBus/ServiceBusContract.java | 8 +-- .../serviceBus/ServiceBusService.java | 19 +++-- .../ServiceBusExceptionProcessor.java | 17 ++--- .../implementation/ServiceBusRestProxy.java | 48 +++++++++---- .../serviceBus/ServiceBusIntegrationTest.java | 71 +++++++++++++++++-- 6 files changed, 136 insertions(+), 43 deletions(-) create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ListSubscriptionsResult.java diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ListSubscriptionsResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ListSubscriptionsResult.java new file mode 100644 index 000000000000..263321fbe4a0 --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ListSubscriptionsResult.java @@ -0,0 +1,16 @@ +package com.microsoft.windowsazure.services.serviceBus; + +import java.util.List; + +public class ListSubscriptionsResult { + + private List items; + + List getItems() { + return items; + } + + public void setItems(List items) { + this.items = items; + } +} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java index 47eb5fd88e79..529fa605161d 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java @@ -40,13 +40,13 @@ public interface ServiceBusContract { ListTopicsResult listTopics() throws ServiceException; - void addSubscription(String topicName, String subscriptionName, Entry subscription) throws ServiceException; + Subscription createSubscription(String topicName, Subscription subscription) throws ServiceException; - void removeSubscription(String topicName, String subscriptionName) throws ServiceException; + void deleteSubscription(String topicName, String subscriptionName) throws ServiceException; - Entry getSubscription(String topicName, String subscriptionName) throws ServiceException; + Subscription getSubscription(String topicName, String subscriptionName) throws ServiceException; - Feed getSubscriptions(String topicName) throws ServiceException; + ListSubscriptionsResult listSubscriptions(String topicName) throws ServiceException; void addRule(String topicName, String subscriptionName, String ruleName, Entry rule) throws ServiceException; diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java index eb7abe5d4747..0bc16bfd2e59 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java @@ -2,11 +2,11 @@ import javax.inject.Inject; -import com.microsoft.windowsazure.services.serviceBus.implementation.Entry; -import com.microsoft.windowsazure.services.serviceBus.implementation.Feed; import com.microsoft.windowsazure.ServiceException; import com.microsoft.windowsazure.configuration.Configuration; import com.microsoft.windowsazure.http.ServiceFilter; +import com.microsoft.windowsazure.services.serviceBus.implementation.Entry; +import com.microsoft.windowsazure.services.serviceBus.implementation.Feed; public class ServiceBusService implements ServiceBusContract { final ServiceBusContract next; @@ -108,23 +108,22 @@ public ListTopicsResult listTopics() throws ServiceException { return next.listTopics(); } - public void addSubscription(String topicName, String subscriptionName, - Entry subscription) throws ServiceException { - next.addSubscription(topicName, subscriptionName, subscription); + public Subscription createSubscription(String topicName, Subscription subscription) throws ServiceException { + return next.createSubscription(topicName, subscription); } - public void removeSubscription(String topicName, String subscriptionName) + public void deleteSubscription(String topicName, String subscriptionName) throws ServiceException { - next.removeSubscription(topicName, subscriptionName); + next.deleteSubscription(topicName, subscriptionName); } - public Entry getSubscription(String topicName, String subscriptionName) + public Subscription getSubscription(String topicName, String subscriptionName) throws ServiceException { return next.getSubscription(topicName, subscriptionName); } - public Feed getSubscriptions(String topicName) throws ServiceException { - return next.getSubscriptions(topicName); + public ListSubscriptionsResult listSubscriptions(String topicName) throws ServiceException { + return next.listSubscriptions(topicName); } public void addRule(String topicName, String subscriptionName, diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java index 215c8a43455b..c22e6c42067b 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java @@ -8,11 +8,13 @@ import com.microsoft.windowsazure.ServiceException; import com.microsoft.windowsazure.http.ServiceFilter; import com.microsoft.windowsazure.services.serviceBus.ListQueuesResult; +import com.microsoft.windowsazure.services.serviceBus.ListSubscriptionsResult; import com.microsoft.windowsazure.services.serviceBus.ListTopicsResult; import com.microsoft.windowsazure.services.serviceBus.Message; import com.microsoft.windowsazure.services.serviceBus.Queue; import com.microsoft.windowsazure.services.serviceBus.ReceiveMessageOptions; import com.microsoft.windowsazure.services.serviceBus.ServiceBusContract; +import com.microsoft.windowsazure.services.serviceBus.Subscription; import com.microsoft.windowsazure.services.serviceBus.Topic; import com.microsoft.windowsazure.utils.ServiceExceptionFactory; import com.sun.jersey.api.client.ClientHandlerException; @@ -242,10 +244,9 @@ public ListTopicsResult listTopics() throws ServiceException { } } - public void addSubscription(String topicPath, String subscriptionName, - Entry subscription) throws ServiceException { + public Subscription createSubscription(String topicPath, Subscription subscription) throws ServiceException { try { - next.addSubscription(topicPath, subscriptionName, subscription); + return next.createSubscription(topicPath, subscription); } catch (UniformInterfaceException e) { throw processCatch(new ServiceException(e)); @@ -255,10 +256,10 @@ public void addSubscription(String topicPath, String subscriptionName, } } - public void removeSubscription(String topicPath, String subscriptionName) + public void deleteSubscription(String topicPath, String subscriptionName) throws ServiceException { try { - next.removeSubscription(topicPath, subscriptionName); + next.deleteSubscription(topicPath, subscriptionName); } catch (UniformInterfaceException e) { throw processCatch(new ServiceException(e)); @@ -268,7 +269,7 @@ public void removeSubscription(String topicPath, String subscriptionName) } } - public Entry getSubscription(String topicPath, String subscriptionName) + public Subscription getSubscription(String topicPath, String subscriptionName) throws ServiceException { try { return next.getSubscription(topicPath, subscriptionName); @@ -281,9 +282,9 @@ public Entry getSubscription(String topicPath, String subscriptionName) } } - public Feed getSubscriptions(String topicPath) throws ServiceException { + public ListSubscriptionsResult listSubscriptions(String topicPath) throws ServiceException { try { - return next.getSubscriptions(topicPath); + return next.listSubscriptions(topicPath); } catch (UniformInterfaceException e) { throw processCatch(new ServiceException(e)); diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java index 8f307f999ae1..0c1e11848d83 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java @@ -16,11 +16,13 @@ import com.microsoft.windowsazure.http.ClientFilterAdapter; import com.microsoft.windowsazure.http.ServiceFilter; import com.microsoft.windowsazure.services.serviceBus.ListQueuesResult; +import com.microsoft.windowsazure.services.serviceBus.ListSubscriptionsResult; import com.microsoft.windowsazure.services.serviceBus.ListTopicsResult; import com.microsoft.windowsazure.services.serviceBus.Message; import com.microsoft.windowsazure.services.serviceBus.Queue; import com.microsoft.windowsazure.services.serviceBus.ReceiveMessageOptions; import com.microsoft.windowsazure.services.serviceBus.ServiceBusContract; +import com.microsoft.windowsazure.services.serviceBus.Subscription; import com.microsoft.windowsazure.services.serviceBus.Topic; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; @@ -214,7 +216,7 @@ public ListQueuesResult listQueues() throws ServiceException { public Topic createTopic(Topic entry) throws ServiceException { return getResource() .path(entry.getName()) - .type("application/atom+xml")//;type=entry;charset=utf-8") + .type("application/atom+xml;type=entry;charset=utf-8") .put(Topic.class, entry); } @@ -243,25 +245,43 @@ public ListTopicsResult listTopics() throws ServiceException { return result; } - public void addSubscription(String topicPath, String subscriptionName, - Entry subscription) { - // TODO Auto-generated method stub - + public Subscription createSubscription(String topicPath, Subscription subscription) { + return getResource() + .path(topicPath) + .path("subscriptions") + .path(subscription.getName()) + .type("application/atom+xml;type=entry;charset=utf-8") + .put(Subscription.class, subscription); } - public void removeSubscription(String topicPath, String subscriptionName) { - // TODO Auto-generated method stub - + public void deleteSubscription(String topicPath, String subscriptionName) { + getResource() + .path(topicPath) + .path("subscriptions") + .path(subscriptionName) + .delete(); } - public Entry getSubscription(String topicPath, String subscriptionName) { - // TODO Auto-generated method stub - return null; + public Subscription getSubscription(String topicPath, String subscriptionName) { + return getResource() + .path(topicPath) + .path("subscriptions") + .path(subscriptionName) + .get(Subscription.class); } - public Feed getSubscriptions(String topicPath) { - // TODO Auto-generated method stub - return null; + public ListSubscriptionsResult listSubscriptions(String topicPath) { + Feed feed = getResource() + .path(topicPath) + .path("subscriptions") + .get(Feed.class); + ArrayList list = new ArrayList(); + for (Entry entry : feed.getEntries()) { + list.add(new Subscription(entry)); + } + ListSubscriptionsResult result = new ListSubscriptionsResult(); + result.setItems(list); + return result; } public void addRule(String topicPath, String subscriptionName, diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java index 8903f7b66cfa..65739474223f 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java @@ -15,13 +15,6 @@ import com.microsoft.windowsazure.http.ServiceFilter; import com.microsoft.windowsazure.http.ServiceFilter.Request; import com.microsoft.windowsazure.http.ServiceFilter.Response; -import com.microsoft.windowsazure.services.serviceBus.ListQueuesResult; -import com.microsoft.windowsazure.services.serviceBus.ListTopicsResult; -import com.microsoft.windowsazure.services.serviceBus.Message; -import com.microsoft.windowsazure.services.serviceBus.Queue; -import com.microsoft.windowsazure.services.serviceBus.ReceiveMessageOptions; -import com.microsoft.windowsazure.services.serviceBus.ServiceBusContract; -import com.microsoft.windowsazure.services.serviceBus.Topic; public class ServiceBusIntegrationTest extends IntegrationTestBase { @@ -246,4 +239,68 @@ public Response handle(Request request, Next next) { assertEquals(1, requests.size()); assertEquals(1, responses.size()); } + + @Test + public void subscriptionsCanBeCreatedOnTopics() throws Exception { + // Arrange + String topicName = "TestSubscriptionsCanBeCreatedOnTopics"; + service.createTopic(new Topic(topicName)); + + // Act + Subscription created = service.createSubscription(topicName, new Subscription("MySubscription")); + + // Assert + assertNotNull(created); + assertEquals("MySubscription", created.getName()); + } + + @Test + public void subscriptionsCanBeListed() throws Exception { + // Arrange + String topicName = "TestSubscriptionsCanBeListed"; + service.createTopic(new Topic(topicName)); + service.createSubscription(topicName, new Subscription("MySubscription2")); + + // Act + ListSubscriptionsResult result = service.listSubscriptions(topicName); + + // Assert + assertNotNull(result); + assertEquals(1, result.getItems().size()); + assertEquals("MySubscription2", result.getItems().get(0).getName()); + } + + @Test + public void subscriptionsDetailsMayBeFetched() throws Exception { + // Arrange + String topicName = "TestSubscriptionsDetailsMayBeFetched"; + service.createTopic(new Topic(topicName)); + service.createSubscription(topicName, new Subscription("MySubscription3")); + + // Act + Subscription result = service.getSubscription(topicName, "MySubscription3"); + + // Assert + assertNotNull(result); + assertEquals("MySubscription3", result.getName()); + } + + @Test + public void subscriptionsMayBeDeleted() throws Exception { + // Arrange + String topicName = "TestSubscriptionsMayBeDeleted"; + service.createTopic(new Topic(topicName)); + service.createSubscription(topicName, new Subscription("MySubscription4")); + service.createSubscription(topicName, new Subscription("MySubscription5")); + + // Act + service.deleteSubscription(topicName, "MySubscription4"); + + // Assert + ListSubscriptionsResult result = service.listSubscriptions(topicName); + assertNotNull(result); + assertEquals(1, result.getItems().size()); + assertEquals("MySubscription5", result.getItems().get(0).getName()); + + } } From 6b2c865560f524ec1c0ddbc7f7d4143c55db27ba Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Mon, 14 Nov 2011 12:28:17 -0800 Subject: [PATCH 03/17] Removing stateful messaging client This code is better as a sample --- .../services/serviceBus/Exports.java | 2 - .../serviceBus/client/MessageReceiver.java | 15 --- .../serviceBus/client/MessageSender.java | 8 -- .../serviceBus/client/MessageTransceiver.java | 5 - .../serviceBus/client/MessagingClient.java | 104 ------------------ .../MessagingClientIntegrationTest.java | 74 ------------- 6 files changed, 208 deletions(-) delete mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessageReceiver.java delete mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessageSender.java delete mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessageTransceiver.java delete mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessagingClient.java delete mode 100644 microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/client/MessagingClientIntegrationTest.java diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Exports.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Exports.java index fdce616e6d08..8c881ec5c4a6 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Exports.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Exports.java @@ -3,7 +3,6 @@ import java.util.Map; import com.microsoft.windowsazure.configuration.builder.Builder; -import com.microsoft.windowsazure.services.serviceBus.client.MessagingClient; import com.microsoft.windowsazure.services.serviceBus.implementation.BrokerPropertiesMapper; import com.microsoft.windowsazure.services.serviceBus.implementation.EntryModelProvider; import com.microsoft.windowsazure.services.serviceBus.implementation.MarshallerProvider; @@ -20,7 +19,6 @@ public void register(Builder.Registry registry) { registry.add(ServiceBusService.class); registry.add(ServiceBusExceptionProcessor.class); registry.add(ServiceBusRestProxy.class); - registry.add(MessagingClient.class); // alter jersey client config for serviceBus registry.alter(ClientConfig.class, new Builder.Alteration() { diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessageReceiver.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessageReceiver.java deleted file mode 100644 index 96268b4d2972..000000000000 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessageReceiver.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.microsoft.windowsazure.services.serviceBus.client; - -import com.microsoft.windowsazure.ServiceException; -import com.microsoft.windowsazure.services.serviceBus.Message; -import com.microsoft.windowsazure.services.serviceBus.ReceiveMessageOptions; - -public interface MessageReceiver { - Message receiveMessage() throws ServiceException; - - Message receiveMessage(ReceiveMessageOptions options) throws ServiceException; - - void unlockMessage(Message message) throws ServiceException; - - void deleteMessage(Message message) throws ServiceException; -} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessageSender.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessageSender.java deleted file mode 100644 index 13de652bc236..000000000000 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessageSender.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.microsoft.windowsazure.services.serviceBus.client; - -import com.microsoft.windowsazure.ServiceException; -import com.microsoft.windowsazure.services.serviceBus.Message; - -public interface MessageSender { - void sendMessage(Message message) throws ServiceException; -} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessageTransceiver.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessageTransceiver.java deleted file mode 100644 index dcc2c17029da..000000000000 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessageTransceiver.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.microsoft.windowsazure.services.serviceBus.client; - -public interface MessageTransceiver extends MessageSender, MessageReceiver { - -} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessagingClient.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessagingClient.java deleted file mode 100644 index c52c650e206e..000000000000 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/client/MessagingClient.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.microsoft.windowsazure.services.serviceBus.client; - -import javax.inject.Inject; - -import com.microsoft.windowsazure.ServiceException; -import com.microsoft.windowsazure.configuration.Configuration; -import com.microsoft.windowsazure.services.serviceBus.Message; -import com.microsoft.windowsazure.services.serviceBus.ReceiveMessageOptions; -import com.microsoft.windowsazure.services.serviceBus.ServiceBusContract; - -public class MessagingClient { - private ServiceBusContract service; - - public MessagingClient() throws Exception { - this.setService(Configuration.load().create(ServiceBusContract.class)); - } - - public MessagingClient(String profile) throws Exception { - this.setService(Configuration.load().create(profile, ServiceBusContract.class)); - } - - public MessagingClient(Configuration configuration) throws Exception { - this.setService(configuration.create(ServiceBusContract.class)); - } - - public MessagingClient(String profile, Configuration configuration) throws Exception { - this.setService(configuration.create(profile, ServiceBusContract.class)); - } - - @Inject - public MessagingClient(ServiceBusContract service) { - this.setService(service); - } - - public void setService(ServiceBusContract service) { - this.service = service; - } - - public ServiceBusContract getService() { - return service; - } - - public MessageTransceiver openQueue(String queueName) { - final String queue = queueName; - return new MessageTransceiver() { - - public void sendMessage(Message message) throws ServiceException { - service.sendQueueMessage(queue, message); - } - - public Message receiveMessage() throws ServiceException { - return receiveMessage(ReceiveMessageOptions.DEFAULT); - } - - public Message receiveMessage(ReceiveMessageOptions options) - throws ServiceException { - return service.receiveQueueMessage(queue, options); - } - - public void unlockMessage(Message message) throws ServiceException { - service.unlockMessage(message); - } - - public void deleteMessage(Message message) - throws ServiceException { - service.deleteMessage(message); - } - }; - } - - public MessageSender openTopic(String topicName) { - final String topic = topicName; - return new MessageSender() { - public void sendMessage(Message message) throws ServiceException { - service.sendQueueMessage(topic, message); - } - }; - } - - public MessageReceiver openSubscription(String topicName, String subscriptionName) { - final String topic = topicName; - final String subscription = subscriptionName; - return new MessageReceiver() { - - public Message receiveMessage() throws ServiceException { - return receiveMessage(ReceiveMessageOptions.DEFAULT); - } - - public Message receiveMessage(ReceiveMessageOptions options) - throws ServiceException { - return service.receiveSubscriptionMessage(topic, subscription, options); - } - - public void unlockMessage(Message message) throws ServiceException { - service.unlockMessage(message); - } - - public void deleteMessage(Message message) - throws ServiceException { - service.deleteMessage(message); - } - }; - } -} diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/client/MessagingClientIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/client/MessagingClientIntegrationTest.java deleted file mode 100644 index 02b2ad454002..000000000000 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/client/MessagingClientIntegrationTest.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.microsoft.windowsazure.services.serviceBus.client; - -import static org.junit.Assert.*; - -import org.junit.Before; -import org.junit.Test; - -import com.microsoft.windowsazure.services.serviceBus.IntegrationTestBase; -import com.microsoft.windowsazure.services.serviceBus.Message; -import com.microsoft.windowsazure.services.serviceBus.client.MessageReceiver; -import com.microsoft.windowsazure.services.serviceBus.client.MessageSender; -import com.microsoft.windowsazure.services.serviceBus.client.MessageTransceiver; -import com.microsoft.windowsazure.services.serviceBus.client.MessagingClient; - -public class MessagingClientIntegrationTest extends IntegrationTestBase { - - private MessagingClient messaging; - - @Before - public void createClient() throws Exception { - messaging = createConfiguration().create(MessagingClient.class); - } - - @Test - public void queueWillSendAndReceiveMessages() throws Exception { - // Arrange - MessageTransceiver port = messaging.openQueue("TestAlpha"); - Message messageOut = new Message("queueWillSendAndReceiveMessages"); - - // Act - port.sendMessage(messageOut); - Message messageIn = port.receiveMessage(); - - // Assert - assertNotSame(messageOut, messageIn); - - byte[] data = new byte[100]; - int size = messageIn.getBody().read(data); - assertEquals(31, size); - assertEquals("queueWillSendAndReceiveMessages", new String(data, 0, size)); - } - - @Test - public void queueIsSenderAndReceiver() throws Exception { - // Arrange - MessageSender sender = messaging.openQueue("TestAlpha"); - MessageReceiver receiver = messaging.openQueue("TestAlpha"); - Message messageOut = new Message("queueIsSenderAndReceiver"); - - // Act - sender.sendMessage(messageOut); - Message messageIn = receiver.receiveMessage(); - - // Assert - assertNotSame(messageOut, messageIn); - - byte[] data = new byte[100]; - int size = messageIn.getBody().read(data); - assertEquals(24, size); - assertEquals("queueIsSenderAndReceiver", new String(data, 0, size)); - } - - @Test - public void clientMayBeCreatedDirectly() throws Exception { - // Arrange - - // Act - MessagingClient mc = new MessagingClient(createConfiguration()); - mc.openQueue("TestAlpha").sendMessage(new Message("clientMayBeCreatedDirectly")); - - // Assert - } - -} From b61ffc436c7051d62d2230540e1dcbc48eff3041 Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Mon, 14 Nov 2011 14:15:10 -0800 Subject: [PATCH 04/17] Refactoring ServiceBusContract methods for review notes Standardizes result DTO class conventions Introduces serviceBus.models package for results and options --- .../serviceBus/ServiceBusContract.java | 33 +++++--- .../serviceBus/ServiceBusService.java | 32 +++++--- .../ServiceBusExceptionProcessor.java | 36 +++++---- .../implementation/ServiceBusRestProxy.java | 76 ++++++++++--------- .../serviceBus/models/CreateQueueResult.java | 21 +++++ .../models/CreateSubscriptionResult.java | 21 +++++ .../serviceBus/models/CreateTopicResult.java | 21 +++++ .../serviceBus/models/GetQueueResult.java | 21 +++++ .../models/GetSubscriptionResult.java | 21 +++++ .../serviceBus/models/GetTopicResult.java | 21 +++++ .../{ => models}/ListQueuesResult.java | 6 +- .../{ => models}/ListSubscriptionsResult.java | 6 +- .../{ => models}/ListTopicsResult.java | 6 +- .../{ => models}/ReceiveMessageOptions.java | 3 +- .../serviceBus/{ => models}/ReceiveMode.java | 2 +- .../models/ReceiveQueueMessageResult.java | 21 +++++ .../ReceiveSubscriptionMessageResult.java | 5 ++ .../serviceBus/IntegrationTestBase.java | 2 +- .../serviceBus/ServiceBusIntegrationTest.java | 35 +++++---- 19 files changed, 296 insertions(+), 93 deletions(-) create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateQueueResult.java create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateSubscriptionResult.java create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateTopicResult.java create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetQueueResult.java create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetSubscriptionResult.java create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetTopicResult.java rename microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/{ => models}/ListQueuesResult.java (55%) rename microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/{ => models}/ListSubscriptionsResult.java (55%) rename microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/{ => models}/ListTopicsResult.java (55%) rename microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/{ => models}/ReceiveMessageOptions.java (94%) rename microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/{ => models}/ReceiveMode.java (51%) create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveQueueMessageResult.java create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveSubscriptionMessageResult.java diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java index 529fa605161d..7c530fac5b4f 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java @@ -4,47 +4,60 @@ import com.microsoft.windowsazure.http.ServiceFilter; import com.microsoft.windowsazure.services.serviceBus.implementation.Entry; import com.microsoft.windowsazure.services.serviceBus.implementation.Feed; +import com.microsoft.windowsazure.services.serviceBus.models.CreateQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.CreateSubscriptionResult; +import com.microsoft.windowsazure.services.serviceBus.models.CreateTopicResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetSubscriptionResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetTopicResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; +import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; +import com.microsoft.windowsazure.services.serviceBus.models.ReceiveQueueMessageResult; +import com.microsoft.windowsazure.services.serviceBus.models.ReceiveSubscriptionMessageResult; public interface ServiceBusContract { ServiceBusContract withFilter(ServiceFilter filter); void sendQueueMessage(String queueName, Message message) throws ServiceException; - Message receiveQueueMessage(String queueName) throws ServiceException; + ReceiveQueueMessageResult receiveQueueMessage(String queueName) throws ServiceException; - Message receiveQueueMessage(String queueName, ReceiveMessageOptions options) throws ServiceException; + ReceiveQueueMessageResult receiveQueueMessage(String queueName, ReceiveMessageOptions options) throws ServiceException; void sendTopicMessage(String topicName, Message message) throws ServiceException; - Message receiveSubscriptionMessage(String topicName, String subscriptionName) throws ServiceException; + ReceiveSubscriptionMessageResult receiveSubscriptionMessage(String topicName, String subscriptionName) throws ServiceException; - Message receiveSubscriptionMessage(String topicName, String subscriptionName, ReceiveMessageOptions options) throws ServiceException; + ReceiveSubscriptionMessageResult receiveSubscriptionMessage(String topicName, String subscriptionName, ReceiveMessageOptions options) + throws ServiceException; void unlockMessage(Message message) throws ServiceException; void deleteMessage(Message message) throws ServiceException; - Queue createQueue(Queue queue) throws ServiceException; + CreateQueueResult createQueue(Queue queue) throws ServiceException; void deleteQueue(String queueName) throws ServiceException; - Queue getQueue(String queueName) throws ServiceException; + GetQueueResult getQueue(String queueName) throws ServiceException; ListQueuesResult listQueues() throws ServiceException; - Topic createTopic(Topic topic) throws ServiceException; + CreateTopicResult createTopic(Topic topic) throws ServiceException; void deleteTopic(String topicName) throws ServiceException; - Topic getTopic(String topicName) throws ServiceException; + GetTopicResult getTopic(String topicName) throws ServiceException; ListTopicsResult listTopics() throws ServiceException; - Subscription createSubscription(String topicName, Subscription subscription) throws ServiceException; + CreateSubscriptionResult createSubscription(String topicName, Subscription subscription) throws ServiceException; void deleteSubscription(String topicName, String subscriptionName) throws ServiceException; - Subscription getSubscription(String topicName, String subscriptionName) throws ServiceException; + GetSubscriptionResult getSubscription(String topicName, String subscriptionName) throws ServiceException; ListSubscriptionsResult listSubscriptions(String topicName) throws ServiceException; diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java index 0bc16bfd2e59..fb7863908b17 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java @@ -7,6 +7,18 @@ import com.microsoft.windowsazure.http.ServiceFilter; import com.microsoft.windowsazure.services.serviceBus.implementation.Entry; import com.microsoft.windowsazure.services.serviceBus.implementation.Feed; +import com.microsoft.windowsazure.services.serviceBus.models.CreateQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.CreateSubscriptionResult; +import com.microsoft.windowsazure.services.serviceBus.models.CreateTopicResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetSubscriptionResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetTopicResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; +import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; +import com.microsoft.windowsazure.services.serviceBus.models.ReceiveQueueMessageResult; +import com.microsoft.windowsazure.services.serviceBus.models.ReceiveSubscriptionMessageResult; public class ServiceBusService implements ServiceBusContract { final ServiceBusContract next; @@ -41,12 +53,12 @@ public void sendQueueMessage(String queueName, Message message) next.sendQueueMessage(queueName, message); } - public Message receiveQueueMessage(String queueName) + public ReceiveQueueMessageResult receiveQueueMessage(String queueName) throws ServiceException { return next.receiveQueueMessage(queueName); } - public Message receiveQueueMessage(String queueName, + public ReceiveQueueMessageResult receiveQueueMessage(String queueName, ReceiveMessageOptions options) throws ServiceException { return next.receiveQueueMessage(queueName, options); } @@ -56,12 +68,12 @@ public void sendTopicMessage(String topicName, Message message) next.sendTopicMessage(topicName, message); } - public Message receiveSubscriptionMessage(String topicName, + public ReceiveSubscriptionMessageResult receiveSubscriptionMessage(String topicName, String subscriptionName) throws ServiceException { return next.receiveSubscriptionMessage(topicName, subscriptionName); } - public Message receiveSubscriptionMessage(String topicName, + public ReceiveSubscriptionMessageResult receiveSubscriptionMessage(String topicName, String subscriptionName, ReceiveMessageOptions options) throws ServiceException { return next.receiveSubscriptionMessage(topicName, subscriptionName, @@ -76,7 +88,7 @@ public void deleteMessage(Message message) throws ServiceException { next.deleteMessage(message); } - public Queue createQueue(Queue queue) throws ServiceException { + public CreateQueueResult createQueue(Queue queue) throws ServiceException { return next.createQueue(queue); } @@ -84,7 +96,7 @@ public void deleteQueue(String queueName) throws ServiceException { next.deleteQueue(queueName); } - public Queue getQueue(String queueName) throws ServiceException { + public GetQueueResult getQueue(String queueName) throws ServiceException { return next.getQueue(queueName); } @@ -92,7 +104,7 @@ public ListQueuesResult listQueues() throws ServiceException { return next.listQueues(); } - public Topic createTopic(Topic topic) throws ServiceException { + public CreateTopicResult createTopic(Topic topic) throws ServiceException { return next.createTopic(topic); } @@ -100,7 +112,7 @@ public void deleteTopic(String topicName) throws ServiceException { next.deleteTopic(topicName); } - public Topic getTopic(String topicName) throws ServiceException { + public GetTopicResult getTopic(String topicName) throws ServiceException { return next.getTopic(topicName); } @@ -108,7 +120,7 @@ public ListTopicsResult listTopics() throws ServiceException { return next.listTopics(); } - public Subscription createSubscription(String topicName, Subscription subscription) throws ServiceException { + public CreateSubscriptionResult createSubscription(String topicName, Subscription subscription) throws ServiceException { return next.createSubscription(topicName, subscription); } @@ -117,7 +129,7 @@ public void deleteSubscription(String topicName, String subscriptionName) next.deleteSubscription(topicName, subscriptionName); } - public Subscription getSubscription(String topicName, String subscriptionName) + public GetSubscriptionResult getSubscription(String topicName, String subscriptionName) throws ServiceException { return next.getSubscription(topicName, subscriptionName); } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java index c22e6c42067b..e6b0272e02ce 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java @@ -7,15 +7,23 @@ import com.microsoft.windowsazure.ServiceException; import com.microsoft.windowsazure.http.ServiceFilter; -import com.microsoft.windowsazure.services.serviceBus.ListQueuesResult; -import com.microsoft.windowsazure.services.serviceBus.ListSubscriptionsResult; -import com.microsoft.windowsazure.services.serviceBus.ListTopicsResult; import com.microsoft.windowsazure.services.serviceBus.Message; import com.microsoft.windowsazure.services.serviceBus.Queue; -import com.microsoft.windowsazure.services.serviceBus.ReceiveMessageOptions; import com.microsoft.windowsazure.services.serviceBus.ServiceBusContract; import com.microsoft.windowsazure.services.serviceBus.Subscription; import com.microsoft.windowsazure.services.serviceBus.Topic; +import com.microsoft.windowsazure.services.serviceBus.models.CreateQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.CreateSubscriptionResult; +import com.microsoft.windowsazure.services.serviceBus.models.CreateTopicResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetSubscriptionResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetTopicResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; +import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; +import com.microsoft.windowsazure.services.serviceBus.models.ReceiveQueueMessageResult; +import com.microsoft.windowsazure.services.serviceBus.models.ReceiveSubscriptionMessageResult; import com.microsoft.windowsazure.utils.ServiceExceptionFactory; import com.sun.jersey.api.client.ClientHandlerException; import com.sun.jersey.api.client.UniformInterfaceException; @@ -56,7 +64,7 @@ public void sendQueueMessage(String path, Message message) } } - public Message receiveQueueMessage(String queueName) + public ReceiveQueueMessageResult receiveQueueMessage(String queueName) throws ServiceException { try { return next.receiveQueueMessage(queueName); @@ -69,7 +77,7 @@ public Message receiveQueueMessage(String queueName) } } - public Message receiveQueueMessage(String queueName, + public ReceiveQueueMessageResult receiveQueueMessage(String queueName, ReceiveMessageOptions options) throws ServiceException { try { return next.receiveQueueMessage(queueName, options); @@ -95,7 +103,7 @@ public void sendTopicMessage(String path, Message message) } } - public Message receiveSubscriptionMessage(String topicName, + public ReceiveSubscriptionMessageResult receiveSubscriptionMessage(String topicName, String subscriptionName) throws ServiceException { try { return next.receiveSubscriptionMessage(topicName, @@ -109,7 +117,7 @@ public Message receiveSubscriptionMessage(String topicName, } } - public Message receiveSubscriptionMessage(String topicName, + public ReceiveSubscriptionMessageResult receiveSubscriptionMessage(String topicName, String subscriptionName, ReceiveMessageOptions options) throws ServiceException { try { @@ -148,7 +156,7 @@ public void deleteMessage(Message message) throws ServiceException { } } - public Queue createQueue(Queue queue) throws ServiceException { + public CreateQueueResult createQueue(Queue queue) throws ServiceException { try { return next.createQueue(queue); } @@ -172,7 +180,7 @@ public void deleteQueue(String queuePath) throws ServiceException { } } - public Queue getQueue(String queuePath) throws ServiceException { + public GetQueueResult getQueue(String queuePath) throws ServiceException { try { return next.getQueue(queuePath); } @@ -196,7 +204,7 @@ public ListQueuesResult listQueues() throws ServiceException { } } - public Topic createTopic(Topic topic) throws ServiceException { + public CreateTopicResult createTopic(Topic topic) throws ServiceException { try { return next.createTopic(topic); } @@ -220,7 +228,7 @@ public void deleteTopic(String topicPath) throws ServiceException { } } - public Topic getTopic(String topicPath) throws ServiceException { + public GetTopicResult getTopic(String topicPath) throws ServiceException { try { return next.getTopic(topicPath); } @@ -244,7 +252,7 @@ public ListTopicsResult listTopics() throws ServiceException { } } - public Subscription createSubscription(String topicPath, Subscription subscription) throws ServiceException { + public CreateSubscriptionResult createSubscription(String topicPath, Subscription subscription) throws ServiceException { try { return next.createSubscription(topicPath, subscription); } @@ -269,7 +277,7 @@ public void deleteSubscription(String topicPath, String subscriptionName) } } - public Subscription getSubscription(String topicPath, String subscriptionName) + public GetSubscriptionResult getSubscription(String topicPath, String subscriptionName) throws ServiceException { try { return next.getSubscription(topicPath, subscriptionName); diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java index 0c1e11848d83..f7f6d13181b4 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java @@ -15,15 +15,23 @@ import com.microsoft.windowsazure.auth.wrap.WrapFilter; import com.microsoft.windowsazure.http.ClientFilterAdapter; import com.microsoft.windowsazure.http.ServiceFilter; -import com.microsoft.windowsazure.services.serviceBus.ListQueuesResult; -import com.microsoft.windowsazure.services.serviceBus.ListSubscriptionsResult; -import com.microsoft.windowsazure.services.serviceBus.ListTopicsResult; import com.microsoft.windowsazure.services.serviceBus.Message; import com.microsoft.windowsazure.services.serviceBus.Queue; -import com.microsoft.windowsazure.services.serviceBus.ReceiveMessageOptions; import com.microsoft.windowsazure.services.serviceBus.ServiceBusContract; import com.microsoft.windowsazure.services.serviceBus.Subscription; import com.microsoft.windowsazure.services.serviceBus.Topic; +import com.microsoft.windowsazure.services.serviceBus.models.CreateQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.CreateSubscriptionResult; +import com.microsoft.windowsazure.services.serviceBus.models.CreateTopicResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetSubscriptionResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetTopicResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; +import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; +import com.microsoft.windowsazure.services.serviceBus.models.ReceiveQueueMessageResult; +import com.microsoft.windowsazure.services.serviceBus.models.ReceiveSubscriptionMessageResult; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; @@ -105,12 +113,12 @@ public void sendQueueMessage(String path, Message message) throws ServiceExcepti sendMessage(path, message); } - public Message receiveQueueMessage(String queueName) + public ReceiveQueueMessageResult receiveQueueMessage(String queueName) throws ServiceException { return receiveQueueMessage(queueName, ReceiveMessageOptions.DEFAULT); } - public Message receiveQueueMessage(String queuePath, ReceiveMessageOptions options) throws ServiceException { + public ReceiveQueueMessageResult receiveQueueMessage(String queuePath, ReceiveMessageOptions options) throws ServiceException { WebResource resource = getResource() .path(queuePath) @@ -137,32 +145,32 @@ else if (options.isPeekLock()) { MediaType contentType = clientResult.getType(); Date date = clientResult.getResponseDate(); - Message result = new Message(); + Message message = new Message(); if (brokerProperties != null) { - result.setProperties(mapper.fromString(brokerProperties)); + message.setProperties(mapper.fromString(brokerProperties)); } if (contentType != null) { - result.setContentType(contentType.toString()); + message.setContentType(contentType.toString()); } if (location != null) { - result.getProperties().setLockLocation(location); + message.getProperties().setLockLocation(location); } - result.setDate(date); - result.setBody(clientResult.getEntityInputStream()); - return result; + message.setDate(date); + message.setBody(clientResult.getEntityInputStream()); + return new ReceiveQueueMessageResult(message); } public void sendTopicMessage(String topicName, Message message) throws ServiceException { sendMessage(topicName, message); } - public Message receiveSubscriptionMessage(String topicName, + public ReceiveSubscriptionMessageResult receiveSubscriptionMessage(String topicName, String subscriptionName) throws ServiceException { // TODO Auto-generated method stub return null; } - public Message receiveSubscriptionMessage(String topicName, + public ReceiveSubscriptionMessageResult receiveSubscriptionMessage(String topicName, String subscriptionName, ReceiveMessageOptions options) throws ServiceException { // TODO Auto-generated method stub @@ -181,11 +189,11 @@ public void deleteMessage(Message message) throws ServiceException { .delete(); } - public Queue createQueue(Queue entry) throws ServiceException { - return getResource() + public CreateQueueResult createQueue(Queue entry) throws ServiceException { + return new CreateQueueResult(getResource() .path(entry.getName()) - .type("application/atom+xml")//;type=entry;charset=utf-8") - .put(Queue.class, entry); + .type("application/atom+xml;type=entry;charset=utf-8") + .put(Queue.class, entry)); } public void deleteQueue(String queuePath) throws ServiceException { @@ -194,10 +202,10 @@ public void deleteQueue(String queuePath) throws ServiceException { .delete(); } - public Queue getQueue(String queuePath) throws ServiceException { - return getResource() + public GetQueueResult getQueue(String queuePath) throws ServiceException { + return new GetQueueResult(getResource() .path(queuePath) - .get(Queue.class); + .get(Queue.class)); } public ListQueuesResult listQueues() throws ServiceException { @@ -213,11 +221,11 @@ public ListQueuesResult listQueues() throws ServiceException { return result; } - public Topic createTopic(Topic entry) throws ServiceException { - return getResource() + public CreateTopicResult createTopic(Topic entry) throws ServiceException { + return new CreateTopicResult(getResource() .path(entry.getName()) .type("application/atom+xml;type=entry;charset=utf-8") - .put(Topic.class, entry); + .put(Topic.class, entry)); } public void deleteTopic(String TopicPath) throws ServiceException { @@ -226,10 +234,10 @@ public void deleteTopic(String TopicPath) throws ServiceException { .delete(); } - public Topic getTopic(String TopicPath) throws ServiceException { - return getResource() + public GetTopicResult getTopic(String TopicPath) throws ServiceException { + return new GetTopicResult(getResource() .path(TopicPath) - .get(Topic.class); + .get(Topic.class)); } public ListTopicsResult listTopics() throws ServiceException { @@ -245,13 +253,13 @@ public ListTopicsResult listTopics() throws ServiceException { return result; } - public Subscription createSubscription(String topicPath, Subscription subscription) { - return getResource() + public CreateSubscriptionResult createSubscription(String topicPath, Subscription subscription) { + return new CreateSubscriptionResult(getResource() .path(topicPath) .path("subscriptions") .path(subscription.getName()) .type("application/atom+xml;type=entry;charset=utf-8") - .put(Subscription.class, subscription); + .put(Subscription.class, subscription)); } public void deleteSubscription(String topicPath, String subscriptionName) { @@ -262,12 +270,12 @@ public void deleteSubscription(String topicPath, String subscriptionName) { .delete(); } - public Subscription getSubscription(String topicPath, String subscriptionName) { - return getResource() + public GetSubscriptionResult getSubscription(String topicPath, String subscriptionName) { + return new GetSubscriptionResult(getResource() .path(topicPath) .path("subscriptions") .path(subscriptionName) - .get(Subscription.class); + .get(Subscription.class)); } public ListSubscriptionsResult listSubscriptions(String topicPath) { diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateQueueResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateQueueResult.java new file mode 100644 index 000000000000..f8eaa0349f6f --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateQueueResult.java @@ -0,0 +1,21 @@ +package com.microsoft.windowsazure.services.serviceBus.models; + +import com.microsoft.windowsazure.services.serviceBus.Queue; + +public class CreateQueueResult { + + private Queue value; + + public CreateQueueResult(Queue value) { + this.setValue(value); + } + + public void setValue(Queue value) { + this.value = value; + } + + public Queue getValue() { + return value; + } + +} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateSubscriptionResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateSubscriptionResult.java new file mode 100644 index 000000000000..1e600e6e0221 --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateSubscriptionResult.java @@ -0,0 +1,21 @@ +package com.microsoft.windowsazure.services.serviceBus.models; + +import com.microsoft.windowsazure.services.serviceBus.Subscription; + +public class CreateSubscriptionResult { + + private Subscription value; + + public CreateSubscriptionResult(Subscription value) { + this.setValue(value); + } + + public void setValue(Subscription value) { + this.value = value; + } + + public Subscription getValue() { + return value; + } + +} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateTopicResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateTopicResult.java new file mode 100644 index 000000000000..0e5cf9a04505 --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateTopicResult.java @@ -0,0 +1,21 @@ +package com.microsoft.windowsazure.services.serviceBus.models; + +import com.microsoft.windowsazure.services.serviceBus.Topic; + +public class CreateTopicResult { + + private Topic value; + + public CreateTopicResult(Topic value) { + this.setValue(value); + } + + public void setValue(Topic value) { + this.value = value; + } + + public Topic getValue() { + return value; + } + +} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetQueueResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetQueueResult.java new file mode 100644 index 000000000000..fd6032caf333 --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetQueueResult.java @@ -0,0 +1,21 @@ +package com.microsoft.windowsazure.services.serviceBus.models; + +import com.microsoft.windowsazure.services.serviceBus.Queue; + +public class GetQueueResult { + + private Queue value; + + public GetQueueResult(Queue value) { + this.setValue(value); + } + + public void setValue(Queue value) { + this.value = value; + } + + public Queue getValue() { + return value; + } + +} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetSubscriptionResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetSubscriptionResult.java new file mode 100644 index 000000000000..fd3f4ad17260 --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetSubscriptionResult.java @@ -0,0 +1,21 @@ +package com.microsoft.windowsazure.services.serviceBus.models; + +import com.microsoft.windowsazure.services.serviceBus.Subscription; + +public class GetSubscriptionResult { + + private Subscription value; + + public GetSubscriptionResult(Subscription value) { + this.setValue(value); + } + + public void setValue(Subscription value) { + this.value = value; + } + + public Subscription getValue() { + return value; + } + +} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetTopicResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetTopicResult.java new file mode 100644 index 000000000000..eea050fc6c22 --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetTopicResult.java @@ -0,0 +1,21 @@ +package com.microsoft.windowsazure.services.serviceBus.models; + +import com.microsoft.windowsazure.services.serviceBus.Topic; + +public class GetTopicResult { + + private Topic value; + + public GetTopicResult(Topic value) { + this.setValue(value); + } + + public void setValue(Topic value) { + this.value = value; + } + + public Topic getValue() { + return value; + } + +} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ListQueuesResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListQueuesResult.java similarity index 55% rename from microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ListQueuesResult.java rename to microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListQueuesResult.java index a6af5fd05c4e..6b2c4812ebcc 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ListQueuesResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListQueuesResult.java @@ -1,12 +1,14 @@ -package com.microsoft.windowsazure.services.serviceBus; +package com.microsoft.windowsazure.services.serviceBus.models; import java.util.List; +import com.microsoft.windowsazure.services.serviceBus.Queue; + public class ListQueuesResult { private List items; - List getItems() { + public List getItems() { return items; } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ListSubscriptionsResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListSubscriptionsResult.java similarity index 55% rename from microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ListSubscriptionsResult.java rename to microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListSubscriptionsResult.java index 263321fbe4a0..4fa900852cc9 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ListSubscriptionsResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListSubscriptionsResult.java @@ -1,12 +1,14 @@ -package com.microsoft.windowsazure.services.serviceBus; +package com.microsoft.windowsazure.services.serviceBus.models; import java.util.List; +import com.microsoft.windowsazure.services.serviceBus.Subscription; + public class ListSubscriptionsResult { private List items; - List getItems() { + public List getItems() { return items; } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ListTopicsResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListTopicsResult.java similarity index 55% rename from microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ListTopicsResult.java rename to microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListTopicsResult.java index 25476ebc85b1..64d3b468e8ea 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ListTopicsResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListTopicsResult.java @@ -1,12 +1,14 @@ -package com.microsoft.windowsazure.services.serviceBus; +package com.microsoft.windowsazure.services.serviceBus.models; import java.util.List; +import com.microsoft.windowsazure.services.serviceBus.Topic; + public class ListTopicsResult { private List items; - List getItems() { + public List getItems() { return items; } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ReceiveMessageOptions.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveMessageOptions.java similarity index 94% rename from microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ReceiveMessageOptions.java rename to microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveMessageOptions.java index f78b77f11083..f9bda855f4ea 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ReceiveMessageOptions.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveMessageOptions.java @@ -1,4 +1,5 @@ -package com.microsoft.windowsazure.services.serviceBus; +package com.microsoft.windowsazure.services.serviceBus.models; + public class ReceiveMessageOptions { Integer timeout; diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ReceiveMode.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveMode.java similarity index 51% rename from microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ReceiveMode.java rename to microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveMode.java index 10ae6c513044..195c2fa8ad7c 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ReceiveMode.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveMode.java @@ -1,4 +1,4 @@ -package com.microsoft.windowsazure.services.serviceBus; +package com.microsoft.windowsazure.services.serviceBus.models; public enum ReceiveMode { PEEK_LOCK, diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveQueueMessageResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveQueueMessageResult.java new file mode 100644 index 000000000000..d7a6fb03c6ff --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveQueueMessageResult.java @@ -0,0 +1,21 @@ +package com.microsoft.windowsazure.services.serviceBus.models; + +import com.microsoft.windowsazure.services.serviceBus.Message; + +public class ReceiveQueueMessageResult { + + private Message value; + + public ReceiveQueueMessageResult(Message value) { + this.setValue(value); + } + + public void setValue(Message value) { + this.value = value; + } + + public Message getValue() { + return value; + } + +} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveSubscriptionMessageResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveSubscriptionMessageResult.java new file mode 100644 index 000000000000..f886781c427a --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveSubscriptionMessageResult.java @@ -0,0 +1,5 @@ +package com.microsoft.windowsazure.services.serviceBus.models; + +public class ReceiveSubscriptionMessageResult { + +} diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/IntegrationTestBase.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/IntegrationTestBase.java index 1ad04051f637..d5a1a1bd2d57 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/IntegrationTestBase.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/IntegrationTestBase.java @@ -7,10 +7,10 @@ import com.microsoft.windowsazure.configuration.Configuration; import com.microsoft.windowsazure.services.serviceBus.Queue; -import com.microsoft.windowsazure.services.serviceBus.ReceiveMessageOptions; import com.microsoft.windowsazure.services.serviceBus.ServiceBusConfiguration; import com.microsoft.windowsazure.services.serviceBus.ServiceBusContract; import com.microsoft.windowsazure.services.serviceBus.Topic; +import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; public abstract class IntegrationTestBase { protected Configuration createConfiguration() { diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java index 65739474223f..d40a38dfbff1 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java @@ -15,6 +15,10 @@ import com.microsoft.windowsazure.http.ServiceFilter; import com.microsoft.windowsazure.http.ServiceFilter.Request; import com.microsoft.windowsazure.http.ServiceFilter.Response; +import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; +import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; public class ServiceBusIntegrationTest extends IntegrationTestBase { @@ -35,7 +39,7 @@ public void fetchQueueAndListQueuesWorks() throws Exception { // Arrange // Act - Queue entry = service.getQueue("TestAlpha"); + Queue entry = service.getQueue("TestAlpha").getValue(); ListQueuesResult feed = service.listQueues(); // Assert @@ -49,7 +53,7 @@ public void createQueueWorks() throws Exception { // Act Queue queue = new Queue("TestCreateQueueWorks").setMaxSizeInMegabytes(1024L); - Queue saved = service.createQueue(queue); + Queue saved = service.createQueue(queue).getValue(); // Assert assertNotNull(saved); @@ -87,7 +91,7 @@ public void receiveMessageWorks() throws Exception { service.sendQueueMessage(queueName, new Message("Hello World")); // Act - Message message = service.receiveQueueMessage(queueName, RECEIVE_AND_DELETE_5_SECONDS); + Message message = service.receiveQueueMessage(queueName, RECEIVE_AND_DELETE_5_SECONDS).getValue(); byte[] data = new byte[100]; int size = message.getBody().read(data); @@ -104,7 +108,7 @@ public void peekLockMessageWorks() throws Exception { service.sendQueueMessage(queueName, new Message("Hello Again")); // Act - Message message = service.receiveQueueMessage(queueName, PEEK_LOCK_5_SECONDS); + Message message = service.receiveQueueMessage(queueName, PEEK_LOCK_5_SECONDS).getValue(); // Assert byte[] data = new byte[100]; @@ -119,7 +123,7 @@ public void peekLockedMessageCanBeCompleted() throws Exception { String queueName = "TestPeekLockedMessageCanBeCompleted"; service.createQueue(new Queue(queueName)); service.sendQueueMessage(queueName, new Message("Hello Again")); - Message message = service.receiveQueueMessage(queueName, PEEK_LOCK_5_SECONDS); + Message message = service.receiveQueueMessage(queueName, PEEK_LOCK_5_SECONDS).getValue(); // Act String lockToken = message.getLockToken(); @@ -140,14 +144,14 @@ public void peekLockedMessageCanBeUnlocked() throws Exception { String queueName = "TestPeekLockedMessageCanBeUnlocked"; service.createQueue(new Queue(queueName)); service.sendQueueMessage(queueName, new Message("Hello Again")); - Message peekedMessage = service.receiveQueueMessage(queueName, PEEK_LOCK_5_SECONDS); + Message peekedMessage = service.receiveQueueMessage(queueName, PEEK_LOCK_5_SECONDS).getValue(); // Act String lockToken = peekedMessage.getLockToken(); Date lockedUntil = peekedMessage.getLockedUntilUtc(); service.unlockMessage(peekedMessage); - Message receivedMessage = service.receiveQueueMessage(queueName, RECEIVE_AND_DELETE_5_SECONDS); + Message receivedMessage = service.receiveQueueMessage(queueName, RECEIVE_AND_DELETE_5_SECONDS).getValue(); // Assert assertNotNull(lockToken); @@ -162,14 +166,14 @@ public void peekLockedMessageCanBeDeleted() throws Exception { String queueName = "TestPeekLockedMessageCanBeDeleted"; service.createQueue(new Queue(queueName)); service.sendQueueMessage(queueName, new Message("Hello Again")); - Message peekedMessage = service.receiveQueueMessage(queueName, PEEK_LOCK_5_SECONDS); + Message peekedMessage = service.receiveQueueMessage(queueName, PEEK_LOCK_5_SECONDS).getValue(); // Act String lockToken = peekedMessage.getLockToken(); Date lockedUntil = peekedMessage.getLockedUntilUtc(); service.deleteMessage(peekedMessage); - Message receivedMessage = service.receiveQueueMessage(queueName, RECEIVE_AND_DELETE_5_SECONDS); + Message receivedMessage = service.receiveQueueMessage(queueName, RECEIVE_AND_DELETE_5_SECONDS).getValue(); // Assert assertNotNull(lockToken); @@ -188,7 +192,7 @@ public void contentTypePassesThrough() throws Exception { service.sendQueueMessage(queueName, new Message("Hello Again").setContentType("text/xml")); - Message message = service.receiveQueueMessage(queueName, RECEIVE_AND_DELETE_5_SECONDS); + Message message = service.receiveQueueMessage(queueName, RECEIVE_AND_DELETE_5_SECONDS).getValue(); // Assert assertNotNull(message); @@ -201,9 +205,9 @@ public void topicCanBeCreatedListedFetchedAndDeleted() throws ServiceException { String topicName = "TestTopicCanBeCreatedListedFetchedAndDeleted"; // Act - Topic created = service.createTopic(new Topic().setName(topicName)); + Topic created = service.createTopic(new Topic().setName(topicName)).getValue(); ListTopicsResult listed = service.listTopics(); - Topic fetched = service.getTopic(topicName); + Topic fetched = service.getTopic(topicName).getValue(); service.deleteTopic(topicName); ListTopicsResult listed2 = service.listTopics(); @@ -232,7 +236,7 @@ public Response handle(Request request, Next next) { }); // Act - Queue created = filtered.createQueue(new Queue("TestFilterCanSeeAndChangeRequestOrResponse")); + Queue created = filtered.createQueue(new Queue("TestFilterCanSeeAndChangeRequestOrResponse")).getValue(); // Assert assertNotNull(created); @@ -247,7 +251,7 @@ public void subscriptionsCanBeCreatedOnTopics() throws Exception { service.createTopic(new Topic(topicName)); // Act - Subscription created = service.createSubscription(topicName, new Subscription("MySubscription")); + Subscription created = service.createSubscription(topicName, new Subscription("MySubscription")).getValue(); // Assert assertNotNull(created); @@ -278,7 +282,7 @@ public void subscriptionsDetailsMayBeFetched() throws Exception { service.createSubscription(topicName, new Subscription("MySubscription3")); // Act - Subscription result = service.getSubscription(topicName, "MySubscription3"); + Subscription result = service.getSubscription(topicName, "MySubscription3").getValue(); // Assert assertNotNull(result); @@ -301,6 +305,5 @@ public void subscriptionsMayBeDeleted() throws Exception { assertNotNull(result); assertEquals(1, result.getItems().size()); assertEquals("MySubscription5", result.getItems().get(0).getName()); - } } From 656fe6c364d71ba5d6fa094bfa0b37021fcdc1b4 Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Mon, 14 Nov 2011 14:54:43 -0800 Subject: [PATCH 05/17] Moving domain objects into models package --- .../services/serviceBus/ServiceBusContract.java | 4 ++++ .../services/serviceBus/ServiceBusService.java | 4 ++++ .../microsoft/windowsazure/services/serviceBus/Util.java | 2 ++ .../implementation/ServiceBusExceptionProcessor.java | 8 ++++---- .../serviceBus/implementation/ServiceBusRestProxy.java | 8 ++++---- .../services/serviceBus/models/CreateQueueResult.java | 1 - .../serviceBus/models/CreateSubscriptionResult.java | 1 - .../services/serviceBus/models/CreateTopicResult.java | 1 - .../services/serviceBus/models/GetQueueResult.java | 1 - .../services/serviceBus/models/GetSubscriptionResult.java | 1 - .../services/serviceBus/models/GetTopicResult.java | 1 - .../services/serviceBus/models/ListQueuesResult.java | 1 - .../serviceBus/models/ListSubscriptionsResult.java | 1 - .../services/serviceBus/models/ListTopicsResult.java | 1 - .../services/serviceBus/{ => models}/Message.java | 2 +- .../services/serviceBus/{ => models}/Queue.java | 2 +- .../serviceBus/models/ReceiveQueueMessageResult.java | 1 - .../services/serviceBus/{ => models}/Subscription.java | 2 +- .../services/serviceBus/{ => models}/Topic.java | 2 +- .../services/serviceBus/IntegrationTestBase.java | 4 ++-- .../services/serviceBus/ServiceBusIntegrationTest.java | 4 ++++ 21 files changed, 28 insertions(+), 24 deletions(-) rename microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/{ => models}/Message.java (99%) rename microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/{ => models}/Queue.java (98%) rename microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/{ => models}/Subscription.java (98%) rename microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/{ => models}/Topic.java (97%) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java index 7c530fac5b4f..dc7f0deeade1 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java @@ -13,9 +13,13 @@ import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; +import com.microsoft.windowsazure.services.serviceBus.models.Message; +import com.microsoft.windowsazure.services.serviceBus.models.Queue; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveQueueMessageResult; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveSubscriptionMessageResult; +import com.microsoft.windowsazure.services.serviceBus.models.Subscription; +import com.microsoft.windowsazure.services.serviceBus.models.Topic; public interface ServiceBusContract { ServiceBusContract withFilter(ServiceFilter filter); diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java index fb7863908b17..45ee452ffeae 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java @@ -16,9 +16,13 @@ import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; +import com.microsoft.windowsazure.services.serviceBus.models.Message; +import com.microsoft.windowsazure.services.serviceBus.models.Queue; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveQueueMessageResult; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveSubscriptionMessageResult; +import com.microsoft.windowsazure.services.serviceBus.models.Subscription; +import com.microsoft.windowsazure.services.serviceBus.models.Topic; public class ServiceBusService implements ServiceBusContract { final ServiceBusContract next; diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Util.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Util.java index 4c7e9c147493..295909d50d11 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Util.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Util.java @@ -1,6 +1,8 @@ package com.microsoft.windowsazure.services.serviceBus; import com.microsoft.windowsazure.ServiceException; +import com.microsoft.windowsazure.services.serviceBus.models.Queue; +import com.microsoft.windowsazure.services.serviceBus.models.Topic; public class Util { public static Iterable iterateQueues(ServiceBusContract service) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java index e6b0272e02ce..4a9fb4b6a4f9 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java @@ -7,11 +7,7 @@ import com.microsoft.windowsazure.ServiceException; import com.microsoft.windowsazure.http.ServiceFilter; -import com.microsoft.windowsazure.services.serviceBus.Message; -import com.microsoft.windowsazure.services.serviceBus.Queue; import com.microsoft.windowsazure.services.serviceBus.ServiceBusContract; -import com.microsoft.windowsazure.services.serviceBus.Subscription; -import com.microsoft.windowsazure.services.serviceBus.Topic; import com.microsoft.windowsazure.services.serviceBus.models.CreateQueueResult; import com.microsoft.windowsazure.services.serviceBus.models.CreateSubscriptionResult; import com.microsoft.windowsazure.services.serviceBus.models.CreateTopicResult; @@ -21,9 +17,13 @@ import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; +import com.microsoft.windowsazure.services.serviceBus.models.Message; +import com.microsoft.windowsazure.services.serviceBus.models.Queue; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveQueueMessageResult; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveSubscriptionMessageResult; +import com.microsoft.windowsazure.services.serviceBus.models.Subscription; +import com.microsoft.windowsazure.services.serviceBus.models.Topic; import com.microsoft.windowsazure.utils.ServiceExceptionFactory; import com.sun.jersey.api.client.ClientHandlerException; import com.sun.jersey.api.client.UniformInterfaceException; diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java index f7f6d13181b4..8bd0946c9f99 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java @@ -15,11 +15,7 @@ import com.microsoft.windowsazure.auth.wrap.WrapFilter; import com.microsoft.windowsazure.http.ClientFilterAdapter; import com.microsoft.windowsazure.http.ServiceFilter; -import com.microsoft.windowsazure.services.serviceBus.Message; -import com.microsoft.windowsazure.services.serviceBus.Queue; import com.microsoft.windowsazure.services.serviceBus.ServiceBusContract; -import com.microsoft.windowsazure.services.serviceBus.Subscription; -import com.microsoft.windowsazure.services.serviceBus.Topic; import com.microsoft.windowsazure.services.serviceBus.models.CreateQueueResult; import com.microsoft.windowsazure.services.serviceBus.models.CreateSubscriptionResult; import com.microsoft.windowsazure.services.serviceBus.models.CreateTopicResult; @@ -29,9 +25,13 @@ import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; +import com.microsoft.windowsazure.services.serviceBus.models.Message; +import com.microsoft.windowsazure.services.serviceBus.models.Queue; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveQueueMessageResult; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveSubscriptionMessageResult; +import com.microsoft.windowsazure.services.serviceBus.models.Subscription; +import com.microsoft.windowsazure.services.serviceBus.models.Topic; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateQueueResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateQueueResult.java index f8eaa0349f6f..85107629fb02 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateQueueResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateQueueResult.java @@ -1,6 +1,5 @@ package com.microsoft.windowsazure.services.serviceBus.models; -import com.microsoft.windowsazure.services.serviceBus.Queue; public class CreateQueueResult { diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateSubscriptionResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateSubscriptionResult.java index 1e600e6e0221..3b7425724138 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateSubscriptionResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateSubscriptionResult.java @@ -1,6 +1,5 @@ package com.microsoft.windowsazure.services.serviceBus.models; -import com.microsoft.windowsazure.services.serviceBus.Subscription; public class CreateSubscriptionResult { diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateTopicResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateTopicResult.java index 0e5cf9a04505..10192e3e454a 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateTopicResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateTopicResult.java @@ -1,6 +1,5 @@ package com.microsoft.windowsazure.services.serviceBus.models; -import com.microsoft.windowsazure.services.serviceBus.Topic; public class CreateTopicResult { diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetQueueResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetQueueResult.java index fd6032caf333..005b5a5a8c1f 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetQueueResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetQueueResult.java @@ -1,6 +1,5 @@ package com.microsoft.windowsazure.services.serviceBus.models; -import com.microsoft.windowsazure.services.serviceBus.Queue; public class GetQueueResult { diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetSubscriptionResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetSubscriptionResult.java index fd3f4ad17260..4e28a6137f1c 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetSubscriptionResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetSubscriptionResult.java @@ -1,6 +1,5 @@ package com.microsoft.windowsazure.services.serviceBus.models; -import com.microsoft.windowsazure.services.serviceBus.Subscription; public class GetSubscriptionResult { diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetTopicResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetTopicResult.java index eea050fc6c22..5c6a0af54619 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetTopicResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetTopicResult.java @@ -1,6 +1,5 @@ package com.microsoft.windowsazure.services.serviceBus.models; -import com.microsoft.windowsazure.services.serviceBus.Topic; public class GetTopicResult { diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListQueuesResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListQueuesResult.java index 6b2c4812ebcc..cfe755389d9a 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListQueuesResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListQueuesResult.java @@ -2,7 +2,6 @@ import java.util.List; -import com.microsoft.windowsazure.services.serviceBus.Queue; public class ListQueuesResult { diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListSubscriptionsResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListSubscriptionsResult.java index 4fa900852cc9..4624ba154806 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListSubscriptionsResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListSubscriptionsResult.java @@ -2,7 +2,6 @@ import java.util.List; -import com.microsoft.windowsazure.services.serviceBus.Subscription; public class ListSubscriptionsResult { diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListTopicsResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListTopicsResult.java index 64d3b468e8ea..5d3047674426 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListTopicsResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListTopicsResult.java @@ -2,7 +2,6 @@ import java.util.List; -import com.microsoft.windowsazure.services.serviceBus.Topic; public class ListTopicsResult { diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Message.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Message.java similarity index 99% rename from microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Message.java rename to microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Message.java index 59a4455191c8..d0a82299965d 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Message.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Message.java @@ -1,4 +1,4 @@ -package com.microsoft.windowsazure.services.serviceBus; +package com.microsoft.windowsazure.services.serviceBus.models; import java.io.ByteArrayInputStream; import java.io.InputStream; diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Queue.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Queue.java similarity index 98% rename from microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Queue.java rename to microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Queue.java index 39dc2d42bae1..2bfb8506fe2b 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Queue.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Queue.java @@ -1,4 +1,4 @@ -package com.microsoft.windowsazure.services.serviceBus; +package com.microsoft.windowsazure.services.serviceBus.models; import javax.ws.rs.core.MediaType; import javax.xml.datatype.Duration; diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveQueueMessageResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveQueueMessageResult.java index d7a6fb03c6ff..5e6e31989fbc 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveQueueMessageResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveQueueMessageResult.java @@ -1,6 +1,5 @@ package com.microsoft.windowsazure.services.serviceBus.models; -import com.microsoft.windowsazure.services.serviceBus.Message; public class ReceiveQueueMessageResult { diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Subscription.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Subscription.java similarity index 98% rename from microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Subscription.java rename to microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Subscription.java index 70df4b1eee7d..5076f7f350b8 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Subscription.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Subscription.java @@ -1,4 +1,4 @@ -package com.microsoft.windowsazure.services.serviceBus; +package com.microsoft.windowsazure.services.serviceBus.models; import javax.ws.rs.core.MediaType; import javax.xml.datatype.Duration; diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Topic.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Topic.java similarity index 97% rename from microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Topic.java rename to microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Topic.java index 38ca9a1100ca..c8b08f1d585a 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/Topic.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Topic.java @@ -1,4 +1,4 @@ -package com.microsoft.windowsazure.services.serviceBus; +package com.microsoft.windowsazure.services.serviceBus.models; import javax.ws.rs.core.MediaType; import javax.xml.datatype.Duration; diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/IntegrationTestBase.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/IntegrationTestBase.java index d5a1a1bd2d57..0dbc7fbb6fce 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/IntegrationTestBase.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/IntegrationTestBase.java @@ -6,11 +6,11 @@ import org.junit.BeforeClass; import com.microsoft.windowsazure.configuration.Configuration; -import com.microsoft.windowsazure.services.serviceBus.Queue; import com.microsoft.windowsazure.services.serviceBus.ServiceBusConfiguration; import com.microsoft.windowsazure.services.serviceBus.ServiceBusContract; -import com.microsoft.windowsazure.services.serviceBus.Topic; +import com.microsoft.windowsazure.services.serviceBus.models.Queue; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; +import com.microsoft.windowsazure.services.serviceBus.models.Topic; public abstract class IntegrationTestBase { protected Configuration createConfiguration() { diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java index d40a38dfbff1..2c3066e69274 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java @@ -18,7 +18,11 @@ import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; +import com.microsoft.windowsazure.services.serviceBus.models.Message; +import com.microsoft.windowsazure.services.serviceBus.models.Queue; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; +import com.microsoft.windowsazure.services.serviceBus.models.Subscription; +import com.microsoft.windowsazure.services.serviceBus.models.Topic; public class ServiceBusIntegrationTest extends IntegrationTestBase { From 25f0aedbcb65e3df105827d8de1b7399aead4c85 Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Mon, 14 Nov 2011 15:16:03 -0800 Subject: [PATCH 06/17] Implementing receiveMessage operation for subscription --- .../implementation/ServiceBusRestProxy.java | 21 ++++++++++++++----- .../ReceiveSubscriptionMessageResult.java | 14 +++++++++++++ .../serviceBus/ServiceBusIntegrationTest.java | 20 ++++++++++++++++++ 3 files changed, 50 insertions(+), 5 deletions(-) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java index 8bd0946c9f99..78ebd91a7194 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java @@ -125,6 +125,11 @@ public ReceiveQueueMessageResult receiveQueueMessage(String queuePath, ReceiveMe .path("messages") .path("head"); + Message message = receiveMessage(options, resource); + return new ReceiveQueueMessageResult(message); + } + + private Message receiveMessage(ReceiveMessageOptions options, WebResource resource) { if (options.getTimeout() != null) { resource = resource.queryParam("timeout", Integer.toString(options.getTimeout())); } @@ -157,7 +162,7 @@ else if (options.isPeekLock()) { } message.setDate(date); message.setBody(clientResult.getEntityInputStream()); - return new ReceiveQueueMessageResult(message); + return message; } public void sendTopicMessage(String topicName, Message message) throws ServiceException { @@ -166,15 +171,21 @@ public void sendTopicMessage(String topicName, Message message) throws ServiceEx public ReceiveSubscriptionMessageResult receiveSubscriptionMessage(String topicName, String subscriptionName) throws ServiceException { - // TODO Auto-generated method stub - return null; + return receiveSubscriptionMessage(topicName, subscriptionName, ReceiveMessageOptions.DEFAULT); } public ReceiveSubscriptionMessageResult receiveSubscriptionMessage(String topicName, String subscriptionName, ReceiveMessageOptions options) throws ServiceException { - // TODO Auto-generated method stub - return null; + WebResource resource = getResource() + .path(topicName) + .path("subscriptions") + .path(subscriptionName) + .path("messages") + .path("head"); + + Message message = receiveMessage(options, resource); + return new ReceiveSubscriptionMessageResult(message); } public void unlockMessage(Message message) throws ServiceException { diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveSubscriptionMessageResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveSubscriptionMessageResult.java index f886781c427a..3666750e431e 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveSubscriptionMessageResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ReceiveSubscriptionMessageResult.java @@ -2,4 +2,18 @@ public class ReceiveSubscriptionMessageResult { + private Message value; + + public ReceiveSubscriptionMessageResult(Message value) { + this.setValue(value); + } + + public void setValue(Message value) { + this.value = value; + } + + public Message getValue() { + return value; + } + } diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java index 2c3066e69274..fd8f891c91b4 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java @@ -310,4 +310,24 @@ public void subscriptionsMayBeDeleted() throws Exception { assertEquals(1, result.getItems().size()); assertEquals("MySubscription5", result.getItems().get(0).getName()); } + + @Test + public void subscriptionWillReceiveMessage() throws Exception { + // Arrange + String topicName = "TestSubscriptionWillReceiveMessage"; + service.createTopic(new Topic(topicName)); + service.createSubscription(topicName, new Subscription("sub")); + service.sendTopicMessage(topicName, new Message("

Testing subscription

").setContentType("text/html")); + + // Act + Message message = service.receiveSubscriptionMessage(topicName, "sub", RECEIVE_AND_DELETE_5_SECONDS).getValue(); + + // Assert + assertNotNull(message); + + byte[] data = new byte[100]; + int size = message.getBody().read(data); + assertEquals("

Testing subscription

", new String(data, 0, size)); + assertEquals("text/html", message.getContentType()); + } } From 8793eb1d3fdf1e8cc4b66badb00a9e6044a3ddb8 Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Mon, 14 Nov 2011 15:54:41 -0800 Subject: [PATCH 07/17] Implementing rule entity methods --- .../serviceBus/ServiceBusContract.java | 14 ++-- .../serviceBus/ServiceBusService.java | 22 +++--- .../ServiceBusExceptionProcessor.java | 20 +++-- .../implementation/ServiceBusRestProxy.java | 57 ++++++++++--- .../serviceBus/models/CreateRuleResult.java | 19 +++++ .../serviceBus/models/GetRuleResult.java | 19 +++++ .../serviceBus/models/ListRulesResult.java | 17 ++++ .../services/serviceBus/models/Rule.java | 36 +++++++++ .../src/main/resources/servicebus-atom.xsd | 1 + .../serviceBus/ServiceBusIntegrationTest.java | 79 +++++++++++++++++++ 10 files changed, 247 insertions(+), 37 deletions(-) create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateRuleResult.java create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetRuleResult.java create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListRulesResult.java create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Rule.java diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java index dc7f0deeade1..e1ddae8f9b8a 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java @@ -2,15 +2,16 @@ import com.microsoft.windowsazure.ServiceException; import com.microsoft.windowsazure.http.ServiceFilter; -import com.microsoft.windowsazure.services.serviceBus.implementation.Entry; -import com.microsoft.windowsazure.services.serviceBus.implementation.Feed; import com.microsoft.windowsazure.services.serviceBus.models.CreateQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.CreateRuleResult; import com.microsoft.windowsazure.services.serviceBus.models.CreateSubscriptionResult; import com.microsoft.windowsazure.services.serviceBus.models.CreateTopicResult; import com.microsoft.windowsazure.services.serviceBus.models.GetQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetRuleResult; import com.microsoft.windowsazure.services.serviceBus.models.GetSubscriptionResult; import com.microsoft.windowsazure.services.serviceBus.models.GetTopicResult; import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListRulesResult; import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; import com.microsoft.windowsazure.services.serviceBus.models.Message; @@ -18,6 +19,7 @@ import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveQueueMessageResult; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveSubscriptionMessageResult; +import com.microsoft.windowsazure.services.serviceBus.models.Rule; import com.microsoft.windowsazure.services.serviceBus.models.Subscription; import com.microsoft.windowsazure.services.serviceBus.models.Topic; @@ -65,11 +67,11 @@ ReceiveSubscriptionMessageResult receiveSubscriptionMessage(String topicName, St ListSubscriptionsResult listSubscriptions(String topicName) throws ServiceException; - void addRule(String topicName, String subscriptionName, String ruleName, Entry rule) throws ServiceException; + CreateRuleResult createRule(String topicName, String subscriptionName, Rule rule) throws ServiceException; - void removeRule(String topicName, String subscriptionName, String ruleName) throws ServiceException; + void deleteRule(String topicName, String subscriptionName, String ruleName) throws ServiceException; - Entry getRule(String topicName, String subscriptionName, String ruleName) throws ServiceException; + GetRuleResult getRule(String topicName, String subscriptionName, String ruleName) throws ServiceException; - Feed getRules(String topicName, String subscriptionName) throws ServiceException; + ListRulesResult listRules(String topicName, String subscriptionName) throws ServiceException; } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java index 45ee452ffeae..b28c40c1cbc0 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusService.java @@ -5,15 +5,16 @@ import com.microsoft.windowsazure.ServiceException; import com.microsoft.windowsazure.configuration.Configuration; import com.microsoft.windowsazure.http.ServiceFilter; -import com.microsoft.windowsazure.services.serviceBus.implementation.Entry; -import com.microsoft.windowsazure.services.serviceBus.implementation.Feed; import com.microsoft.windowsazure.services.serviceBus.models.CreateQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.CreateRuleResult; import com.microsoft.windowsazure.services.serviceBus.models.CreateSubscriptionResult; import com.microsoft.windowsazure.services.serviceBus.models.CreateTopicResult; import com.microsoft.windowsazure.services.serviceBus.models.GetQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetRuleResult; import com.microsoft.windowsazure.services.serviceBus.models.GetSubscriptionResult; import com.microsoft.windowsazure.services.serviceBus.models.GetTopicResult; import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListRulesResult; import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; import com.microsoft.windowsazure.services.serviceBus.models.Message; @@ -21,6 +22,7 @@ import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveQueueMessageResult; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveSubscriptionMessageResult; +import com.microsoft.windowsazure.services.serviceBus.models.Rule; import com.microsoft.windowsazure.services.serviceBus.models.Subscription; import com.microsoft.windowsazure.services.serviceBus.models.Topic; @@ -142,23 +144,23 @@ public ListSubscriptionsResult listSubscriptions(String topicName) throws Servic return next.listSubscriptions(topicName); } - public void addRule(String topicName, String subscriptionName, - String ruleName, Entry rule) throws ServiceException { - next.addRule(topicName, subscriptionName, ruleName, rule); + public CreateRuleResult createRule(String topicName, String subscriptionName, + Rule rule) throws ServiceException { + return next.createRule(topicName, subscriptionName, rule); } - public void removeRule(String topicName, String subscriptionName, + public void deleteRule(String topicName, String subscriptionName, String ruleName) throws ServiceException { - next.removeRule(topicName, subscriptionName, ruleName); + next.deleteRule(topicName, subscriptionName, ruleName); } - public Entry getRule(String topicName, String subscriptionName, + public GetRuleResult getRule(String topicName, String subscriptionName, String ruleName) throws ServiceException { return next.getRule(topicName, subscriptionName, ruleName); } - public Feed getRules(String topicName, String subscriptionName) + public ListRulesResult listRules(String topicName, String subscriptionName) throws ServiceException { - return next.getRules(topicName, subscriptionName); + return next.listRules(topicName, subscriptionName); } } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java index 4a9fb4b6a4f9..9694977e2a06 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusExceptionProcessor.java @@ -9,12 +9,15 @@ import com.microsoft.windowsazure.http.ServiceFilter; import com.microsoft.windowsazure.services.serviceBus.ServiceBusContract; import com.microsoft.windowsazure.services.serviceBus.models.CreateQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.CreateRuleResult; import com.microsoft.windowsazure.services.serviceBus.models.CreateSubscriptionResult; import com.microsoft.windowsazure.services.serviceBus.models.CreateTopicResult; import com.microsoft.windowsazure.services.serviceBus.models.GetQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetRuleResult; import com.microsoft.windowsazure.services.serviceBus.models.GetSubscriptionResult; import com.microsoft.windowsazure.services.serviceBus.models.GetTopicResult; import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListRulesResult; import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; import com.microsoft.windowsazure.services.serviceBus.models.Message; @@ -22,6 +25,7 @@ import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveQueueMessageResult; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveSubscriptionMessageResult; +import com.microsoft.windowsazure.services.serviceBus.models.Rule; import com.microsoft.windowsazure.services.serviceBus.models.Subscription; import com.microsoft.windowsazure.services.serviceBus.models.Topic; import com.microsoft.windowsazure.utils.ServiceExceptionFactory; @@ -302,10 +306,10 @@ public ListSubscriptionsResult listSubscriptions(String topicPath) throws Servic } } - public void addRule(String topicPath, String subscriptionName, - String ruleName, Entry rule) throws ServiceException { + public CreateRuleResult createRule(String topicPath, String subscriptionName, + Rule rule) throws ServiceException { try { - next.addRule(topicPath, subscriptionName, ruleName, rule); + return next.createRule(topicPath, subscriptionName, rule); } catch (UniformInterfaceException e) { throw processCatch(new ServiceException(e)); @@ -315,10 +319,10 @@ public void addRule(String topicPath, String subscriptionName, } } - public void removeRule(String topicPath, String subscriptionName, + public void deleteRule(String topicPath, String subscriptionName, String ruleName) throws ServiceException { try { - next.removeRule(topicPath, subscriptionName, ruleName); + next.deleteRule(topicPath, subscriptionName, ruleName); } catch (UniformInterfaceException e) { throw processCatch(new ServiceException(e)); @@ -328,7 +332,7 @@ public void removeRule(String topicPath, String subscriptionName, } } - public Entry getRule(String topicPath, String subscriptionName, + public GetRuleResult getRule(String topicPath, String subscriptionName, String ruleName) throws ServiceException { try { return next.getRule(topicPath, subscriptionName, ruleName); @@ -341,10 +345,10 @@ public Entry getRule(String topicPath, String subscriptionName, } } - public Feed getRules(String topicPath, String subscriptionName) + public ListRulesResult listRules(String topicPath, String subscriptionName) throws ServiceException { try { - return next.getRules(topicPath, subscriptionName); + return next.listRules(topicPath, subscriptionName); } catch (UniformInterfaceException e) { throw processCatch(new ServiceException(e)); diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java index 78ebd91a7194..f4c11d9f2b53 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java @@ -17,12 +17,15 @@ import com.microsoft.windowsazure.http.ServiceFilter; import com.microsoft.windowsazure.services.serviceBus.ServiceBusContract; import com.microsoft.windowsazure.services.serviceBus.models.CreateQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.CreateRuleResult; import com.microsoft.windowsazure.services.serviceBus.models.CreateSubscriptionResult; import com.microsoft.windowsazure.services.serviceBus.models.CreateTopicResult; import com.microsoft.windowsazure.services.serviceBus.models.GetQueueResult; +import com.microsoft.windowsazure.services.serviceBus.models.GetRuleResult; import com.microsoft.windowsazure.services.serviceBus.models.GetSubscriptionResult; import com.microsoft.windowsazure.services.serviceBus.models.GetTopicResult; import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListRulesResult; import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; import com.microsoft.windowsazure.services.serviceBus.models.Message; @@ -30,6 +33,7 @@ import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveQueueMessageResult; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveSubscriptionMessageResult; +import com.microsoft.windowsazure.services.serviceBus.models.Rule; import com.microsoft.windowsazure.services.serviceBus.models.Subscription; import com.microsoft.windowsazure.services.serviceBus.models.Topic; import com.sun.jersey.api.client.Client; @@ -303,27 +307,54 @@ public ListSubscriptionsResult listSubscriptions(String topicPath) { return result; } - public void addRule(String topicPath, String subscriptionName, - String ruleName, Entry rule) { - // TODO Auto-generated method stub - + public CreateRuleResult createRule(String topicPath, String subscriptionName, + Rule rule) { + return new CreateRuleResult(getResource() + .path(topicPath) + .path("subscriptions") + .path(subscriptionName) + .path("rules") + .path(rule.getName()) + .type("application/atom+xml;type=entry;charset=utf-8") + .put(Rule.class, rule)); } - public void removeRule(String topicPath, String subscriptionName, + public void deleteRule(String topicPath, String subscriptionName, String ruleName) { - // TODO Auto-generated method stub - + getResource() + .path(topicPath) + .path("subscriptions") + .path(subscriptionName) + .path("rules") + .path(ruleName) + .delete(); } - public Entry getRule(String topicPath, String subscriptionName, + public GetRuleResult getRule(String topicPath, String subscriptionName, String ruleName) { - // TODO Auto-generated method stub - return null; + return new GetRuleResult(getResource() + .path(topicPath) + .path("subscriptions") + .path(subscriptionName) + .path("rules") + .path(ruleName) + .get(Rule.class)); } - public Feed getRules(String topicPath, String subscriptionName) { - // TODO Auto-generated method stub - return null; + public ListRulesResult listRules(String topicPath, String subscriptionName) { + Feed feed = getResource() + .path(topicPath) + .path("subscriptions") + .path(subscriptionName) + .path("rules") + .get(Feed.class); + ArrayList list = new ArrayList(); + for (Entry entry : feed.getEntries()) { + list.add(new Rule(entry)); + } + ListRulesResult result = new ListRulesResult(); + result.setItems(list); + return result; } } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateRuleResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateRuleResult.java new file mode 100644 index 000000000000..114e189b22a3 --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateRuleResult.java @@ -0,0 +1,19 @@ +package com.microsoft.windowsazure.services.serviceBus.models; + +public class CreateRuleResult { + + private Rule value; + + public CreateRuleResult(Rule value) { + this.setValue(value); + } + + public void setValue(Rule value) { + this.value = value; + } + + public Rule getValue() { + return value; + } + +} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetRuleResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetRuleResult.java new file mode 100644 index 000000000000..d4d49839298a --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/GetRuleResult.java @@ -0,0 +1,19 @@ +package com.microsoft.windowsazure.services.serviceBus.models; + +public class GetRuleResult { + + private Rule value; + + public GetRuleResult(Rule value) { + this.setValue(value); + } + + public void setValue(Rule value) { + this.value = value; + } + + public Rule getValue() { + return value; + } + +} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListRulesResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListRulesResult.java new file mode 100644 index 000000000000..8917fc0b0411 --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/ListRulesResult.java @@ -0,0 +1,17 @@ +package com.microsoft.windowsazure.services.serviceBus.models; + +import java.util.List; + +public class ListRulesResult { + + private List items; + + public List getItems() { + return items; + } + + public void setItems(List items) { + this.items = items; + } + +} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Rule.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Rule.java new file mode 100644 index 000000000000..a78a721f601c --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Rule.java @@ -0,0 +1,36 @@ +package com.microsoft.windowsazure.services.serviceBus.models; + +import javax.ws.rs.core.MediaType; + +import com.microsoft.windowsazure.services.serviceBus.implementation.Content; +import com.microsoft.windowsazure.services.serviceBus.implementation.Entry; +import com.microsoft.windowsazure.services.serviceBus.implementation.EntryModel; +import com.microsoft.windowsazure.services.serviceBus.implementation.RuleDescription; + +public class Rule extends EntryModel { + + public Rule() { + super(new Entry(), new RuleDescription()); + getEntry().setContent(new Content()); + getEntry().getContent().setType(MediaType.APPLICATION_XML); + getEntry().getContent().setRuleDescription(getModel()); + } + + public Rule(Entry entry) { + super(entry, entry.getContent().getRuleDescription()); + } + + public Rule(String name) { + this(); + setName(name); + } + + public String getName() { + return getEntry().getTitle(); + } + + public Rule setName(String value) { + getEntry().setTitle(value); + return this; + } +} diff --git a/microsoft-azure-api/src/main/resources/servicebus-atom.xsd b/microsoft-azure-api/src/main/resources/servicebus-atom.xsd index 6b319fbb89fb..b8387023a54b 100644 --- a/microsoft-azure-api/src/main/resources/servicebus-atom.xsd +++ b/microsoft-azure-api/src/main/resources/servicebus-atom.xsd @@ -30,6 +30,7 @@ + diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java index fd8f891c91b4..0f47e6e3b9ee 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java @@ -16,11 +16,13 @@ import com.microsoft.windowsazure.http.ServiceFilter.Request; import com.microsoft.windowsazure.http.ServiceFilter.Response; import com.microsoft.windowsazure.services.serviceBus.models.ListQueuesResult; +import com.microsoft.windowsazure.services.serviceBus.models.ListRulesResult; import com.microsoft.windowsazure.services.serviceBus.models.ListSubscriptionsResult; import com.microsoft.windowsazure.services.serviceBus.models.ListTopicsResult; import com.microsoft.windowsazure.services.serviceBus.models.Message; import com.microsoft.windowsazure.services.serviceBus.models.Queue; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; +import com.microsoft.windowsazure.services.serviceBus.models.Rule; import com.microsoft.windowsazure.services.serviceBus.models.Subscription; import com.microsoft.windowsazure.services.serviceBus.models.Topic; @@ -330,4 +332,81 @@ public void subscriptionWillReceiveMessage() throws Exception { assertEquals("

Testing subscription

", new String(data, 0, size)); assertEquals("text/html", message.getContentType()); } + + @Test + public void rulesCanBeCreatedOnSubscriptions() throws Exception { + // Arrange + String topicName = "TestrulesCanBeCreatedOnSubscriptions"; + service.createTopic(new Topic(topicName)); + service.createSubscription(topicName, new Subscription("sub")); + + // Act + Rule created = service.createRule(topicName, "sub", new Rule("MyRule1")).getValue(); + + // Assert + assertNotNull(created); + assertEquals("MyRule1", created.getName()); + } + + @Test + public void rulesCanBeListedAndDefaultRuleIsPrecreated() throws Exception { + // Arrange + String topicName = "TestrulesCanBeListedAndDefaultRuleIsPrecreated"; + service.createTopic(new Topic(topicName)); + service.createSubscription(topicName, new Subscription("sub")); + service.createRule(topicName, "sub", new Rule("MyRule2")); + + // Act + ListRulesResult result = service.listRules(topicName, "sub"); + + // Assert + assertNotNull(result); + assertEquals(2, result.getItems().size()); + Rule rule0 = result.getItems().get(0); + Rule rule1 = result.getItems().get(1); + if (rule0.getName() == "MyRule2") { + Rule swap = rule1; + rule1 = rule0; + rule0 = swap; + } + + assertEquals("$Default", rule0.getName()); + assertEquals("MyRule2", rule1.getName()); + assertNotNull(result.getItems().get(0).getModel()); + } + + @Test + public void ruleDetailsMayBeFetched() throws Exception { + // Arrange + String topicName = "TestruleDetailsMayBeFetched"; + service.createTopic(new Topic(topicName)); + service.createSubscription(topicName, new Subscription("sub")); + + // Act + Rule result = service.getRule(topicName, "sub", "$Default").getValue(); + + // Assert + assertNotNull(result); + assertEquals("$Default", result.getName()); + } + + @Test + public void rulesMayBeDeleted() throws Exception { + // Arrange + String topicName = "TestRulesMayBeDeleted"; + service.createTopic(new Topic(topicName)); + service.createSubscription(topicName, new Subscription("sub")); + service.createRule(topicName, "sub", new Rule("MyRule4")); + service.createRule(topicName, "sub", new Rule("MyRule5")); + + // Act + service.deleteRule(topicName, "sub", "MyRule5"); + service.deleteRule(topicName, "sub", "$Default"); + + // Assert + ListRulesResult result = service.listRules(topicName, "sub"); + assertNotNull(result); + assertEquals(1, result.getItems().size()); + assertEquals("MyRule4", result.getItems().get(0).getName()); + } } From af4f094d5bc1de9ea72be1fb61fd7ec8ee12a275 Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Mon, 14 Nov 2011 15:57:48 -0800 Subject: [PATCH 08/17] Adding delegate methods from Rule to RuleDescription --- .../services/serviceBus/models/Rule.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Rule.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Rule.java index a78a721f601c..20f696d7730e 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Rule.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Rule.java @@ -5,6 +5,8 @@ import com.microsoft.windowsazure.services.serviceBus.implementation.Content; import com.microsoft.windowsazure.services.serviceBus.implementation.Entry; import com.microsoft.windowsazure.services.serviceBus.implementation.EntryModel; +import com.microsoft.windowsazure.services.serviceBus.implementation.Filter; +import com.microsoft.windowsazure.services.serviceBus.implementation.RuleAction; import com.microsoft.windowsazure.services.serviceBus.implementation.RuleDescription; public class Rule extends EntryModel { @@ -33,4 +35,23 @@ public Rule setName(String value) { getEntry().setTitle(value); return this; } + + public Filter getFilter() { + return getModel().getFilter(); + } + + public Rule setFilter(Filter value) { + getModel().setFilter(value); + return this; + } + + public RuleAction getAction() { + return getModel().getAction(); + } + + public Rule setAction(RuleAction value) { + getModel().setAction(value); + return this; + } + } From 1fa932bd08c1231bbc143c36f9c7efce30f0c8c0 Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Mon, 14 Nov 2011 17:30:56 -0800 Subject: [PATCH 09/17] Using FilterableService base interface --- .../windowsazure/services/serviceBus/ServiceBusContract.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java index e1ddae8f9b8a..9a48c4becb21 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusContract.java @@ -1,7 +1,7 @@ package com.microsoft.windowsazure.services.serviceBus; import com.microsoft.windowsazure.ServiceException; -import com.microsoft.windowsazure.http.ServiceFilter; +import com.microsoft.windowsazure.http.FilterableService; import com.microsoft.windowsazure.services.serviceBus.models.CreateQueueResult; import com.microsoft.windowsazure.services.serviceBus.models.CreateRuleResult; import com.microsoft.windowsazure.services.serviceBus.models.CreateSubscriptionResult; @@ -23,8 +23,7 @@ import com.microsoft.windowsazure.services.serviceBus.models.Subscription; import com.microsoft.windowsazure.services.serviceBus.models.Topic; -public interface ServiceBusContract { - ServiceBusContract withFilter(ServiceFilter filter); +public interface ServiceBusContract extends FilterableService { void sendQueueMessage(String queueName, Message message) throws ServiceException; From 81b40a5d2f41e52153995f78c19208b61b1a7028 Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Tue, 15 Nov 2011 11:09:14 -0800 Subject: [PATCH 10/17] Relocating WRAP to be an implementation detail of serviceBus --- .../windowsazure/auth/wrap/Exports.java | 16 -------- .../auth/wrap/contract/WrapContract.java | 7 ---- .../serviceBus/implementation/Exports.java | 13 +++++++ .../implementation/ServiceBusRestProxy.java | 1 - .../WrapAccessTokenResult.java} | 4 +- .../implementation/WrapContract.java | 7 ++++ .../implementation}/WrapFilter.java | 10 ++--- .../implementation/WrapRestProxy.java} | 14 +++---- .../implementation/WrapTokenManager.java} | 33 +++++++---------- ...zure.configuration.builder.Builder$Exports | 2 +- .../contract/WrapContractIntegrationTest.java | 23 ------------ .../WrapRestProxyIntegrationTest.java | 25 +++++++++++++ .../WrapTokenManagerIntegrationTest.java} | 8 ++-- .../implementation/WrapTokenManagerTest.java} | 37 +++++++------------ 14 files changed, 90 insertions(+), 110 deletions(-) delete mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/Exports.java delete mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/contract/WrapContract.java create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/Exports.java rename microsoft-azure-api/src/main/java/com/microsoft/windowsazure/{auth/wrap/contract/WrapResponse.java => services/serviceBus/implementation/WrapAccessTokenResult.java} (85%) create mode 100644 microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapContract.java rename microsoft-azure-api/src/main/java/com/microsoft/windowsazure/{auth/wrap => services/serviceBus/implementation}/WrapFilter.java (74%) rename microsoft-azure-api/src/main/java/com/microsoft/windowsazure/{auth/wrap/contract/WrapContractImpl.java => services/serviceBus/implementation/WrapRestProxy.java} (72%) rename microsoft-azure-api/src/main/java/com/microsoft/windowsazure/{auth/wrap/WrapClient.java => services/serviceBus/implementation/WrapTokenManager.java} (70%) delete mode 100644 microsoft-azure-api/src/test/java/com/microsoft/windowsazure/auth/wrap/contract/WrapContractIntegrationTest.java create mode 100644 microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapRestProxyIntegrationTest.java rename microsoft-azure-api/src/test/java/com/microsoft/windowsazure/{auth/wrap/WrapClientIntegrationTest.java => services/serviceBus/implementation/WrapTokenManagerIntegrationTest.java} (76%) rename microsoft-azure-api/src/test/java/com/microsoft/windowsazure/{auth/wrap/WrapClientTest.java => services/serviceBus/implementation/WrapTokenManagerTest.java} (67%) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/Exports.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/Exports.java deleted file mode 100644 index 5acaa03325ca..000000000000 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/Exports.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.microsoft.windowsazure.auth.wrap; - -import com.microsoft.windowsazure.auth.wrap.contract.WrapContract; -import com.microsoft.windowsazure.auth.wrap.contract.WrapContractImpl; -import com.microsoft.windowsazure.configuration.builder.Builder.Registry; - -public class Exports implements - com.microsoft.windowsazure.configuration.builder.Builder.Exports { - - public void register(Registry registry) { - registry.add(WrapContract.class, WrapContractImpl.class); - registry.add(WrapClient.class); - registry.add(WrapFilter.class); - } - -} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/contract/WrapContract.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/contract/WrapContract.java deleted file mode 100644 index 7b583d7ef63a..000000000000 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/contract/WrapContract.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.microsoft.windowsazure.auth.wrap.contract; - -import com.microsoft.windowsazure.ServiceException; - -public interface WrapContract { - WrapResponse post(String uri, String name, String password, String scope) throws ServiceException; -} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/Exports.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/Exports.java new file mode 100644 index 000000000000..0143c7d64458 --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/Exports.java @@ -0,0 +1,13 @@ +package com.microsoft.windowsazure.services.serviceBus.implementation; + +import com.microsoft.windowsazure.configuration.builder.Builder; + +public class Exports implements Builder.Exports { + + public void register(Builder.Registry registry) { + registry.add(WrapContract.class, WrapRestProxy.class); + registry.add(WrapTokenManager.class); + registry.add(WrapFilter.class); + } + +} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java index f4c11d9f2b53..270532b332dd 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/ServiceBusRestProxy.java @@ -12,7 +12,6 @@ import org.apache.commons.logging.LogFactory; import com.microsoft.windowsazure.ServiceException; -import com.microsoft.windowsazure.auth.wrap.WrapFilter; import com.microsoft.windowsazure.http.ClientFilterAdapter; import com.microsoft.windowsazure.http.ServiceFilter; import com.microsoft.windowsazure.services.serviceBus.ServiceBusContract; diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/contract/WrapResponse.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapAccessTokenResult.java similarity index 85% rename from microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/contract/WrapResponse.java rename to microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapAccessTokenResult.java index ab06407f92f1..da241b3ad9cf 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/contract/WrapResponse.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapAccessTokenResult.java @@ -1,6 +1,6 @@ -package com.microsoft.windowsazure.auth.wrap.contract; +package com.microsoft.windowsazure.services.serviceBus.implementation; -public class WrapResponse { +public class WrapAccessTokenResult { String accessToken; long expiresIn; diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapContract.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapContract.java new file mode 100644 index 000000000000..c3939e2dce13 --- /dev/null +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapContract.java @@ -0,0 +1,7 @@ +package com.microsoft.windowsazure.services.serviceBus.implementation; + +import com.microsoft.windowsazure.ServiceException; + +public interface WrapContract { + WrapAccessTokenResult wrapAccessToken(String uri, String name, String password, String scope) throws ServiceException; +} diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/WrapFilter.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapFilter.java similarity index 74% rename from microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/WrapFilter.java rename to microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapFilter.java index dd322619984e..ea836739c178 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/WrapFilter.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapFilter.java @@ -1,4 +1,4 @@ -package com.microsoft.windowsazure.auth.wrap; +package com.microsoft.windowsazure.services.serviceBus.implementation; import com.microsoft.windowsazure.ServiceException; import com.sun.jersey.api.client.ClientHandlerException; @@ -7,10 +7,10 @@ import com.sun.jersey.api.client.filter.ClientFilter; public class WrapFilter extends ClientFilter { - private WrapClient client; + private WrapTokenManager tokenManager; - public WrapFilter(WrapClient client) { - this.client = client; + public WrapFilter(WrapTokenManager tokenManager) { + this.tokenManager = tokenManager; } @Override @@ -19,7 +19,7 @@ public ClientResponse handle(ClientRequest cr) String accessToken; try { - accessToken = client.getAccessToken(); + accessToken = tokenManager.getAccessToken(); } catch (ServiceException e) { // must wrap exception because of base class signature diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/contract/WrapContractImpl.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapRestProxy.java similarity index 72% rename from microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/contract/WrapContractImpl.java rename to microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapRestProxy.java index 313d490a9be2..dca9b912540a 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/contract/WrapContractImpl.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapRestProxy.java @@ -1,4 +1,4 @@ -package com.microsoft.windowsazure.auth.wrap.contract; +package com.microsoft.windowsazure.services.serviceBus.implementation; import javax.inject.Inject; import javax.ws.rs.core.MediaType; @@ -12,17 +12,17 @@ import com.sun.jersey.api.client.UniformInterfaceException; import com.sun.jersey.api.representation.Form; -public class WrapContractImpl implements WrapContract { +public class WrapRestProxy implements WrapContract { Client channel; static Log log = LogFactory.getLog(WrapContract.class); @Inject - public WrapContractImpl(Client channel) { + public WrapRestProxy(Client channel) { this.channel = channel; } - public WrapResponse post(String uri, String name, String password, String scope) throws ServiceException { + public WrapAccessTokenResult wrapAccessToken(String uri, String name, String password, String scope) throws ServiceException { Form requestForm = new Form(); requestForm.add("wrap_name", name); requestForm.add("wrap_password", password); @@ -30,9 +30,7 @@ public WrapResponse post(String uri, String name, String password, String scope) Form responseForm; try { - responseForm = channel.resource(uri) - .accept(MediaType.APPLICATION_FORM_URLENCODED) - .type(MediaType.APPLICATION_FORM_URLENCODED) + responseForm = channel.resource(uri).accept(MediaType.APPLICATION_FORM_URLENCODED).type(MediaType.APPLICATION_FORM_URLENCODED) .post(Form.class, requestForm); } catch (UniformInterfaceException e) { @@ -40,7 +38,7 @@ public WrapResponse post(String uri, String name, String password, String scope) throw ServiceExceptionFactory.process("WRAP", new ServiceException("WRAP server returned error acquiring access_token", e)); } - WrapResponse response = new WrapResponse(); + WrapAccessTokenResult response = new WrapAccessTokenResult(); response.setAccessToken(responseForm.getFirst("wrap_access_token")); diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/WrapClient.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapTokenManager.java similarity index 70% rename from microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/WrapClient.java rename to microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapTokenManager.java index 36bf0683b870..fd97fd6a50f1 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/auth/wrap/WrapClient.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapTokenManager.java @@ -1,4 +1,4 @@ -package com.microsoft.windowsazure.auth.wrap; +package com.microsoft.windowsazure.services.serviceBus.implementation; import java.util.Date; @@ -7,29 +7,22 @@ import javax.management.timer.Timer; import com.microsoft.windowsazure.ServiceException; -import com.microsoft.windowsazure.auth.wrap.contract.WrapContract; -import com.microsoft.windowsazure.auth.wrap.contract.WrapResponse; import com.microsoft.windowsazure.utils.DateFactory; -public class WrapClient { +public class WrapTokenManager { WrapContract contract; - private DateFactory dateFactory; - private String uri; - private String name; - private String password; - private String scope; + private final DateFactory dateFactory; + private final String uri; + private final String name; + private final String password; + private final String scope; private ActiveToken activeToken; @Inject - public WrapClient( - WrapContract contract, - DateFactory dateFactory, - @Named("wrap.uri") String uri, - @Named("wrap.scope") String scope, - @Named("wrap.name") String name, - @Named("wrap.password") String password) { + public WrapTokenManager(WrapContract contract, DateFactory dateFactory, @Named("wrap.uri") String uri, @Named("wrap.scope") String scope, + @Named("wrap.name") String name, @Named("wrap.password") String password) { this.contract = contract; this.dateFactory = dateFactory; this.uri = uri; @@ -61,7 +54,7 @@ public String getAccessToken() throws ServiceException { return active.getWrapResponse().getAccessToken(); } - WrapResponse wrapResponse = getContract().post(uri, name, password, scope); + WrapAccessTokenResult wrapResponse = getContract().wrapAccessToken(uri, name, password, scope); Date expiresUtc = new Date(now.getTime() + wrapResponse.getExpiresIn() * Timer.ONE_SECOND / 2); ActiveToken acquired = new ActiveToken(); @@ -74,7 +67,7 @@ public String getAccessToken() throws ServiceException { class ActiveToken { Date expiresUtc; - WrapResponse wrapResponse; + WrapAccessTokenResult wrapResponse; /** * @return the expiresUtc @@ -94,7 +87,7 @@ public void setExpiresUtc(Date expiresUtc) { /** * @return the wrapResponse */ - public WrapResponse getWrapResponse() { + public WrapAccessTokenResult getWrapResponse() { return wrapResponse; } @@ -102,7 +95,7 @@ public WrapResponse getWrapResponse() { * @param wrapResponse * the wrapResponse to set */ - public void setWrapResponse(WrapResponse wrapResponse) { + public void setWrapResponse(WrapAccessTokenResult wrapResponse) { this.wrapResponse = wrapResponse; } } diff --git a/microsoft-azure-api/src/main/resources/META-INF/services/com.microsoft.windowsazure.configuration.builder.Builder$Exports b/microsoft-azure-api/src/main/resources/META-INF/services/com.microsoft.windowsazure.configuration.builder.Builder$Exports index ce9f1f862db4..0e2672c70814 100644 --- a/microsoft-azure-api/src/main/resources/META-INF/services/com.microsoft.windowsazure.configuration.builder.Builder$Exports +++ b/microsoft-azure-api/src/main/resources/META-INF/services/com.microsoft.windowsazure.configuration.builder.Builder$Exports @@ -1,6 +1,6 @@ -com.microsoft.windowsazure.auth.wrap.Exports com.microsoft.windowsazure.configuration.jersey.Exports com.microsoft.windowsazure.services.blob.Exports com.microsoft.windowsazure.services.queue.Exports com.microsoft.windowsazure.services.serviceBus.Exports +com.microsoft.windowsazure.services.serviceBus.implementation.Exports com.microsoft.windowsazure.utils.Exports diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/auth/wrap/contract/WrapContractIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/auth/wrap/contract/WrapContractIntegrationTest.java deleted file mode 100644 index 46650236ed02..000000000000 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/auth/wrap/contract/WrapContractIntegrationTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.microsoft.windowsazure.auth.wrap.contract; - -import org.junit.Test; - -import com.microsoft.windowsazure.auth.wrap.contract.WrapContract; -import com.microsoft.windowsazure.auth.wrap.contract.WrapContractImpl; -import com.microsoft.windowsazure.configuration.Configuration; -import com.sun.jersey.api.client.Client; - -public class WrapContractIntegrationTest { - @Test - public void yaaaaargh() throws Exception { - Configuration config = new Configuration(); - - WrapContract contract = new WrapContractImpl(config.create(Client.class)); - - contract.post( - "https://lodejard-sb.accesscontrol.windows.net/WRAPv0.9", - "owner", - "Zo3QCZ5jLlJofibEiifZyz7B3x6a5Suv2YoS1JAWopA=", - "http://lodejard.servicebus.windows.net"); - } -} diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapRestProxyIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapRestProxyIntegrationTest.java new file mode 100644 index 000000000000..5bafb7df76e9 --- /dev/null +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapRestProxyIntegrationTest.java @@ -0,0 +1,25 @@ +package com.microsoft.windowsazure.services.serviceBus.implementation; + +import static org.junit.Assert.*; + +import org.junit.Test; + +import com.microsoft.windowsazure.configuration.Configuration; +import com.sun.jersey.api.client.Client; + +public class WrapRestProxyIntegrationTest { + @Test + public void serviceCanBeCalledToCreateAccessToken() throws Exception { + // Arrange + Configuration config = new Configuration(); + WrapContract contract = new WrapRestProxy(config.create(Client.class)); + + // Act + WrapAccessTokenResult result = contract.wrapAccessToken("https://lodejard-sb.accesscontrol.windows.net/WRAPv0.9", "owner", + "Zo3QCZ5jLlJofibEiifZyz7B3x6a5Suv2YoS1JAWopA=", "http://lodejard.servicebus.windows.net"); + + // Assert + assertNotNull(result); + assertNotNull(result.getAccessToken()); + } +} diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/auth/wrap/WrapClientIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapTokenManagerIntegrationTest.java similarity index 76% rename from microsoft-azure-api/src/test/java/com/microsoft/windowsazure/auth/wrap/WrapClientIntegrationTest.java rename to microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapTokenManagerIntegrationTest.java index 665d3152297f..361287d7ef09 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/auth/wrap/WrapClientIntegrationTest.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapTokenManagerIntegrationTest.java @@ -1,13 +1,13 @@ -package com.microsoft.windowsazure.auth.wrap; +package com.microsoft.windowsazure.services.serviceBus.implementation; import junit.framework.Assert; import org.junit.Test; -import com.microsoft.windowsazure.auth.wrap.WrapClient; import com.microsoft.windowsazure.configuration.Configuration; +import com.microsoft.windowsazure.services.serviceBus.implementation.WrapTokenManager; -public class WrapClientIntegrationTest { +public class WrapTokenManagerIntegrationTest { private Configuration createConfiguration() { Configuration config = new Configuration(); config.setProperty("wrapClient.uri", "https://lodejard-sb.accesscontrol.windows.net/WRAPv0.9"); @@ -21,7 +21,7 @@ private Configuration createConfiguration() { public void wrapClientWillAcquireAccessToken() throws Exception { // Arrange Configuration config = createConfiguration(); - WrapClient client = config.create(WrapClient.class); + WrapTokenManager client = config.create(WrapTokenManager.class); // Act String accessToken = client.getAccessToken(); diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/auth/wrap/WrapClientTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapTokenManagerTest.java similarity index 67% rename from microsoft-azure-api/src/test/java/com/microsoft/windowsazure/auth/wrap/WrapClientTest.java rename to microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapTokenManagerTest.java index 6dc11fd62766..2cae1fad35bb 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/auth/wrap/WrapClientTest.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapTokenManagerTest.java @@ -1,4 +1,4 @@ -package com.microsoft.windowsazure.auth.wrap; +package com.microsoft.windowsazure.services.serviceBus.implementation; import static org.junit.Assert.*; import static org.mockito.Mockito.*; @@ -13,14 +13,11 @@ import org.mockito.stubbing.Answer; import com.microsoft.windowsazure.ServiceException; -import com.microsoft.windowsazure.auth.wrap.WrapClient; -import com.microsoft.windowsazure.auth.wrap.contract.WrapContract; -import com.microsoft.windowsazure.auth.wrap.contract.WrapResponse; import com.microsoft.windowsazure.utils.DateFactory; -public class WrapClientTest { +public class WrapTokenManagerTest { private WrapContract contract; - private WrapClient client; + private WrapTokenManager client; private DateFactory dateFactory; private Calendar calendar; @@ -30,13 +27,7 @@ public void init() { dateFactory = mock(DateFactory.class); contract = mock(WrapContract.class); - client = new WrapClient( - contract, - dateFactory, - "testurl", - "testscope", - "testname", - "testpassword"); + client = new WrapTokenManager(contract, dateFactory, "testurl", "testscope", "testname", "testpassword"); when(dateFactory.getDate()).thenAnswer(new Answer() { public Date answer(InvocationOnMock invocation) throws Throwable { @@ -49,11 +40,11 @@ public Date answer(InvocationOnMock invocation) throws Throwable { @Test public void clientUsesContractToGetToken() throws ServiceException { // Arrange - WrapResponse wrapResponse = new WrapResponse(); + WrapAccessTokenResult wrapResponse = new WrapAccessTokenResult(); wrapResponse.setAccessToken("testaccesstoken"); wrapResponse.setExpiresIn(83); - when(contract.post("testurl", "testname", "testpassword", "testscope")).thenReturn(wrapResponse); + when(contract.wrapAccessToken("testurl", "testname", "testpassword", "testscope")).thenReturn(wrapResponse); // Act String accessToken = client.getAccessToken(); @@ -66,11 +57,11 @@ public void clientUsesContractToGetToken() throws ServiceException { @Test public void clientWillNotCallMultipleTimesWhileAccessTokenIsValid() throws ServiceException { // Arrange - WrapResponse wrapResponse = new WrapResponse(); + WrapAccessTokenResult wrapResponse = new WrapAccessTokenResult(); wrapResponse.setAccessToken("testaccesstoken"); wrapResponse.setExpiresIn(83); - when(contract.post("testurl", "testname", "testpassword", "testscope")).thenReturn(wrapResponse); + when(contract.wrapAccessToken("testurl", "testname", "testpassword", "testscope")).thenReturn(wrapResponse); // Act String accessToken1 = client.getAccessToken(); @@ -83,23 +74,23 @@ public void clientWillNotCallMultipleTimesWhileAccessTokenIsValid() throws Servi assertEquals("testaccesstoken", accessToken2); assertEquals("testaccesstoken", accessToken3); - verify(contract, times(1)).post("testurl", "testname", "testpassword", "testscope"); + verify(contract, times(1)).wrapAccessToken("testurl", "testname", "testpassword", "testscope"); } @Test public void clientWillBeCalledWhenTokenIsHalfwayToExpiring() throws ServiceException { // Arrange - doAnswer(new Answer() { + doAnswer(new Answer() { int count = 0; - public WrapResponse answer(InvocationOnMock invocation) throws Throwable { + public WrapAccessTokenResult answer(InvocationOnMock invocation) throws Throwable { ++count; - WrapResponse wrapResponse = new WrapResponse(); + WrapAccessTokenResult wrapResponse = new WrapAccessTokenResult(); wrapResponse.setAccessToken("testaccesstoken" + count); wrapResponse.setExpiresIn(83); return wrapResponse; } - }).when(contract).post("testurl", "testname", "testpassword", "testscope"); + }).when(contract).wrapAccessToken("testurl", "testname", "testpassword", "testscope"); // Act String accessToken1 = client.getAccessToken(); @@ -112,7 +103,7 @@ public WrapResponse answer(InvocationOnMock invocation) throws Throwable { assertEquals("testaccesstoken1", accessToken2); assertEquals("testaccesstoken2", accessToken3); - verify(contract, times(2)).post("testurl", "testname", "testpassword", "testscope"); + verify(contract, times(2)).wrapAccessToken("testurl", "testname", "testpassword", "testscope"); } } From 9f3d50abdf81b4d257979dea7ba586a6d2abff5f Mon Sep 17 00:00:00 2001 From: Walter Poupore Date: Tue, 15 Nov 2011 17:26:49 -0800 Subject: [PATCH 11/17] Testting checkin. --- .../services/serviceBus/models/Message.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Message.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Message.java index d0a82299965d..a219f0248773 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Message.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Message.java @@ -23,7 +23,8 @@ public Message() { } /** - * Creates an instance of the Message class using the specified InputStream. + * Creates an instance of the Message class using the + * specified InputStream. * * @param body * An InputStream object that represents the body of @@ -149,8 +150,8 @@ public Date getDate() { * Sets the date/time of the message. * * @param date - * A Date object that represents the date/time of the - * object. + * A Date object that represents the date/time of + * the object. * * @return A Message object that reperesents the updated * message. @@ -403,8 +404,8 @@ public String getReplyToSessionId() { * Sets the session ID of the Reply To recipient. * * @param replyToSessionId - * A String object that represents the session ID of - * the Reply To recipient. + * A String object that represents the session ID + * of the Reply To recipient. * * @return A Message object that reperesents the updated * message. From 46480abf63af64c708630de095f1d58e1caecb04 Mon Sep 17 00:00:00 2001 From: Walter Poupore Date: Tue, 15 Nov 2011 18:53:56 -0800 Subject: [PATCH 12/17] Added Javadoc comments. --- .../services/serviceBus/models/Queue.java | 403 +++++++++++++----- .../services/serviceBus/models/Rule.java | 144 +++++-- 2 files changed, 392 insertions(+), 155 deletions(-) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Queue.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Queue.java index 2bfb8506fe2b..630c4e9703da 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Queue.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Queue.java @@ -8,120 +8,297 @@ import com.microsoft.windowsazure.services.serviceBus.implementation.EntryModel; import com.microsoft.windowsazure.services.serviceBus.implementation.QueueDescription; +/** + * Represents a queue. + */ public class Queue extends EntryModel { - public Queue() { - super(new Entry(), new QueueDescription()); - getEntry().setContent(new Content()); - getEntry().getContent().setType(MediaType.APPLICATION_XML); - getEntry().getContent().setQueueDescription(getModel()); - } - - public Queue(Entry entry) { - super(entry, entry.getContent().getQueueDescription()); - } - - public Queue(String name) { - this(); - setName(name); - } - - public String getName() { - return getEntry().getTitle(); - } - - public Queue setName(String value) { - getEntry().setTitle(value); - return this; - } - - public Duration getLockDuration() { - return getModel().getLockDuration(); - } - - public Queue setLockDuration(Duration value) { - getModel().setLockDuration(value); - return this; - } - - public Long getMaxSizeInMegabytes() { - return getModel().getMaxSizeInMegabytes(); - } - - public Queue setMaxSizeInMegabytes(Long value) { - getModel().setMaxSizeInMegabytes(value); - return this; - } - - public Boolean isRequiresDuplicateDetection() { - return getModel().isRequiresDuplicateDetection(); - } - - public Queue setRequiresDuplicateDetection(Boolean value) { - getModel().setRequiresDuplicateDetection(value); - return this; - } - - public Boolean isRequiresSession() { - return getModel().isRequiresSession(); - } - - public Queue setRequiresSession(Boolean value) { - getModel().setRequiresSession(value); - return this; - } - - public Duration getDefaultMessageTimeToLive() { - return getModel().getDefaultMessageTimeToLive(); - } - - public Queue setDefaultMessageTimeToLive(Duration value) { - getModel().setDefaultMessageTimeToLive(value); - return this; - } - - public Boolean isDeadLetteringOnMessageExpiration() { - return getModel().isDeadLetteringOnMessageExpiration(); - } - - public Queue setDeadLetteringOnMessageExpiration(Boolean value) { - getModel().setDeadLetteringOnMessageExpiration(value); - return this; - } - - public Duration getDuplicateDetectionHistoryTimeWindow() { - return getModel().getDuplicateDetectionHistoryTimeWindow(); - } - - public Queue setDuplicateDetectionHistoryTimeWindow(Duration value) { - getModel().setDuplicateDetectionHistoryTimeWindow(value); - return this; - } - - public Integer getMaxDeliveryCount() { - return getModel().getMaxDeliveryCount(); - } - - public Queue setMaxDeliveryCount(Integer value) { - getModel().setMaxDeliveryCount(value); - return this; - } - - public Boolean isEnableBatchedOperations() { - return getModel().isEnableBatchedOperations(); - } - - public Queue setEnableBatchedOperations(Boolean value) { - getModel().setEnableBatchedOperations(value); - return this; - } - - public Long getSizeInBytes() { - return getModel().getSizeInBytes(); - } - - public Long getMessageCount() { - return getModel().getMessageCount(); - } + /** + * Creates an instance of the Queue class. + */ + public Queue() { + super(new Entry(), new QueueDescription()); + getEntry().setContent(new Content()); + getEntry().getContent().setType(MediaType.APPLICATION_XML); + getEntry().getContent().setQueueDescription(getModel()); + } + + /** + * Creates an instance of the Queue class using the specified + * entry. + * + * @param entry + * An Entry object. + */ + public Queue(Entry entry) { + super(entry, entry.getContent().getQueueDescription()); + } + + /** + * Creates an instance of the Queue class using the specified + * name. + * + * @param name + * String that represents the name of the queue. + */ + public Queue(String name) { + this(); + setName(name); + } + + /** + * Returns the name of the queue. + * + * @return String that represents the name of the queue. + */ + public String getName() { + return getEntry().getTitle(); + } + + /** + * Sets the name of the queue. + * + * @param value + * A String that represents the name of the queue. + * + * @return A Queue object that represents the updated queue. + */ + public Queue setName(String value) { + getEntry().setTitle(value); + return this; + } + + /** + * Returns the duration of the lock. + * + * @return A Duration object that represents the duration of + * the lock. + */ + public Duration getLockDuration() { + return getModel().getLockDuration(); + } + + /** + * Sets the duration of the lock. + * + * @param value + * The duration, in seconds, of the lock. + * + * @return A Queue object that represents the updated queue. + */ + public Queue setLockDuration(Duration value) { + getModel().setLockDuration(value); + return this; + } + + /** + * Returns the maximum size of the queue. + * + * @return The maximim size, in megabytes, of the queue. + */ + public Long getMaxSizeInMegabytes() { + return getModel().getMaxSizeInMegabytes(); + } + + /** + * Sets the maximum size of the queue. + * + * @param value + * The maximim size, in megabytes, of the queue. + * + * @return A Queue object that represents the updated queue. + */ + public Queue setMaxSizeInMegabytes(Long value) { + getModel().setMaxSizeInMegabytes(value); + return this; + } + + /** + * Indicates whether duplicate message detection is required. + * + * @return true if duplicate message detection is required; + * otherwise, false. + */ + public Boolean isRequiresDuplicateDetection() { + return getModel().isRequiresDuplicateDetection(); + } + + /** + * Specifies whether duplicate message detection is required. + * + * @param value + * true if duplicate message detection is required; + * otherwise, false. + * + * @return A Queue object that represents the updated queue. + */ + public Queue setRequiresDuplicateDetection(Boolean value) { + getModel().setRequiresDuplicateDetection(value); + return this; + } + + /** + * Indicates whether the queue is session-aware. + * + * @return true if the queue is session aware; otherwise, + * false. + */ + public Boolean isRequiresSession() { + return getModel().isRequiresSession(); + } + + /** + * Specifies whether the queue is session-aware. + * + * @param value + * true if the queue is session aware; otherwise, + * false. + * + * @return A Queue object that represents the updated queue. + */ + public Queue setRequiresSession(Boolean value) { + getModel().setRequiresSession(value); + return this; + } + + /** + * Returns the default message time-to-live (TTL). This applies when dead + * lettering is in effect. + * + * @return A Duration object that represents the default + * message TTL. + */ + public Duration getDefaultMessageTimeToLive() { + return getModel().getDefaultMessageTimeToLive(); + } + + /** + * Sets the default message time-to-live (TTL). This applies when dead + * lettering is in effect. + * + * @param value + * A Duration object that represents the default + * message TTL. + * + * @return A Queue object that represents the updated queue. + */ + public Queue setDefaultMessageTimeToLive(Duration value) { + getModel().setDefaultMessageTimeToLive(value); + return this; + } + + /** + * Indicates whether dead lettering is in effect upon message expiration. + * + * @return true if dead lettering is in effect; otherwise, + * false. + */ + public Boolean isDeadLetteringOnMessageExpiration() { + return getModel().isDeadLetteringOnMessageExpiration(); + } + + /** + * Specifies whether dead lettering is in effect upon message expiration. + * + * @param value + * true if dead lettering is in effect; otherwise, + * false. + * + * @return A Queue object that represents the updated queue. + */ + public Queue setDeadLetteringOnMessageExpiration(Boolean value) { + getModel().setDeadLetteringOnMessageExpiration(value); + return this; + } + + /** + * Returns the time span during which the service bus will detect message + * duplication. This applies when duplicate message detection is in effect. + * + * @return A Duration object that represents the time span for + * detecting message duplication. + */ + public Duration getDuplicateDetectionHistoryTimeWindow() { + return getModel().getDuplicateDetectionHistoryTimeWindow(); + } + + /** + * Sets the time span during which the service bus will detect message + * duplication. This applies when duplicate message detection is in effect. + * + * @param value + * A Duration object that represents the time span + * for detecting message duplication. + * + * @return A Queue object that represents the updated queue. + */ + public Queue setDuplicateDetectionHistoryTimeWindow(Duration value) { + getModel().setDuplicateDetectionHistoryTimeWindow(value); + return this; + } + + /** + * Returns the maximum delivery count for the queue. + * + * @return The maximum delivery count. + */ + public Integer getMaxDeliveryCount() { + return getModel().getMaxDeliveryCount(); + } + + /** + * Sets the maximum delivery count for the queue. + * + * @param value + * The maximum delivery count for the queue. + * + * @return A Queue object that represents the updated queue. + */ + public Queue setMaxDeliveryCount(Integer value) { + getModel().setMaxDeliveryCount(value); + return this; + } + + /** + * Indicates whether batch operations are enabled. + * + * @return true if batch operations are enabled; otherwise, + * false. + */ + public Boolean isEnableBatchedOperations() { + return getModel().isEnableBatchedOperations(); + } + + /** + * Specifies whether batch operations are enabled. + * + * @param value + * true if batch operations are enabled; otherwise, + * false. + * + * @return A Queue object that represents the updated queue. + */ + public Queue setEnableBatchedOperations(Boolean value) { + getModel().setEnableBatchedOperations(value); + return this; + } + + /** + * Returns the size of the queue. + * + * @return The size, in bytes, of the queue. + */ + public Long getSizeInBytes() { + return getModel().getSizeInBytes(); + } + + /** + * Returns the number of messages in the queue. + * + * @return The number of messages in the queue. + */ + public Long getMessageCount() { + return getModel().getMessageCount(); + } } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Rule.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Rule.java index 20f696d7730e..8d7c33897277 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Rule.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/Rule.java @@ -9,49 +9,109 @@ import com.microsoft.windowsazure.services.serviceBus.implementation.RuleAction; import com.microsoft.windowsazure.services.serviceBus.implementation.RuleDescription; +/** + * Represents a rule. + */ public class Rule extends EntryModel { - public Rule() { - super(new Entry(), new RuleDescription()); - getEntry().setContent(new Content()); - getEntry().getContent().setType(MediaType.APPLICATION_XML); - getEntry().getContent().setRuleDescription(getModel()); - } - - public Rule(Entry entry) { - super(entry, entry.getContent().getRuleDescription()); - } - - public Rule(String name) { - this(); - setName(name); - } - - public String getName() { - return getEntry().getTitle(); - } - - public Rule setName(String value) { - getEntry().setTitle(value); - return this; - } - - public Filter getFilter() { - return getModel().getFilter(); - } - - public Rule setFilter(Filter value) { - getModel().setFilter(value); - return this; - } - - public RuleAction getAction() { - return getModel().getAction(); - } - - public Rule setAction(RuleAction value) { - getModel().setAction(value); - return this; - } + /** + * Creates an instance of the Rule class. + */ + public Rule() { + super(new Entry(), new RuleDescription()); + getEntry().setContent(new Content()); + getEntry().getContent().setType(MediaType.APPLICATION_XML); + getEntry().getContent().setRuleDescription(getModel()); + } + + /** + * Creates an instance of the Rule class using the specified + * entry. + * + * @param entry + * An {@link Entry} object. + * + */ + public Rule(Entry entry) { + super(entry, entry.getContent().getRuleDescription()); + } + + /** + * Creates an instance of the Rule class using the specified + * name. + * + * @param name + * A String object that represents the name of the rule. + * + */ public Rule(String name) { + this(); + setName(name); + } + + /** + * Returns the name of the rule. + * + * @return A String object that represents the name of the rule. + */ + public String getName() { + return getEntry().getTitle(); + } + + /** + * Sets the name of the rule. + * + * @param value + * A String object that represents the name of the rule. + * + * @return A Rule object that represents the updated rule. + */ + public Rule setName(String value) { + getEntry().setTitle(value); + return this; + } + + /** + * Returns the filter used for the rule. + * + * @return A Filter object that represents the filter of the rule. + */ + public Filter getFilter() { + return getModel().getFilter(); + } + + /** + * Specifies the filter used for the rule. + * + * @param value + * A Filter object that represents the filter of the rule. + * + * @return A Rule object that represents the updated rule. + */ + public Rule setFilter(Filter value) { + getModel().setFilter(value); + return this; + } + + /** + * Returns the rule action used for the rule. + * + * @return A RuleAction object that represents the rule action. + */ + public RuleAction getAction() { + return getModel().getAction(); + } + + /** + * Specifies the rule action for the rule. + * + * @param value + * A RuleAction object that represents the rule action. + * + * @return A Rule object that represents the updated rule. + */ + public Rule setAction(RuleAction value) { + getModel().setAction(value); + return this; + } } From 716a5461056e9a1ec22077e68f9c19c8b7ffd8dd Mon Sep 17 00:00:00 2001 From: Walter Poupore Date: Wed, 16 Nov 2011 08:57:54 -0800 Subject: [PATCH 13/17] Added Javadoc content. --- .../serviceBus/models/CreateQueueResult.java | 40 ++++++++++++++----- .../serviceBus/models/CreateRuleResult.java | 22 +++++++++- .../models/CreateSubscriptionResult.java | 20 +++++++++- .../serviceBus/models/CreateTopicResult.java | 20 +++++++++- 4 files changed, 87 insertions(+), 15 deletions(-) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateQueueResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateQueueResult.java index 85107629fb02..6c45047576d1 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateQueueResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateQueueResult.java @@ -1,20 +1,38 @@ package com.microsoft.windowsazure.services.serviceBus.models; - +/** + * Represents the result of a createQueue operation. + */ public class CreateQueueResult { - private Queue value; + private Queue value; - public CreateQueueResult(Queue value) { - this.setValue(value); - } + /** + * Creates an instance of the CreateQueueResult class. + * + * @param value + * A {@link Queue} object assigned as the value of the result. + */ + public CreateQueueResult(Queue value) { + this.setValue(value); + } - public void setValue(Queue value) { - this.value = value; - } + /** + * Specfies the value of the result. + * + * @return A {@link Queue} object assigned as the value of the result. + */ + public void setValue(Queue value) { + this.value = value; + } - public Queue getValue() { - return value; - } + /** + * Returns the value of the result. + * + * @return A {@link Queue} object that represents the value of the result. + */ + public Queue getValue() { + return value; + } } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateRuleResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateRuleResult.java index 114e189b22a3..85dca821d19d 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateRuleResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateRuleResult.java @@ -1,17 +1,35 @@ package com.microsoft.windowsazure.services.serviceBus.models; - +/** + * Represents the result of a createRule operation. + */ public class CreateRuleResult { private Rule value; + /** + * Creates an instance of the CreateRuleResult class. + * + * @param value + * A {@link Rule} object assigned as the value of the result. + */ public CreateRuleResult(Rule value) { this.setValue(value); } + /** + * Specfies the value of the result. + * + * @return A {@link Rule} object assigned as the value of the result. + */ public void setValue(Rule value) { this.value = value; } - + + /** + * Returns the value of the result. + * + * @return A {@link Rule} object that represents the value of the result. + */ public Rule getValue() { return value; } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateSubscriptionResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateSubscriptionResult.java index 3b7425724138..afa513c41301 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateSubscriptionResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateSubscriptionResult.java @@ -1,18 +1,36 @@ package com.microsoft.windowsazure.services.serviceBus.models; - +/** + * Represents the result of a createSubscription operation. + */ public class CreateSubscriptionResult { private Subscription value; + /** + * Creates an instance of the CreateSubscriptionResult class. + * + * @param value + * A {@link Subscription} object assigned as the value of the result. + */ public CreateSubscriptionResult(Subscription value) { this.setValue(value); } + /** + * Specfies the value of the result. + * + * @return A {@link Subscription} object assigned as the value of the result. + */ public void setValue(Subscription value) { this.value = value; } + /** + * Returns the value of the result. + * + * @return A {@link Subscription} object that represents the value of the result. + */ public Subscription getValue() { return value; } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateTopicResult.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateTopicResult.java index 10192e3e454a..3e2e8c9fea17 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateTopicResult.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/serviceBus/models/CreateTopicResult.java @@ -1,18 +1,36 @@ package com.microsoft.windowsazure.services.serviceBus.models; - +/** + * Represents the result of a createTopic operation. + */ public class CreateTopicResult { private Topic value; + /** + * Creates an instance of the CreateTopicResult class. + * + * @param value + * A {@link Topic} object assigned as the value of the result. + */ public CreateTopicResult(Topic value) { this.setValue(value); } + /** + * Specfies the value of the result. + * + * @return A {@link Topic} object assigned as the value of the result. + */ public void setValue(Topic value) { this.value = value; } + /** + * Returns the value of the result. + * + * @return A {@link Topic} object that represents the value of the result. + */ public Topic getValue() { return value; } From aca097fa96b74307820093747bb2367789018273 Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Wed, 16 Nov 2011 11:15:42 -0800 Subject: [PATCH 14/17] Adding standard checkstyle.xml rules to config Defaults for maven checkstyle plugin are defined by the plugin as: http://svn.apache.org/viewvc/maven/plugins/tags/maven-checkstyle-plugin-2.8/src/main/resources/config/sun_checks.xml?view=co&revision=1188083&content-type=text%2Fplain --- microsoft-azure-api/pom.xml | 10 +- microsoft-azure-api/src/config/checkstyle.xml | 187 ++++++++++++++++++ 2 files changed, 196 insertions(+), 1 deletion(-) create mode 100644 microsoft-azure-api/src/config/checkstyle.xml diff --git a/microsoft-azure-api/pom.xml b/microsoft-azure-api/pom.xml index b725a1eea6ee..7cff6a2e1a38 100644 --- a/microsoft-azure-api/pom.xml +++ b/microsoft-azure-api/pom.xml @@ -109,7 +109,15 @@ true - + + + org.apache.maven.plugins + maven-checkstyle-plugin + 2.8 + + src/config/checkstyle.xml + + diff --git a/microsoft-azure-api/src/config/checkstyle.xml b/microsoft-azure-api/src/config/checkstyle.xml new file mode 100644 index 000000000000..655ed45e7607 --- /dev/null +++ b/microsoft-azure-api/src/config/checkstyle.xml @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 865322cbc808ba5024b5791fba219cbe1d314b80 Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Wed, 16 Nov 2011 11:17:22 -0800 Subject: [PATCH 15/17] Updating LineLength to validate with same limits as Eclipse settings --- microsoft-azure-api/src/config/checkstyle.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/microsoft-azure-api/src/config/checkstyle.xml b/microsoft-azure-api/src/config/checkstyle.xml index 655ed45e7607..0f628e43c5c5 100644 --- a/microsoft-azure-api/src/config/checkstyle.xml +++ b/microsoft-azure-api/src/config/checkstyle.xml @@ -118,7 +118,9 @@ - + + + From 44175cce02781433f8c8f0a38056ea74638c25a4 Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Wed, 16 Nov 2011 13:24:21 -0800 Subject: [PATCH 16/17] Adding support for optional properties file Enables default Configuration to flow from a Java properties file. Components that fall-back to Configuration.getInstance() values can be created and used directly. --- .../configuration/Configuration.java | 35 ++++++++++++++++--- .../serviceBus/IntegrationTestBase.java | 16 +-------- .../serviceBus/ServiceBusIntegrationTest.java | 8 ++--- .../WrapRestProxyIntegrationTest.java | 10 ++++-- .../WrapTokenManagerIntegrationTest.java | 14 ++------ .../com.microsoft.windowsazure.properties | 5 +++ 6 files changed, 47 insertions(+), 41 deletions(-) create mode 100644 microsoft-azure-api/src/test/resources/META-INF/com.microsoft.windowsazure.properties diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/configuration/Configuration.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/configuration/Configuration.java index fd794ece4558..b7f6da6e6345 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/configuration/Configuration.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/configuration/Configuration.java @@ -1,7 +1,13 @@ package com.microsoft.windowsazure.configuration; +import java.io.IOException; +import java.io.InputStream; import java.util.HashMap; import java.util.Map; +import java.util.Properties; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import com.microsoft.windowsazure.configuration.builder.Builder; import com.microsoft.windowsazure.configuration.builder.DefaultBuilder; @@ -13,6 +19,8 @@ public class Configuration { Map properties; Builder builder; + static Log log = LogFactory.getLog(Configuration.class); + public Configuration() { this.properties = new HashMap(); this.builder = DefaultBuilder.create(); @@ -38,8 +46,15 @@ private void init() { } public static Configuration getInstance() { - if (instance == null) - instance = Configuration.load(); + if (instance == null) { + try { + instance = Configuration.load(); + } + catch (IOException e) { + log.error("Unable to load META-INF/com.microsoft.windowsazure.properties", e); + instance = new Configuration(); + } + } return instance; } @@ -47,9 +62,19 @@ public static void setInstance(Configuration instance) { Configuration.instance = instance; } - public static Configuration load() { - // TODO - load from somewhere - return new Configuration(); + public static Configuration load() throws IOException { + Configuration config = new Configuration(); + + InputStream stream = Configuration.class.getClassLoader().getResourceAsStream("META-INF/com.microsoft.windowsazure.properties"); + if (stream != null) { + Properties properties = new Properties(); + properties.load(stream); + for (Object key : properties.keySet()) { + config.setProperty(key.toString(), properties.get(key)); + } + } + + return config; } public T create(Class service) throws Exception { diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/IntegrationTestBase.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/IntegrationTestBase.java index 0dbc7fbb6fce..93ee9b4d96b7 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/IntegrationTestBase.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/IntegrationTestBase.java @@ -5,25 +5,11 @@ import org.junit.Before; import org.junit.BeforeClass; -import com.microsoft.windowsazure.configuration.Configuration; -import com.microsoft.windowsazure.services.serviceBus.ServiceBusConfiguration; -import com.microsoft.windowsazure.services.serviceBus.ServiceBusContract; import com.microsoft.windowsazure.services.serviceBus.models.Queue; import com.microsoft.windowsazure.services.serviceBus.models.ReceiveMessageOptions; import com.microsoft.windowsazure.services.serviceBus.models.Topic; public abstract class IntegrationTestBase { - protected Configuration createConfiguration() { - Configuration config = new Configuration(); - ServiceBusConfiguration.configure(config, "lodejard", "owner", "Zo3QCZ5jLlJofibEiifZyz7B3x6a5Suv2YoS1JAWopA="); - - // when mock running - //config.setProperty("serviceBus.uri", "http://localhost:8086"); - //config.setProperty("wrapClient.uri", "http://localhost:8081/WRAPv0.9"); - - return config; - } - @BeforeClass public static void initializeSystem() { System.out.println("initialize"); @@ -40,7 +26,7 @@ public void initialize() throws Exception { System.setProperty("http.keepAlive", "false"); boolean testAlphaExists = false; - ServiceBusContract service = createConfiguration().create(ServiceBusContract.class); + ServiceBusContract service = new ServiceBusService(); for (Queue queue : iterateQueues(service)) { String queueName = queue.getName(); if (queueName.startsWith("Test") || queueName.startsWith("test")) { diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java index 0f47e6e3b9ee..df53c0c953f3 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusIntegrationTest.java @@ -11,7 +11,6 @@ import org.junit.Test; import com.microsoft.windowsazure.ServiceException; -import com.microsoft.windowsazure.configuration.Configuration; import com.microsoft.windowsazure.http.ServiceFilter; import com.microsoft.windowsazure.http.ServiceFilter.Request; import com.microsoft.windowsazure.http.ServiceFilter.Response; @@ -28,7 +27,6 @@ public class ServiceBusIntegrationTest extends IntegrationTestBase { - private Configuration config; private ServiceBusContract service; static ReceiveMessageOptions RECEIVE_AND_DELETE_5_SECONDS = new ReceiveMessageOptions().setReceiveAndDelete().setTimeout(5); @@ -36,8 +34,7 @@ public class ServiceBusIntegrationTest extends IntegrationTestBase { @Before public void createService() throws Exception { - config = createConfiguration(); - service = config.create(ServiceBusContract.class); + service = new ServiceBusService(); } @Test @@ -195,8 +192,7 @@ public void contentTypePassesThrough() throws Exception { service.createQueue(new Queue(queueName)); // Act - service.sendQueueMessage(queueName, - new Message("Hello Again").setContentType("text/xml")); + service.sendQueueMessage(queueName, new Message("Hello Again").setContentType("text/xml")); Message message = service.receiveQueueMessage(queueName, RECEIVE_AND_DELETE_5_SECONDS).getValue(); diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapRestProxyIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapRestProxyIntegrationTest.java index 5bafb7df76e9..e53abccec429 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapRestProxyIntegrationTest.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapRestProxyIntegrationTest.java @@ -5,18 +5,22 @@ import org.junit.Test; import com.microsoft.windowsazure.configuration.Configuration; +import com.microsoft.windowsazure.services.serviceBus.ServiceBusConfiguration; import com.sun.jersey.api.client.Client; public class WrapRestProxyIntegrationTest { @Test public void serviceCanBeCalledToCreateAccessToken() throws Exception { // Arrange - Configuration config = new Configuration(); + Configuration config = Configuration.getInstance(); WrapContract contract = new WrapRestProxy(config.create(Client.class)); // Act - WrapAccessTokenResult result = contract.wrapAccessToken("https://lodejard-sb.accesscontrol.windows.net/WRAPv0.9", "owner", - "Zo3QCZ5jLlJofibEiifZyz7B3x6a5Suv2YoS1JAWopA=", "http://lodejard.servicebus.windows.net"); + String uri = (String) config.getProperty(ServiceBusConfiguration.WRAP_URI); + String name = (String) config.getProperty(ServiceBusConfiguration.WRAP_NAME); + String password = (String) config.getProperty(ServiceBusConfiguration.WRAP_PASSWORD); + String scope = (String) config.getProperty(ServiceBusConfiguration.WRAP_SCOPE); + WrapAccessTokenResult result = contract.wrapAccessToken(uri, name, password, scope); // Assert assertNotNull(result); diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapTokenManagerIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapTokenManagerIntegrationTest.java index 361287d7ef09..1769f0cb9c8f 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapTokenManagerIntegrationTest.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/implementation/WrapTokenManagerIntegrationTest.java @@ -5,23 +5,13 @@ import org.junit.Test; import com.microsoft.windowsazure.configuration.Configuration; -import com.microsoft.windowsazure.services.serviceBus.implementation.WrapTokenManager; public class WrapTokenManagerIntegrationTest { - private Configuration createConfiguration() { - Configuration config = new Configuration(); - config.setProperty("wrapClient.uri", "https://lodejard-sb.accesscontrol.windows.net/WRAPv0.9"); - config.setProperty("wrapClient.scope", "http://lodejard.servicebus.windows.net/"); - config.setProperty("wrapClient.name", "owner"); - config.setProperty("wrapClient.password", "Zo3QCZ5jLlJofibEiifZyz7B3x6a5Suv2YoS1JAWopA="); - return config; - } - @Test public void wrapClientWillAcquireAccessToken() throws Exception { // Arrange - Configuration config = createConfiguration(); - WrapTokenManager client = config.create(WrapTokenManager.class); + Configuration config = Configuration.getInstance(); + WrapTokenManager client = config.create("serviceBus", WrapTokenManager.class); // Act String accessToken = client.getAccessToken(); diff --git a/microsoft-azure-api/src/test/resources/META-INF/com.microsoft.windowsazure.properties b/microsoft-azure-api/src/test/resources/META-INF/com.microsoft.windowsazure.properties new file mode 100644 index 000000000000..15229da1fdfd --- /dev/null +++ b/microsoft-azure-api/src/test/resources/META-INF/com.microsoft.windowsazure.properties @@ -0,0 +1,5 @@ +serviceBus.uri=https://lodejard.servicebus.windows.net/ +serviceBus.wrap.uri=https://lodejard-sb.accesscontrol.windows.net/WRAPv0.9 +serviceBus.wrap.scope=http://lodejard.servicebus.windows.net/ +serviceBus.wrap.name=owner +serviceBus.wrap.password=Zo3QCZ5jLlJofibEiifZyz7B3x6a5Suv2YoS1JAWopA= From c94413e9ab50865a4f7a2653ddca9b49e0043f6c Mon Sep 17 00:00:00 2001 From: Renaud Paquay Date: Wed, 16 Nov 2011 17:07:57 -0800 Subject: [PATCH 17/17] Change line wrapping to 120 columns --- microsoft-azure-api/.settings/org.eclipse.jdt.core.prefs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/microsoft-azure-api/.settings/org.eclipse.jdt.core.prefs b/microsoft-azure-api/.settings/org.eclipse.jdt.core.prefs index 171b944f2d2a..8b76cb8c6c0f 100644 --- a/microsoft-azure-api/.settings/org.eclipse.jdt.core.prefs +++ b/microsoft-azure-api/.settings/org.eclipse.jdt.core.prefs @@ -1,4 +1,4 @@ -#Sat Nov 12 18:37:54 PST 2011 +#Wed Nov 16 15:46:43 PST 2011 eclipse.preferences.version=1 org.eclipse.jdt.core.codeComplete.argumentPrefixes= org.eclipse.jdt.core.codeComplete.argumentSuffixes= @@ -275,7 +275,7 @@ org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=160 +org.eclipse.jdt.core.formatter.lineSplit=120 org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0