You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2017/09/28 13:36:06 UTC

[09/12] qpid-broker-j git commit: QPID-7932: [Java Broker, AMQP 1.0] Improve error handling when deserializing composite types

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ValueHandler.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ValueHandler.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ValueHandler.java
index 5fcba82..56347f6 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ValueHandler.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ValueHandler.java
@@ -70,10 +70,8 @@ public class ValueHandler implements DescribedTypeConstructorRegistry.Source
                       StringTypeConstructor.getInstance(4),
                       null,
                       SymbolTypeConstructor.getInstance(4)                                         },
-                    { CompoundTypeConstructor.getInstance(1, CompoundTypeConstructor.LIST_ASSEMBLER_FACTORY),
-                      CompoundTypeConstructor.getInstance(1, CompoundTypeConstructor.MAP_ASSEMBLER_FACTORY)  },
-                    { CompoundTypeConstructor.getInstance(4, CompoundTypeConstructor.LIST_ASSEMBLER_FACTORY),
-                      CompoundTypeConstructor.getInstance(4, CompoundTypeConstructor.MAP_ASSEMBLER_FACTORY)  },
+                    { ListConstructor.getInstance(1), MapConstructor.getInstance(1)  },
+                    { ListConstructor.getInstance(4), MapConstructor.getInstance(4)  },
                     {
                       ArrayTypeConstructor.getOneByteSizeTypeConstructor()
                     },

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/framing/FrameHandler.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/framing/FrameHandler.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/framing/FrameHandler.java
index 06bb3e8..baebf51 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/framing/FrameHandler.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/framing/FrameHandler.java
@@ -38,6 +38,7 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.ChannelFrameBody;
 import org.apache.qpid.server.protocol.v1_0.type.transport.ConnectionError;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Transfer;
+import org.apache.qpid.server.util.ServerScopedRuntimeException;
 
 public class FrameHandler implements ProtocolHandler
 {
@@ -206,6 +207,10 @@ public class FrameHandler implements ProtocolHandler
         }
         catch (RuntimeException e)
         {
+            if (e instanceof ServerScopedRuntimeException)
+            {
+                throw e;
+            }
             LOGGER.warn("Unexpected exception handling frame", e);
             // This exception is unexpected. The up layer should handle error condition gracefully
             _connectionHandler.handleError(this.createError(ConnectionError.CONNECTION_FORCED, e.toString()));

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/CompositeTypeField.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/CompositeTypeField.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/CompositeTypeField.java
deleted file mode 100644
index d23d6bd..0000000
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/CompositeTypeField.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.server.protocol.v1_0.type;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.FIELD)
-public @interface CompositeTypeField
-{
-    boolean mandatory() default false;
-}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/codec/AMQPDescribedTypeRegistry.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/codec/AMQPDescribedTypeRegistry.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/codec/AMQPDescribedTypeRegistry.java
index 0174b21..67ccb83 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/codec/AMQPDescribedTypeRegistry.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/codec/AMQPDescribedTypeRegistry.java
@@ -350,7 +350,7 @@ public class AMQPDescribedTypeRegistry implements DescribedTypeConstructorRegist
             }
             else if(value.getClass().isArray())
             {
-                if(RestrictedType.class.isAssignableFrom(value.getClass().getComponentType()))
+                if(RestrictedType.class.isAssignableFrom(value.getClass().getComponentType()) && Array.getLength(value) > 0)
                 {
                     RestrictedType[] restrictedTypes = (RestrictedType[]) value;
                     Object[] newVals = (Object[]) Array.newInstance(restrictedTypes[0].getValue().getClass(),

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AbstractSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AbstractSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AbstractSection.java
index a6142db..ce284f1 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AbstractSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AbstractSection.java
@@ -25,8 +25,8 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
 import org.apache.qpid.server.bytebuffer.QpidByteBufferUtils;
+import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.codec.ValueHandler;
 import org.apache.qpid.server.protocol.v1_0.messaging.SectionEncoder;
 import org.apache.qpid.server.protocol.v1_0.messaging.SectionEncoderImpl;
@@ -74,7 +74,7 @@ public abstract class AbstractSection<T, S extends NonEncodingRetainingSection<T
         _encodedSize = QpidByteBufferUtils.remaining(_encodedForm);
     }
 
-    protected abstract AbstractDescribedTypeConstructor<S> createNonEncodingRetainingSectionConstructor();
+    protected abstract DescribedTypeConstructor<S> createNonEncodingRetainingSectionConstructor();
 
     @Override
     public synchronized T getValue()
@@ -169,7 +169,7 @@ public abstract class AbstractSection<T, S extends NonEncodingRetainingSection<T
         }
     }
 
-    private S decode(AbstractDescribedTypeConstructor<S> constructor)
+    private S decode(DescribedTypeConstructor<S> constructor)
     {
         List<QpidByteBuffer> input = getEncodedForm();
         int[] originalPositions = new int[input.size()];

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Accepted.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Accepted.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Accepted.java
index abf8509..5f98113 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Accepted.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Accepted.java
@@ -23,9 +23,11 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
+import org.apache.qpid.server.protocol.v1_0.CompositeType;
 import org.apache.qpid.server.protocol.v1_0.type.Outcome;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 
+@CompositeType( symbolicDescriptor = "amqp:accepted:list", numericDescriptor = 0x0000000000000024L)
 public class Accepted implements Outcome
 {
     public static final Symbol ACCEPTED_SYMBOL = Symbol.valueOf("amqp:accepted:list");

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpSequenceSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpSequenceSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpSequenceSection.java
index a9aaaa9..559e868 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpSequenceSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpSequenceSection.java
@@ -24,7 +24,7 @@ package org.apache.qpid.server.protocol.v1_0.type.messaging;
 import java.util.List;
 
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
+import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.AmqpSequenceConstructor;
 
 public class AmqpSequenceSection extends AbstractSection<List, AmqpSequence>
@@ -51,7 +51,7 @@ public class AmqpSequenceSection extends AbstractSection<List, AmqpSequence>
     }
 
     @Override
-    protected AbstractDescribedTypeConstructor<AmqpSequence> createNonEncodingRetainingSectionConstructor()
+    protected DescribedTypeConstructor<AmqpSequence> createNonEncodingRetainingSectionConstructor()
     {
         return new AmqpSequenceConstructor();
     }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpValueSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpValueSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpValueSection.java
index 4c892d3..2b4ab35 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpValueSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpValueSection.java
@@ -24,7 +24,7 @@ package org.apache.qpid.server.protocol.v1_0.type.messaging;
 import java.util.List;
 
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
+import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.AmqpValueConstructor;
 
 public class AmqpValueSection extends AbstractSection<Object, AmqpValue>
@@ -51,7 +51,7 @@ public class AmqpValueSection extends AbstractSection<Object, AmqpValue>
     }
 
     @Override
