Repository: activemq-artemis
Updated Branches:
  refs/heads/master c18ee8319 -> 88f4a8cce


ARTEMIS-880 expand prefix support to consumers


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/29edd44d
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/29edd44d
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/29edd44d

Branch: refs/heads/master
Commit: 29edd44d244f22423562630771608e20e22a9aa4
Parents: 3af1e5c
Author: jbertram <[email protected]>
Authored: Wed Dec 14 15:08:32 2016 -0600
Committer: jbertram <[email protected]>
Committed: Wed Dec 14 15:12:57 2016 -0600

----------------------------------------------------------------------
 .../core/server/impl/ServerSessionImpl.java     | 33 +++++++++++---------
 1 file changed, 19 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/29edd44d/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerSessionImpl.java
----------------------------------------------------------------------
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerSessionImpl.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerSessionImpl.java
index d622f5a..6d4c588 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerSessionImpl.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerSessionImpl.java
@@ -418,10 +418,12 @@ public class ServerSessionImpl implements ServerSession, 
FailureListener {
                                         final boolean browseOnly,
                                         final boolean supportLargeMessage,
                                         final Integer credits) throws 
Exception {
-      Binding binding = postOffice.getBinding(queueName);
+      final SimpleString unPrefixedQueueName = removePrefix(queueName);
+
+      Binding binding = postOffice.getBinding(unPrefixedQueueName);
 
       if (binding == null || binding.getType() != BindingType.LOCAL_QUEUE) {
-         throw ActiveMQMessageBundle.BUNDLE.noSuchQueue(queueName);
+         throw ActiveMQMessageBundle.BUNDLE.noSuchQueue(unPrefixedQueueName);
       }
 
       SimpleString address = removePrefix(binding.getAddress());
@@ -429,13 +431,13 @@ public class ServerSessionImpl implements ServerSession, 
FailureListener {
          try {
             securityCheck(address, CheckType.BROWSE, this);
          } catch (Exception e) {
-            securityCheck(address.concat(".").concat(queueName), 
CheckType.BROWSE, this);
+            securityCheck(address.concat(".").concat(unPrefixedQueueName), 
CheckType.BROWSE, this);
          }
       } else {
          try {
             securityCheck(address, CheckType.CONSUME, this);
          } catch (Exception e) {
-            securityCheck(address.concat(".").concat(queueName), 
CheckType.CONSUME, this);
+            securityCheck(address.concat(".").concat(unPrefixedQueueName), 
CheckType.CONSUME, this);
          }
       }
 
@@ -475,7 +477,7 @@ public class ServerSessionImpl implements ServerSession, 
FailureListener {
          if (logger.isDebugEnabled()) {
             logger.debug("Session with user=" + username +
                             ", connection=" + this.remotingConnection +
-                            " created a consumer on queue " + queueName +
+                            " created a consumer on queue " + 
unPrefixedQueueName +
                             ", filter = " + filterString);
          }
 
@@ -528,6 +530,7 @@ public class ServerSessionImpl implements ServerSession, 
FailureListener {
                             final int maxConsumers,
                             final boolean deleteOnNoConsumers,
                             final boolean autoCreated) throws Exception {
+      final SimpleString unPrefixedName = removePrefix(name);
 
       Pair<SimpleString, RoutingType> art = getAddressAndRoutingType(address, 
routingType);
 
@@ -540,7 +543,7 @@ public class ServerSessionImpl implements ServerSession, 
FailureListener {
 
       server.checkQueueCreationLimit(getUsername());
 
-      Queue queue = server.createQueue(art.getA(), art.getB(), name, 
filterString, SimpleString.toSimpleString(getUsername()), durable, temporary, 
autoCreated, maxConsumers, deleteOnNoConsumers, 
server.getAddressSettingsRepository().getMatch(address.toString()).isAutoCreateAddresses());
+      Queue queue = server.createQueue(art.getA(), art.getB(), unPrefixedName, 
filterString, SimpleString.toSimpleString(getUsername()), durable, temporary, 
autoCreated, maxConsumers, deleteOnNoConsumers, 
server.getAddressSettingsRepository().getMatch(address.toString()).isAutoCreateAddresses());
 
       if (temporary) {
          // Temporary queue in core simply means the queue will be deleted if
@@ -549,7 +552,7 @@ public class ServerSessionImpl implements ServerSession, 
FailureListener {
          // session is closed.
          // It is up to the user to delete the queue when finished with it
 
-         TempQueueCleanerUpper cleaner = new TempQueueCleanerUpper(server, 
name);
+         TempQueueCleanerUpper cleaner = new TempQueueCleanerUpper(server, 
unPrefixedName);
          if (remotingConnection instanceof TempQueueObserver) {
             cleaner.setObserver((TempQueueObserver) remotingConnection);
          }
@@ -557,11 +560,11 @@ public class ServerSessionImpl implements ServerSession, 
FailureListener {
          remotingConnection.addCloseListener(cleaner);
          remotingConnection.addFailureListener(cleaner);
 
-         tempQueueCleannerUppers.put(name, cleaner);
+         tempQueueCleannerUppers.put(unPrefixedName, cleaner);
       }
 
       if (logger.isDebugEnabled()) {
-         logger.debug("Queue " + name + " created on address " + address +
+         logger.debug("Queue " + unPrefixedName + " created on address " + 
address +
                          " with filter=" + filterString + " temporary = " +
                          temporary + " durable=" + durable + " on session 
user=" + this.username + ", connection=" + this.remotingConnection);
       }
@@ -692,15 +695,17 @@ public class ServerSessionImpl implements ServerSession, 
FailureListener {
 
    @Override
    public void deleteQueue(final SimpleString queueToDelete) throws Exception {
-      Binding binding = postOffice.getBinding(queueToDelete);
+      final SimpleString unPrefixedQueueName = removePrefix(queueToDelete);
+
+      Binding binding = postOffice.getBinding(unPrefixedQueueName);
 
       if (binding == null || binding.getType() != BindingType.LOCAL_QUEUE) {
          throw new ActiveMQNonExistentQueueException();
       }
 
-      server.destroyQueue(queueToDelete, this, true);
+      server.destroyQueue(unPrefixedQueueName, this, true);
 
-      TempQueueCleanerUpper cleaner = 
this.tempQueueCleannerUppers.remove(queueToDelete);
+      TempQueueCleanerUpper cleaner = 
this.tempQueueCleannerUppers.remove(unPrefixedQueueName);
 
       if (cleaner != null) {
          remotingConnection.removeCloseListener(cleaner);
@@ -711,12 +716,12 @@ public class ServerSessionImpl implements ServerSession, 
FailureListener {
 
    @Override
    public QueueQueryResult executeQueueQuery(final SimpleString name) throws 
Exception {
-      return server.queueQuery(name);
+      return server.queueQuery(removePrefix(name));
    }
 
    @Override
    public AddressQueryResult executeAddressQuery(SimpleString name) throws 
Exception {
-      return server.addressQuery(name);
+      return server.addressQuery(removePrefix(name));
    }
 
    @Override

Reply via email to