fix default queue
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/1c7ab043 Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/1c7ab043 Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/1c7ab043 Branch: refs/heads/USERGRID-933 Commit: 1c7ab04338e89fd1a7d1ebd15918be8875f933d7 Parents: 929528a Author: Shawn Feldman <sfeld...@apache.org> Authored: Thu Sep 10 17:06:39 2015 -0600 Committer: Shawn Feldman <sfeld...@apache.org> Committed: Thu Sep 10 17:06:39 2015 -0600 ---------------------------------------------------------------------- .../queue/impl/QueueManagerFactoryImpl.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/1c7ab043/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/QueueManagerFactoryImpl.java ---------------------------------------------------------------------- diff --git a/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/QueueManagerFactoryImpl.java b/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/QueueManagerFactoryImpl.java index 2f9e7b1..d0ed1ef 100644 --- a/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/QueueManagerFactoryImpl.java +++ b/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/QueueManagerFactoryImpl.java @@ -25,6 +25,9 @@ import com.google.inject.Provider; import com.google.inject.Singleton; import org.apache.usergrid.persistence.queue.*; +import java.util.HashMap; +import java.util.Map; + /** * manages whether we take in an external in memory override for queues. */ @@ -34,14 +37,25 @@ public class QueueManagerFactoryImpl implements QueueManagerFactory { private final QueueFig queueFig; private final QueueManagerInternalFactory queuemanagerInternalFactory; + private final Map<String,QueueManager> defaultManager; @Inject public QueueManagerFactoryImpl(final QueueFig queueFig, final QueueManagerInternalFactory queuemanagerInternalFactory){ this.queueFig = queueFig; this.queuemanagerInternalFactory = queuemanagerInternalFactory; + this.defaultManager = new HashMap<>(10); } @Override public QueueManager getQueueManager(QueueScope scope) { - return queueFig.overrideQueueForDefault() ? new DefaultQueueManager() : queuemanagerInternalFactory.getQueueManager(scope); + if(queueFig.overrideQueueForDefault()){ + QueueManager manager = defaultManager.get(scope.getName()); + if(manager==null){ + manager = new DefaultQueueManager(); + defaultManager.put(scope.getName(),manager); + } + return manager; + }else{ + return queuemanagerInternalFactory.getQueueManager(scope); + } } }