Modified: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/AbstractDecoder.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/AbstractDecoder.java?rev=648692&r1=648691&r2=648692&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/AbstractDecoder.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/AbstractDecoder.java
 Wed Apr 16 06:32:13 2008
@@ -20,7 +20,10 @@
  */
 package org.apache.qpidity.transport.codec;
 
+import java.io.UnsupportedEncodingException;
+
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -99,19 +102,19 @@
         nbits = 0;
     }
 
-    public short readOctet()
+    public short readUint8()
     {
         return uget();
     }
 
-    public int readShort()
+    public int readUint16()
     {
         int i = uget() << 8;
         i |= uget();
         return i;
     }
 
-    public long readLong()
+    public long readUint32()
     {
         long l = uget() << 24;
         l |= uget() << 16;
@@ -120,7 +123,12 @@
         return l;
     }
 
-    public long readLonglong()
+    public int readSequenceNo()
+    {
+        return (int) readUint32();
+    }
+
+    public long readUint64()
     {
         long l = 0;
         for (int i = 0; i < 8; i++)
@@ -130,31 +138,67 @@
         return l;
     }
 
-    public long readTimestamp()
+    public long readDatetime()
+    {
+        return readUint64();
+    }
+
+    private static final String decode(byte[] bytes, String charset)
     {
-        return readLonglong();
+        try
+        {
+            return new String(bytes, charset);
+        }
+        catch (UnsupportedEncodingException e)
+        {
+            throw new RuntimeException(e);
+        }
     }
 
 
-    public String readShortstr()
+    public String readStr8()
+    {
+        short size = readUint8();
+        byte[] bytes = new byte[size];
+        get(bytes);
+        return decode(bytes, "UTF-8");
+    }
+
+    public String readStr16()
     {
-        short size = readOctet();
+        int size = readUint16();
         byte[] bytes = new byte[size];
         get(bytes);
-        return new String(bytes);
+        return decode(bytes, "UTF-8");
     }
 
-    public String readLongstr()
+    public byte[] readVbin8()
     {
-        long size = readLong();
-        byte[] bytes = new byte[(int) size];
+        int size = readUint8();
+        byte[] bytes = new byte[size];
         get(bytes);
-        return new String(bytes);
+        return bytes;
     }
 
-    public RangeSet readRfc1982LongSet()
+    public byte[] readVbin16()
     {
-        int count = readShort()/8;
+        int size = readUint16();
+        byte[] bytes = new byte[size];
+        get(bytes);
+        return bytes;
+    }
+
+    public byte[] readVbin32()
+    {
+        int size = (int) readUint32();
+        byte[] bytes = new byte[size];
+        get(bytes);
+        return bytes;
+    }
+
+    public RangeSet readSequenceSet()
+    {
+        int count = readUint16()/8;
         if (count == 0)
         {
             return null;
@@ -164,16 +208,21 @@
             RangeSet ranges = new RangeSet();
             for (int i = 0; i < count; i++)
             {
-                ranges.add(readLong(), readLong());
+                ranges.add(readUint32(), readUint32());
             }
             return ranges;
         }
     }
 
+    public RangeSet readByteRanges()
+    {
+        throw new Error("not implemented");
+    }
+
     public UUID readUuid()
     {
-        long msb = readLonglong();
-        long lsb = readLonglong();
+        long msb = readUint64();
+        long lsb = readUint64();
         return new UUID(msb, lsb);
     }
 
@@ -194,34 +243,39 @@
                 return null;
             }
         }
+        if (type > 0)
+        {
+            int code = readUint16();
+            assert code == type;
+        }
         st.read(this);
         return st;
     }
 
-    public Struct readLongStruct()
+    public Struct readStruct32()
     {
-        long size = readLong();
+        long size = readUint32();
         if (size == 0)
         {
             return null;
         }
         else
         {
-            int type = readShort();
+            int type = readUint16();
             Struct result = Struct.create(type);
             result.read(this);
             return result;
         }
     }
 