-    protected AbstractDescribedTypeConstructor<AmqpValue> createNonEncodingRetainingSectionConstructor()
+    protected DescribedTypeConstructor<AmqpValue> createNonEncodingRetainingSectionConstructor()
     {
         return new AmqpValueConstructor();
     }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/ApplicationPropertiesSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/ApplicationPropertiesSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/ApplicationPropertiesSection.java
index 917dcb9..8dabc40 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/ApplicationPropertiesSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/ApplicationPropertiesSection.java
@@ -25,7 +25,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
+import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.ApplicationPropertiesConstructor;
 
 public class ApplicationPropertiesSection extends AbstractSection<Map<String,Object>, ApplicationProperties>
@@ -53,7 +53,7 @@ public class ApplicationPropertiesSection extends AbstractSection<Map<String,Obj
     }
 
     @Override
-    protected AbstractDescribedTypeConstructor<ApplicationProperties> createNonEncodingRetainingSectionConstructor()
+    protected DescribedTypeConstructor<ApplicationProperties> createNonEncodingRetainingSectionConstructor()
     {
         return  new ApplicationPropertiesConstructor();
     }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DataSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DataSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DataSection.java
index ccbd624..cf07dc6 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DataSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DataSection.java
@@ -24,7 +24,7 @@ package org.apache.qpid.server.protocol.v1_0.type.messaging;
 import java.util.List;
 
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
+import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.Binary;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.DataConstructor;
 
@@ -52,7 +52,7 @@ public class DataSection extends AbstractSection<Binary, Data>
     }
 
     @Override
-    protected AbstractDescribedTypeConstructor<Data> createNonEncodingRetainingSectionConstructor()
+    protected DescribedTypeConstructor<Data> createNonEncodingRetainingSectionConstructor()
     {
         return new DataConstructor();
     }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnClose.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnClose.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnClose.java
index f99ffe4..849d4da 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnClose.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnClose.java
@@ -24,8 +24,10 @@
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 
+import org.apache.qpid.server.protocol.v1_0.CompositeType;
 import org.apache.qpid.server.protocol.v1_0.type.LifetimePolicy;
 
+@CompositeType( symbolicDescriptor = "amqp:delete-on-close:list", numericDescriptor = 0x000000000000002bL)
 public class DeleteOnClose implements LifetimePolicy
 {
     @Override

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoLinks.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoLinks.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoLinks.java
index 8605d28..0d39f0b 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoLinks.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoLinks.java
@@ -24,8 +24,10 @@
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 
+import org.apache.qpid.server.protocol.v1_0.CompositeType;
 import org.apache.qpid.server.protocol.v1_0.type.LifetimePolicy;
 
+@CompositeType( symbolicDescriptor = "amqp:delete-on-no-links:list", numericDescriptor = 0x000000000000002cL)
 public class DeleteOnNoLinks implements LifetimePolicy
 {
     @Override

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoLinksOrMessages.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoLinksOrMessages.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoLinksOrMessages.java
index 9e186b9..fc6ad3a 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoLinksOrMessages.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoLinksOrMessages.java
@@ -24,8 +24,10 @@
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 
+import org.apache.qpid.server.protocol.v1_0.CompositeType;
 import org.apache.qpid.server.protocol.v1_0.type.LifetimePolicy;
 
+@CompositeType( symbolicDescriptor = "amqp:delete-on-no-links-or-messages:list", numericDescriptor = 0x000000000000002eL)
 public class DeleteOnNoLinksOrMessages implements LifetimePolicy
 {
     @Override

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoMessages.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoMessages.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoMessages.java
index 27362bf..63ab0a9 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoMessages.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeleteOnNoMessages.java
@@ -24,8 +24,10 @@
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 
+import org.apache.qpid.server.protocol.v1_0.CompositeType;
 import org.apache.qpid.server.protocol.v1_0.type.LifetimePolicy;
 
+@CompositeType( symbolicDescriptor = "amqp:delete-on-no-messages:list", numericDescriptor = 0x000000000000002dL)
 public class DeleteOnNoMessages implements LifetimePolicy
 {
     @Override

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeliveryAnnotationsSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeliveryAnnotationsSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeliveryAnnotationsSection.java
index 63a6007..7c2ad51 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeliveryAnnotationsSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeliveryAnnotationsSection.java
@@ -25,7 +25,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
+import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.DeliveryAnnotationsConstructor;
 
@@ -53,7 +53,7 @@ public class DeliveryAnnotationsSection extends AbstractSection<Map<Symbol,Objec
     }
 
     @Override
-    protected AbstractDescribedTypeConstructor<DeliveryAnnotations> createNonEncodingRetainingSectionConstructor()
+    protected DescribedTypeConstructor<DeliveryAnnotations> createNonEncodingRetainingSectionConstructor()
     {
         return new DeliveryAnnotationsConstructor();
     }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/FooterSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/FooterSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/FooterSection.java
index e692568..01671b3 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/FooterSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/FooterSection.java
@@ -25,7 +25,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
+import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.FooterConstructor;
 
@@ -53,7 +53,7 @@ public class FooterSection extends AbstractSection<Map<Symbol,Object>, Footer>
     }
 
     @Override
-    protected AbstractDescribedTypeConstructor<Footer> createNonEncodingRetainingSectionConstructor()
+    protected DescribedTypeConstructor<Footer> createNonEncodingRetainingSectionConstructor()
     {
         return new FooterConstructor();
     }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Header.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Header.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Header.java
index 93eaf5a..efa9134 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Header.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Header.java
@@ -24,26 +24,28 @@
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 
-import org.apache.qpid.server.protocol.v1_0.type.CompositeTypeField;
+import org.apache.qpid.server.protocol.v1_0.CompositeType;
+import org.apache.qpid.server.protocol.v1_0.CompositeTypeField;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedByte;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
 
+@CompositeType( symbolicDescriptor = "amqp:header:list", numericDescriptor = 0x0000000000000070L)
 public class Header implements NonEncodingRetainingSection<Header>
 {
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 0)
     private Boolean _durable;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 1)
     private UnsignedByte _priority;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 2)
     private UnsignedInteger _ttl;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 3)
     private Boolean _firstAcquirer;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 4)
     private UnsignedInteger _deliveryCount;
 
     public Boolean getDurable()

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/HeaderSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/HeaderSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/HeaderSection.java
index 823428e..cac9734 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/HeaderSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/HeaderSection.java
@@ -24,7 +24,7 @@ package org.apache.qpid.server.protocol.v1_0.type.messaging;
 import java.util.List;
 
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
+import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.HeaderConstructor;
 
 public class HeaderSection extends AbstractSection<Header, Header>
