Return-Path: X-Original-To: apmail-activemq-commits-archive@www.apache.org Delivered-To: apmail-activemq-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C9EBE72DB for ; Wed, 14 Sep 2011 08:33:21 +0000 (UTC) Received: (qmail 56050 invoked by uid 500); 14 Sep 2011 08:33:21 -0000 Delivered-To: apmail-activemq-commits-archive@activemq.apache.org Received: (qmail 55923 invoked by uid 500); 14 Sep 2011 08:33:19 -0000 Mailing-List: contact commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list commits@activemq.apache.org Received: (qmail 55900 invoked by uid 99); 14 Sep 2011 08:33:18 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Sep 2011 08:33:18 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Sep 2011 08:33:17 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id C0AFD23888E4 for ; Wed, 14 Sep 2011 08:32:56 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1170474 - in /activemq/trunk/activemq-core/src: main/java/org/apache/activemq/command/ main/java/org/apache/activemq/transport/stomp/ test/java/org/apache/activemq/transport/stomp/ Date: Wed, 14 Sep 2011 08:32:56 -0000 To: commits@activemq.apache.org From: gtully@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110914083256.C0AFD23888E4@eris.apache.org> Author: gtully Date: Wed Sep 14 08:32:56 2011 New Revision: 1170474 URL: http://svn.apache.org/viewvc?rev=1170474&view=rev Log: https://issues.apache.org/jira/browse/AMQ-3496 - make use of the org.apache.activemq.command.UnresolvedDestinationTransformer to provide a default value for an unqualified destinations string for a stomp replyTo header Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/DefaultUnresolvedDestinationTransformer.java activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/UnresolvedDestinationTransformer.java activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/LegacyFrameTranslator.java activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/DefaultUnresolvedDestinationTransformer.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/DefaultUnresolvedDestinationTransformer.java?rev=1170474&r1=1170473&r2=1170474&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/DefaultUnresolvedDestinationTransformer.java (original) +++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/DefaultUnresolvedDestinationTransformer.java Wed Sep 14 08:32:56 2011 @@ -48,4 +48,9 @@ public class DefaultUnresolvedDestinatio throw new JMSException("Unresolvable destination: " + e.getMessage() + ": " + dest); } } + + @Override + public ActiveMQDestination transform(String dest) throws JMSException { + return new ActiveMQQueue(dest); + } } Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/UnresolvedDestinationTransformer.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/UnresolvedDestinationTransformer.java?rev=1170474&r1=1170473&r2=1170474&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/UnresolvedDestinationTransformer.java (original) +++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/UnresolvedDestinationTransformer.java Wed Sep 14 08:32:56 2011 @@ -22,5 +22,5 @@ import javax.jms.JMSException; public interface UnresolvedDestinationTransformer { public ActiveMQDestination transform(Destination dest) throws JMSException; - + public ActiveMQDestination transform(String dest) throws JMSException; } Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/LegacyFrameTranslator.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/LegacyFrameTranslator.java?rev=1170474&r1=1170473&r2=1170474&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/LegacyFrameTranslator.java (original) +++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/LegacyFrameTranslator.java Wed Sep 14 08:32:56 2011 @@ -187,6 +187,15 @@ public class LegacyFrameTranslator imple } else if (name.startsWith("/temp-topic/")) { return converter.createTempTopic(name); } else { + try { + ActiveMQDestination fallback = ActiveMQDestination.getUnresolvableDestinationTransformer().transform(name); + if (fallback != null) { + return fallback; + } + } catch (JMSException e) { + throw new ProtocolException("Illegal destination name: [" + name + "] -- ActiveMQ STOMP destinations " + + "must begin with one of: /queue/ /topic/ /temp-queue/ /temp-topic/", false, e); + } throw new ProtocolException("Illegal destination name: [" + name + "] -- ActiveMQ STOMP destinations " + "must begin with one of: /queue/ /topic/ /temp-queue/ /temp-topic/"); } Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java?rev=1170474&r1=1170473&r2=1170474&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java (original) +++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java Wed Sep 14 08:32:56 2011 @@ -1529,6 +1529,22 @@ public class StompTest extends Combinati assertEquals(stompMessage.getHeaders().get(Stomp.Headers.Message.ORIGINAL_DESTINATION), "/queue/" + getQueueName()); } + public void testDefaultJMSReplyToDest() throws Exception { + stompConnection.connect("system", "manager"); + + HashMap headers = new HashMap(); + long timestamp = System.currentTimeMillis(); + headers.put(Stomp.Headers.Send.REPLY_TO, "JustAString"); + headers.put(Stomp.Headers.Send.PERSISTENT, "true"); + + stompConnection.send("/queue/" + getQueueName(), "msg-with-reply-to", null, headers); + + stompConnection.subscribe("/queue/" + getQueueName()); + StompFrame stompMessage = stompConnection.receive(1000); + assertNotNull(stompMessage); + assertEquals("" + stompMessage, stompMessage.getHeaders().get(Stomp.Headers.Send.REPLY_TO), "/queue/" + "JustAString"); + } + public void testPersistent() throws Exception { stompConnection.connect("system", "manager");