summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2009-12-10 18:19:38 +0000
committerTed Ross <tross@apache.org>2009-12-10 18:19:38 +0000
commit7e51d0a18d8ee7d4a19ab64ecb4b0d9dd03b1f73 (patch)
treed06d4fcbb01f0d6be13fe0841f50021fa86b910c
parentfa9e8e49efd9ebea4aaedce3c2753bd578e7cae8 (diff)
downloadqpid-python-7e51d0a18d8ee7d4a19ab64ecb4b0d9dd03b1f73.tar.gz
QPID-2245 patch (applied to qmfv2 branch).
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/qmfv2@889354 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/include/qpid/framing/FieldTable.h4
-rw-r--r--qpid/cpp/managementgen/qmfgen/management-types.xml2
-rw-r--r--qpid/cpp/managementgen/qmfgen/templates/Class.cpp1
-rw-r--r--qpid/cpp/src/qmf/engine/Protocol.cpp4
-rw-r--r--qpid/cpp/src/qmf/engine/SchemaImpl.cpp3
-rw-r--r--qpid/cpp/src/qmf/engine/ValueImpl.cpp2
-rw-r--r--qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp4
-rw-r--r--qpid/cpp/src/qpid/console/Broker.cpp4
-rw-r--r--qpid/cpp/src/qpid/console/Schema.cpp2
-rw-r--r--qpid/cpp/src/qpid/console/Value.cpp2
-rw-r--r--qpid/cpp/src/qpid/framing/FieldTable.cpp134
-rw-r--r--qpid/cpp/src/qpid/management/ManagementAgent.cpp6
-rw-r--r--qpid/dotnet/client-010/management/console/Broker.cs4
-rw-r--r--qpid/dotnet/client-010/management/console/SchemaClass.cs2
-rw-r--r--qpid/dotnet/client-010/management/console/Session.cs32
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java4
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java26
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java45
-rw-r--r--qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java2
-rw-r--r--qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java7
-rw-r--r--qpid/java/management/console/src/main/java/org/apache/qpid/console/Broker.java6
-rw-r--r--qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaClass.java4
-rw-r--r--qpid/java/management/console/src/main/java/org/apache/qpid/console/Session.java34
-rw-r--r--qpid/python/qmf/console.py31
-rw-r--r--qpid/python/qpid/management.py17
-rw-r--r--qpid/ruby/lib/qpid/qmf.rb39
26 files changed, 59 insertions, 362 deletions
diff --git a/qpid/cpp/include/qpid/framing/FieldTable.h b/qpid/cpp/include/qpid/framing/FieldTable.h
index fd09cfc6f6..62b4a4bc08 100644
--- a/qpid/cpp/include/qpid/framing/FieldTable.h
+++ b/qpid/cpp/include/qpid/framing/FieldTable.h
@@ -63,10 +63,6 @@ class FieldTable
QPID_COMMON_EXTERN void encode(Buffer& buffer) const;
QPID_COMMON_EXTERN void decode(Buffer& buffer);
- QPID_COMMON_EXTERN uint32_t qmfEncodedSize() const;
- QPID_COMMON_EXTERN void qmfEncode(Buffer& buffer) const;
- QPID_COMMON_EXTERN void qmfDecode(Buffer& buffer);
-
QPID_COMMON_EXTERN int count() const;
QPID_COMMON_EXTERN void set(const std::string& name, const ValuePtr& value);
QPID_COMMON_EXTERN ValuePtr get(const std::string& name) const;
diff --git a/qpid/cpp/managementgen/qmfgen/management-types.xml b/qpid/cpp/managementgen/qmfgen/management-types.xml
index e235920447..626880afb3 100644
--- a/qpid/cpp/managementgen/qmfgen/management-types.xml
+++ b/qpid/cpp/managementgen/qmfgen/management-types.xml
@@ -36,7 +36,7 @@
<type name="float" base="FLOAT" cpp="float" encode="@.putFloat(#)" decode="# = @.getFloat()" accessor="direct" init="0."/>
<type name="double" base="DOUBLE" cpp="double" encode="@.putDouble(#)" decode="# = @.getDouble()" accessor="direct" init="0."/>
<type name="uuid" base="UUID" cpp="::qpid::framing::Uuid" encode="#.encode(@)" decode="#.decode(@)" accessor="direct" init="::qpid::framing::Uuid()" byRef="y"/>
-<type name="map" base="FTABLE" cpp="::qpid::framing::FieldTable" encode="#.qmfEncode(@)" decode="#.decode(@)" accessor="direct" init="::qpid::framing::FieldTable()" byRef="y"/>
+<type name="map" base="FTABLE" cpp="::qpid::framing::FieldTable" encode="#.encode(@)" decode="#.decode(@)" accessor="direct" init="::qpid::framing::FieldTable()" byRef="y"/>
<type name="hilo8" base="U8" cpp="uint8_t" encode="@.putOctet(#)" decode="# = @.getOctet()" style="wm" accessor="counter" init="0"/>
<type name="hilo16" base="U16" cpp="uint16_t" encode="@.putShort(#)" decode="# = @.getShort()" style="wm" accessor="counter" init="0"/>
diff --git a/qpid/cpp/managementgen/qmfgen/templates/Class.cpp b/qpid/cpp/managementgen/qmfgen/templates/Class.cpp
index 52ffce0eb4..973d92586a 100644
--- a/qpid/cpp/managementgen/qmfgen/templates/Class.cpp
+++ b/qpid/cpp/managementgen/qmfgen/templates/Class.cpp
@@ -98,7 +98,6 @@ void /*MGEN:Class.NameCap*/::writeSchema (Buffer& buf)
buf.putShortString (packageName); // Package Name
buf.putShortString (className); // Class Name
buf.putBin128 (md5Sum); // Schema Hash
- buf.putOctet (0); // No Superclass
buf.putShort (/*MGEN:Class.ConfigCount*/); // Config Element Count
buf.putShort (/*MGEN:Class.InstCount*/); // Inst Element Count
buf.putShort (/*MGEN:Class.MethodCount*/); // Method Count
diff --git a/qpid/cpp/src/qmf/engine/Protocol.cpp b/qpid/cpp/src/qmf/engine/Protocol.cpp
index 6061b70a8d..9e5f490604 100644
--- a/qpid/cpp/src/qmf/engine/Protocol.cpp
+++ b/qpid/cpp/src/qmf/engine/Protocol.cpp
@@ -37,14 +37,14 @@ bool Protocol::checkHeader(Buffer& buf, uint8_t *opcode, uint32_t *seq)
*opcode = buf.getOctet();
*seq = buf.getLong();
- return h1 == 'A' && h2 == 'M' && h3 == '3';
+ return h1 == 'A' && h2 == 'M' && h3 == '2';
}
void Protocol::encodeHeader(qpid::framing::Buffer& buf, uint8_t opcode, uint32_t seq)
{
buf.putOctet('A');
buf.putOctet('M');
- buf.putOctet('3');
+ buf.putOctet('2');
buf.putOctet(opcode);
buf.putLong (seq);
}
diff --git a/qpid/cpp/src/qmf/engine/SchemaImpl.cpp b/qpid/cpp/src/qmf/engine/SchemaImpl.cpp
index e366a66826..c37ec34890 100644
--- a/qpid/cpp/src/qmf/engine/SchemaImpl.cpp
+++ b/qpid/cpp/src/qmf/engine/SchemaImpl.cpp
@@ -341,7 +341,6 @@ SchemaObjectClassImpl::SchemaObjectClassImpl(Buffer& buffer) : hasHash(true), cl
buffer.getShortString(name);
hash.decode(buffer);
- /*uint8_t hasParentClass =*/ buffer.getOctet(); // TODO: Parse parent-class indicator
uint16_t propCount = buffer.getShort();
uint16_t statCount = buffer.getShort();
uint16_t methodCount = buffer.getShort();
@@ -374,7 +373,7 @@ void SchemaObjectClassImpl::encode(Buffer& buffer) const
buffer.putShortString(package);
buffer.putShortString(name);
hash.encode(buffer);
- buffer.putOctet(0); // No parent class
+ //buffer.putOctet(0); // No parent class
buffer.putShort((uint16_t) properties.size());
buffer.putShort((uint16_t) statistics.size());
buffer.putShort((uint16_t) methods.size());
diff --git a/qpid/cpp/src/qmf/engine/ValueImpl.cpp b/qpid/cpp/src/qmf/engine/ValueImpl.cpp
index f80bdab866..1949d4b946 100644
--- a/qpid/cpp/src/qmf/engine/ValueImpl.cpp
+++ b/qpid/cpp/src/qmf/engine/ValueImpl.cpp
@@ -55,8 +55,6 @@ ValueImpl::ValueImpl(Typecode t, Buffer& buf) : typecode(t)
case TYPE_MAP:
ft.decode(buf);
- // TODO: either update to recursively use QMF types or reduce to int/string/...
- // (maybe use another ctor with a FieldValue argument)
break;
case TYPE_LIST:
diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
index f9f39316e2..f84e158154 100644
--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
+++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
@@ -564,7 +564,7 @@ void ManagementAgentImpl::encodeHeader(Buffer& buf, uint8_t opcode, uint32_t seq
{
buf.putOctet('A');
buf.putOctet('M');
- buf.putOctet('3');
+ buf.putOctet('2');
buf.putOctet(opcode);
buf.putLong (seq);
}
@@ -581,7 +581,7 @@ bool ManagementAgentImpl::checkHeader(Buffer& buf, uint8_t *opcode, uint32_t *se
*opcode = buf.getOctet();
*seq = buf.getLong();
- return h1 == 'A' && h2 == 'M' && h3 == '3';
+ return h1 == 'A' && h2 == 'M' && h3 == '2';
}
ManagementAgentImpl::PackageMap::iterator ManagementAgentImpl::findOrAddPackage(const string& name)
diff --git a/qpid/cpp/src/qpid/console/Broker.cpp b/qpid/cpp/src/qpid/console/Broker.cpp
index 53776c1a12..d2ff8f819e 100644
--- a/qpid/cpp/src/qpid/console/Broker.cpp
+++ b/qpid/cpp/src/qpid/console/Broker.cpp
@@ -72,7 +72,7 @@ void Broker::encodeHeader(Buffer& buf, uint8_t opcode, uint32_t seq) const
{
buf.putOctet('A');
buf.putOctet('M');
- buf.putOctet('3');
+ buf.putOctet('2');
buf.putOctet(opcode);
buf.putLong (seq);
}
@@ -89,7 +89,7 @@ bool Broker::checkHeader(Buffer& buf, uint8_t *opcode, uint32_t *seq) const
*opcode = buf.getOctet();
*seq = buf.getLong();
- return h1 == 'A' && h2 == 'M' && h3 == '3';
+ return h1 == 'A' && h2 == 'M' && h3 == '2';
}
void Broker::received(qpid::client::Message& msg)
diff --git a/qpid/cpp/src/qpid/console/Schema.cpp b/qpid/cpp/src/qpid/console/Schema.cpp
index 7efdc63ef0..a3dbd91201 100644
--- a/qpid/cpp/src/qpid/console/Schema.cpp
+++ b/qpid/cpp/src/qpid/console/Schema.cpp
@@ -119,7 +119,7 @@ SchemaClass::SchemaClass(const uint8_t _kind, const ClassKey& _key, framing::Buf
kind(_kind), key(_key)
{
if (kind == KIND_TABLE) {
- uint8_t hasSupertype = buffer.getOctet();
+ uint8_t hasSupertype = 0; //buffer.getOctet();
uint16_t propCount = buffer.getShort();
uint16_t statCount = buffer.getShort();
uint16_t methodCount = buffer.getShort();
diff --git a/qpid/cpp/src/qpid/console/Value.cpp b/qpid/cpp/src/qpid/console/Value.cpp
index 799892606a..c30660f1dc 100644
--- a/qpid/cpp/src/qpid/console/Value.cpp
+++ b/qpid/cpp/src/qpid/console/Value.cpp
@@ -114,7 +114,7 @@ string MapValue::str() const
MapValue::MapValue(framing::Buffer& buffer)
{
- value.qmfDecode(buffer);
+ value.decode(buffer);
}
diff --git a/qpid/cpp/src/qpid/framing/FieldTable.cpp b/qpid/cpp/src/qpid/framing/FieldTable.cpp
index 0a21bb2f35..e2e91e450a 100644
--- a/qpid/cpp/src/qpid/framing/FieldTable.cpp
+++ b/qpid/cpp/src/qpid/framing/FieldTable.cpp
@@ -53,23 +53,6 @@ uint32_t FieldTable::encodedSize() const {
return len;
}
-uint32_t FieldTable::qmfEncodedSize() const {
- uint32_t len(4/*size field*/ + 4/*count field*/);
- for(ValueMap::const_iterator i = values.begin(); i != values.end(); ++i) {
- // shortstr_len_byte + key size + typecode
- len += 1 + (i->first).size() + 1;
- ValuePtr value(i->second);
- if (value->convertsTo<int>()) {
- len += 4;
- } else if (value->convertsTo<uint64_t>()) {
- len += 8;
- } else if (value->convertsTo<string>()) {
- len += 2 + value->get<string>().size();
- }
- }
- return len;
-}
-
int FieldTable::count() const {
return values.size();
}
@@ -232,123 +215,6 @@ void FieldTable::decode(Buffer& buffer){
}
}
-#define QMF_TYPE_U8 1
-#define QMF_TYPE_U16 2
-#define QMF_TYPE_U32 3
-#define QMF_TYPE_U64 4
-#define QMF_TYPE_SSTR 6
-#define QMF_TYPE_LSTR 7
-#define QMF_TYPE_ABSTIME 8
-#define QMF_TYPE_DELTATIME 9
-#define QMF_TYPE_REF 10
-#define QMF_TYPE_BOOL 11
-#define QMF_TYPE_FLOAT 12
-#define QMF_TYPE_DOUBLE 13
-#define QMF_TYPE_UUID 14
-#define QMF_TYPE_S8 16
-#define QMF_TYPE_S16 17
-#define QMF_TYPE_S32 18
-#define QMF_TYPE_S64 19
-#define QMF_TYPE_OBJECT 20
-#define QMF_TYPE_MAP 15
-#define QMF_TYPE_LIST 21
-#define QMF_TYPE_ARRAY 22
-
-void FieldTable::qmfEncode(Buffer& buffer) const {
- buffer.putLong(qmfEncodedSize() - 4);
- buffer.putLong(values.size());
- for (ValueMap::const_iterator i = values.begin(); i!=values.end(); ++i) {
- ValuePtr value(i->second);
- buffer.putShortString(i->first);
- if (value->convertsTo<int>()) {
- buffer.putOctet(QMF_TYPE_S32);
- buffer.putLong(value->get<int>());
- } else if (value->convertsTo<uint64_t>()) {
- buffer.putOctet(QMF_TYPE_U64);
- buffer.putLongLong(value->get<uint64_t>());
- } else if (value->convertsTo<string>()) {
- buffer.putOctet(QMF_TYPE_LSTR);
- buffer.putMediumString(value->get<string>());
- }
- }
-}
-
-void FieldTable::qmfDecode(Buffer& buffer) {
- clear();
- uint32_t len = buffer.getLong();
- if (len) {
- uint32_t available = buffer.available();
- if (available < len)
- throw IllegalArgumentException(QPID_MSG("Not enough data for field table."));
- uint32_t count = buffer.getLong();
- uint32_t leftover = available - len;
- while(buffer.available() > leftover && count--) {
- std::string name;
- std::string sstr;
- std::string lstr;
- buffer.getShortString(name);
- uint8_t typecode = buffer.getOctet();
- switch (typecode) {
- case QMF_TYPE_U8:
- values[name] = ValuePtr(new IntegerValue(buffer.getOctet()));
- break;
- case QMF_TYPE_U16:
- values[name] = ValuePtr(new IntegerValue(buffer.getShort()));
- break;
- case QMF_TYPE_U32:
- values[name] = ValuePtr(new IntegerValue(buffer.getLong()));
- break;
- case QMF_TYPE_U64:
- values[name] = ValuePtr(new Unsigned64Value(buffer.getLongLong()));
- break;
- case QMF_TYPE_SSTR:
- buffer.getShortString(sstr);
- values[name] = ValuePtr(new Str16Value(sstr));
- break;
- case QMF_TYPE_LSTR:
- buffer.getMediumString(lstr);
- values[name] = ValuePtr(new Str16Value(lstr));
- break;
- case QMF_TYPE_ABSTIME:
- values[name] = ValuePtr(new Unsigned64Value(buffer.getLongLong()));
- break;
- case QMF_TYPE_DELTATIME:
- values[name] = ValuePtr(new Unsigned64Value(buffer.getLongLong()));
- break;
- case QMF_TYPE_BOOL:
- values[name] = ValuePtr(new IntegerValue(buffer.getOctet()));
- break;
- case QMF_TYPE_FLOAT:
- values[name] = ValuePtr(new FloatValue(buffer.getFloat()));
- break;
- case QMF_TYPE_DOUBLE:
- values[name] = ValuePtr(new DoubleValue(buffer.getDouble()));
- break;
- case QMF_TYPE_S8:
- values[name] = ValuePtr(new IntegerValue(buffer.getOctet()));
- break;
- case QMF_TYPE_S16:
- values[name] = ValuePtr(new IntegerValue(buffer.getShort()));
- break;
- case QMF_TYPE_S32:
- values[name] = ValuePtr(new IntegerValue(buffer.getLong()));
- break;
- case QMF_TYPE_S64:
- values[name] = ValuePtr(new Unsigned64Value(buffer.getLongLong()));
- break;
- case QMF_TYPE_REF:
- case QMF_TYPE_UUID:
- case QMF_TYPE_OBJECT:
- case QMF_TYPE_MAP:
- case QMF_TYPE_LIST:
- case QMF_TYPE_ARRAY:
- break;
- }
- }
- }
-}
-
-
bool FieldTable::operator==(const FieldTable& x) const {
if (values.size() != x.values.size()) return false;
for (ValueMap::const_iterator i = values.begin(); i != values.end(); ++i) {
diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp
index 2193ba4007..b5ed4ed405 100644
--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp
+++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp
@@ -267,7 +267,7 @@ void ManagementAgent::encodeHeader (Buffer& buf, uint8_t opcode, uint32_t seq)
{
buf.putOctet ('A');
buf.putOctet ('M');
- buf.putOctet ('3');
+ buf.putOctet ('2');
buf.putOctet (opcode);
buf.putLong (seq);
}
@@ -281,7 +281,7 @@ bool ManagementAgent::checkHeader (Buffer& buf, uint8_t *opcode, uint32_t *seq)
*opcode = buf.getOctet();
*seq = buf.getLong();
- return h1 == 'A' && h2 == 'M' && h3 == '3';
+ return h1 == 'A' && h2 == 'M' && h3 == '2';
}
void ManagementAgent::sendBuffer(Buffer& buf,
@@ -1201,7 +1201,7 @@ size_t ManagementAgent::validateTableSchema(Buffer& inBuffer)
inBuffer.getShortString(text);
inBuffer.getBin128(hash);
- uint8_t superType = inBuffer.getOctet();
+ uint8_t superType = 0; //inBuffer.getOctet();
uint16_t propCount = inBuffer.getShort();
uint16_t statCount = inBuffer.getShort();
diff --git a/qpid/dotnet/client-010/management/console/Broker.cs b/qpid/dotnet/client-010/management/console/Broker.cs
index 2d2bedf110..7684da9e12 100644
--- a/qpid/dotnet/client-010/management/console/Broker.cs
+++ b/qpid/dotnet/client-010/management/console/Broker.cs
@@ -165,7 +165,7 @@ namespace org.apache.qpid.console
public IEncoder SetHeader(IEncoder enc, char opcode, long sequence) {
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 ;
@@ -219,7 +219,7 @@ namespace org.apache.qpid.console
return returnValue ;
}
character = (char) decoder.ReadUint8() ;
- if (character != '3') {
+ if (character != '2') {
return returnValue ;
}
returnValue = true ;
diff --git a/qpid/dotnet/client-010/management/console/SchemaClass.cs b/qpid/dotnet/client-010/management/console/SchemaClass.cs
index 653221034d..320312b61d 100644
--- a/qpid/dotnet/client-010/management/console/SchemaClass.cs
+++ b/qpid/dotnet/client-010/management/console/SchemaClass.cs
@@ -60,7 +60,7 @@ namespace org.apache.qpid.console
Kind = kind ;
Session = session ;
this.Key = key ;
- bool hasSupertype = !(dec.ReadUint8().Equals(0)) ;
+ bool hasSupertype = false ;
if (kind == CLASS_KIND_TABLE) {
int propCount = dec.ReadUint16() ;
diff --git a/qpid/dotnet/client-010/management/console/Session.cs b/qpid/dotnet/client-010/management/console/Session.cs
index cdc30e482b..d9c5948e57 100644
--- a/qpid/dotnet/client-010/management/console/Session.cs
+++ b/qpid/dotnet/client-010/management/console/Session.cs
@@ -616,21 +616,7 @@ namespace org.apache.qpid.console
case 12: return dec.ReadFloat() ; // float
case 13: return dec.ReadDouble() ; // double
case 14: return dec.ReadUuid() ; // UUID
- case 15: // Ftable
- Dictionary<string, object> ftable = new Dictionary<string, object>() ;
- MSDecoder sc = new MSDecoder() ;
- sc.Init(new MemoryStream(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.Add(key, newValue) ;
- count -= 1 ;
- }
- }
- return ftable ;
+ case 15: return dec.ReadMap() ; // Ftable
case 16: return dec.ReadInt8() ; // int8
case 17: return dec.ReadInt16() ; // int16
case 18: return dec.ReadInt32() ; // int32
@@ -709,21 +695,7 @@ namespace org.apache.qpid.console
case 12: enc.WriteFloat((float) val); break; // FLOAT
case 13: enc.WriteDouble((double) val); break; // DOUBLE
case 14: enc.WriteUuid((UUID) val) ; break ; // UUID
- case 15: // Ftable
- Dictionary<string, object> ftable = (Dictionary<string, object>) val ;
- MSEncoder sc = new MSEncoder(1) ;
- sc.Init() ;
- sc.WriteUint32(ftable.Count) ;
- foreach (String key in ftable.Keys) {
- object obj = ftable[key] ;
- short innerType = Util.QMFType(obj) ;
- sc.WriteStr8(key) ;
- sc.WriteUint8(innerType) ;
- this.EncodeValue(sc,innerType,obj) ;
- }
- byte[] bytes = sc.Segment().ToArray() ;
- enc.WriteVbin32(bytes) ;
- break ;
+ case 15: enc.WriteMap((Dictionary<string, object>) val) ; break ; // Ftable
case 16: enc.WriteInt8((short) val) ; break; // int8
case 17: enc.WriteInt16((int) val) ; break; // int16
case 18: enc.WriteInt32(long.Parse(""+ val)) ; break; // int32
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java
index 40797d51f9..f6ae6adbc3 100644
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java
+++ b/qpid/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/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java
index 7c324fadb9..0a74958023 100644
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java
+++ b/qpid/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/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java
index 80889f3b4e..02d562a59a 100644
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java
+++ b/qpid/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/qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java b/qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java
index 48ef10f60a..c1b1ceb5b4 100644
--- a/qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java
+++ b/qpid/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/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java b/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java
index e05bcee820..4564acc9d0 100644
--- a/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java
+++ b/qpid/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/qpid/java/management/console/src/main/java/org/apache/qpid/console/Broker.java b/qpid/java/management/console/src/main/java/org/apache/qpid/console/Broker.java
index 8c71925f4e..2ea2ab8a70 100644
--- a/qpid/java/management/console/src/main/java/org/apache/qpid/console/Broker.java
+++ b/qpid/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/qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaClass.java b/qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaClass.java
index 783a4b4b86..a0faa6c73d 100644
--- a/qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaClass.java
+++ b/qpid/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/qpid/java/management/console/src/main/java/org/apache/qpid/console/Session.java b/qpid/java/management/console/src/main/java/org/apache/qpid/console/Session.java
index cb2e39c15f..822f215f4d 100644
--- a/qpid/java/management/console/src/main/java/org/apache/qpid/console/Session.java
+++ b/qpid/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<String, Object> ftable = new java.util.HashMap<String, Object>();
- 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<String, Object> ftable = (Map<String, Object>) 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
+}
diff --git a/qpid/python/qmf/console.py b/qpid/python/qmf/console.py
index 859ed94229..5348904097 100644
--- a/qpid/python/qmf/console.py
+++ b/qpid/python/qmf/console.py
@@ -958,17 +958,7 @@ class Session:
elif typecode == 17: data = codec.read_int16() # S16
elif typecode == 18: data = codec.read_int32() # S32
elif typecode == 19: data = codec.read_int64() # S63
- elif typecode == 15: # FTABLE
- data = {}
- sc = Codec(codec.read_vbin32())
- if sc.encoded:
- count = sc.read_uint32()
- while count > 0:
- k = sc.read_str8()
- code = sc.read_uint8()
- v = self._decodeValue(sc, code, broker)
- data[k] = v
- count -= 1
+ elif typecode == 15: data = codec.read_map() # FTABLE
elif typecode == 20: # OBJECT
# Peek at the type, and if it is still 20 pull it decode. If
# Not, call back into self.
@@ -1031,18 +1021,7 @@ class Session:
elif typecode == 18: codec.write_int32 (int(value)) # S32
elif typecode == 19: codec.write_int64 (int(value)) # S64
elif typecode == 20: value._encodeUnmanaged(codec) # OBJECT
- elif typecode == 15: # FTABLE
- sc = Codec()
- if value is not None:
- sc.write_uint32(len(value))
- for k, v in value.items():
- mtype = self.encoding(v)
- sc.write_str8(k)
- sc.write_uint8(mtype)
- self._encodeValue(sc, v, mtype)
- else:
- sc.write_uint32(0)
- codec.write_vbin32(sc.encoded)
+ elif typecode == 15: codec.write_map (value) # FTABLE
elif typecode == 21: # List
sc = Codec()
self._encodeValue(sc, len(value), 3)
@@ -1254,7 +1233,7 @@ class SchemaClass:
self.arguments = []
self.session = session
- hasSupertype = codec.read_uint8()
+ hasSupertype = 0 #codec.read_uint8()
if self.kind == self.CLASS_KIND_TABLE:
propCount = codec.read_uint16()
statCount = codec.read_uint16()
@@ -1729,7 +1708,7 @@ class Broker:
""" Compose the header of a management message. """
codec.write_uint8(ord('A'))
codec.write_uint8(ord('M'))
- codec.write_uint8(ord('3'))
+ codec.write_uint8(ord('2'))
codec.write_uint8(ord(opcode))
codec.write_uint32(seq)
@@ -1743,7 +1722,7 @@ class Broker:
if octet != 'M':
return None, None
octet = chr(codec.read_uint8())
- if octet != '3':
+ if octet != '2':
return None, None
opcode = chr(codec.read_uint8())
seq = codec.read_uint32()
diff --git a/qpid/python/qpid/management.py b/qpid/python/qpid/management.py
index 65807548e6..325ab4903d 100644
--- a/qpid/python/qpid/management.py
+++ b/qpid/python/qpid/management.py
@@ -400,7 +400,7 @@ class managementClient:
""" Compose the header of a management message. """
codec.write_uint8 (ord ('A'))
codec.write_uint8 (ord ('M'))
- codec.write_uint8 (ord ('3'))
+ codec.write_uint8 (ord ('2'))
codec.write_uint8 (opcode)
codec.write_uint32 (seq)
@@ -414,7 +414,7 @@ class managementClient:
if octet != 'M':
return None
octet = chr (codec.read_uint8 ())
- if octet != '3':
+ if octet != '2':
return None
opcode = chr (codec.read_uint8 ())
seq = codec.read_uint32 ()
@@ -496,16 +496,7 @@ class managementClient:
elif typecode == 14: # UUID
data = codec.read_uuid ()
elif typecode == 15: # FTABLE
- data = {}
- sc = Codec(codec.read_vbin32())
- if sc.encoded:
- count = sc.read_uint32()
- while count > 0:
- k = sc.read_str8()
- code = sc.read_uint8()
- v = self.decodeValue(sc, code)
- data[k] = v
- count -= 1
+ data = codec.read_map ()
elif typecode == 16:
data = codec.read_int8 ()
elif typecode == 17:
@@ -680,7 +671,7 @@ class managementClient:
packageName = codec.read_str8 ()
className = codec.read_str8 ()
hash = codec.read_bin128 ()
- hasSupertype = codec.read_uint8()
+ hasSupertype = 0 #codec.read_uint8()
configCount = codec.read_uint16 ()
instCount = codec.read_uint16 ()
methodCount = codec.read_uint16 ()
diff --git a/qpid/ruby/lib/qpid/qmf.rb b/qpid/ruby/lib/qpid/qmf.rb
index 1107f4384e..4711d355cd 100644
--- a/qpid/ruby/lib/qpid/qmf.rb
+++ b/qpid/ruby/lib/qpid/qmf.rb
@@ -640,25 +640,12 @@ module Qpid::Qmf
when 12: data = codec.read_float # FLOAT
when 13: data = codec.read_double # DOUBLE
when 14: data = codec.read_uuid # UUID
- #when 15: data = codec.read_map # FTABLE
+ when 15: data = codec.read_map # FTABLE
when 16: data = codec.read_int8 # S8
when 17: data = codec.read_int16 # S16
when 18: data = codec.read_int32 # S32
when 19: data = codec.read_int64 # S64
- when 15: # Ftable
- data = {}
- rec_codec = Qpid::StringCodec.new(codec.spec, codec.read_vbin32())
- if rec_codec.encoded:
- count = rec_codec.read_uint32()
- while count > 0 do
- k = rec_codec.read_str8()
- code = rec_codec.read_uint8()
- v = decode_value(rec_codec, code)
- data[k] = v
- count -= 1
- end
- end
- when 20: # Object
+ when 20: # Object
inner_type_code = codec.read_uint8()
if (inner_type_code == 20)
classKey = ClassKey.new(codec)
@@ -731,26 +718,12 @@ module Qpid::Qmf
when 12: codec.write_float(value) # FLOAT
when 13: codec.write_double(value) # DOUBLE
when 14: codec.write_uuid(value) # UUID
- #when 15: codec.write_map(value) # FTABLE
+ when 15: codec.write_map(value) # FTABLE
when 16: codec.write_int8(value) # S8
when 17: codec.write_int16(value) # S16
when 18: codec.write_int32(value) # S32
when 19: codec.write_int64(value) # S64
when 20: value.encode(codec)
- when 15: # FTABLE
- send_codec = Qpid::StringCodec.new(codec.spec)
- if !value.nil?
- send_codec.write_uint32(value.size())
- value.each do |k,v|
- mtype = encoding(v)
- send_codec.write_str8(k.to_s)
- send_codec.write_uint8(mtype)
- encode_value(send_codec, v, mtype)
- end
- else
- send_codec.write_uint32(0)
- codec.write_vbin32(send_codec.encoded)
- end
when 21: # List
send_codec = Qpid::StringCodec.new(codec.spec)
encode_value(send_codec, value.size, 3)
@@ -896,7 +869,7 @@ module Qpid::Qmf
@methods = []
@arguments = []
- has_supertype = codec.read_uint8
+ has_supertype = 0 #codec.read_uint8
if @kind == CLASS_KIND_TABLE
prop_count = codec.read_uint16
stat_count = codec.read_uint16
@@ -1542,7 +1515,7 @@ module Qpid::Qmf
def set_header(codec, opcode, seq=0)
codec.write_uint8(?A)
codec.write_uint8(?M)
- codec.write_uint8(?3)
+ codec.write_uint8(?2)
codec.write_uint8(opcode)
codec.write_uint32(seq)
end
@@ -1707,7 +1680,7 @@ module Qpid::Qmf
begin
return [nil, nil] unless codec.read_uint8 == ?A
return [nil, nil] unless codec.read_uint8 == ?M
- return [nil, nil] unless codec.read_uint8 == ?3
+ return [nil, nil] unless codec.read_uint8 == ?2
opcode = codec.read_uint8
seq = codec.read_uint32
return [opcode, seq]