From fc7c0efc857cb6f6311bdf6bf6ddc30ff2048466 Mon Sep 17 00:00:00 2001 From: Ted Ross Date: Fri, 11 Dec 2009 13:52:48 +0000 Subject: QPID-2245 QMF protocol changes will make 0.6 incompatible with 0.5 git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@889619 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/java/org/apache/qpid/agent/Agent.java | 4 +- .../apache/qpid/agent/binding/ClassBinding.java | 26 ++++++------- .../org/apache/qpid/agent/binding/MapBinding.java | 45 +--------------------- .../java/org/apache/qpid/management/Protocol.java | 2 +- .../handler/impl/SchemaResponseMessageHandler.java | 7 ---- .../main/java/org/apache/qpid/console/Broker.java | 6 +-- .../java/org/apache/qpid/console/SchemaClass.java | 4 +- .../main/java/org/apache/qpid/console/Session.java | 34 ++-------------- 8 files changed, 26 insertions(+), 102 deletions(-) (limited to 'java/management') diff --git a/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java b/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java index 40797d51f9..f6ae6adbc3 100644 --- a/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java +++ b/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java @@ -239,7 +239,7 @@ public class Agent implements MessageListener throw new AgentException(e); } byte[] magic = dec.readBytes(3); - if (magic[0] != 'A' || magic[1] != 'M' || magic[2] != '3') + if (magic[0] != 'A' || magic[1] != 'M' || magic[2] != '2') { throw new AgentException("bad magic: " + new String(magic)); } @@ -475,7 +475,7 @@ public class Agent implements MessageListener enc.init(); enc.writeUint8((short) 'A'); enc.writeUint8((short) 'M'); - enc.writeUint8((short) '3'); + enc.writeUint8((short) '2'); enc.writeUint8((short) opcode); enc.writeUint32(sequence); return enc; diff --git a/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java b/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java index 7c324fadb9..0a74958023 100644 --- a/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java +++ b/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java @@ -356,13 +356,13 @@ public class ClassBinding implements TypeBinding enc.writeStr8(name); enc.writeBin128(this.getSchemaHash()); // schema hash // Send true (1) if we have a super-type - if (superType == null) - { - enc.writeUint8((short) 0); - } else - { - enc.writeUint8((short) 1); - } + //if (superType == null) + //{ + // enc.writeUint8((short) 0); + //} else + //{ + // enc.writeUint8((short) 1); + //} enc.writeUint16(properties.size()); // Events do not have the method size sent if (kind == 1) @@ -371,12 +371,12 @@ public class ClassBinding implements TypeBinding enc.writeUint16(methods.size()); } // Add the super type information if we have it - if (superType != null) - { - enc.writeStr8(superType.pkg); - enc.writeStr8(superType.name); - enc.writeBin128(superType.getSchemaHash()); // schema hash - } + //if (superType != null) + //{ + // enc.writeStr8(superType.pkg); + // enc.writeStr8(superType.name); + // enc.writeBin128(superType.getSchemaHash()); // schema hash + //} for (PropertyBinding p : properties) { log.trace("encoding property " + p.getName()); diff --git a/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java b/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java index 80889f3b4e..02d562a59a 100644 --- a/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java +++ b/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java @@ -49,53 +49,12 @@ public class MapBinding implements TypeBinding public void encode(Encoder enc, Object value) { Map map = (Map) value; - BBEncoder newEncoder = new BBEncoder(10); - newEncoder.writeUint32(map.size()); - for (Object key : map.keySet()) - { - String keyString = key.toString(); - Object mapValue = map.get(key); - TypeBinding binding = bctx.getTypeBinding(mapValue.getClass()); - newEncoder.writeStr8(keyString); - newEncoder.writeUint8(binding.getCode()); - binding.encode(newEncoder, mapValue); - } - enc.writeVbin32(newEncoder.buffer().array()); + enc.writeMap(map); } public Object decode(Decoder dec) { - Map map = null; - try - { - if (javaClass.isInterface()) - { - map = new HashMap(); - } else - { - map = (Map) javaClass.newInstance(); - } - } catch (Exception e) - { - throw new BindingException( - "Could not create a Map implementation for " - + javaClass.getName(), e); - } - BBDecoder newDecoder = new BBDecoder(); - newDecoder.init(ByteBuffer.wrap(dec.readVbin32())); - long count = newDecoder.readUint32(); - while (count > 0) - { - String key = newDecoder.readStr8(); - short typeCode = newDecoder.readUint8(); - TypeBinding type = QMFTypeBinding.getType(typeCode); - if (type == null) - { - type = bctx.getTypeBinding(Object.class); - } - map.put(key, type.decode(newDecoder)); - count -= 1; - } + Map map = dec.readMap(); return map; } diff --git a/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java b/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java index 48ef10f60a..c1b1ceb5b4 100644 --- a/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java +++ b/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java @@ -27,7 +27,7 @@ package org.apache.qpid.management; */ public interface Protocol { - String MAGIC_NUMBER = "AM3"; + String MAGIC_NUMBER = "AM2"; char SCHEMA_REQUEST_OPCODE = 'S'; char SCHEMA_RESPONSE_OPCODE = Character.toLowerCase(SCHEMA_REQUEST_OPCODE); diff --git a/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java b/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java index e05bcee820..4564acc9d0 100644 --- a/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java +++ b/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java @@ -69,17 +69,10 @@ public class SchemaResponseMessageHandler extends BaseMessageHandler Binary schemaHash = new Binary(decoder.readBin128()); - int hasSuperclass = decoder.readUint8(); int howManyProperties = decoder.readUint16(); int howManyStatistics = decoder.readUint16(); int howManyMethods = decoder.readUint16(); - if (hasSuperclass != 0) { - String parentPackageName = decoder.readStr8(); - String parentClassName = decoder.readStr8(); - Binary parentHash = new Binary(decoder.readBin128()); - } - _domainModel.addSchema( packageName, className, diff --git a/java/management/console/src/main/java/org/apache/qpid/console/Broker.java b/java/management/console/src/main/java/org/apache/qpid/console/Broker.java index 8c71925f4e..2ea2ab8a70 100644 --- a/java/management/console/src/main/java/org/apache/qpid/console/Broker.java +++ b/java/management/console/src/main/java/org/apache/qpid/console/Broker.java @@ -111,7 +111,7 @@ public class Broker implements MessageListener return returnValue; } character = (char) decoder.readUint8(); - if (character != '3') + if (character != '2') { return returnValue; } @@ -349,7 +349,7 @@ public class Broker implements MessageListener { enc.writeUint8((short) 'A'); enc.writeUint8((short) 'M'); - enc.writeUint8((short) '3'); + enc.writeUint8((short) '2'); enc.writeUint8((short) opcode); enc.writeUint32(sequence); return enc; @@ -502,4 +502,4 @@ public class Broker implements MessageListener } } } -} \ No newline at end of file +} diff --git a/java/management/console/src/main/java/org/apache/qpid/console/SchemaClass.java b/java/management/console/src/main/java/org/apache/qpid/console/SchemaClass.java index 783a4b4b86..a0faa6c73d 100644 --- a/java/management/console/src/main/java/org/apache/qpid/console/SchemaClass.java +++ b/java/management/console/src/main/java/org/apache/qpid/console/SchemaClass.java @@ -43,7 +43,7 @@ public class SchemaClass setKind(kind); setSession(session); this.setKey(key); - boolean hasSupertype = dec.readUint8() != 0; + boolean hasSupertype = false; //dec.readUint8() != 0; if (kind == CLASS_KIND_TABLE) { int propCount = dec.readUint16(); @@ -248,4 +248,4 @@ public class SchemaClass { this.classKey = classKey; } -} \ No newline at end of file +} diff --git a/java/management/console/src/main/java/org/apache/qpid/console/Session.java b/java/management/console/src/main/java/org/apache/qpid/console/Session.java index cb2e39c15f..822f215f4d 100644 --- a/java/management/console/src/main/java/org/apache/qpid/console/Session.java +++ b/java/management/console/src/main/java/org/apache/qpid/console/Session.java @@ -189,22 +189,7 @@ public class Session case 14: // UUID return dec.readUuid(); case 15: // Ftable - java.util.HashMap ftable = new java.util.HashMap(); - BBDecoder sc = new BBDecoder(); - sc.init(ByteBuffer.wrap(dec.readVbin32())); - if (sc.hasRemaining()) - { - long count = sc.readUint32(); - while (count > 0) - { - String key = sc.readStr8(); - short code = sc.readUint8(); - Object newValue = this.decodeValue(sc, code); - ftable.put(key, newValue); - count -= 1; - } - } - return ftable; + return dec.readMap(); case 16: // int8 return dec.readInt8(); case 17: // int16 @@ -317,20 +302,7 @@ public class Session enc.writeUuid((UUID) val); break; case 15: // Ftable - Map ftable = (Map) val; - BBEncoder sc = new BBEncoder(1); - sc.init(); - sc.writeUint32(ftable.size()); - for (String key : ftable.keySet()) - { - Object obj = ftable.get(key); - short innerType = Util.qmfType(obj); - sc.writeStr8(key); - sc.writeUint8(innerType); - this.encodeValue(sc, innerType, obj); - } - byte[] bytes = sc.segment().array(); - enc.writeVbin32(bytes); + enc.writeMap((HashMap) val); break; case 16: // int8 enc.writeInt8((Byte) val); @@ -1005,4 +977,4 @@ public class Session broker.waitForStable(); } } -} \ No newline at end of file +} -- cgit v1.2.1