@@ -51,7 +51,7 @@ public class HeaderSection extends AbstractSection<Header, Header>
     }
 
     @Override
-    protected AbstractDescribedTypeConstructor<Header> createNonEncodingRetainingSectionConstructor()
+    protected DescribedTypeConstructor<Header> createNonEncodingRetainingSectionConstructor()
     {
         return new HeaderConstructor();
     }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/MessageAnnotationsSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/MessageAnnotationsSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/MessageAnnotationsSection.java
index 8f1ae3f..a90ce15 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/MessageAnnotationsSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/MessageAnnotationsSection.java
@@ -25,7 +25,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
+import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.MessageAnnotationsConstructor;
 
@@ -53,7 +53,7 @@ public class MessageAnnotationsSection extends AbstractSection<Map<Symbol,Object
     }
 
     @Override
-    protected AbstractDescribedTypeConstructor<MessageAnnotations> createNonEncodingRetainingSectionConstructor()
+    protected DescribedTypeConstructor<MessageAnnotations> createNonEncodingRetainingSectionConstructor()
     {
         return new MessageAnnotationsConstructor();
     }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Modified.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Modified.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Modified.java
index 41d2fa7..dadaf92 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Modified.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Modified.java
@@ -26,22 +26,24 @@ package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 import java.util.Map;
 
-import org.apache.qpid.server.protocol.v1_0.type.CompositeTypeField;
+import org.apache.qpid.server.protocol.v1_0.CompositeType;
+import org.apache.qpid.server.protocol.v1_0.CompositeTypeField;
 import org.apache.qpid.server.protocol.v1_0.type.Outcome;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 
+@CompositeType( symbolicDescriptor = "amqp:modified:list", numericDescriptor = 0x0000000000000027L)
 public class Modified implements Outcome
 {
     public static final Symbol MODIFIED_SYMBOL = Symbol.valueOf("amqp:modified:list");
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 0)
     private Boolean _deliveryFailed;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 1)
     private Boolean _undeliverableHere;
 
-    @CompositeTypeField
-    private Map _messageAnnotations;
+    @CompositeTypeField(index = 2)
+    private Map<Symbol, Object> _messageAnnotations;
 
     public Boolean getDeliveryFailed()
     {
@@ -63,12 +65,12 @@ public class Modified implements Outcome
         _undeliverableHere = undeliverableHere;
     }
 
-    public Map getMessageAnnotations()
+    public Map<Symbol, Object> getMessageAnnotations()
     {
         return _messageAnnotations;
     }
 
-    public void setMessageAnnotations(Map messageAnnotations)
+    public void setMessageAnnotations(Map<Symbol, Object> messageAnnotations)
     {
         _messageAnnotations = messageAnnotations;
     }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Properties.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Properties.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Properties.java
index 2b5ae60..9c10cee 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Properties.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Properties.java
@@ -24,49 +24,51 @@ package org.apache.qpid.server.protocol.v1_0.type.messaging;
 import java.util.Date;
 
 import org.apache.qpid.server.protocol.v1_0.type.Binary;
-import org.apache.qpid.server.protocol.v1_0.type.CompositeTypeField;
+import org.apache.qpid.server.protocol.v1_0.CompositeType;
+import org.apache.qpid.server.protocol.v1_0.CompositeTypeField;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
 
+@CompositeType( symbolicDescriptor = "amqp:properties:list", numericDescriptor = 0x0000000000000073L)
 public class Properties implements NonEncodingRetainingSection<Properties>
 {
-    @CompositeTypeField
+    @CompositeTypeField(index = 0)
     private Object _messageId;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 1)
     private Binary _userId;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 2)
     private String _to;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 3)
     private String _subject;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 4)
     private String _replyTo;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 5)
     private Object _correlationId;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 6)
     private Symbol _contentType;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 7)
     private Symbol _contentEncoding;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 8)
     private Date _absoluteExpiryTime;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 9)
     private Date _creationTime;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 10)
     private String _groupId;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 11)
     private UnsignedInteger _groupSequence;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 12)
     private String _replyToGroupId;
 
     public Object getMessageId()

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/PropertiesSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/PropertiesSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/PropertiesSection.java
index 87069ce..4c2b36b 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/PropertiesSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/PropertiesSection.java
@@ -24,7 +24,7 @@ package org.apache.qpid.server.protocol.v1_0.type.messaging;
 import java.util.List;
 
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
+import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.PropertiesConstructor;
 
 public class PropertiesSection extends AbstractSection<Properties, Properties>
@@ -51,7 +51,7 @@ public class PropertiesSection extends AbstractSection<Properties, Properties>
     }
 
     @Override
-    protected AbstractDescribedTypeConstructor<Properties> createNonEncodingRetainingSectionConstructor()
+    protected DescribedTypeConstructor<Properties> createNonEncodingRetainingSectionConstructor()
     {
         return new PropertiesConstructor();
     }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Received.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Received.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Received.java
