From 9cc4cdaa54ec97aefb3ca2da9b437101b8127c2b Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Fri, 26 Jan 2007 18:45:39 +0000 Subject: Updated broker for issues highlighted by python tests. (e.g. fanout exchange, default exchange rules etc) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@500303 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/qpid/AMQUnknownExchangeType.java | 9 +++++ .../org/apache/qpid/exchange/ExchangeDefaults.java | 4 +++ .../main/java/org/apache/qpid/framing/AMQType.java | 39 ++++++++++++++++------ .../org/apache/qpid/framing/EncodingUtils.java | 14 +++++++- 4 files changed, 55 insertions(+), 11 deletions(-) create mode 100644 java/common/src/main/java/org/apache/qpid/AMQUnknownExchangeType.java (limited to 'java/common') diff --git a/java/common/src/main/java/org/apache/qpid/AMQUnknownExchangeType.java b/java/common/src/main/java/org/apache/qpid/AMQUnknownExchangeType.java new file mode 100644 index 0000000000..70f333a580 --- /dev/null +++ b/java/common/src/main/java/org/apache/qpid/AMQUnknownExchangeType.java @@ -0,0 +1,9 @@ +package org.apache.qpid; + +public class AMQUnknownExchangeType extends AMQException +{ + public AMQUnknownExchangeType(String message) + { + super(message); + } +} diff --git a/java/common/src/main/java/org/apache/qpid/exchange/ExchangeDefaults.java b/java/common/src/main/java/org/apache/qpid/exchange/ExchangeDefaults.java index e67a5ba7fe..dca8075f7f 100644 --- a/java/common/src/main/java/org/apache/qpid/exchange/ExchangeDefaults.java +++ b/java/common/src/main/java/org/apache/qpid/exchange/ExchangeDefaults.java @@ -33,4 +33,8 @@ public class ExchangeDefaults public final static String HEADERS_EXCHANGE_NAME = "amq.match"; public final static String HEADERS_EXCHANGE_CLASS = "headers"; + + public final static String FANOUT_EXCHANGE_NAME = "amq.fanout"; + + public final static String FANOUT_EXCHANGE_CLASS = "fanout"; } diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQType.java b/java/common/src/main/java/org/apache/qpid/framing/AMQType.java index ad07634554..23c1929205 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/AMQType.java +++ b/java/common/src/main/java/org/apache/qpid/framing/AMQType.java @@ -65,27 +65,46 @@ public enum AMQType public int getEncodingSize(Object value) { - // TODO : fixme - throw new UnsupportedOperationException(); + return EncodingUtils.unsignedIntegerLength(); } - - public Object toNativeValue(Object value) + public Long toNativeValue(Object value) { - // TODO : fixme - throw new UnsupportedOperationException(); + if (value instanceof Long) + { + return (Long) value; + } + else if (value instanceof Integer) + { + return ((Integer) value).longValue(); + } + else if (value instanceof Short) + { + return ((Short) value).longValue(); + } + else if (value instanceof Byte) + { + return ((Byte) value).longValue(); + } + else if ((value instanceof String) || (value == null)) + { + return Long.valueOf((String)value); + } + else + { + throw new NumberFormatException("Cannot convert: " + value + "(" + + value.getClass().getName() + ") to int."); + } } public void writeValueImpl(Object value, ByteBuffer buffer) { - // TODO : fixme - throw new UnsupportedOperationException(); + EncodingUtils.writeUnsignedInteger(buffer, (Long) value); } public Object readValueFromBuffer(ByteBuffer buffer) { - // TODO : fixme - throw new UnsupportedOperationException(); + return EncodingUtils.readUnsignedInteger(buffer); } }, diff --git a/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java b/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java index 1d7dd33c76..c88c5d3bd3 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java +++ b/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java @@ -199,7 +199,7 @@ public class EncodingUtils } - public static long unsignedIntegerLength() + public static int unsignedIntegerLength() { return 4; } @@ -627,4 +627,16 @@ public class EncodingUtils writeByte(buffer, (byte) character); } + public static long readUnsignedInteger(ByteBuffer buffer) + { + long l = 0xFF & buffer.get(); + l <<=8; + l = l | (0xFF & buffer.get()); + l <<=8; + l = l | (0xFF & buffer.get()); + l <<=8; + l = l | (0xFF & buffer.get()); + + return l; + } } -- cgit v1.2.1