-    public Map<String,Object> readTable()
+    public Map<String,Object> readMap()
     {
-        long size = readLong();
+        long size = readUint32();
         int start = count;
         Map<String,Object> result = new LinkedHashMap();
         while (count < start + size)
         {
-            String key = readShortstr();
+            String key = readStr8();
             byte code = get();
             Type t = getType(code);
             Object value = read(t);
@@ -230,9 +284,9 @@
         return result;
     }
 
-    public List<Object> readSequence()
+    public List<Object> readList()
     {
-        long size = readLong();
+        long size = readUint32();
         int start = count;
         List<Object> result = new ArrayList();
         while (count < start + size)
@@ -247,10 +301,15 @@
 
     public List<Object> readArray()
     {
-        long size = readLong();
+        long size = readUint32();
+        if (size == 0)
+        {
+            return Collections.EMPTY_LIST;
+        }
+
         byte code = get();
         Type t = getType(code);
-        long count = readLong();
+        long count = readUint32();
 
         List<Object> result = new ArrayList<Object>();
         for (int i = 0; i < count; i++)
@@ -291,11 +350,11 @@
         switch (width)
         {
         case 1:
-            return readOctet();
+            return readUint8();
         case 2:
-            return readShort();
+            return readUint16();
         case 4:
-            return readLong();
+            return readUint32();
         default:
             throw new IllegalStateException("illegal width: " + width);
         }
@@ -313,81 +372,72 @@
     {
         switch (t)
         {
-        case OCTET:
-        case UNSIGNED_BYTE:
-            return readOctet();
-        case SIGNED_BYTE:
+        case BIN8:
+        case UINT8:
+            return readUint8();
+        case INT8:
             return get();
         case CHAR:
             return (char) get();
         case BOOLEAN:
             return get() > 0;
 
-        case TWO_OCTETS:
-        case UNSIGNED_SHORT:
-            return readShort();
-
-        case SIGNED_SHORT:
-            return (short) readShort();
-
-        case FOUR_OCTETS:
-        case UNSIGNED_INT:
-            return readLong();
-
-        case UTF32_CHAR:
-        case SIGNED_INT:
-            return (int) readLong();
+        case BIN16:
+        case UINT16:
+            return readUint16();
+
+        case INT16:
+            return (short) readUint16();
+
+        case BIN32:
+        case UINT32:
+            return readUint32();
+
+        case CHAR_UTF32:
+        case INT32:
+            return (int) readUint32();
 
         case FLOAT:
-            return Float.intBitsToFloat((int) readLong());
+            return Float.intBitsToFloat((int) readUint32());
 
-        case EIGHT_OCTETS:
-        case SIGNED_LONG:
-        case UNSIGNED_LONG:
+        case BIN64:
+        case UINT64:
+        case INT64:
         case DATETIME:
-            return readLonglong();
+            return readUint64();
 
         case DOUBLE:
-            return Double.longBitsToDouble(readLonglong());
-
-        case SIXTEEN_OCTETS:
-        case THIRTY_TWO_OCTETS:
-        case SIXTY_FOUR_OCTETS:
-        case _128_OCTETS:
-        case SHORT_BINARY:
-        case BINARY:
-        case LONG_BINARY:
-            return readBytes(t);
+            return Double.longBitsToDouble(readUint64());
 
         case UUID:
             return readUuid();
 
-        case SHORT_STRING:
-        case SHORT_UTF8_STRING:
-        case SHORT_UTF16_STRING:
-        case SHORT_UTF32_STRING:
-        case STRING:
-        case UTF8_STRING:
-        case UTF16_STRING:
-        case UTF32_STRING:
-        case LONG_STRING:
-        case LONG_UTF8_STRING:
-        case LONG_UTF16_STRING:
-        case LONG_UTF32_STRING:
+        case STR8:
+            return readStr8();
+
+        case STR16:
+            return readStr16();
+
+        case STR8_LATIN:
+        case STR8_UTF16:
+        case STR16_LATIN:
+        case STR16_UTF16:
             // XXX: need to do character conversion
             return new String(readBytes(t));
 
-        case TABLE:
-            return readTable();
-        case SEQUENCE:
-            return readSequence();
+        case MAP:
+            return readMap();
+        case LIST:
+            return readList();
         case ARRAY:
             return readArray();
+        case STRUCT32:
+            return readStruct32();
 
-        case FIVE_OCTETS:
-        case DECIMAL:
-        case NINE_OCTETS:
-        case LONG_DECIMAL:
+        case BIN40:
+        case DEC32:
+        case BIN72:
+        case DEC64:
             // XXX: what types are we supposed to use here?
             return readBytes(t);
 

Modified: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/AbstractEncoder.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/AbstractEncoder.java?rev=648692&r1=648691&r2=648692&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/AbstractEncoder.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/AbstractEncoder.java
 Wed Apr 16 06:32:13 2008
@@ -20,8 +20,11 @@
  */
 package org.apache.qpidity.transport.codec;
 
+import java.io.UnsupportedEncodingException;
+
 import java.nio.ByteBuffer;
 
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -48,17 +51,17 @@
     static
     {
         ENCODINGS.put(Boolean.class, Type.BOOLEAN);
-        ENCODINGS.put(String.class, Type.LONG_STRING);
-        ENCODINGS.put(Long.class, Type.SIGNED_LONG);
-        ENCODINGS.put(Integer.class, Type.SIGNED_INT);
-        ENCODINGS.put(Short.class, Type.SIGNED_SHORT);
-        ENCODINGS.put(Byte.class, Type.SIGNED_BYTE);
-        ENCODINGS.put(Map.class, Type.TABLE);
-        ENCODINGS.put(List.class, Type.SEQUENCE);
+        ENCODINGS.put(String.class, Type.STR16);
+        ENCODINGS.put(Long.class, Type.INT64);
+        ENCODINGS.put(Integer.class, Type.INT32);
+        ENCODINGS.put(Short.class, Type.INT16);
+        ENCODINGS.put(Byte.class, Type.INT8);
+        ENCODINGS.put(Map.class, Type.MAP);
+        ENCODINGS.put(List.class, Type.LIST);
         ENCODINGS.put(Float.class, Type.FLOAT);
         ENCODINGS.put(Double.class, Type.DOUBLE);
         ENCODINGS.put(Character.class, Type.CHAR);
-        ENCODINGS.put(byte[].class, Type.LONG_BINARY);
+        ENCODINGS.put(byte[].class, Type.VBIN32);
     }
 
     protected Sizer sizer()
@@ -120,14 +123,14 @@
         flushBits();
     }
 
-    public void writeOctet(short b)
+    public void writeUint8(short b)
     {
         assert b < 0x100;
 
         put((byte) b);
     }
 
-    public void writeShort(int s)
+    public void writeUint16(int s)
     {
         assert s < 0x10000;
 
@@ -135,7 +138,7 @@
         put(lsb(s));
     }
 
-    public void writeLong(long i)
+    public void writeUint32(long i)
     {
         assert i < 0x100000000L;
 
@@ -145,7 +148,12 @@
         put(lsb(i));
     }
 
-    public void writeLonglong(long l)
+    public void writeSequenceNo(int i)
+    {
+        writeUint32(i);
+    }
+
+    public void writeUint64(long l)
     {
         for (int i = 0; i < 8; i++)
         {
@@ -154,47 +162,101 @@
     }
 
 
-    public void writeTimestamp(long l)
+    public void writeDatetime(long l)
     {
-        writeLonglong(l);
+        writeUint64(l);
     }
 
+    private static final String checkLength(String s, int n)
+    {
+        if (s == null)
+        {
+            return "";
+        }
+
+        if (s.length() > n)
+        {
+            throw new IllegalArgumentException("string too long: " + s);
+        }
+        else
+        {
+            return s;
+        }
+    }
 
-    public void writeShortstr(String s)
+    private static final byte[] encode(String s, String charset)
     {
-        if (s == null) { s = ""; }
-        if (s.length() > 255) {
-            throw new IllegalArgumentException(s);
+        try
+        {
+            return s.getBytes(charset);
+        }
+        catch (UnsupportedEncodingException e)
+        {
+            throw new RuntimeException(e);
         }
-        writeOctet((short) s.length());
-        put(ByteBuffer.wrap(s.getBytes()));
     }
 
-    public void writeLongstr(String s)
+    public void writeStr8(String s)
+    {
+        s = checkLength(s, 255);
+        writeUint8((short) s.length());
+        put(ByteBuffer.wrap(encode(s, "UTF-8")));
+    }
+
+    public void writeStr16(String s)
     {
-        if (s == null) { s = ""; }
-        writeLong(s.length());
-        put(ByteBuffer.wrap(s.getBytes()));
+        s = checkLength(s, 65535);
+        writeUint16(s.length());
+        put(ByteBuffer.wrap(encode(s, "UTF-8")));
     }
 
+    public void writeVbin8(byte[] bytes)
+    {
+        if (bytes == null) { bytes = new byte[0]; }
+        if (bytes.length > 255)
+        {
+            throw new IllegalArgumentException("array too long: " + 
bytes.length);
+        }
+        writeUint8((short) bytes.length);
+        put(ByteBuffer.wrap(bytes));
+    }
 
-    public void writeRfc1982LongSet(RangeSet ranges)
+    public void writeVbin16(byte[] bytes)
+    {
+        if (bytes == null) { bytes = new byte[0]; }
+        writeUint16(bytes.length);
+        put(ByteBuffer.wrap(bytes));
+    }
+
+    public void writeVbin32(byte[] bytes)
+    {
+        if (bytes == null) { bytes = new byte[0]; }
+        writeUint32(bytes.length);
+        put(ByteBuffer.wrap(bytes));
+    }
+
+    public void writeSequenceSet(RangeSet ranges)
     {
         if (ranges == null)
         {
-            writeShort((short) 0);
+            writeUint16((short) 0);
         }
         else
         {
-            writeShort(ranges.size() * 8);
+            writeUint16(ranges.size() * 8);
             for (Range range : ranges)
             {
-                writeLong(range.getLower());
-                writeLong(range.getUpper());
+                writeUint32(range.getLower());
+                writeUint32(range.getUpper());
             }
         }
     }
 
+    public void writeByteRanges(RangeSet ranges)
+    {
+        throw new Error("not implemented");
+    }
+
     public void writeUuid(UUID uuid)
     {
         long msb = 0;
@@ -202,15 +264,10 @@
         if (uuid != null)
         {
             msb = uuid.getMostSignificantBits();
-            uuid.getLeastSignificantBits();
+            lsb = uuid.getLeastSignificantBits();
         }
-        writeLonglong(msb);
-        writeLonglong(lsb);
-    }
-
-    public void writeContent(String c)
-    {
-        throw new Error("Deprecated");
+        writeUint64(msb);
+        writeUint64(lsb);
     }
 
     public void writeStruct(int type, Struct s)
@@ -237,22 +294,27 @@
             }
         }
 
+        if (type > 0)
+        {
+            writeUint16(type);
+        }
+
         s.write(this);
     }
 
-    public void writeLongStruct(Struct s)
+    public void writeStruct32(Struct s)
     {
         if (s == null)
         {
-            writeLong(0);
+            writeUint32(0);
         }
         else
         {
             Sizer sizer = sizer();
-            sizer.writeShort(s.getEncodedType());
+            sizer.writeUint16(s.getEncodedType());
             s.write(sizer);
-            writeLong(sizer.size());
-            writeShort(s.getEncodedType());
+            writeUint32(sizer.size());
+            writeUint16(s.getEncodedType());
             s.write(this);
         }
     }
@@ -309,46 +371,46 @@
         return null;
     }
 
-    public void writeTable(Map<String,Object> table)
+    public void writeMap(Map<String,Object> map)
     {
-        if (table == null)
+        if (map == null)
         {
-            writeLong(0);
+            writeUint32(0);
             return;
         }
 
         Sizer sizer = sizer();
-        sizer.writeTable(table);
+        sizer.writeMap(map);
         // XXX: - 4
-        writeLong(sizer.size() - 4);
-        writeTableEntries(table);
+        writeUint32(sizer.size() - 4);
+        writeMapEntries(map);
     }
 
-    protected void writeTableEntries(Map<String,Object> table)
+    protected void writeMapEntries(Map<String,Object> map)
     {
-        for (Map.Entry<String,Object> entry : table.entrySet())
+        for (Map.Entry<String,Object> entry : map.entrySet())
         {
             String key = entry.getKey();
             Object value = entry.getValue();
             Type type = encoding(value);
-            writeShortstr(key);
+            writeStr8(key);
             put(type.code);
             write(type, value);
         }
     }
 
-    public void writeSequence(List<Object> sequence)
+    public void writeList(List<Object> list)
     {
         Sizer sizer = sizer();
-        sizer.writeSequence(sequence);
+        sizer.writeList(list);
         // XXX: - 4
-        writeLong(sizer.size() - 4);
-        writeSequenceEntries(sequence);
+        writeUint32(sizer.size() - 4);
+        writeListEntries(list);
     }
 
-    protected void writeSequenceEntries(List<Object> sequence)
+    protected void writeListEntries(List<Object> list)
     {
-        for (Object value : sequence)
+        for (Object value : list)
         {
             Type type = encoding(value);
             put(type.code);
@@ -358,10 +420,15 @@
 
     public void writeArray(List<Object> array)
     {
+        if (array == null)
+        {
+            array = Collections.EMPTY_LIST;
+        }
+
         Sizer sizer = sizer();
         sizer.writeArray(array);
         // XXX: -4
-        writeLong(sizer.size() - 4);
+        writeUint32(sizer.size() - 4);
         writeArrayEntries(array);
     }
 
@@ -371,7 +438,7 @@
 
         if (array.isEmpty())
         {
-            type = Type.VOID;
+            return;
         }
         else
         {
@@ -380,6 +447,8 @@
 
         put(type.code);
 
+        writeUint32(array.size());
+
         for (Object value : array)
         {
             write(type, value);
@@ -409,13 +478,13 @@
         switch (width)
         {
         case 1:
-            writeOctet((short) size);
+            writeUint8((short) size);
             break;
         case 2:
-            writeShort(size);
+            writeUint16(size);
             break;
         case 4:
-            writeLong(size);
+            writeUint32(size);
             break;
         default:
             throw new IllegalStateException("illegal width: " + width);
@@ -444,11 +513,11 @@
     {
         switch (t)
         {
-        case OCTET:
-        case UNSIGNED_BYTE:
-            writeOctet(coerce(Short.class, value));
+        case BIN8:
+        case UINT8:
+            writeUint8(coerce(Short.class, value));
             break;
-        case SIGNED_BYTE:
+        case INT8:
             put(coerce(Byte.class, value));
             break;
         case CHAR:
@@ -465,85 +534,78 @@
             }
             break;
 
-        case TWO_OCTETS:
-        case UNSIGNED_SHORT:
-            writeShort(coerce(Integer.class, value));
+        case BIN16:
+        case UINT16:
+            writeUint16(coerce(Integer.class, value));
             break;
 
-        case SIGNED_SHORT:
-            writeShort(coerce(Short.class, value));
+        case INT16:
+            writeUint16(coerce(Short.class, value));
             break;
 
-        case FOUR_OCTETS:
-        case UNSIGNED_INT:
-            writeLong(coerce(Long.class, value));
+        case BIN32:
+        case UINT32:
+            writeUint32(coerce(Long.class, value));
             break;
 
-        case UTF32_CHAR:
-        case SIGNED_INT:
-            writeLong(coerce(Integer.class, value));
+        case CHAR_UTF32:
+        case INT32:
+            writeUint32(coerce(Integer.class, value));
             break;
 
         case FLOAT:
-            writeLong(Float.floatToIntBits(coerce(Float.class, value)));
+            writeUint32(Float.floatToIntBits(coerce(Float.class, value)));
             break;
 
-        case EIGHT_OCTETS:
-        case SIGNED_LONG:
-        case UNSIGNED_LONG:
+        case BIN64:
+        case UINT64:
+        case INT64:
         case DATETIME:
-            writeLonglong(coerce(Long.class, value));
+            writeUint64(coerce(Long.class, value));
             break;
 
         case DOUBLE:
             long bits = Double.doubleToLongBits(coerce(Double.class, value));
-            writeLonglong(bits);
-            break;
-
-        case SIXTEEN_OCTETS:
-        case THIRTY_TWO_OCTETS:
-        case SIXTY_FOUR_OCTETS:
-        case _128_OCTETS:
-        case SHORT_BINARY:
-        case BINARY:
-        case LONG_BINARY:
-            writeBytes(t, coerce(byte[].class, value));
+            writeUint64(bits);
             break;
 
         case UUID:
             writeUuid(coerce(UUID.class, value));
             break;
 
-        case SHORT_STRING:
-        case SHORT_UTF8_STRING:
-        case SHORT_UTF16_STRING:
-        case SHORT_UTF32_STRING:
-        case STRING:
-        case UTF8_STRING:
-        case UTF16_STRING:
-        case UTF32_STRING:
-        case LONG_STRING:
-        case LONG_UTF8_STRING:
-        case LONG_UTF16_STRING:
-        case LONG_UTF32_STRING:
+        case STR8:
+            writeStr8(coerce(String.class, value));
+            break;
+
+        case STR16:
+            writeStr16(coerce(String.class, value));
+            break;
+
+        case STR8_LATIN:
+        case STR8_UTF16:
+        case STR16_LATIN:
+        case STR16_UTF16:
             // XXX: need to do character conversion
             writeBytes(t, coerce(String.class, value).getBytes());
             break;
 
-        case TABLE:
-            writeTable((Map<String,Object>) coerce(Map.class, value));
+        case MAP:
+            writeMap((Map<String,Object>) coerce(Map.class, value));
             break;
-        case SEQUENCE:
-            writeSequence(coerce(List.class, value));
+        case LIST:
+            writeList(coerce(List.class, value));
             break;
         case ARRAY:
             writeArray(coerce(List.class, value));
             break;
+        case STRUCT32:
+            writeStruct32(coerce(Struct.class, value));
+            break;
 
-        case FIVE_OCTETS:
-        case DECIMAL:
-        case NINE_OCTETS:
-        case LONG_DECIMAL:
+        case BIN40:
+        case DEC32:
+        case BIN72:
+        case DEC64:
             // XXX: what types are we supposed to use here?
             writeBytes(t, coerce(byte[].class, value));
             break;

Modified: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/Decoder.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/Decoder.java?rev=648692&r1=648691&r2=648692&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/Decoder.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/Decoder.java
 Wed Apr 16 06:32:13 2008
@@ -38,26 +38,30 @@
 {
 
     boolean readBit();
-    short readOctet();
-    int readShort();
-    long readLong();
-    long readLonglong();
+    short readUint8();
+    int readUint16();
+    long readUint32();
+    long readUint64();
 
-    long readTimestamp();
-
-    String readShortstr();
-    String readLongstr();
-
-    RangeSet readRfc1982LongSet();
+    long readDatetime();
     UUID readUuid();
 
-    String readContent();
+    int readSequenceNo();
+    RangeSet readSequenceSet(); // XXX
+    RangeSet readByteRanges(); // XXX
+
+    String readStr8();
+    String readStr16();
+
+    byte[] readVbin8();
+    byte[] readVbin16();
+    byte[] readVbin32();
+
+    Struct readStruct32();
+    Map<String,Object> readMap();
+    List<Object> readList();
+    List<Object> readArray();
 
     Struct readStruct(int type);
-    Struct readLongStruct();
-
-    Map<String,Object> readTable();
-    List<Object> readSequence();
-    List<Object> readArray();
 
 }

Modified: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/Encoder.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/Encoder.java?rev=648692&r1=648691&r2=648692&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/Encoder.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/Encoder.java
 Wed Apr 16 06:32:13 2008
@@ -40,26 +40,30 @@
     void flush();
 
     void writeBit(boolean b);
-    void writeOctet(short b);
-    void writeShort(int s);
-    void writeLong(long i);
-    void writeLonglong(long l);
+    void writeUint8(short b);
+    void writeUint16(int s);
+    void writeUint32(long i);
+    void writeUint64(long l);
 
-    void writeTimestamp(long l);
-
-    void writeShortstr(String s);
-    void writeLongstr(String s);
-
-    void writeRfc1982LongSet(RangeSet ranges);
+    void writeDatetime(long l);
     void writeUuid(UUID uuid);
 
-    void writeContent(String c);
+    void writeSequenceNo(int s);
+    void writeSequenceSet(RangeSet ranges); // XXX
+    void writeByteRanges(RangeSet ranges); // XXX
+
+    void writeStr8(String s);
+    void writeStr16(String s);
+
+    void writeVbin8(byte[] bytes);
+    void writeVbin16(byte[] bytes);
+    void writeVbin32(byte[] bytes);
+
+    void writeStruct32(Struct s);
+    void writeMap(Map<String,Object> map);
+    void writeList(List<Object> list);
+    void writeArray(List<Object> array);
 
     void writeStruct(int type, Struct s);
-    void writeLongStruct(Struct s);
-
-    void writeTable(Map<String,Object> table);
-    void writeSequence(List<Object> sequence);
-    void writeArray(List<Object> array);
 
 }

Modified: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/Sizer.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/Sizer.java?rev=648692&r1=648691&r2=648692&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/Sizer.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/codec/Sizer.java
 Wed Apr 16 06:32:13 2008
@@ -38,30 +38,34 @@
 
     public static final Sizer NULL = new Sizer()
     {
-        public void flush() {};
+        public void flush() {}
 
-        public void writeBit(boolean b) {};
-        public void writeOctet(short b) {};
-        public void writeShort(int s) {};
-        public void writeLong(long i) {};
-        public void writeLonglong(long l) {};
+        public void writeBit(boolean b) {}
+        public void writeUint8(short b) {}
+        public void writeUint16(int s) {}
+        public void writeUint32(long i) {}
+        public void writeUint64(long l) {}
+
+        public void writeDatetime(long l) {}
+        public void writeUuid(UUID uuid) {}
+
+        public void writeSequenceNo(int s) {}
+        public void writeSequenceSet(RangeSet ranges) {} // XXX
+        public void writeByteRanges(RangeSet ranges) {} // XXX
+
+        public void writeStr8(String s) {}
+        public void writeStr16(String s) {}
+
+        public void writeVbin8(byte[] bytes) {}
+        public void writeVbin16(byte[] bytes) {}
+        public void writeVbin32(byte[] bytes) {}
+
+        public void writeStruct32(Struct s) {}
+        public void writeMap(Map<String,Object> map) {}
+        public void writeList(List<Object> list) {}
+        public void writeArray(List<Object> array) {}
 
-        public void writeTimestamp(long l) {};
-
-        public void writeShortstr(String s) {};
-        public void writeLongstr(String s) {};
-
-        public void writeRfc1982LongSet(RangeSet ranges) {};
-        public void writeUuid(UUID uuid) {};
-
-        public void writeContent(String c) {};
-
-        public void writeStruct(int type, Struct s) {};
-        public void writeLongStruct(Struct s) {};
-
-        public void writeTable(Map<String,Object> table) {};
-        public void writeSequence(List<Object> sequence) {};
-        public void writeArray(List<Object> array) {};
+        public void writeStruct(int type, Struct s) {}
 
         public int getSize() { return 0; }
 

Modified: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Assembler.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Assembler.java?rev=648692&r1=648691&r2=648692&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Assembler.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Assembler.java
 Wed Apr 16 06:32:13 2008
@@ -37,6 +37,7 @@
 import org.apache.qpidity.transport.ProtocolEvent;
 import org.apache.qpidity.transport.ProtocolHeader;
 import org.apache.qpidity.transport.Receiver;
+import org.apache.qpidity.transport.SegmentType;
 import org.apache.qpidity.transport.Struct;
 
 
@@ -118,7 +119,7 @@
     {
         switch (frame.getType())
         {
-        case Frame.BODY:
+        case BODY:
             emit(frame, new Data(frame, frame.isFirstFrame(),
                                  frame.isLastFrame()));
             break;
@@ -158,22 +159,29 @@
         }
     }
 
-    private ProtocolEvent decode(Frame frame, byte type, List<ByteBuffer> 
segment)
+    private ProtocolEvent decode(Frame frame, SegmentType type, 
List<ByteBuffer> segment)
     {
         FragmentDecoder dec = new FragmentDecoder(segment.iterator());
 
         switch (type)
         {
-        case Frame.METHOD:
-            int methodType = dec.readShort();
-            Method method = Method.create(methodType);
-            method.read(dec);
-            return method;
-        case Frame.HEADER:
+        case CONTROL:
+            int controlType = dec.readUint16();
+            Method control = Method.create(controlType);
+            control.read(dec);
+            return control;
+        case COMMAND:
+            int commandType = dec.readUint16();
+            // read in the session header, right now we don't use it
+            dec.readUint16();
+            Method command = Method.create(commandType);
+            command.read(dec);
+            return command;
+        case HEADER:
             List<Struct> structs = new ArrayList();
             while (dec.hasRemaining())
             {
-                structs.add(dec.readLongStruct());
+                structs.add(dec.readStruct32());
             }
             return new Header(structs,frame.isLastFrame() && 
frame.isLastSegment());
         default:

Modified: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Disassembler.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Disassembler.java?rev=648692&r1=648691&r2=648692&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Disassembler.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Disassembler.java
 Wed Apr 16 06:32:13 2008
@@ -31,6 +31,7 @@
 import org.apache.qpidity.transport.ProtocolError;
 import org.apache.qpidity.transport.ProtocolEvent;
 import org.apache.qpidity.transport.ProtocolHeader;
+import org.apache.qpidity.transport.SegmentType;
 import org.apache.qpidity.transport.Sender;
 import org.apache.qpidity.transport.Struct;
 
@@ -76,50 +77,50 @@
         sender.close();
     }
 
-    private void fragment(byte flags, byte type, ConnectionEvent event,
+    private void fragment(byte flags, SegmentType type, ConnectionEvent event,
                           ByteBuffer buf, boolean first, boolean last)
     {
         if(!buf.hasRemaining())
         {
             //empty data
-              byte nflags = flags;
+            byte nflags = flags;
             if (first)
             {
                 nflags |= FIRST_FRAME;
                 first = false;
             }
-             nflags |= LAST_FRAME;
-              Frame frame = new Frame(nflags, type,
+            nflags |= LAST_FRAME;
+            Frame frame = new Frame(nflags, type,
                                     event.getProtocolEvent().getEncodedTrack(),
                                     event.getChannel());
-           // frame.addFragment(buf);
+            // frame.addFragment(buf);
             sender.send(frame);
         }
         else
         {
-        while (buf.hasRemaining())
-        {
-            ByteBuffer slice = buf.slice();
-            slice.limit(min(maxPayload, slice.remaining()));
-            buf.position(buf.position() + slice.remaining());
-
-            byte newflags = flags;
-            if (first)
+            while (buf.hasRemaining())
             {
-                newflags |= FIRST_FRAME;
-                first = false;
+                ByteBuffer slice = buf.slice();
+                slice.limit(min(maxPayload, slice.remaining()));
+                buf.position(buf.position() + slice.remaining());
+
+                byte newflags = flags;
+                if (first)
+                {
+                    newflags |= FIRST_FRAME;
+                    first = false;
+                }
+                if (last && !buf.hasRemaining())
+                {
+                    newflags |= LAST_FRAME;
+                }
+
+                Frame frame = new Frame(newflags, type,
+                                        
event.getProtocolEvent().getEncodedTrack(),
+                                        event.getChannel());
+                frame.addFragment(slice);
+                sender.send(frame);
             }
-            if (last && !buf.hasRemaining())
-            {
-                newflags |= LAST_FRAME;
-            }
-
-            Frame frame = new Frame(newflags, type,
-                                    event.getProtocolEvent().getEncodedTrack(),
-                                    event.getChannel());
-            frame.addFragment(slice);
-            sender.send(frame);
-        }
         }
     }
 
@@ -128,15 +129,40 @@
         sender.send(header);
     }
 
-    public void method(ConnectionEvent event, Method method)
+    public void control(ConnectionEvent event, Method method)
+    {
+        method(event, method, SegmentType.CONTROL);
+    }
+
+    public void command(ConnectionEvent event, Method method)
+    {
+        method(event, method, SegmentType.COMMAND);
+    }
+
+    private void method(ConnectionEvent event, Method method, SegmentType type)
     {
         SizeEncoder sizer = new SizeEncoder();
-        sizer.writeShort(method.getEncodedType());
+        sizer.writeUint16(method.getEncodedType());
+        if (type == SegmentType.COMMAND)
+        {
+            sizer.writeUint16(0);
+        }
         method.write(sizer);
 
         ByteBuffer buf = ByteBuffer.allocate(sizer.size());
         BBEncoder enc = new BBEncoder(buf);
-        enc.writeShort(method.getEncodedType());
+        enc.writeUint16(method.getEncodedType());
+        if (type == SegmentType.COMMAND)
+        {
+            if (method.isSync())
+            {
+                enc.writeUint16(0x0101);
+            }
+            else
+            {
+                enc.writeUint16(0x0100);
+            }
+        }
         method.write(enc);
         enc.flush();
         buf.flip();
@@ -148,7 +174,7 @@
             flags |= LAST_SEG;
         }
 
-        fragment(flags, METHOD, event, buf, true, true);
+        fragment(flags, type, event, buf, true, true);
     }
 
     public void header(ConnectionEvent event, Header header)
@@ -159,24 +185,24 @@
             SizeEncoder sizer = new SizeEncoder();
             for (Struct st : header.getStructs())
             {
-                sizer.writeLongStruct(st);
+                sizer.writeStruct32(st);
             }
 
             buf = ByteBuffer.allocate(sizer.size());
             BBEncoder enc = new BBEncoder(buf);
             for (Struct st : header.getStructs())
             {
-                enc.writeLongStruct(st);
+                enc.writeStruct32(st);
                 enc.flush();
             }
             header.setBuf(buf);
         }
         else
         {
-            buf = header.getBuf();          
+            buf = header.getBuf();
         }
           buf.flip();
-        fragment((byte) 0x0, HEADER, event, buf, true, true);
+        fragment((byte) 0x0, SegmentType.HEADER, event, buf, true, true);
     }
 
     public void data(ConnectionEvent event, Data data)
@@ -187,7 +213,7 @@
         {
             ByteBuffer buf = it.next();
             boolean last = data.isLast() && !it.hasNext();
-            fragment(LAST_SEG, BODY, event, buf, first, last);
+            fragment(LAST_SEG, SegmentType.BODY, event, buf, first, last);
             first = false;
         }
     }

Modified: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Frame.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Frame.java?rev=648692&r1=648691&r2=648692&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Frame.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Frame.java
 Wed Apr 16 06:32:13 2008
@@ -20,6 +20,7 @@
  */
 package org.apache.qpidity.transport.network;
 
+import org.apache.qpidity.transport.SegmentType;
 import org.apache.qpidity.transport.util.SliceIterator;
 
 import java.nio.ByteBuffer;
@@ -48,10 +49,6 @@
     public static final byte L3 = 2;
     public static final byte L4 = 3;
 
-    public static final byte METHOD = 1;
-    public static final byte HEADER = 2;
-    public static final byte BODY = 3;
-
     public static final byte RESERVED = 0x0;
 
     public static final byte VERSION = 0x0;
@@ -62,13 +59,13 @@
     public static final byte LAST_FRAME = 0x1;
 
     final private byte flags;
-    final private byte type;
+    final private SegmentType type;
     final private byte track;
     final private int channel;
     final private List<ByteBuffer> fragments;
     private int size;
 
-    public Frame(byte flags, byte type, byte track, int channel)
+    public Frame(byte flags, SegmentType type, byte track, int channel)
     {
         this.flags = flags;
         this.type = type;
@@ -99,7 +96,7 @@
         return size;
     }
 
-    public byte getType()
+    public SegmentType getType()
     {
         return type;
     }
@@ -153,7 +150,7 @@
     {
         StringBuilder str = new StringBuilder();
         str.append(String.format
-                   ("[%05d %05d %1d %1d %d%d%d%d]", getChannel(), getSize(),
+                   ("[%05d %05d %1d %1d %d%d%d%d] ", getChannel(), getSize(),
                     getTrack(), getType(),
                     isFirstSegment() ? 1 : 0, isLastSegment() ? 1 : 0,
                     isFirstFrame() ? 1 : 0, isLastFrame() ? 1 : 0));
@@ -170,7 +167,7 @@
                 str.append(" | ");
             }
 
-            str.append(str(buf, 20));
+            str.append(str(buf));
         }
 
         return str.toString();

Modified: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/InputHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/InputHandler.java?rev=648692&r1=648691&r2=648692&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/InputHandler.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/InputHandler.java
 Wed Apr 16 06:32:13 2008
@@ -22,10 +22,10 @@
 
 import java.nio.ByteBuffer;
 
-import org.apache.qpidity.transport.Constant;
 import org.apache.qpidity.transport.ProtocolError;
 import org.apache.qpidity.transport.ProtocolHeader;
 import org.apache.qpidity.transport.Receiver;
+import org.apache.qpidity.transport.SegmentType;
 
 import static org.apache.qpidity.transport.util.Functions.*;
 
@@ -77,7 +77,7 @@
     private byte minor;
 
     private byte flags;
-    private byte type;
+    private SegmentType type;
     private byte track;
     private int channel;
     private int size;
@@ -146,7 +146,7 @@
             flags = buf.get();
             return FRAME_HDR_TYPE;
         case FRAME_HDR_TYPE:
-            type = buf.get();
+            type = SegmentType.get(buf.get());
             return FRAME_HDR_SIZE1;
         case FRAME_HDR_SIZE1:
             size = (0xFF & buf.get()) << 8;
@@ -218,7 +218,7 @@
                 return FRAME_END;
             }
         case FRAME_END:
-            return expect(buf, Constant.FRAME_END, FRAME_HDR);
+            return expect(buf, OutputHandler.FRAME_END, FRAME_HDR);
         default:
             throw new IllegalStateException();
         }

Modified: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/OutputHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/OutputHandler.java?rev=648692&r1=648691&r2=648692&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/OutputHandler.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/OutputHandler.java
 Wed Apr 16 06:32:13 2008
@@ -67,11 +67,13 @@
         }
     }
 
+    public static final int FRAME_END = 0xCE;
+
     public void frame(Frame frame)
     {
        ByteBuffer hdr = ByteBuffer.allocate(HEADER_SIZE +   frame.getSize() + 
1);
         hdr.put(frame.getFlags());
-        hdr.put(frame.getType());
+        hdr.put((byte) frame.getType().getValue());
         hdr.putShort((short) (frame.getSize() + HEADER_SIZE));
         hdr.put(RESERVED);
         hdr.put(frame.getTrack());
@@ -84,7 +86,7 @@
         {
             hdr.put(buf);
         }
-        hdr.put((byte) Constant.FRAME_END);
+        hdr.put((byte) FRAME_END);
         hdr.flip();
         synchronized (lock)
         {

Modified: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaHandler.java?rev=648692&r1=648691&r2=648692&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaHandler.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaHandler.java
 Wed Apr 16 06:32:13 2008
@@ -200,7 +200,7 @@
                                            ConnectionDelegate delegate)
     {
         return connect(host, port, new ConnectionBinding
-                       (delegate, InputHandler.State.FRAME_HDR));
+                       (delegate, InputHandler.State.PROTO_HDR));
     }
 
     private static class ConnectionBinding

Modified: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/util/Functions.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/util/Functions.java?rev=648692&r1=648691&r2=648692&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/util/Functions.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/util/Functions.java
 Wed Apr 16 06:32:13 2008
@@ -52,14 +52,23 @@
     public static final String str(ByteBuffer buf, int limit)
     {
         StringBuilder str = new StringBuilder();
+        str.append('"');
+
         for (int i = 0; i < min(buf.remaining(), limit); i++)
         {
-            if (i > 0 && i % 2 == 0)
+            byte c = buf.get(buf.position() + i);
+
+            if (c > 31 && c < 127 && c != '\\')
             {
-                str.append(" ");
+                str.append((char)c);
+            }
+            else
+            {
+                str.append(String.format("\\x%02x", c));
             }
-            str.append(String.format("%02x", buf.get(buf.position() + i)));
         }
+
+        str.append('"');
 
         return str.toString();
     }

Modified: 
incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpidity/transport/ConnectionTest.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpidity/transport/ConnectionTest.java?rev=648692&r1=648691&r2=648692&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpidity/transport/ConnectionTest.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpidity/transport/ConnectionTest.java
 Wed Apr 16 06:32:13 2008
@@ -100,12 +100,12 @@
         }
 
         Channel ch = conn.getChannel(0);
-        Session ssn = new Session();
+        Session ssn = new Session("test".getBytes());
         ssn.attach(ch);
 
         try
         {
-            ssn.sessionOpen(1234);
+            ssn.sessionAttach(ssn.getName());
             fail("writing to a closed socket succeeded");
         }
         catch (TransportException e)

Added: incubator/qpid/trunk/qpid/java/common/templating.py
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/templating.py?rev=648692&view=auto
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/templating.py (added)
+++ incubator/qpid/trunk/qpid/java/common/templating.py Wed Apr 16 06:32:13 2008
@@ -0,0 +1,101 @@
+
+class Parser:
+
+  def __init__(self, **kwargs):
+    self.output = ""
+    self.environ = {"out": self.parse}
+    for k, v in kwargs.items():
+      self.environ[k] = v
+    self.text = ""
+    self.level = 0
+    self.line = None
+
+  def action(self, actor):
+    text = self.text
+    self.text = ""
+    actor(text)
+
+  def out(self, text):
+    self.output += text
+
+  def prefix_lines(self, text):
+    return "%s%s" % ("\n"*(self.line - 1 - text.count("\n")), text)
+
+  def evaluate(self, text):
+    self.out(str(eval(self.prefix_lines(text), self.environ, self.environ)))
+
+  def execute(self, text):
+    exec self.prefix_lines(text) in self.environ, self.environ
+
+  def parse(self, input):
+    old_line = self.line
+    try:
+      state = self.start
+      self.line = 1
+      for ch in input:
+        state = state(ch)
+        if ch == "\n":
+          self.line += 1
+      if state == self.start:
+        self.action(self.out)
+      elif state == self.alnum:
+        self.action(self.evaluate)
+      else:
+        raise ParseError()
+    finally:
+      self.line = old_line
+
+  def start(self, ch):
+    if ch == "$":
+      return self.dollar
+    else:
+      self.text += ch
+      return self.start
+
+  def dollar(self, ch):
+    if ch == "$":
+      self.text += "$"
+      return self.start
+    elif ch == "(":
+      self.action(self.out)
+      return self.expression
+    elif ch == "{":
+      self.action(self.out)
+      return self.block
+    else:
+      self.action(self.out)
+      self.text += ch
+      return self.alnum
+
+  def alnum(self, ch):
+    if ch.isalnum():
+      self.text += ch
+      return self.alnum
+    else:
+      self.action(self.evaluate)
+      self.text += ch
+      return self.start
+
+  def match(self, ch, start, end):
+    if ch == start:
+      self.level += 1
+    if ch == end:
+      self.level -= 1
+
+  def block(self, ch):
+    if not self.level and ch == "}":
+      self.action(self.execute)
+      return self.start
+    else:
+      self.match(ch, "{", "}")
+      self.text += ch
+      return self.block
+
+  def expression(self, ch):
+    if not self.level and ch == ")":
+      self.action(self.evaluate)
+      return self.start
+    else:
+      self.match(ch, "(", ")")
+      self.text += ch
+      return self.expression

Propchange: incubator/qpid/trunk/qpid/java/common/templating.py
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/qpid/trunk/qpid/java/cpp.async.testprofile
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/cpp.async.testprofile?rev=648692&r1=648691&r2=648692&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/cpp.async.testprofile (original)
+++ incubator/qpid/trunk/qpid/java/cpp.async.testprofile Wed Apr 16 06:32:13 
2008
@@ -1,6 +1,6 @@
 broker.version=0-10
 broker=${project.root}/../cpp/src/qpidd --data-dir ${build.data} -t 
--log-output ${build.data}/broker.log --load-module 
${project.root}/../../cppStore/cpp/lib/.libs/libbdbstore.so --store-async yes
-broker.clean=${build.data}
+broker.clean=${project.root}/clean-dir ${build.data}
 java.naming.provider.url=${project.root}/test-provider.properties
 max_prefetch=1000
 test.excludes=true
@@ -14,4 +14,4 @@
 test=*Test
 test1=*Tests
 haltonfailure=no
-haltonerror=no
\ No newline at end of file
+haltonerror=no


Reply via email to