index 86d9554..43de13c 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Received.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Received.java
@@ -24,17 +24,19 @@
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 
-import org.apache.qpid.server.protocol.v1_0.type.CompositeTypeField;
+import org.apache.qpid.server.protocol.v1_0.CompositeType;
+import org.apache.qpid.server.protocol.v1_0.CompositeTypeField;
 import org.apache.qpid.server.protocol.v1_0.type.DeliveryState;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
 
+@CompositeType( symbolicDescriptor = "amqp:received:list", numericDescriptor = 0x0000000000000023L)
 public class Received implements DeliveryState
 {
-    @CompositeTypeField(mandatory = true)
+    @CompositeTypeField(index = 0, mandatory = true)
     private UnsignedInteger _sectionNumber;
 
-    @CompositeTypeField(mandatory = true)
+    @CompositeTypeField(index = 1, mandatory = true)
     private UnsignedLong _sectionOffset;
 
     public UnsignedInteger getSectionNumber()

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Rejected.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Rejected.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Rejected.java
index e877a56..a715cc4 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Rejected.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Rejected.java
@@ -24,16 +24,18 @@
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 
-import org.apache.qpid.server.protocol.v1_0.type.CompositeTypeField;
+import org.apache.qpid.server.protocol.v1_0.CompositeType;
+import org.apache.qpid.server.protocol.v1_0.CompositeTypeField;
 import org.apache.qpid.server.protocol.v1_0.type.Outcome;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 
+@CompositeType( symbolicDescriptor = "amqp:rejected:list", numericDescriptor = 0x0000000000000025L)
 public class Rejected implements Outcome
 {
     public static final Symbol REJECTED_SYMBOL = Symbol.valueOf("amqp:rejected:list");
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 0)
     private Error _error;
 
     public Error getError()

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Released.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Released.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Released.java
index 945c7ce..8e67ca8 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Released.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Released.java
@@ -24,9 +24,11 @@
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 
+import org.apache.qpid.server.protocol.v1_0.CompositeType;
 import org.apache.qpid.server.protocol.v1_0.type.Outcome;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 
+@CompositeType( symbolicDescriptor = "amqp:released:list", numericDescriptor = 0x0000000000000026L)
 public class Released implements Outcome
 {
     public static final Symbol RELEASED_SYMBOL = Symbol.valueOf("amqp:released:list");

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Source.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Source.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Source.java
index 348f885..a8537db 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Source.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Source.java
@@ -24,48 +24,51 @@
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 
-
 import java.util.Arrays;
 import java.util.Map;
 
+import org.apache.qpid.server.protocol.v1_0.CompositeType;
+import org.apache.qpid.server.protocol.v1_0.CompositeTypeField;
+import org.apache.qpid.server.protocol.v1_0.type.BaseSource;
+import org.apache.qpid.server.protocol.v1_0.type.DistributionMode;
+import org.apache.qpid.server.protocol.v1_0.type.Outcome;
+import org.apache.qpid.server.protocol.v1_0.type.Symbol;
+import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
 
-import org.apache.qpid.server.protocol.v1_0.type.*;
-
+@CompositeType( symbolicDescriptor = "amqp:source:list", numericDescriptor = 0x0000000000000028L)
 public class Source implements BaseSource
-  {
-
-
-    @CompositeTypeField
+{
+    @CompositeTypeField(index = 0)
     private String _address;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 1)
     private TerminusDurability _durable;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 2)
     private TerminusExpiryPolicy _expiryPolicy;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 3)
     private UnsignedInteger _timeout;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 4)
     private Boolean _dynamic;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 5, deserializationConverter = "org.apache.qpid.server.protocol.v1_0.DeserializationFactories.convertToNodeProperties")
     private Map<Symbol, Object> _dynamicNodeProperties;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 6, deserializationConverter = "org.apache.qpid.server.protocol.v1_0.DeserializationFactories.convertToDistributionMode")
     private DistributionMode _distributionMode;
 
-    @CompositeTypeField
-    private Map _filter;
+    @CompositeTypeField(index = 7)
+    private Map<Symbol, Filter> _filter;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 8)
     private Outcome _defaultOutcome;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 9)
     private Symbol[] _outcomes;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 10)
     private Symbol[] _capabilities;
 
     public String getAddress()
@@ -138,12 +141,12 @@ public class Source implements BaseSource
         _distributionMode = distributionMode;
     }
 
-    public Map getFilter()
+    public Map<Symbol, Filter> getFilter()
     {
         return _filter;
     }
 
-    public void setFilter(Map filter)
+    public void setFilter(Map<Symbol, Filter> filter)
     {
         _filter = filter;
     }
@@ -385,4 +388,4 @@ public class Source implements BaseSource
         result = 31 * result + Arrays.hashCode(_capabilities);
         return result;
     }
