Author: tross
Date: Fri Dec 11 13:52:48 2009
New Revision: 889619

URL: http://svn.apache.org/viewvc?rev=889619&view=rev
Log:
QPID-2245 QMF protocol changes will make 0.6 incompatible with 0.5

Modified:
    qpid/trunk/qpid/cpp/include/qpid/framing/FieldTable.h
    qpid/trunk/qpid/cpp/managementgen/qmfgen/management-types.xml
    qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.cpp
    qpid/trunk/qpid/cpp/src/qmf/engine/Protocol.cpp
    qpid/trunk/qpid/cpp/src/qmf/engine/SchemaImpl.cpp
    qpid/trunk/qpid/cpp/src/qmf/engine/ValueImpl.cpp
    qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
    qpid/trunk/qpid/cpp/src/qpid/console/Broker.cpp
    qpid/trunk/qpid/cpp/src/qpid/console/Schema.cpp
    qpid/trunk/qpid/cpp/src/qpid/console/Value.cpp
    qpid/trunk/qpid/cpp/src/qpid/framing/FieldTable.cpp
    qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp
    qpid/trunk/qpid/dotnet/client-010/management/console/Broker.cs
    qpid/trunk/qpid/dotnet/client-010/management/console/SchemaClass.cs
    qpid/trunk/qpid/dotnet/client-010/management/console/Session.cs
    
qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java
    
qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java
    
qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java
    
qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java
    
qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java
    
qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Broker.java
    
qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaClass.java
    
qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Session.java
    qpid/trunk/qpid/python/qmf/console.py
    qpid/trunk/qpid/python/qpid/management.py
    qpid/trunk/qpid/ruby/lib/qpid/qmf.rb

Modified: qpid/trunk/qpid/cpp/include/qpid/framing/FieldTable.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qpid/framing/FieldTable.h?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/include/qpid/framing/FieldTable.h (original)
+++ qpid/trunk/qpid/cpp/include/qpid/framing/FieldTable.h Fri Dec 11 13:52:48 
2009
@@ -63,10 +63,6 @@
     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;

Modified: qpid/trunk/qpid/cpp/managementgen/qmfgen/management-types.xml
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/managementgen/qmfgen/management-types.xml?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/managementgen/qmfgen/management-types.xml (original)
+++ qpid/trunk/qpid/cpp/managementgen/qmfgen/management-types.xml Fri Dec 11 
13:52:48 2009
@@ -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"/>

Modified: qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.cpp?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.cpp (original)
+++ qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.cpp Fri Dec 11 
13:52:48 2009
@@ -98,7 +98,6 @@
     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

Modified: qpid/trunk/qpid/cpp/src/qmf/engine/Protocol.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qmf/engine/Protocol.cpp?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qmf/engine/Protocol.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qmf/engine/Protocol.cpp Fri Dec 11 13:52:48 2009
@@ -37,14 +37,14 @@
     *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);
 }

Modified: qpid/trunk/qpid/cpp/src/qmf/engine/SchemaImpl.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qmf/engine/SchemaImpl.cpp?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qmf/engine/SchemaImpl.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qmf/engine/SchemaImpl.cpp Fri Dec 11 13:52:48 2009
@@ -341,7 +341,6 @@
     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 @@
     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());

Modified: qpid/trunk/qpid/cpp/src/qmf/engine/ValueImpl.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qmf/engine/ValueImpl.cpp?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qmf/engine/ValueImpl.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qmf/engine/ValueImpl.cpp Fri Dec 11 13:52:48 2009
@@ -55,8 +55,6 @@
 
     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:

Modified: qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp Fri Dec 11 
13:52:48 2009
@@ -564,7 +564,7 @@
 {
     buf.putOctet('A');
     buf.putOctet('M');
-    buf.putOctet('3');
+    buf.putOctet('2');
     buf.putOctet(opcode);
     buf.putLong (seq);
 }
@@ -581,7 +581,7 @@
     *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)

Modified: qpid/trunk/qpid/cpp/src/qpid/console/Broker.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/console/Broker.cpp?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/console/Broker.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/console/Broker.cpp Fri Dec 11 13:52:48 2009
@@ -72,7 +72,7 @@
 {
     buf.putOctet('A');
     buf.putOctet('M');
-    buf.putOctet('3');
+    buf.putOctet('2');
     buf.putOctet(opcode);
     buf.putLong (seq);
 }
@@ -89,7 +89,7 @@
     *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)

Modified: qpid/trunk/qpid/cpp/src/qpid/console/Schema.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/console/Schema.cpp?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/console/Schema.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/console/Schema.cpp Fri Dec 11 13:52:48 2009
@@ -119,7 +119,7 @@
     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();

Modified: qpid/trunk/qpid/cpp/src/qpid/console/Value.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/console/Value.cpp?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/console/Value.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/console/Value.cpp Fri Dec 11 13:52:48 2009
@@ -114,7 +114,7 @@
 
 MapValue::MapValue(framing::Buffer& buffer)
 {
-    value.qmfDecode(buffer);
+    value.decode(buffer);
 }
 
 

Modified: qpid/trunk/qpid/cpp/src/qpid/framing/FieldTable.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/framing/FieldTable.cpp?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/framing/FieldTable.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/framing/FieldTable.cpp Fri Dec 11 13:52:48 2009
@@ -53,23 +53,6 @@
     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 @@
     }
 }
 
