summaryrefslogtreecommitdiff
path: root/java/client/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/client/src')
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQSession.java6
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java3
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java198
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java6
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/security/amqplain/AmqPlainSaslClient.java3
-rw-r--r--java/client/src/test/java/org/apache/qpid/framing/FieldTableTest.java39
-rw-r--r--java/client/src/test/java/org/apache/qpid/headers/MessageFactory.java5
-rw-r--r--java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTableKeyEnumeratorTest.java3
-rw-r--r--java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTableMessageTest.java13
-rw-r--r--java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTablePropertyTest.java65
-rw-r--r--java/client/src/test/java/org/apache/qpid/test/unit/basic/MapMessageTest.java62
-rw-r--r--java/client/src/test/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java79
-rw-r--r--java/client/src/test/java/org/apache/qpid/test/unit/basic/TextMessageTest.java9
13 files changed, 265 insertions, 226 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQSession.java b/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
index 57b941a060..bfd294f09e 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
@@ -830,7 +830,7 @@ public class AMQSession extends Closeable implements Session, QueueSession, Topi
final AMQProtocolHandler protocolHandler = _connection.getProtocolHandler();
// TODO: construct the rawSelector from the selector string if rawSelector == null
- final FieldTable ft = new FieldTable();
+ final FieldTable ft = FieldTableFactory.newFieldTable();
//if (rawSelector != null)
// ft.put("headers", rawSelector.getDataAsBytes());
if (rawSelector != null)
@@ -992,7 +992,7 @@ public class AMQSession extends Closeable implements Session, QueueSession, Topi
public QueueSender createSender(Queue queue) throws JMSException
{
//return (QueueSender) createProducer(queue);
- return new QueueSenderAdapter(createProducer(queue),queue);
+ return new QueueSenderAdapter(createProducer(queue), queue);
}
public Topic createTopic(String topicName) throws JMSException
@@ -1072,7 +1072,7 @@ public class AMQSession extends Closeable implements Session, QueueSession, Topi
public TopicPublisher createPublisher(Topic topic) throws JMSException
{
//return (TopicPublisher) createProducer(topic);
- return new TopicPublisherAdapter(createProducer(topic), topic);
+ return new TopicPublisherAdapter(createProducer(topic), topic);
}
public QueueBrowser createBrowser(Queue queue) throws JMSException
diff --git a/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java b/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java
index caef9a3f44..9333df3fe4 100644
--- a/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java
+++ b/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java
@@ -32,6 +32,7 @@ import org.apache.qpid.client.state.StateAwareMethodListener;
import org.apache.qpid.framing.ConnectionStartBody;
import org.apache.qpid.framing.ConnectionStartOkBody;
import org.apache.qpid.framing.FieldTable;
+import org.apache.qpid.framing.FieldTableFactory;
import javax.security.sasl.Sasl;
import javax.security.sasl.SaslClient;
@@ -117,7 +118,7 @@ public class ConnectionStartMethodHandler implements StateAwareMethodListener
}
stateManager.changeState(AMQState.CONNECTION_NOT_TUNED);
- FieldTable clientProperties = new FieldTable();
+ FieldTable clientProperties = FieldTableFactory.newFieldTable();
clientProperties.put("instance", ps.getClientID());
clientProperties.put("product", "Qpid");
clientProperties.put("version", "1.0");
diff --git a/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java b/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java
index 30031326d5..fbb55ae289 100644
--- a/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java
+++ b/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java
@@ -28,9 +28,8 @@ import org.apache.qpid.client.AMQQueue;
import org.apache.qpid.client.AMQTopic;
import org.apache.qpid.client.JmsNotImplementedException;
import org.apache.qpid.framing.BasicContentHeaderProperties;
-import org.apache.qpid.framing.FieldTableKeyEnumeration;
import org.apache.qpid.framing.FieldTable;
-import org.apache.qpid.framing.PropertyFieldTable;
+import org.apache.qpid.framing.FieldTableFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
@@ -45,20 +44,6 @@ public abstract class AbstractJMSMessage extends AMQMessage implements javax.jms
{
private static final Map _destinationCache = Collections.synchronizedMap(new ReferenceMap());
-
- //todo Remove these and Change _headers to use a subclass of PropertyFieldTable that limits
- // the properties that can be added... or suitably handles the values that cannot be added to the
- // AMQP header field table.
- public static final char BOOLEAN_PROPERTY_PREFIX = PropertyFieldTable.BOOLEAN_PROPERTY_PREFIX;
- public static final char BYTE_PROPERTY_PREFIX = PropertyFieldTable.BYTE_PROPERTY_PREFIX;
- public static final char SHORT_PROPERTY_PREFIX = PropertyFieldTable.SHORT_PROPERTY_PREFIX;
- public static final char INT_PROPERTY_PREFIX = PropertyFieldTable.INT_PROPERTY_PREFIX;
- public static final char LONG_PROPERTY_PREFIX = PropertyFieldTable.LONG_PROPERTY_PREFIX;
- public static final char FLOAT_PROPERTY_PREFIX = PropertyFieldTable.FLOAT_PROPERTY_PREFIX;
- public static final char DOUBLE_PROPERTY_PREFIX = PropertyFieldTable.DOUBLE_PROPERTY_PREFIX;
- public static final char STRING_PROPERTY_PREFIX = PropertyFieldTable.STRING_PROPERTY_PREFIX;
-
-
protected boolean _redelivered;
protected ByteBuffer _data;
@@ -268,213 +253,136 @@ public abstract class AbstractJMSMessage extends AMQMessage implements javax.jms
public boolean propertyExists(String propertyName) throws JMSException
{
checkPropertyName(propertyName);
-
- Iterator keys = getJmsContentHeaderProperties().getHeaders().keySet().iterator();
-
- while (keys.hasNext())
- {
- String key = (String) keys.next();
-
- if (key.endsWith(propertyName))
- {
- return true;
- }
- }
- return false;
-
+ return getJmsContentHeaderProperties().getHeaders().propertyExists(propertyName);
}
public boolean getBooleanProperty(String propertyName) throws JMSException
{
checkPropertyName(propertyName);
- // store as integer as temporary workaround
- //Boolean b = (Boolean) getJmsContentHeaderProperties().headers.get(BOOLEAN_PROPERTY_PREFIX + propertyName);
- Long b = (Long) getJmsContentHeaderProperties().getHeaders().get(BOOLEAN_PROPERTY_PREFIX + propertyName);
- if (b == null)
+ if (getJmsContentHeaderProperties() == null)
{
- return Boolean.valueOf(null).booleanValue();
- }
- else
- {
- return b.longValue() != 0;
+ System.out.println("HEADERS ARE NULL");
}
+
+ return getJmsContentHeaderProperties().getHeaders().getBoolean(propertyName);
}
public byte getByteProperty(String propertyName) throws JMSException
{
checkPropertyName(propertyName);
- Byte b = (Byte) getJmsContentHeaderProperties().getHeaders().get(BYTE_PROPERTY_PREFIX + propertyName);
- if (b == null)
- {
- return Byte.valueOf(null).byteValue();
- }
- else
- {
- return b.byteValue();
- }
+ return getJmsContentHeaderProperties().getHeaders().getByte(propertyName);
}
public short getShortProperty(String propertyName) throws JMSException
{
checkPropertyName(propertyName);
- Short s = (Short) getJmsContentHeaderProperties().getHeaders().get(SHORT_PROPERTY_PREFIX + propertyName);
- if (s == null)
- {
- return Short.valueOf(null).shortValue();
- }
- else
- {
- return s.shortValue();
- }
+ return getJmsContentHeaderProperties().getHeaders().getShort(propertyName);
}
public int getIntProperty(String propertyName) throws JMSException
{
checkPropertyName(propertyName);
- Integer i = (Integer) getJmsContentHeaderProperties().getHeaders().get(INT_PROPERTY_PREFIX + propertyName);
- if (i == null)
- {
- return Integer.valueOf(null).intValue();
- }
- else
- {
- return i.intValue();
- }
+ return getJmsContentHeaderProperties().getHeaders().getInteger(propertyName);
}
public long getLongProperty(String propertyName) throws JMSException
{
checkPropertyName(propertyName);
- Long l = (Long) getJmsContentHeaderProperties().getHeaders().get(LONG_PROPERTY_PREFIX + propertyName);
- if (l == null)
- {
- // temp - the spec says do this but this throws a NumberFormatException
- //return Long.valueOf(null).longValue();
- return 0;
- }
- else
- {
- return l.longValue();
- }
+ return getJmsContentHeaderProperties().getHeaders().getLong(propertyName);
}
public float getFloatProperty(String propertyName) throws JMSException
{
checkPropertyName(propertyName);
- final Float f = (Float) getJmsContentHeaderProperties().getHeaders().get(FLOAT_PROPERTY_PREFIX + propertyName);
- if (f == null)
- {
- return Float.valueOf(null).floatValue();
- }
- else
- {
- return f.floatValue();
- }
+ return getJmsContentHeaderProperties().getHeaders().getFloat(propertyName);
}
public double getDoubleProperty(String propertyName) throws JMSException
{
checkPropertyName(propertyName);
- final Double d = (Double) getJmsContentHeaderProperties().getHeaders().get(DOUBLE_PROPERTY_PREFIX + propertyName);
- if (d == null)
- {
- return Double.valueOf(null).doubleValue();
- }
- else
- {
- return d.shortValue();
- }
+ return getJmsContentHeaderProperties().getHeaders().getDouble(propertyName);
}
public String getStringProperty(String propertyName) throws JMSException
{
checkPropertyName(propertyName);
- return (String) getJmsContentHeaderProperties().getHeaders().get(STRING_PROPERTY_PREFIX + propertyName);
+ return getJmsContentHeaderProperties().getHeaders().getString(propertyName);
}
public Object getObjectProperty(String propertyName) throws JMSException
{
checkPropertyName(propertyName);
- throw new JmsNotImplementedException();
+ return getJmsContentHeaderProperties().getHeaders().getObject(propertyName);
}
public Enumeration getPropertyNames() throws JMSException
{
- return new FieldTableKeyEnumeration(getJmsContentHeaderProperties().getHeaders())
- {
- public Object nextElement()
- {
- String propName = (String) _iterator.next();
-
- //The propertyName has a single Char prefix. Skip this.
- return propName.substring(1);
- }
- };
+ return getJmsContentHeaderProperties().getHeaders().getPropertyNames();
}
public void setBooleanProperty(String propertyName, boolean b) throws JMSException
{
checkWritableProperties();
checkPropertyName(propertyName);
- //getJmsContentHeaderProperties().headers.put(BOOLEAN_PROPERTY_PREFIX + propertyName, Boolean.valueOf(b));
- getJmsContentHeaderProperties().getHeaders().put(BOOLEAN_PROPERTY_PREFIX + propertyName, b ? new Long(1) : new Long(0));
+ getJmsContentHeaderProperties().getHeaders().setBoolean(propertyName, b);
}
public void setByteProperty(String propertyName, byte b) throws JMSException
{
checkWritableProperties();
checkPropertyName(propertyName);
- getJmsContentHeaderProperties().getHeaders().put(BYTE_PROPERTY_PREFIX + propertyName, new Byte(b));
+ getJmsContentHeaderProperties().getHeaders().setByte(propertyName, new Byte(b));
}
public void setShortProperty(String propertyName, short i) throws JMSException
{
checkWritableProperties();
checkPropertyName(propertyName);
- getJmsContentHeaderProperties().getHeaders().put(SHORT_PROPERTY_PREFIX + propertyName, new Short(i));
+ getJmsContentHeaderProperties().getHeaders().setShort(propertyName, new Short(i));
}
public void setIntProperty(String propertyName, int i) throws JMSException
{
checkWritableProperties();
checkPropertyName(propertyName);
- getJmsContentHeaderProperties().getHeaders().put(INT_PROPERTY_PREFIX + propertyName, new Integer(i));
+ getJmsContentHeaderProperties().getHeaders().setInteger(propertyName, new Integer(i));
}
public void setLongProperty(String propertyName, long l) throws JMSException
{
checkWritableProperties();
checkPropertyName(propertyName);
- getJmsContentHeaderProperties().getHeaders().put(LONG_PROPERTY_PREFIX + propertyName, new Long(l));
+ getJmsContentHeaderProperties().getHeaders().setLong(propertyName, new Long(l));
}
public void setFloatProperty(String propertyName, float f) throws JMSException
{
checkWritableProperties();
checkPropertyName(propertyName);
- getJmsContentHeaderProperties().getHeaders().put(FLOAT_PROPERTY_PREFIX + propertyName, new Float(f));
+ getJmsContentHeaderProperties().getHeaders().setFloat(propertyName, new Float(f));
}
public void setDoubleProperty(String propertyName, double v) throws JMSException
{
checkWritableProperties();
checkPropertyName(propertyName);
- getJmsContentHeaderProperties().getHeaders().put(DOUBLE_PROPERTY_PREFIX + propertyName, new Double(v));
+ getJmsContentHeaderProperties().getHeaders().setDouble(propertyName, new Double(v));
}
public void setStringProperty(String propertyName, String value) throws JMSException
{
checkWritableProperties();
checkPropertyName(propertyName);
- getJmsContentHeaderProperties().getHeaders().put(STRING_PROPERTY_PREFIX + propertyName, value);
+ getJmsContentHeaderProperties().getHeaders().setString(propertyName, value);
}
- public void setObjectProperty(String string, Object object) throws JMSException
+ public void setObjectProperty(String propertyName, Object object) throws JMSException
{
- //todo this should be changed to something else.. the Header doesn't support objects.
- throw new RuntimeException("Not Implemented");
+ checkWritableProperties();
+ checkPropertyName(propertyName);
+ getJmsContentHeaderProperties().getHeaders().setObject(propertyName, object);
}
public void acknowledge() throws JMSException
@@ -518,56 +426,13 @@ public abstract class AbstractJMSMessage extends AMQMessage implements javax.jms
buf.append("\nJMS reply to: ").append(String.valueOf(getJMSReplyTo()));
buf.append("\nAMQ message number: ").append(_deliveryTag);
buf.append("\nProperties:");
- final Iterator it = getJmsContentHeaderProperties().getHeaders().entrySet().iterator();
- if (!it.hasNext())
+ if (getJmsContentHeaderProperties().getHeaders().isEmpty())
{
buf.append("<NONE>");
}
- while (it.hasNext())
+ else
{
- final Map.Entry entry = (Map.Entry) it.next();
- final String propertyName = (String) entry.getKey();
- if (propertyName == null)
- {
- buf.append("\nInternal error: Property with NULL key defined");
- }
- else
- {
- buf.append('\n').append(propertyName.substring(1));
-
- char typeIdentifier = propertyName.charAt(0);
- switch (typeIdentifier)
- {
- case org.apache.qpid.client.message.AbstractJMSMessage.BOOLEAN_PROPERTY_PREFIX:
- buf.append("<boolean> ");
- break;
- case org.apache.qpid.client.message.AbstractJMSMessage.BYTE_PROPERTY_PREFIX:
- buf.append("<byte> ");
- break;
- case org.apache.qpid.client.message.AbstractJMSMessage.SHORT_PROPERTY_PREFIX:
- buf.append("<short> ");
- break;
- case org.apache.qpid.client.message.AbstractJMSMessage.INT_PROPERTY_PREFIX:
- buf.append("<int> ");
- break;
- case org.apache.qpid.client.message.AbstractJMSMessage.LONG_PROPERTY_PREFIX:
- buf.append("<long> ");
- break;
- case org.apache.qpid.client.message.AbstractJMSMessage.FLOAT_PROPERTY_PREFIX:
- buf.append("<float> ");
- break;
- case org.apache.qpid.client.message.AbstractJMSMessage.DOUBLE_PROPERTY_PREFIX:
- buf.append("<double> ");
- break;
- case org.apache.qpid.client.message.AbstractJMSMessage.STRING_PROPERTY_PREFIX:
- buf.append("<string> ");
- break;
- default:
- buf.append("<unknown type (identifier " +
- typeIdentifier + ") ");
- }
- buf.append(String.valueOf(entry.getValue()));
- }
+ buf.append('\n').append(getJmsContentHeaderProperties().getHeaders());
}
return buf.toString();
}
@@ -589,7 +454,6 @@ public abstract class AbstractJMSMessage extends AMQMessage implements javax.jms
private void checkPropertyName(String propertyName)
{
-
if (propertyName == null)
{
throw new IllegalArgumentException("Property name must not be null");
@@ -609,7 +473,7 @@ public abstract class AbstractJMSMessage extends AMQMessage implements javax.jms
// We need to convert every property into a String representation
// Note that type information is preserved in the property name
//
- final FieldTable table = new FieldTable();
+ final FieldTable table = FieldTableFactory.newFieldTable();
final Iterator entries = getJmsContentHeaderProperties().getHeaders().entrySet().iterator();
while (entries.hasNext())
{
diff --git a/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java b/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java
index 233f05244f..5282dce4c9 100644
--- a/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java
+++ b/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java
@@ -23,10 +23,10 @@ package org.apache.qpid.client.message;
import org.apache.mina.common.ByteBuffer;
import org.apache.qpid.framing.BasicContentHeaderProperties;
import org.apache.qpid.framing.PropertyFieldTable;
+import org.apache.qpid.framing.FieldTableFactory;
import org.apache.qpid.AMQException;
import javax.jms.JMSException;
-import javax.jms.MessageFormatException;
import java.util.Enumeration;
public class JMSMapMessage extends JMSTextMessage implements javax.jms.MapMessage
@@ -58,7 +58,7 @@ public class JMSMapMessage extends JMSTextMessage implements javax.jms.MapMessag
try
{
- _map = new PropertyFieldTable(getText());
+ _map = FieldTableFactory.newFieldTable(getText());
}
catch (JMSException e)
{
@@ -74,7 +74,7 @@ public class JMSMapMessage extends JMSTextMessage implements javax.jms.MapMessag
{
_data.release();
}
- _data = null;
+ _data = null;
}
public String toBodyString() throws JMSException
diff --git a/java/client/src/main/java/org/apache/qpid/client/security/amqplain/AmqPlainSaslClient.java b/java/client/src/main/java/org/apache/qpid/client/security/amqplain/AmqPlainSaslClient.java
index 81d3fb76d5..4291cb3259 100644
--- a/java/client/src/main/java/org/apache/qpid/client/security/amqplain/AmqPlainSaslClient.java
+++ b/java/client/src/main/java/org/apache/qpid/client/security/amqplain/AmqPlainSaslClient.java
@@ -21,6 +21,7 @@
package org.apache.qpid.client.security.amqplain;
import org.apache.qpid.framing.FieldTable;
+import org.apache.qpid.framing.FieldTableFactory;
import javax.security.sasl.SaslClient;
import javax.security.sasl.SaslException;
@@ -71,7 +72,7 @@ public class AmqPlainSaslClient implements SaslClient
{
throw new SaslException("Error handling SASL callbacks: " + e, e);
}
- FieldTable table = new FieldTable();
+ FieldTable table = FieldTableFactory.newFieldTable();
table.put("LOGIN", nameCallback.getName());
table.put("PASSWORD", pwdCallback.getPassword());
return table.getDataAsBytes();
diff --git a/java/client/src/test/java/org/apache/qpid/framing/FieldTableTest.java b/java/client/src/test/java/org/apache/qpid/framing/FieldTableTest.java
index 49e1630f15..2a7cb8be30 100644
--- a/java/client/src/test/java/org/apache/qpid/framing/FieldTableTest.java
+++ b/java/client/src/test/java/org/apache/qpid/framing/FieldTableTest.java
@@ -33,6 +33,33 @@ import junit.framework.TestCase;
public class FieldTableTest extends TestCase
{
+
+ public void testEncoding()
+ {
+ FieldTable table = FieldTableFactory.newFieldTable();
+
+ String key = "String";
+ String value = "Hello";
+ table.put(key, value);
+
+ //Add one for the type encoding
+ int size = EncodingUtils.encodedShortStringLength(key) + 1 +
+ EncodingUtils.encodedLongStringLength(value);
+
+ assertEquals(table.getEncodedSize(), size);
+
+ key = "Integer";
+ Integer number = new Integer(60);
+ table.put(key, number);
+
+ //Add one for the type encoding
+ size += EncodingUtils.encodedShortStringLength(key) + 1 + 4;
+
+
+ assertEquals(table.getEncodedSize(), size);
+ }
+
+
public void testDataDump() throws IOException, AMQFrameDecodingException
{
byte[] data = readBase64("content.txt");
@@ -46,7 +73,7 @@ public class FieldTableTest extends TestCase
ByteBuffer buffer = ByteBuffer.allocate(data.length);
buffer.put(data);
buffer.flip();
- FieldTable table = new FieldTable(buffer, size);
+ FieldTable table = FieldTableFactory.newFieldTable(buffer, size);
}
/*
@@ -107,7 +134,7 @@ public class FieldTableTest extends TestCase
FieldTable load(String name) throws IOException
{
- return populate(new FieldTable(), read(name));
+ return populate(FieldTableFactory.newFieldTable(), read(name));
}
Properties read(String name) throws IOException
@@ -123,11 +150,12 @@ public class FieldTableTest extends TestCase
{
String key = (String) i.nextElement();
String value = properties.getProperty(key);
- try{
+ try
+ {
int ival = Integer.parseInt(value);
table.put(key, (long) ival);
}
- catch(NumberFormatException e)
+ catch (NumberFormatException e)
{
table.put(key, value);
}
@@ -144,7 +172,8 @@ public class FieldTableTest extends TestCase
{
StringBuffer buffer = new StringBuffer();
String line = in.readLine();
- while (line != null){
+ while (line != null)
+ {
buffer.append(line).append(" ");
line = in.readLine();
}
diff --git a/java/client/src/test/java/org/apache/qpid/headers/MessageFactory.java b/java/client/src/test/java/org/apache/qpid/headers/MessageFactory.java
index f1f310c6e5..6f538d068c 100644
--- a/java/client/src/test/java/org/apache/qpid/headers/MessageFactory.java
+++ b/java/client/src/test/java/org/apache/qpid/headers/MessageFactory.java
@@ -22,6 +22,7 @@ package org.apache.qpid.headers;
import org.apache.qpid.client.AMQSession;
import org.apache.qpid.framing.FieldTable;
+import org.apache.qpid.framing.FieldTableFactory;
import javax.jms.BytesMessage;
import javax.jms.Destination;
@@ -127,14 +128,14 @@ class MessageFactory
FieldTable getConsumerBinding()
{
- FieldTable binding = new FieldTable();
+ FieldTable binding = FieldTableFactory.newFieldTable();
binding.put("SF0000", "value");
return binding;
}
FieldTable getControllerBinding()
{
- FieldTable binding = new FieldTable();
+ FieldTable binding = FieldTableFactory.newFieldTable();
binding.put("SCONTROL", "value");
return binding;
}
diff --git a/java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTableKeyEnumeratorTest.java b/java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTableKeyEnumeratorTest.java
index 2e740aa3eb..ad180e3a89 100644
--- a/java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTableKeyEnumeratorTest.java
+++ b/java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTableKeyEnumeratorTest.java
@@ -21,6 +21,7 @@
package org.apache.qpid.test.unit.basic;
import org.apache.qpid.framing.FieldTable;
+import org.apache.qpid.framing.FieldTableFactory;
import org.apache.qpid.client.message.JMSTextMessage;
import org.apache.qpid.client.message.TestMessageHelper;
@@ -36,7 +37,7 @@ public class FieldTableKeyEnumeratorTest extends TestCase
{
public void testKeyEnumeration()
{
- FieldTable result = new FieldTable();
+ FieldTable result = FieldTableFactory.newFieldTable();
result.put("one", 1L);
result.put("two", 2L);
result.put("three", 3L);
diff --git a/java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTableMessageTest.java b/java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTableMessageTest.java
index 67b7f49565..c1ecef6b57 100644
--- a/java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTableMessageTest.java
+++ b/java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTableMessageTest.java
@@ -26,10 +26,12 @@ import org.apache.qpid.client.AMQQueue;
import org.apache.qpid.client.AMQSession;
import org.apache.qpid.client.message.JMSBytesMessage;
import org.apache.qpid.framing.AMQFrameDecodingException;
-import org.apache.qpid.framing.FieldTable;
import org.apache.qpid.framing.FieldTableTest;
+import org.apache.qpid.framing.FieldTable;
+import org.apache.qpid.framing.FieldTableFactory;
import org.apache.qpid.test.VMBrokerSetup;
import org.apache.mina.common.ByteBuffer;
+import org.apache.log4j.Logger;
import java.io.IOException;
import java.util.ArrayList;
@@ -39,6 +41,9 @@ import junit.framework.TestCase;
public class FieldTableMessageTest extends TestCase implements MessageListener
{
+
+ private static final Logger _logger = Logger.getLogger(FieldTableMessageTest.class);
+
private AMQConnection _connection;
private AMQDestination _destination;
private AMQSession _session;
@@ -50,7 +55,7 @@ public class FieldTableMessageTest extends TestCase implements MessageListener
protected void setUp() throws Exception
{
super.setUp();
- init(new AMQConnection(_connectionString, "guest", "guest", randomize("Client"), "/test_path"));
+ init(new AMQConnection(_connectionString, "guest", "guest", randomize("Client"), "/test_path"));
}
protected void tearDown() throws Exception
@@ -80,7 +85,7 @@ public class FieldTableMessageTest extends TestCase implements MessageListener
private FieldTable load() throws IOException
{
- FieldTable result = new FieldTable();
+ FieldTable result = FieldTableFactory.newFieldTable();
result.put("one", 1L);
result.put("two", 2L);
result.put("three", 3L);
@@ -128,7 +133,7 @@ public class FieldTableMessageTest extends TestCase implements MessageListener
for (Object m : received)
{
ByteBuffer buffer = ((JMSBytesMessage) m).getData();
- FieldTable actual = new FieldTable(buffer, buffer.remaining());
+ FieldTable actual = FieldTableFactory.newFieldTable(buffer, buffer.remaining());
new FieldTableTest().assertEquivalent(_expected, actual);
}
}
diff --git a/java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTablePropertyTest.java b/java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTablePropertyTest.java
new file mode 100644
index 0000000000..92b4831d93
--- /dev/null
+++ b/java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTablePropertyTest.java
@@ -0,0 +1,65 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.qpid.test.unit.basic;
+
+import org.apache.qpid.framing.PropertyFieldTable;
+import org.apache.qpid.framing.FieldTable;
+import org.apache.qpid.client.message.JMSTextMessage;
+import org.apache.qpid.client.message.TestMessageHelper;
+
+import java.util.Enumeration;
+import java.util.NoSuchElementException;
+
+import javax.jms.JMSException;
+
+import junit.framework.TestCase;
+
+public class FieldTablePropertyTest extends TestCase
+{
+ public void testPropertyNames()
+ {
+ try
+ {
+ JMSTextMessage text = TestMessageHelper.newJMSTextMessage();
+
+ text.setBooleanProperty("Boolean1", true);
+ text.setBooleanProperty("Boolean2", true);
+ text.setIntProperty("Int", 2);
+ text.setLongProperty("Long", 2);
+
+ Enumeration e = text.getPropertyNames();
+
+ assertEquals("Boolean1", e.nextElement());
+ assertTrue("Boolean2".equals(e.nextElement()));
+ assertTrue("Int".equals(e.nextElement()));
+ assertTrue("Long".equals(e.nextElement()));
+ }
+ catch (JMSException e)
+ {
+
+ }
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new junit.framework.TestSuite(FieldTablePropertyTest.class);
+ }
+}
diff --git a/java/client/src/test/java/org/apache/qpid/test/unit/basic/MapMessageTest.java b/java/client/src/test/java/org/apache/qpid/test/unit/basic/MapMessageTest.java
index a685e75a29..5353a19d13 100644
--- a/java/client/src/test/java/org/apache/qpid/test/unit/basic/MapMessageTest.java
+++ b/java/client/src/test/java/org/apache/qpid/test/unit/basic/MapMessageTest.java
@@ -47,6 +47,7 @@ public class MapMessageTest extends TestCase implements MessageListener
private final List<String> messages = new ArrayList<String>();
private int _count = 100;
public String _connectionString = "vm://:1";
+ private byte[] _bytes = {99, 98, 97, 96, 95};
protected void setUp() throws Exception
{
@@ -104,9 +105,31 @@ public class MapMessageTest extends TestCase implements MessageListener
MapMessage message = _session.createMapMessage();
message.setBoolean("odd", i / 2 == 0);
+ message.setByte("byte", (byte) Byte.MAX_VALUE);
+
+ message.setBytes("bytes", _bytes);
+ message.setChar("char", (char) 'c');
+ message.setDouble("double", (double) Double.MAX_VALUE);
+ message.setFloat("float", (float) Float.MAX_VALUE);
+
message.setInt("messageNumber", i);
+ message.setInt("int", (int) Integer.MAX_VALUE);
+
+ message.setLong("long", (long) Long.MAX_VALUE);
+ message.setShort("short", (short) Short.MAX_VALUE);
message.setString("message", text);
+
+ message.setObject("object-bool", true);
+ message.setObject("object-byte", Byte.MAX_VALUE);
+ message.setObject("object-bytes", _bytes);
+ message.setObject("object-char", 'c');
+ message.setObject("object-double", Double.MAX_VALUE);
+ message.setObject("object-float", Float.MAX_VALUE);
+ message.setObject("object-int", Integer.MAX_VALUE);
+ message.setObject("object-long", Long.MAX_VALUE);
+ message.setObject("object-short", Short.MAX_VALUE);
+
producer.send(message);
}
}
@@ -130,7 +153,31 @@ public class MapMessageTest extends TestCase implements MessageListener
{
actual.add(m.getString("message"));
assertEqual(m.getInt("messageNumber"), count);
- assertEqual(m.getBoolean("odd"), count / 2 == 0);
+
+
+ assertEqual(count / 2 == 0, m.getBoolean("odd"));
+ assertEqual((byte) Byte.MAX_VALUE, m.getByte("byte"));
+
+ assertBytesEqual(_bytes, m.getBytes("bytes"));
+ assertEqual((char) 'c', m.getChar("char"));
+ assertEqual((double) Double.MAX_VALUE, m.getDouble("double"));
+ assertEqual((float) Float.MAX_VALUE, m.getFloat("float"));
+
+ assertEqual(count, m.getInt("messageNumber"));
+ assertEqual((int) Integer.MAX_VALUE, m.getInt("int"));
+ assertEqual((long) Long.MAX_VALUE, m.getLong("long"));
+ assertEqual((short) Short.MAX_VALUE, m.getShort("short"));
+
+ assertEqual(true, m.getObject("object-bool"));
+ assertEqual(Byte.MAX_VALUE, m.getObject("object-byte"));
+ assertBytesEqual(_bytes, (byte[]) m.getObject("object-bytes"));
+ assertEqual('c', m.getObject("object-char"));
+ assertEqual(Double.MAX_VALUE, m.getObject("object-double"));
+ assertEqual(Float.MAX_VALUE, m.getObject("object-float"));
+ assertEqual(Integer.MAX_VALUE, m.getObject("object-int"));
+ assertEqual(Long.MAX_VALUE, m.getObject("object-long"));
+ assertEqual(Short.MAX_VALUE, m.getObject("object-short"));
+
try
{
@@ -153,7 +200,7 @@ public class MapMessageTest extends TestCase implements MessageListener
Assert.fail("Message should be writeable");
}
- //Check property write status
+ //Check property write status
try
{
m.setStringProperty("test", "test");
@@ -181,6 +228,17 @@ public class MapMessageTest extends TestCase implements MessageListener
assertEqual(messages.iterator(), actual.iterator());
}
+ private void assertBytesEqual(byte[] expected, byte[] actual)
+ {
+ Assert.assertEquals(expected.length, actual.length);
+
+ for (int index = 0; index < expected.length; index++)
+ {
+ Assert.assertEquals(expected[index], actual[index]);
+ }
+ }
+
+
private static void assertEqual(Iterator expected, Iterator actual)
{
List<String> errors = new ArrayList<String>();
diff --git a/java/client/src/test/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java b/java/client/src/test/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java
index de7e12ac61..02f371e81b 100644
--- a/java/client/src/test/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java
+++ b/java/client/src/test/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java
@@ -20,32 +20,37 @@
*/
package org.apache.qpid.test.unit.basic;
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import org.apache.log4j.Logger;
import org.apache.qpid.client.AMQConnection;
import org.apache.qpid.client.AMQQueue;
import org.apache.qpid.client.AMQSession;
import org.apache.qpid.client.message.JMSTextMessage;
import org.apache.qpid.test.VMBrokerSetup;
-import org.apache.log4j.Logger;
+import javax.jms.Destination;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageListener;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import javax.jms.*;
-
-import junit.framework.TestCase;
-import junit.framework.Assert;
public class PropertyValueTest extends TestCase implements MessageListener
{
private static final Logger _logger = Logger.getLogger(PropertyValueTest.class);
+ private int count = 0;
private AMQConnection _connection;
private Destination _destination;
private AMQSession _session;
private final List<JMSTextMessage> received = new ArrayList<JMSTextMessage>();
private final List<String> messages = new ArrayList<String>();
- private int _count = 1;//100;
+ private int _count = 100;
public String _connectionString = "vm://:1";
protected void setUp() throws Exception
@@ -104,25 +109,31 @@ public class PropertyValueTest extends TestCase implements MessageListener
Message m = _session.createTextMessage(text);
m.setBooleanProperty("Bool", true);
-// m.setByteProperty("Byte", (byte) Byte.MAX_VALUE);
-// m.setDoubleProperty("Double", (double) Double.MAX_VALUE);
-// m.setFloatProperty("Float", (float) Float.MAX_VALUE);
-// m.setIntProperty("Int", (int) Integer.MAX_VALUE);
+
+ m.setByteProperty("Byte", (byte) Byte.MAX_VALUE);
+ m.setDoubleProperty("Double", (double) Double.MAX_VALUE);
+ m.setFloatProperty("Float", (float) Float.MAX_VALUE);
+ m.setIntProperty("Int", (int) Integer.MAX_VALUE);
+
m.setJMSCorrelationID("Correlation");
m.setJMSPriority(100);
- // Set Q
- //m.setJMSReplyTo(_session.Queue("TestReply"));
-
- // Temporary Queue
- Queue q = _session.createTemporaryQueue();
- m.setJMSReplyTo(q);//Queue("TestReply"));
+ // Queue
+ Queue q = //_session.createTemporaryQueue();
+ q = new AMQQueue("TestReply");
+ m.setJMSReplyTo(q);
m.setStringProperty("TempQueue", q.toString());
-// m.setJMSType("Test");
+
+ _logger.info("Message:" + m);
+
+ Assert.assertEquals("Check temp queue has been set correctly",
+ m.getJMSReplyTo().toString(), m.getStringProperty("TempQueue"));
+
+ m.setJMSType("Test");
m.setLongProperty("UnsignedInt", (long) 4294967295L);
-// m.setLongProperty("Long", (long) Long.MAX_VALUE);
+ m.setLongProperty("Long", (long) Long.MAX_VALUE);
-// m.setShortProperty("Short", (short) Short.MAX_VALUE);
+ m.setShortProperty("Short", (short) Short.MAX_VALUE);
m.setStringProperty("String", "Test");
_logger.info("Sending Msg:" + m);
@@ -152,35 +163,31 @@ public class PropertyValueTest extends TestCase implements MessageListener
Assert.assertEquals("Check Boolean properties are correctly transported",
true, m.getBooleanProperty("Bool"));
-// Assert.assertEquals("Check Byte properties are correctly transported",
-// (byte) Byte.MAX_VALUE, m.getByteProperty("Byte"));
-// Assert.assertEquals("Check Double properties are correctly transported",
-// (double) Double.MAX_VALUE, m.getDoubleProperty("Double"));
-// Assert.assertEquals("Check Float properties are correctly transported",
-// (float) Float.MAX_VALUE, m.getFloatProperty("Float"));
-// Assert.assertEquals("Check Int properties are correctly transported",
-// (int) Integer.MAX_VALUE, m.getIntProperty("Int"));
+ Assert.assertEquals("Check Byte properties are correctly transported",
+ (byte) Byte.MAX_VALUE, m.getByteProperty("Byte"));
+ Assert.assertEquals("Check Double properties are correctly transported",
+ (double) Double.MAX_VALUE, m.getDoubleProperty("Double"));
+ Assert.assertEquals("Check Float properties are correctly transported",
+ (float) Float.MAX_VALUE, m.getFloatProperty("Float"));
+ Assert.assertEquals("Check Int properties are correctly transported",
+ (int) Integer.MAX_VALUE, m.getIntProperty("Int"));
Assert.assertEquals("Check CorrelationID properties are correctly transported",
"Correlation", m.getJMSCorrelationID());
// Assert.assertEquals("Check Priority properties are correctly transported",
// 100, m.getJMSPriority());
- //Set Queue
-// Assert.assertEquals("Check ReplyTo properties are correctly transported",
-// _session.createQueue("TestReply"), m.getJMSReplyTo());
-
- //Temporary Queue
+ // Queue
Assert.assertEquals("Check ReplyTo properties are correctly transported",
m.getStringProperty("TempQueue"), m.getJMSReplyTo().toString());
// Assert.assertEquals("Check Type properties are correctly transported",
// "Test", m.getJMSType());
-// Assert.assertEquals("Check Short properties are correctly transported",
-// (short) Short.MAX_VALUE, m.getShortProperty("Short"));
+ Assert.assertEquals("Check Short properties are correctly transported",
+ (short) Short.MAX_VALUE, m.getShortProperty("Short"));
Assert.assertEquals("Check UnsignedInt properties are correctly transported",
(long) 4294967295L, m.getLongProperty("UnsignedInt"));
-// Assert.assertEquals("Check Long properties are correctly transported",
-// (long)Long.MAX_VALUE, m.getLongProperty("Long"));
+ Assert.assertEquals("Check Long properties are correctly transported",
+ (long) Long.MAX_VALUE, m.getLongProperty("Long"));
Assert.assertEquals("Check String properties are correctly transported",
"Test", m.getStringProperty("String"));
}
diff --git a/java/client/src/test/java/org/apache/qpid/test/unit/basic/TextMessageTest.java b/java/client/src/test/java/org/apache/qpid/test/unit/basic/TextMessageTest.java
index dfbec81549..cd3954fbcb 100644
--- a/java/client/src/test/java/org/apache/qpid/test/unit/basic/TextMessageTest.java
+++ b/java/client/src/test/java/org/apache/qpid/test/unit/basic/TextMessageTest.java
@@ -28,6 +28,7 @@ import org.apache.qpid.client.vmbroker.AMQVMBrokerCreationException;
import org.apache.qpid.client.transport.TransportConnection;
import org.apache.qpid.client.message.JMSTextMessage;
import org.apache.qpid.test.VMBrokerSetup;
+import org.apache.log4j.Logger;
import java.util.ArrayList;
import java.util.Iterator;
@@ -39,6 +40,8 @@ import junit.framework.Assert;
public class TextMessageTest extends TestCase implements MessageListener
{
+ private static final Logger _logger = Logger.getLogger(TextMessageTest.class);
+
private AMQConnection _connection;
private Destination _destination;
private AMQSession _session;
@@ -100,7 +103,11 @@ public class TextMessageTest extends TestCase implements MessageListener
{
String text = "Message " + i;
messages.add(text);
- producer.send(_session.createTextMessage(text));
+ Message m = _session.createTextMessage(text);
+ m.setStringProperty("String", "hello");
+
+ _logger.info("Sending Msg:" + m);
+ producer.send(m);
}
}