-  }
+}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/StdDistMode.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/StdDistMode.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/StdDistMode.java
index 5b06eb0..3f0630e 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/StdDistMode.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/StdDistMode.java
@@ -24,24 +24,17 @@
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 
+import org.apache.qpid.server.protocol.v1_0.type.DistributionMode;
+import org.apache.qpid.server.protocol.v1_0.type.RestrictedType;
+import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 
-import org.apache.qpid.server.protocol.v1_0.type.*;
-
-public class StdDistMode
-  implements DistributionMode, RestrictedType<Symbol>
-  
-  {
-
-
-
+public class StdDistMode implements DistributionMode, RestrictedType<Symbol>
+{
     private final Symbol _val;
 
-    
     public static final StdDistMode MOVE = new StdDistMode(Symbol.valueOf("move"));
-    
-    public static final StdDistMode COPY = new StdDistMode(Symbol.valueOf("copy"));
-    
 
+    public static final StdDistMode COPY = new StdDistMode(Symbol.valueOf("copy"));
 
     private StdDistMode(Symbol val)
     {
@@ -57,17 +50,16 @@ public class StdDistMode
     @Override
     public String toString()
     {
-        
-        if(this == MOVE)
+        if (this == MOVE)
         {
             return "move";
         }
-        
-        if(this == COPY)
+
+        if (this == COPY)
         {
             return "copy";
         }
-        
+
         else
         {
             return String.valueOf(_val);
@@ -78,20 +70,16 @@ public class StdDistMode
     {
         Symbol val = (Symbol) obj;
 
-        if(MOVE._val.equals(val))
+        if (MOVE._val.equals(val))
         {
             return MOVE;
         }
-    
-        if(COPY._val.equals(val))
+
+        if (COPY._val.equals(val))
         {
             return COPY;
         }
-    
-        // TODO ERROR
+
         return null;
     }
-
-
-
-  }
+}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Target.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Target.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Target.java
index d0a564b..0f81898 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Target.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/Target.java
@@ -24,37 +24,37 @@
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 
-
 import java.util.Arrays;
 import java.util.Map;
 
+import org.apache.qpid.server.protocol.v1_0.CompositeType;
+import org.apache.qpid.server.protocol.v1_0.CompositeTypeField;
+import org.apache.qpid.server.protocol.v1_0.type.BaseTarget;
+import org.apache.qpid.server.protocol.v1_0.type.Symbol;
+import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
 
-import org.apache.qpid.server.protocol.v1_0.type.*;
-
-public class Target
-        implements BaseTarget
-  {
-
-
-    @CompositeTypeField
+@CompositeType( symbolicDescriptor = "amqp:target:list", numericDescriptor = 0x0000000000000029L)
+public class Target implements BaseTarget
+{
+    @CompositeTypeField(index = 0)
     private String _address;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 1)
     private TerminusDurability _durable;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 2)
     private TerminusExpiryPolicy _expiryPolicy;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 3)
     private UnsignedInteger _timeout;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 4)
     private Boolean _dynamic;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 5, deserializationConverter = "org.apache.qpid.server.protocol.v1_0.DeserializationFactories.convertToNodeProperties")
     private Map<Symbol, Object> _dynamicNodeProperties;
 
-    @CompositeTypeField
+    @CompositeTypeField(index = 6)
     private Symbol[] _capabilities;
 
     public String getAddress()
@@ -163,8 +163,8 @@ public class Target
             return false;
         }
         if (_dynamicNodeProperties != null
-              ? !_dynamicNodeProperties.equals(target._dynamicNodeProperties)
-              : target._dynamicNodeProperties != null)
+                ? !_dynamicNodeProperties.equals(target._dynamicNodeProperties)
+                : target._dynamicNodeProperties != null)
         {
             return false;
         }
@@ -191,63 +191,63 @@ public class Target
         StringBuilder builder = new StringBuilder("Target{");
         final int origLength = builder.length();
 
-        if(_address != null)
+        if (_address != null)
         {
-            if(builder.length() != origLength)
+            if (builder.length() != origLength)
             {
                 builder.append(',');
             }
             builder.append("address=").append(_address);
         }
 
-        if(_durable != null)
+        if (_durable != null)
         {
-            if(builder.length() != origLength)
+            if (builder.length() != origLength)
             {
                 builder.append(',');
             }
             builder.append("durable=").append(_durable);
         }
 
-        if(_expiryPolicy != null)
+        if (_expiryPolicy != null)
         {
-            if(builder.length() != origLength)
+            if (builder.length() != origLength)
             {
                 builder.append(',');
             }
             builder.append("expiryPolicy=").append(_expiryPolicy);
         }
 
-        if(_timeout != null)
+        if (_timeout != null)
         {
-            if(builder.length() != origLength)
+            if (builder.length() != origLength)
             {
                 builder.append(',');
             }
             builder.append("timeout=").append(_timeout);
         }
 
-        if(_dynamic != null)
+        if (_dynamic != null)
         {
-            if(builder.length() != origLength)
+            if (builder.length() != origLength)
             {
                 builder.append(',');
             }
             builder.append("dynamic=").append(_dynamic);
         }
 
-        if(_dynamicNodeProperties != null)
+        if (_dynamicNodeProperties != null)
         {
-            if(builder.length() != origLength)
+            if (builder.length() != origLength)
             {
                 builder.append(',');
             }
             builder.append("dynamicNodeProperties=").append(_dynamicNodeProperties);
         }
 
-        if(_capabilities != null)
+        if (_capabilities != null)
         {
-            if(builder.length() != origLength)
+            if (builder.length() != origLength)
             {
                 builder.append(',');
             }
@@ -257,6 +257,4 @@ public class Target
         builder.append('}');
         return builder.toString();
     }
-
-
-  }
+}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusDurability.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusDurability.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusDurability.java
index 295d1f1..5b03e06 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusDurability.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusDurability.java
@@ -24,26 +24,18 @@
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 
+import org.apache.qpid.server.protocol.v1_0.type.RestrictedType;
+import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
 
