You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2014/10/22 23:52:15 UTC

git commit: adding correct guava implementation

Repository: incubator-usergrid
Updated Branches:
  refs/heads/two-dot-o c97e5316c -> 5cc8b4d09


adding correct guava implementation


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/5cc8b4d0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/5cc8b4d0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/5cc8b4d0

Branch: refs/heads/two-dot-o
Commit: 5cc8b4d099fa55138d283f814324f16e14509f97
Parents: c97e531
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Oct 22 15:52:06 2014 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Oct 22 15:52:06 2014 -0600

----------------------------------------------------------------------
 .../queue/impl/SQSQueueManagerImpl.java         | 76 +++++++++++---------
 1 file changed, 43 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/5cc8b4d0/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/SQSQueueManagerImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/SQSQueueManagerImpl.java b/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/SQSQueueManagerImpl.java
index f73bb32..313b4d7 100644
--- a/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/SQSQueueManagerImpl.java
+++ b/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/SQSQueueManagerImpl.java
@@ -54,13 +54,31 @@ public class SQSQueueManagerImpl implements QueueManager {
     private  ObjectMapper mapper;
     private static SmileFactory smileFactory = new SmileFactory();
 
-    private static LoadingCache<String, Queue> urlMap = CacheBuilder.newBuilder()
+    private static LoadingCache<SqsLoader, Queue> urlMap = CacheBuilder.newBuilder()
             .maximumSize(1000)
-            .build(new CacheLoader<String, Queue>() {
+            .build(new CacheLoader<SqsLoader, Queue>() {
                        @Override
-                       public Queue load(String queueLoader) throws Exception {
-                           //equals comparison wasn't working so
-                           return new Queue(null);
+                       public Queue load(SqsLoader queueLoader) throws Exception {
+                           Queue queue = null;
+                           try {
+                               GetQueueUrlResult result = queueLoader.getClient().getQueueUrl(queueLoader.getKey());
+                               queue = new Queue(result.getQueueUrl());
+                           } catch (QueueDoesNotExistException queueDoesNotExistException) {
+                               queue = null;
+                           } catch (Exception e) {
+                               LOG.error("failed to get queue from service", e);
+                               throw e;
+                           }
+                           if (queue == null) {
+                               String name = queueLoader.getKey();
+                               CreateQueueRequest createQueueRequest = new CreateQueueRequest()
+                                       .withQueueName(name);
+                               CreateQueueResult result = queueLoader.getClient().createQueue(createQueueRequest);
+                               String url = result.getQueueUrl();
+                               queue = new Queue(url);
+                               LOG.info("Created queue with url {}", url);
+                           }
+                           return queue;
                        }
                    }
             );
@@ -85,15 +103,6 @@ public class SQSQueueManagerImpl implements QueueManager {
         }
     }
 
-    public Queue createQueue(){
-        String name = getName();
-        CreateQueueRequest createQueueRequest = new CreateQueueRequest()
-                .withQueueName(name);
-        CreateQueueResult result = sqs.createQueue(createQueueRequest);
-        String url = result.getQueueUrl();
-        LOG.info("Created queue with url {}",url);
-        return new Queue(url);
-    }
 
     private String getName() {
         String name = scope.getApplication().getType() + "_"+ scope.getName() + "_"+ scope.getApplication().getUuid().toString();
@@ -102,22 +111,7 @@ public class SQSQueueManagerImpl implements QueueManager {
 
     public Queue getQueue() {
         try {
-            Queue queue = urlMap.get(getName());
-            if (queue.isEmpty()) {
-                try {
-                    GetQueueUrlResult result = sqs.getQueueUrl(getName());
-                    queue = new Queue(result.getQueueUrl());
-                } catch (QueueDoesNotExistException queueDoesNotExistException) {
-                    queue = null;
-                } catch (Exception e) {
-                    LOG.error("failed to get queue from service", e);
-                    throw e;
-                }
-                if (queue == null) {
-                    queue = createQueue();
-                }
-                urlMap.put(getName(), queue);
-            }
+            Queue queue = urlMap.get(new SqsLoader(getName(),sqs));
             return queue;
         } catch (ExecutionException ee) {
             throw new RuntimeException(ee);
@@ -230,6 +224,9 @@ public class SQSQueueManagerImpl implements QueueManager {
         return mapper.writeValueAsString(o);
     }
 
+
+
+
     public class UsergridAwsCredentialsProvider implements AWSCredentialsProvider {
 
         private AWSCredentials creds;
@@ -294,14 +291,27 @@ public class SQSQueueManagerImpl implements QueueManager {
         public String getKey() {
             return key;
         }
+
         @Override
-        public boolean equals(Object other) {
-            if (other instanceof SqsLoader) {
-                SqsLoader loader = (SqsLoader) other;
+        public boolean equals(Object o){
+            if(o instanceof  SqsLoader){
+                SqsLoader loader = (SqsLoader)o;
                 return loader.getKey().equals(this.getKey());
             }
             return false;
         }
 
+        @Override
+        public int hashCode() {
+            int result = getKey().hashCode();
+            return result;
+        }
+
+
+        @Override
+        public String toString() {
+            return getKey();
+        }
+
     }
 }