summaryrefslogtreecommitdiff
path: root/java/common
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2007-01-26 18:45:39 +0000
committerGordon Sim <gsim@apache.org>2007-01-26 18:45:39 +0000
commit9cc4cdaa54ec97aefb3ca2da9b437101b8127c2b (patch)
tree19282e2a0e29923d5b86cc7deca284ab0cca5952 /java/common
parent4437ede734dec42908112ef41e14a2c86a9d98c7 (diff)
downloadqpid-python-9cc4cdaa54ec97aefb3ca2da9b437101b8127c2b.tar.gz
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
Diffstat (limited to 'java/common')
-rw-r--r--java/common/src/main/java/org/apache/qpid/AMQUnknownExchangeType.java9
-rw-r--r--java/common/src/main/java/org/apache/qpid/exchange/ExchangeDefaults.java4
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/AMQType.java39
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java14
4 files changed, 55 insertions, 11 deletions
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;
+ }
}