-#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) 
{

Modified: qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp Fri Dec 11 
13:52:48 2009
@@ -267,7 +267,7 @@
 {
     buf.putOctet ('A');
     buf.putOctet ('M');
-    buf.putOctet ('3');
+    buf.putOctet ('2');
     buf.putOctet (opcode);
     buf.putLong  (seq);
 }
@@ -281,7 +281,7 @@
     *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 @@
         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();

Modified: qpid/trunk/qpid/dotnet/client-010/management/console/Broker.cs
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/dotnet/client-010/management/console/Broker.cs?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/dotnet/client-010/management/console/Broker.cs (original)
+++ qpid/trunk/qpid/dotnet/client-010/management/console/Broker.cs Fri Dec 11 
13:52:48 2009
@@ -165,7 +165,7 @@
                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 @@
                                        return returnValue ;
                                }
                                character = (char) decoder.ReadUint8() ;        
                
-                               if (character != '3') {
+                               if (character != '2') {
                                        return returnValue ;
                                }       
                                returnValue = true ;

Modified: qpid/trunk/qpid/dotnet/client-010/management/console/SchemaClass.cs
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/dotnet/client-010/management/console/SchemaClass.cs?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/dotnet/client-010/management/console/SchemaClass.cs 
(original)
+++ qpid/trunk/qpid/dotnet/client-010/management/console/SchemaClass.cs Fri Dec 
11 13:52:48 2009
@@ -60,7 +60,7 @@
                    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() ;

Modified: qpid/trunk/qpid/dotnet/client-010/management/console/Session.cs
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/dotnet/client-010/management/console/Session.cs?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/dotnet/client-010/management/console/Session.cs (original)
+++ qpid/trunk/qpid/dotnet/client-010/management/console/Session.cs Fri Dec 11 
13:52:48 2009
@@ -616,21 +616,7 @@
                                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 @@
                                        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

Modified: 
qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java
 (original)
+++ 
qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java
 Fri Dec 11 13:52:48 2009
@@ -239,7 +239,7 @@
             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 @@
         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;

Modified: 
qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java
 (original)
+++ 
qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java
 Fri Dec 11 13:52:48 2009
@@ -356,13 +356,13 @@
         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 @@
             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());

Modified: 
qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java
 (original)
+++ 
qpid/trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java
 Fri Dec 11 13:52:48 2009
@@ -49,53 +49,12 @@
     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;
     }
 

Modified: 
qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java
 (original)
+++ 
qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java
 Fri Dec 11 13:52:48 2009
@@ -27,7 +27,7 @@
  */
 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);

Modified: 
qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java
 (original)
+++ 
qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java
 Fri Dec 11 13:52:48 2009
@@ -69,17 +69,10 @@
                    
                    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, 

Modified: 
qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Broker.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Broker.java?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Broker.java
 (original)
+++ 
qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Broker.java
 Fri Dec 11 13:52:48 2009
@@ -111,7 +111,7 @@
                 return returnValue;
             }
             character = (char) decoder.readUint8();
-            if (character != '3')
+            if (character != '2')
             {
                 return returnValue;
             }
@@ -349,7 +349,7 @@
     {
         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 @@
             }
         }
     }
-}
\ No newline at end of file
+}

Modified: 
qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaClass.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaClass.java?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaClass.java
 (original)
+++ 
qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaClass.java
 Fri Dec 11 13:52:48 2009
@@ -43,7 +43,7 @@
         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 @@
     {
         this.classKey = classKey;
     }
-}
\ No newline at end of file
+}

Modified: 
qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Session.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Session.java?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Session.java
 (original)
+++ 
qpid/trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Session.java
 Fri Dec 11 13:52:48 2009
@@ -189,22 +189,7 @@
         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 @@
                 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 @@
             broker.waitForStable();
         }
     }
-}
\ No newline at end of file
+}

Modified: qpid/trunk/qpid/python/qmf/console.py
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/python/qmf/console.py?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/python/qmf/console.py (original)
+++ qpid/trunk/qpid/python/qmf/console.py Fri Dec 11 13:52:48 2009
@@ -958,17 +958,7 @@
     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 @@
     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 @@
     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 @@
     """ 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 @@
       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()

Modified: qpid/trunk/qpid/python/qpid/management.py
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/python/qpid/management.py?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/python/qpid/management.py (original)
+++ qpid/trunk/qpid/python/qpid/management.py Fri Dec 11 13:52:48 2009
@@ -400,7 +400,7 @@
     """ 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 @@
       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 @@
     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 @@
     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 ()

Modified: qpid/trunk/qpid/ruby/lib/qpid/qmf.rb
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/ruby/lib/qpid/qmf.rb?rev=889619&r1=889618&r2=889619&view=diff
==============================================================================
--- qpid/trunk/qpid/ruby/lib/qpid/qmf.rb (original)
+++ qpid/trunk/qpid/ruby/lib/qpid/qmf.rb Fri Dec 11 13:52:48 2009
@@ -640,25 +640,12 @@
       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 @@
       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 @@
       @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 @@
     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 @@
       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]



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to