You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2007/01/30 19:17:10 UTC
svn commit: r501500 - in
/incubator/activemq/branches/activemq-4.1/activemq-core/src:
main/java/org/apache/activemq/ActiveMQSession.java
test/java/org/apache/activemq/command/MessageCompressionTest.java
Author: chirino
Date: Tue Jan 30 10:17:09 2007
New Revision: 501500
URL: http://svn.apache.org/viewvc?view=rev&rev=501500
Log:
Fix for https://issues.apache.org/activemq/browse/AMQ-1140
We need to make sure that the connection is set on the message so that it knows what compression options to apply
Added:
incubator/activemq/branches/activemq-4.1/activemq-core/src/test/java/org/apache/activemq/command/MessageCompressionTest.java
Modified:
incubator/activemq/branches/activemq-4.1/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java
Modified: incubator/activemq/branches/activemq-4.1/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.1/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java?view=diff&rev=501500&r1=501499&r2=501500
==============================================================================
--- incubator/activemq/branches/activemq-4.1/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java (original)
+++ incubator/activemq/branches/activemq-4.1/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java Tue Jan 30 10:17:09 2007
@@ -1535,7 +1535,8 @@
if ( connection.isCopyMessageOnSend() ){
msg = (ActiveMQMessage) msg.copy();
- }
+ }
+ msg.setConnection(connection);
msg.onSend();
msg.setProducerId(msg.getMessageId().getProducerId());
Added: incubator/activemq/branches/activemq-4.1/activemq-core/src/test/java/org/apache/activemq/command/MessageCompressionTest.java
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.1/activemq-core/src/test/java/org/apache/activemq/command/MessageCompressionTest.java?view=auto&rev=501500
==============================================================================
--- incubator/activemq/branches/activemq-4.1/activemq-core/src/test/java/org/apache/activemq/command/MessageCompressionTest.java (added)
+++ incubator/activemq/branches/activemq-4.1/activemq-core/src/test/java/org/apache/activemq/command/MessageCompressionTest.java Tue Jan 30 10:17:09 2007
@@ -0,0 +1,123 @@
+/**
+ *
+ * Copyright 2005-2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.command;
+
+import java.net.URI;
+
+import javax.jms.JMSException;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
+import javax.jms.Session;
+
+import junit.framework.TestCase;
+
+import org.apache.activemq.ActiveMQConnection;
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.activemq.broker.BrokerService;
+import org.apache.activemq.broker.TransportConnector;
+
+public class MessageCompressionTest extends TestCase {
+
+ protected BrokerService broker;
+ private ActiveMQQueue queue;
+ private static final String BROKER_URL = "tcp://localhost:61216";
+
+ // The following text should compress well
+ private static final String TEXT =
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. " +
+ "The quick red fox jumped over the lazy brown dog. ";
+
+ protected void setUp() throws Exception {
+ broker = new BrokerService();
+
+ TransportConnector tc = new TransportConnector();
+ tc.setUri(new URI(BROKER_URL));
+ tc.setName("tcp");
+
+ queue = new ActiveMQQueue("TEST."+System.currentTimeMillis());
+
+ broker.addConnector(tc);
+ broker.start();
+
+ }
+
+ protected void tearDown() throws Exception {
+ if (broker != null) {
+ broker.stop();
+ }
+ }
+
+ public void testTextMessageCompression() throws Exception {
+
+ ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(BROKER_URL);
+ factory.setUseCompression(true);
+ sendTestMessage(factory, TEXT);
+ ActiveMQTextMessage message = receiveTestMessage(factory);
+ int compressedSize = message.getContent().getLength();
+
+ factory = new ActiveMQConnectionFactory(BROKER_URL);
+ factory.setUseCompression(false);
+ sendTestMessage(factory, TEXT);
+ message = receiveTestMessage(factory);
+ int unCompressedSize = message.getContent().getLength();
+
+ assertTrue("expected: compressed Size '"+compressedSize+"' < unCompressedSize '"+unCompressedSize+"'", compressedSize < unCompressedSize);
+ }
+
+ private void sendTestMessage(ActiveMQConnectionFactory factory, String message) throws JMSException {
+ ActiveMQConnection connection = (ActiveMQConnection) factory.createConnection();
+ Session session = connection.createSession(false, 0);
+ MessageProducer producer = session.createProducer(queue);
+ producer.send(session.createTextMessage(message));
+ connection.close();
+ }
+
+ private ActiveMQTextMessage receiveTestMessage(ActiveMQConnectionFactory factory) throws JMSException {
+ ActiveMQConnection connection = (ActiveMQConnection) factory.createConnection();
+ connection.start();
+ Session session = connection.createSession(false, 0);
+ MessageConsumer consumer = session.createConsumer(queue);
+ ActiveMQTextMessage rc = (ActiveMQTextMessage) consumer.receive();
+ connection.close();
+ return rc;
+ }
+
+
+// public void testJavaUtilZip() throws Exception {
+// String str = "When the going gets weird, the weird turn pro.";
+// byte[] bytes = str.getBytes();
+//
+// ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length);
+// DeflaterOutputStream dos = new DeflaterOutputStream(baos);
+// dos.
+// }
+}
\ No newline at end of file