From commits-return-9732-apmail-activemq-commits-archive=activemq.apache.org@activemq.apache.org Wed Dec 10 07:14:42 2008 Return-Path: Delivered-To: apmail-activemq-commits-archive@www.apache.org Received: (qmail 72154 invoked from network); 10 Dec 2008 07:14:42 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 10 Dec 2008 07:14:42 -0000 Received: (qmail 16049 invoked by uid 500); 10 Dec 2008 07:14:55 -0000 Delivered-To: apmail-activemq-commits-archive@activemq.apache.org Received: (qmail 16025 invoked by uid 500); 10 Dec 2008 07:14:55 -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 16016 invoked by uid 99); 10 Dec 2008 07:14:55 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 09 Dec 2008 23:14:55 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.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, 10 Dec 2008 07:13:32 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 1E7C3238889B; Tue, 9 Dec 2008 23:14:22 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r725019 - in /activemq/trunk/activemq-core/src: main/java/org/apache/activemq/ActiveMQSession.java test/java/org/apache/activemq/JMSMessageTest.java Date: Wed, 10 Dec 2008 07:14:21 -0000 To: commits@activemq.apache.org From: djencks@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20081210071422.1E7C3238889B@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: djencks Date: Tue Dec 9 23:14:21 2008 New Revision: 725019 URL: http://svn.apache.org/viewvc?rev=725019&view=rev Log: AMQ-2029 set JMS* headers on non-amq messages, with a test Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java activemq/trunk/activemq-core/src/test/java/org/apache/activemq/JMSMessageTest.java Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java?rev=725019&r1=725018&r2=725019&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java (original) +++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java Tue Dec 9 23:14:21 2008 @@ -1603,6 +1603,21 @@ TransactionId txid = transactionContext.getTransactionId(); long sequenceNumber = producer.getMessageSequence(); + //Set the "JMS" header fields on the orriginal message, see 1.1 spec section 3.4.11 + message.setJMSDestination(destination); + message.setJMSDeliveryMode(deliveryMode); + long expiration = 0L; + if (!producer.getDisableMessageTimestamp()) { + long timeStamp = System.currentTimeMillis(); + message.setJMSTimestamp(timeStamp); + if (timeToLive > 0) { + expiration = timeToLive + timeStamp; + } + } + message.setJMSExpiration(expiration); + message.setJMSPriority(priority); + message.setJMSRedelivered(false); + // transform to our own message format here ActiveMQMessage msg = ActiveMQMessageTransformation.transformMessage(message, connection); @@ -1616,19 +1631,6 @@ //clear the brokerPath in case we are re-sending this message msg.setBrokerPath(null); - msg.setJMSDestination(destination); - msg.setJMSDeliveryMode(deliveryMode); - long expiration = 0L; - if (!producer.getDisableMessageTimestamp()) { - long timeStamp = System.currentTimeMillis(); - msg.setJMSTimestamp(timeStamp); - if (timeToLive > 0) { - expiration = timeToLive + timeStamp; - } - } - msg.setJMSExpiration(expiration); - msg.setJMSPriority(priority); - msg.setJMSRedelivered(false); msg.setTransactionId(txid); if (connection.isCopyMessageOnSend()) { Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/JMSMessageTest.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/JMSMessageTest.java?rev=725019&r1=725018&r2=725019&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/JMSMessageTest.java (original) +++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/JMSMessageTest.java Tue Dec 9 23:14:21 2008 @@ -465,7 +465,23 @@ ForeignMessage message = new ForeignMessage(); message.text = "Hello"; message.setStringProperty("test", "value"); - producer.send(message); + long timeToLive = 10000L; + long start = System.currentTimeMillis(); + producer.send(message, Session.AUTO_ACKNOWLEDGE, 7, timeToLive); + long end = System.currentTimeMillis(); + + + //validate jms spec 1.1 section 3.4.11 table 3.1 + // JMSDestination, JMSDeliveryMode, JMSExpiration, JMSPriority, JMSMessageID, and JMSTimestamp + //must be set by sending a message. + assertEquals(destination, message.getJMSDestination()); + assertEquals(Session.AUTO_ACKNOWLEDGE, message.getJMSDeliveryMode()); + assertTrue(start + timeToLive <= message.getJMSExpiration()); + assertTrue(end + timeToLive >= message.getJMSExpiration()); + assertEquals(7, message.getJMSPriority()); + assertNotNull(message.getJMSMessageID()); + assertTrue(start <= message.getJMSTimestamp()); + assertTrue(end >= message.getJMSTimestamp()); } // Validate message is OK.