-import org.apache.qpid.server.protocol.v1_0.type.*;
-
-public class TerminusDurability
-  implements RestrictedType<UnsignedInteger>
-  
-  {
-
-
-
+public class TerminusDurability implements RestrictedType<UnsignedInteger>
+{
     private final UnsignedInteger _val;
 
-    
     public static final TerminusDurability NONE = new TerminusDurability(UnsignedInteger.valueOf(0));
-    
+
     public static final TerminusDurability CONFIGURATION = new TerminusDurability(UnsignedInteger.valueOf(1));
-    
-    public static final TerminusDurability UNSETTLED_STATE = new TerminusDurability(UnsignedInteger.valueOf(2));
-    
 
+    public static final TerminusDurability UNSETTLED_STATE = new TerminusDurability(UnsignedInteger.valueOf(2));
 
     private TerminusDurability(UnsignedInteger val)
     {
@@ -59,22 +51,21 @@ public class TerminusDurability
     @Override
     public String toString()
     {
-        
-        if(this == NONE)
+        if (this == NONE)
         {
             return "none";
         }
-        
-        if(this == CONFIGURATION)
+
+        if (this == CONFIGURATION)
         {
             return "configuration";
         }
-        
-        if(this == UNSETTLED_STATE)
+
+        if (this == UNSETTLED_STATE)
         {
             return "unsettled-state";
         }
-        
+
         else
         {
             return String.valueOf(_val);
@@ -85,21 +76,21 @@ public class TerminusDurability
     {
         UnsignedInteger val = (UnsignedInteger) obj;
 
-        if(NONE._val.equals(val))
+        if (NONE._val.equals(val))
         {
             return NONE;
         }
-    
-        if(CONFIGURATION._val.equals(val))
+
+        if (CONFIGURATION._val.equals(val))
         {
             return CONFIGURATION;
         }
-    
-        if(UNSETTLED_STATE._val.equals(val))
+
+        if (UNSETTLED_STATE._val.equals(val))
         {
             return UNSETTLED_STATE;
         }
-    
+
         // TODO ERROR
         return null;
     }
@@ -110,5 +101,4 @@ public class TerminusDurability
         int durabilityBValue = durabilityB != null ? durabilityB._val.intValue() : 0;
         return TerminusDurability.valueOf(new UnsignedInteger(Math.min(durabilitAValue, durabilityBValue)));
     }
-
-  }
+}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusExpiryPolicy.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusExpiryPolicy.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusExpiryPolicy.java
index 3d7d850..735eac8 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusExpiryPolicy.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusExpiryPolicy.java
@@ -24,28 +24,21 @@
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 
+import org.apache.qpid.server.protocol.v1_0.type.RestrictedType;
+import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 
-import org.apache.qpid.server.protocol.v1_0.type.*;
-
-public class TerminusExpiryPolicy
-  implements RestrictedType<Symbol>
-  
-  {
-
-
-
+public class TerminusExpiryPolicy implements RestrictedType<Symbol>
+{
     private final Symbol _val;
 
-    
     public static final TerminusExpiryPolicy LINK_DETACH = new TerminusExpiryPolicy(Symbol.valueOf("link-detach"));
-    
+
     public static final TerminusExpiryPolicy SESSION_END = new TerminusExpiryPolicy(Symbol.valueOf("session-end"));
-    
-    public static final TerminusExpiryPolicy CONNECTION_CLOSE = new TerminusExpiryPolicy(Symbol.valueOf("connection-close"));
-    
-    public static final TerminusExpiryPolicy NEVER = new TerminusExpiryPolicy(Symbol.valueOf("never"));
-    
 
+    public static final TerminusExpiryPolicy CONNECTION_CLOSE =
+            new TerminusExpiryPolicy(Symbol.valueOf("connection-close"));
+
+    public static final TerminusExpiryPolicy NEVER = new TerminusExpiryPolicy(Symbol.valueOf("never"));
 
     private TerminusExpiryPolicy(Symbol val)
     {
@@ -61,27 +54,27 @@ public class TerminusExpiryPolicy
     @Override
     public String toString()
     {
-        
-        if(this == LINK_DETACH)
+
+        if (this == LINK_DETACH)
         {
             return "link-detach";
         }
-        
-        if(this == SESSION_END)
+
+        if (this == SESSION_END)
         {
             return "session-end";
         }
-        
-        if(this == CONNECTION_CLOSE)
+
+        if (this == CONNECTION_CLOSE)
         {
             return "connection-close";
         }
-        
-        if(this == NEVER)
+
+        if (this == NEVER)
         {
             return "never";
         }
-        
+
         else
         {
             return String.valueOf(_val);
@@ -92,30 +85,27 @@ public class TerminusExpiryPolicy
     {
         Symbol val = (Symbol) obj;
 
-        if(LINK_DETACH._val.equals(val))
+        if (LINK_DETACH._val.equals(val))
         {
             return LINK_DETACH;
         }
-    
-        if(SESSION_END._val.equals(val))
+
+        if (SESSION_END._val.equals(val))
         {
             return SESSION_END;
         }
-    
-        if(CONNECTION_CLOSE._val.equals(val))
+
+        if (CONNECTION_CLOSE._val.equals(val))
         {
             return CONNECTION_CLOSE;
         }
-    
-        if(NEVER._val.equals(val))
+
+        if (NEVER._val.equals(val))
         {
             return NEVER;
         }
-    
+
         // TODO ERROR
         return null;
     }
-
-
-
-  }
+}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AcceptedConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AcceptedConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AcceptedConstructor.java
deleted file mode 100644
index f5f83e8..0000000
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AcceptedConstructor.java
+++ /dev/null
@@ -1,72 +0,0 @@
-
-/*
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements.  See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership.  The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License.  You may obtain a copy of the License at
-*
-*   http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied.  See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*
-*/
-
-
-package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
-
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
-import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry;
-import org.apache.qpid.server.protocol.v1_0.type.*;
-import org.apache.qpid.server.protocol.v1_0.type.messaging.*;
-
-
-import java.util.List;
-
-public class AcceptedConstructor extends AbstractDescribedTypeConstructor<Accepted>
-{
-    private static final Object[] DESCRIPTORS =
-    {
-            Accepted.ACCEPTED_SYMBOL,UnsignedLong.valueOf(0x0000000000000024L),
-    };
-
-    private static final AcceptedConstructor INSTANCE = new AcceptedConstructor();
-
-    public static void register(DescribedTypeConstructorRegistry registry)
-    {
-        for(Object descriptor : DESCRIPTORS)
-        {
-            registry.register(descriptor, INSTANCE);
-        }
-    }
-
-    @Override
-    public Accepted construct(Object underlying)
-    {
-        if(underlying instanceof List)
-        {
-            List list = (List) underlying;
-            Accepted obj = new Accepted();
-            int position = 0;
-            final int size = list.size();
-
-
-            return obj;
-        }
-        else
-        {
-            // TODO - error
-            return null;
-        }
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnCloseConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnCloseConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnCloseConstructor.java
deleted file mode 100644
index 2f33bc1..0000000
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnCloseConstructor.java
+++ /dev/null
@@ -1,72 +0,0 @@
-
-/*
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements.  See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership.  The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License.  You may obtain a copy of the License at
-*
-*   http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied.  See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*
-*/
-
-
-package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
-
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
-import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry;
-import org.apache.qpid.server.protocol.v1_0.type.*;
-import org.apache.qpid.server.protocol.v1_0.type.messaging.*;
-
-
-import java.util.List;
-
-public class DeleteOnCloseConstructor extends AbstractDescribedTypeConstructor<DeleteOnClose>
-{
-    private static final Object[] DESCRIPTORS =
-    {
-            Symbol.valueOf("amqp:delete-on-close:list"),UnsignedLong.valueOf(0x000000000000002bL),
-    };
-
-    private static final DeleteOnCloseConstructor INSTANCE = new DeleteOnCloseConstructor();
-
-    public static void register(DescribedTypeConstructorRegistry registry)
-    {
-        for(Object descriptor : DESCRIPTORS)
-        {
-            registry.register(descriptor, INSTANCE);
-        }
-    }
-
-    @Override
-    public DeleteOnClose construct(Object underlying)
-    {
-        if(underlying instanceof List)
-        {
-            List list = (List) underlying;
-            DeleteOnClose obj = new DeleteOnClose();
-            int position = 0;
-            final int size = list.size();
-
-
-            return obj;
-        }
-        else
-        {
-            // TODO - error
-            return null;
-        }
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoLinksConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoLinksConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoLinksConstructor.java
deleted file mode 100644
index 2ac88ce..0000000
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoLinksConstructor.java
+++ /dev/null
@@ -1,72 +0,0 @@
-
-/*
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements.  See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership.  The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License.  You may obtain a copy of the License at
-*
-*   http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied.  See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*
-*/
-
-
-package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
-
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
-import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry;
-import org.apache.qpid.server.protocol.v1_0.type.*;
-import org.apache.qpid.server.protocol.v1_0.type.messaging.*;
-
-
-import java.util.List;
-
-public class DeleteOnNoLinksConstructor extends AbstractDescribedTypeConstructor<DeleteOnNoLinks>
-{
-    private static final Object[] DESCRIPTORS =
-    {
-            Symbol.valueOf("amqp:delete-on-no-links:list"),UnsignedLong.valueOf(0x000000000000002cL),
-    };
-
-    private static final DeleteOnNoLinksConstructor INSTANCE = new DeleteOnNoLinksConstructor();
-
-    public static void register(DescribedTypeConstructorRegistry registry)
-    {
-        for(Object descriptor : DESCRIPTORS)
-        {
-            registry.register(descriptor, INSTANCE);
-        }
-    }
-
-    @Override
-    public DeleteOnNoLinks construct(Object underlying)
-    {
-        if(underlying instanceof List)
-        {
-            List list = (List) underlying;
-            DeleteOnNoLinks obj = new DeleteOnNoLinks();
-            int position = 0;
-            final int size = list.size();
-
-
-            return obj;
-        }
-        else
-        {
-            // TODO - error
-            return null;
-        }
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoLinksOrMessagesConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoLinksOrMessagesConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoLinksOrMessagesConstructor.java
deleted file mode 100644
index c3cb84f..0000000
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoLinksOrMessagesConstructor.java
+++ /dev/null
@@ -1,72 +0,0 @@
-
-/*
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements.  See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership.  The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License.  You may obtain a copy of the License at
-*
-*   http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied.  See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*
-*/
-
-
-package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
-
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
-import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry;
-import org.apache.qpid.server.protocol.v1_0.type.*;
-import org.apache.qpid.server.protocol.v1_0.type.messaging.*;
-
-
-import java.util.List;
-
-public class DeleteOnNoLinksOrMessagesConstructor extends AbstractDescribedTypeConstructor<DeleteOnNoLinksOrMessages>
-{
-    private static final Object[] DESCRIPTORS =
-    {
-            Symbol.valueOf("amqp:delete-on-no-links-or-messages:list"),UnsignedLong.valueOf(0x000000000000002eL),
-    };
-
-    private static final DeleteOnNoLinksOrMessagesConstructor INSTANCE = new DeleteOnNoLinksOrMessagesConstructor();
-
-    public static void register(DescribedTypeConstructorRegistry registry)
-    {
-        for(Object descriptor : DESCRIPTORS)
-        {
-            registry.register(descriptor, INSTANCE);
-        }
-    }
-
-    @Override
-    public DeleteOnNoLinksOrMessages construct(Object underlying)
-    {
-        if(underlying instanceof List)
-        {
-            List list = (List) underlying;
-            DeleteOnNoLinksOrMessages obj = new DeleteOnNoLinksOrMessages();
-            int position = 0;
-            final int size = list.size();
-
-
-            return obj;
-        }
-        else
-        {
-            // TODO - error
-            return null;
-        }
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoMessagesConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoMessagesConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoMessagesConstructor.java
deleted file mode 100644
index f4aa8b6..0000000
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoMessagesConstructor.java
+++ /dev/null
@@ -1,72 +0,0 @@
-
-/*
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements.  See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership.  The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License.  You may obtain a copy of the License at
-*
-*   http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied.  See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*
-*/
-
-
-package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
-
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
-import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry;
-import org.apache.qpid.server.protocol.v1_0.type.*;
-import org.apache.qpid.server.protocol.v1_0.type.messaging.*;
-
-
-import java.util.List;
-
-public class DeleteOnNoMessagesConstructor extends AbstractDescribedTypeConstructor<DeleteOnNoMessages>
-{
-    private static final Object[] DESCRIPTORS =
-    {
-            Symbol.valueOf("amqp:delete-on-no-messages:list"),UnsignedLong.valueOf(0x000000000000002dL),
-    };
-
-    private static final DeleteOnNoMessagesConstructor INSTANCE = new DeleteOnNoMessagesConstructor();
-
-    public static void register(DescribedTypeConstructorRegistry registry)
-    {
-        for(Object descriptor : DESCRIPTORS)
-        {
-            registry.register(descriptor, INSTANCE);
-        }
-    }
-
-    @Override
-    public DeleteOnNoMessages construct(Object underlying)
-    {
-        if(underlying instanceof List)
-        {
-            List list = (List) underlying;
-            DeleteOnNoMessages obj = new DeleteOnNoMessages();
-            int position = 0;
-            final int size = list.size();
-
-
-            return obj;
-        }
-        else
-        {
-            // TODO - error
-            return null;
-        }
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/HeaderConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/HeaderConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/HeaderConstructor.java
deleted file mode 100644
index cd16a69..0000000
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/HeaderConstructor.java
+++ /dev/null
@@ -1,209 +0,0 @@
-
-/*
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements.  See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership.  The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License.  You may obtain a copy of the License at
-*
-*   http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied.  See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*
-*/
-
-
-package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
-
-import java.util.List;
-
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
-import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry;
-import org.apache.qpid.server.protocol.v1_0.type.Symbol;
-import org.apache.qpid.server.protocol.v1_0.type.UnsignedByte;
-import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
-import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
-import org.apache.qpid.server.protocol.v1_0.type.messaging.Header;
-
-public class HeaderConstructor extends AbstractDescribedTypeConstructor<Header>
-{
-    private static final Object[] DESCRIPTORS =
-    {
-            Symbol.valueOf("amqp:header:list"),UnsignedLong.valueOf(0x0000000000000070L),
-    };
-
-    private static final HeaderConstructor INSTANCE = new HeaderConstructor();
-
-    public static void register(DescribedTypeConstructorRegistry registry)
-    {
-        for(Object descriptor : DESCRIPTORS)
-        {
-            registry.register(descriptor, INSTANCE);
-        }
-    }
-
-    @Override
-    public Header construct(Object underlying)
-    {
-        if(underlying instanceof List)
-        {
-            List list = (List) underlying;
-            Header obj = new Header();
-            int position = 0;
-            final int size = list.size();
-
-            if(position < size)
-            {
-                Object val = list.get(position);
-                position++;
-
-                if(val != null)
-                {
-
-                    try
-                    {
-                        obj.setDurable( (Boolean) val );
-                    }
-                    catch(ClassCastException e)
-                    {
-
-                        // TODO Error
-                    }
-
-                }
-
-
-            }
-            else
-            {
-                return obj;
-            }
-
-            if(position < size)
-            {
-                Object val = list.get(position);
-                position++;
-
-                if(val != null)
-                {
-
-                    try
-                    {
-                        obj.setPriority( (UnsignedByte) val );
-                    }
-                    catch(ClassCastException e)
-                    {
-
-                        // TODO Error
-                    }
-
-                }
-
-
-            }
-            else
-            {
-                return obj;
-            }
-
-            if(position < size)
-            {
-                Object val = list.get(position);
-                position++;
-
-                if(val != null)
-                {
-
-                    try
-                    {
-                        obj.setTtl( (UnsignedInteger) val );
-                    }
-                    catch(ClassCastException e)
-                    {
-
-                        // TODO Error
-                    }
-
-                }
-
-
-            }
-            else
-            {
-                return obj;
-            }
-
-            if(position < size)
-            {
-                Object val = list.get(position);
-                position++;
-
-                if(val != null)
-                {
-
-                    try
-                    {
-                        obj.setFirstAcquirer( (Boolean) val );
-                    }
-                    catch(ClassCastException e)
-                    {
-
-                        // TODO Error
-                    }
-
-                }
-
-
-            }
-            else
-            {
-                return obj;
-            }
-
-            if(position < size)
-            {
-                Object val = list.get(position);
-                position++;
-
-                if(val != null)
-                {
-
-                    try
-                    {
-                        obj.setDeliveryCount( (UnsignedInteger) val );
-                    }
-                    catch(ClassCastException e)
-                    {
-
-                        // TODO Error
-                    }
-
-                }
-
-
-            }
-            else
-            {
-                return obj;
-            }
-
-
-            return obj;
-        }
-        else
-        {
-            // TODO - error
-            return null;
-        }
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6a267175/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ModifiedConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ModifiedConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ModifiedConstructor.java
deleted file mode 100644
index 8b971ab..0000000
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ModifiedConstructor.java
+++ /dev/null
@@ -1,153 +0,0 @@
-
-/*
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements.  See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership.  The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License.  You may obtain a copy of the License at
-*
-*   http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied.  See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*
-*/
-
-
-package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
-
-import java.util.List;
-import java.util.Map;
-
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
-import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry;
-import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
-import org.apache.qpid.server.protocol.v1_0.type.messaging.Modified;
-
-public class ModifiedConstructor extends AbstractDescribedTypeConstructor<Modified>
-{
-    private static final Object[] DESCRIPTORS =
-    {
-            Modified.MODIFIED_SYMBOL,UnsignedLong.valueOf(0x0000000000000027L),
-    };
-
-    private static final ModifiedConstructor INSTANCE = new ModifiedConstructor();
-
-    public static void register(DescribedTypeConstructorRegistry registry)
-    {
-        for(Object descriptor : DESCRIPTORS)
-        {
-            registry.register(descriptor, INSTANCE);
-        }
-    }
-
-    @Override
-    public Modified construct(Object underlying)
-    {
-        if(underlying instanceof List)
-        {
-            List list = (List) underlying;
-            Modified obj = new Modified();
-            int position = 0;
-            final int size = list.size();
-
-            if(position < size)
-            {
-                Object val = list.get(position);
-                position++;
-
-                if(val != null)
-                {
-
-                    try
-                    {
-                        obj.setDeliveryFailed( (Boolean) val );
-                    }
-                    catch(ClassCastException e)
-                    {
-
-                        // TODO Error
-                    }
-
-                }
-
-
-            }
-            else
-            {
-                return obj;
-            }
-
-            if(position < size)
-            {
-                Object val = list.get(position);
-                position++;
-
-                if(val != null)
-                {
-
-                    try
-                    {
-                        obj.setUndeliverableHere( (Boolean) val );
-                    }
-                    catch(ClassCastException e)
-                    {
-
-                        // TODO Error
-                    }
-
-                }
-
-
-            }
-            else
-            {
-                return obj;
-            }
-
-            if(position < size)
-            {
-                Object val = list.get(position);
-                position++;
-
-                if(val != null)
-                {
-
-                    try
-                    {
-                        obj.setMessageAnnotations( (Map) val );
-                    }
-                    catch(ClassCastException e)
-                    {
-
-                        // TODO Error
-                    }
-
-                }
-
-
-            }
-            else
-            {
-                return obj;
-            }
-
-
-            return obj;
-        }
-        else
-        {
-            // TODO - error
-            return null;
-        }
-    }
-
-
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org