You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2013/09/13 14:52:54 UTC

svn commit: r1522905 [2/3] - in /qpid/jms/trunk: ./ src/main/java/org/apache/qpid/jms/engine/ src/main/java/org/apache/qpid/jms/impl/ src/test/java/org/apache/qpid/jms/ src/test/java/org/apache/qpid/jms/impl/ src/test/java/org/apache/qpid/jms/test/test...

Added: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/DescriptorMatcher.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/DescriptorMatcher.java?rev=1522905&view=auto
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/DescriptorMatcher.java (added)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/DescriptorMatcher.java Fri Sep 13 12:52:52 2013
@@ -0,0 +1,53 @@
+/*
+ * 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.jms.test.testpeer;
+
+import org.apache.qpid.proton.amqp.DescribedType;
+import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
+import org.hamcrest.Description;
+import org.hamcrest.TypeSafeMatcher;
+
+public class DescriptorMatcher extends TypeSafeMatcher<DescribedType>
+{
+    private final UnsignedLong _expectedDescriptorCode;
+    private final Symbol _expectedDescriptorSymbol;
+
+    public DescriptorMatcher(UnsignedLong expectedDescriptorCode, Symbol expectedDescriptorSymbol)
+    {
+        _expectedDescriptorCode = expectedDescriptorCode;
+        _expectedDescriptorSymbol = expectedDescriptorSymbol;
+    }
+
+    @Override
+    public void describeTo(Description description)
+    {
+        description.appendText("A described type with descriptor that is either symbol ")
+            .appendValue(_expectedDescriptorSymbol)
+            .appendText(" or code ")
+            .appendValue(_expectedDescriptorCode);
+    }
+
+    @Override
+    protected boolean matchesSafely(DescribedType dt)
+    {
+        return _expectedDescriptorCode.equals(dt.getDescriptor()) || _expectedDescriptorSymbol.equals(dt.getDescriptor());
+    }
+
+}

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameMatchingHandler.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameMatchingHandler.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameMatchingHandler.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameMatchingHandler.java Fri Sep 13 12:52:52 2013
@@ -30,7 +30,7 @@ import org.apache.qpid.proton.amqp.Unsig
 
 abstract class FrameMatchingHandler implements FrameHandler
 {
-    private static Logger LOGGER = Logger.getLogger(FrameMatchingHandler.class.getName());
+    private static final Logger _logger = Logger.getLogger(FrameMatchingHandler.class.getName());
 
     public static int ANY_CHANNEL = -1;
 
@@ -43,7 +43,7 @@ abstract class FrameMatchingHandler impl
     private int _actualChannel;
 
     private Runnable _onSuccessAction;
-    private boolean _isComplete;
+    private volatile boolean _isComplete;
 
     protected FrameMatchingHandler(FrameType frameType,
                                    int channel,
@@ -57,6 +57,14 @@ abstract class FrameMatchingHandler impl
         _onSuccessAction = onSuccessAction;
     }
 
+    protected abstract Map<Enum<?>,Object> getReceivedFields();
+
+    /**
+     * Handle the supplied frame and its payload, e.g. by checking that it matches what we expect
+     * @throws RuntimeException or a subclass thereof if the frame does not match what we expect
+     */
+    protected abstract void verifyFrame(List<Object> described, Binary payload);
+
     @SuppressWarnings("unchecked")
     @Override
     public void frame(int type, int ch, DescribedType dt, Binary payload, TestAmqpPeer peer)
@@ -67,7 +75,8 @@ abstract class FrameMatchingHandler impl
            && (dt.getDescribed() instanceof List))
         {
             _actualChannel = ch;
-            frame((List<Object>)dt.getDescribed(),payload);
+            verifyFrame((List<Object>)dt.getDescribed(),payload);
+            succeeded();
         }
         else
         {
@@ -80,7 +89,7 @@ abstract class FrameMatchingHandler impl
         }
     }
 
-    protected void succeeded()
+    private void succeeded()
     {
         if(_onSuccessAction != null)
         {
@@ -88,7 +97,7 @@ abstract class FrameMatchingHandler impl
         }
         else
         {
-            LOGGER.log(Level.INFO, "No onSuccess action, doing nothing.");
+            _logger.log(Level.INFO, "No onSuccess action, doing nothing.");
         }
 
         _isComplete = true;
@@ -122,7 +131,11 @@ abstract class FrameMatchingHandler impl
         return _isComplete;
     }
 
-    protected abstract void frame(List<Object> described, Binary payload);
-
-    protected abstract Map<Integer,Object> getReceivedFields();
+    @Override
+    public String toString()
+    {
+        return "FrameMatchingHandler [_symbolicDescriptor=" + _symbolicDescriptor
+                + ", _expectedChannel=" + (_expectedChannel == ANY_CHANNEL ? "<any>":String.valueOf(_expectedChannel))
+                + "]";
+    }
 }
\ No newline at end of file

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameSender.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameSender.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameSender.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameSender.java Fri Sep 13 12:52:52 2013
@@ -18,14 +18,10 @@
  */
 package org.apache.qpid.jms.test.testpeer;
 
-import java.util.logging.Logger;
-
 import org.apache.qpid.proton.amqp.Binary;
 
 class FrameSender implements AmqpPeerRunnable
 {
-    private static final Logger _logger = Logger.getLogger(FrameSender.class.getName());
-
     private final TestAmqpPeer _testAmqpPeer;
     private final FrameType _type;
     private final int _channel;
@@ -47,7 +43,6 @@ class FrameSender implements AmqpPeerRun
     {
         if(_valueProvider != null)
         {
-            _logger.info("About to dynamically set values before sending frame");
             _valueProvider.setValues();
         }
 

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameWithNoPayloadMatchingHandler.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameWithNoPayloadMatchingHandler.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameWithNoPayloadMatchingHandler.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameWithNoPayloadMatchingHandler.java Fri Sep 13 12:52:52 2013
@@ -32,7 +32,7 @@ public class FrameWithNoPayloadMatchingH
                                                 int channel,
                                                 UnsignedLong numericDescriptor,
                                                 Symbol symbolicDescriptor,
-                                                Map<Integer, Matcher<?>> matchers,
+                                                Map<Enum<?>, Matcher<?>> matchers,
                                                 Runnable onSuccess)
     {
         super(frameType, channel, numericDescriptor, symbolicDescriptor, matchers, onSuccess);

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameWithPayloadMatchingHandler.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameWithPayloadMatchingHandler.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameWithPayloadMatchingHandler.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/FrameWithPayloadMatchingHandler.java Fri Sep 13 12:52:52 2013
@@ -36,7 +36,7 @@ public class FrameWithPayloadMatchingHan
                                                 int channel,
                                                 UnsignedLong numericDescriptor,
                                                 Symbol symbolicDescriptor,
-                                                Map<Integer, Matcher<?>> matchers,
+                                                Map<Enum<?>, Matcher<?>> matchers,
                                                 Runnable onSuccess)
     {
         super(frameType, channel, numericDescriptor, symbolicDescriptor, matchers, onSuccess);

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/HeaderHandlerImpl.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/HeaderHandlerImpl.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/HeaderHandlerImpl.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/HeaderHandlerImpl.java Fri Sep 13 12:52:52 2013
@@ -21,8 +21,14 @@ package org.apache.qpid.jms.test.testpee
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 
+import java.util.logging.Logger;
+
+import org.apache.qpid.proton.amqp.Binary;
+
 class HeaderHandlerImpl implements HeaderHandler
 {
+    private static final Logger _logger = Logger.getLogger(HeaderHandlerImpl.class.getName());
+
     private final byte[] _expectedHeader;
     private final byte[] _response;
     private final Runnable _onSuccess;
@@ -49,6 +55,8 @@ class HeaderHandlerImpl implements Heade
     @Override
     public void header(byte[] header, TestAmqpPeer peer)
     {
+        _logger.fine("About to check received header " + new Binary(header));
+
         assertThat("Header should match", header, equalTo(_expectedHeader));
         peer.sendHeader(_response);
         if(_onSuccess !=null)
@@ -57,4 +65,10 @@ class HeaderHandlerImpl implements Heade
         }
         _isComplete = true;
     }
+
+    @Override
+    public String toString()
+    {
+        return "HeaderHandlerImpl [_expectedHeader=" + new Binary(_expectedHeader) + "]";
+    }
 }
\ No newline at end of file

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/ListDescribedType.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/ListDescribedType.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/ListDescribedType.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/ListDescribedType.java Fri Sep 13 12:52:52 2013
@@ -41,4 +41,10 @@ public abstract class ListDescribedType 
     {
         return _fields;
     }
+
+    @Override
+    public String toString()
+    {
+        return "ListDescribedType [descriptor=" + getDescriptor() + " fields=" + Arrays.toString(_fields) + "]";
+    }
 }
\ No newline at end of file

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java Fri Sep 13 12:52:52 2013
@@ -18,14 +18,17 @@
  */
 package org.apache.qpid.jms.test.testpeer;
 
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.notNullValue;
 import static org.hamcrest.Matchers.nullValue;
 
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.logging.Logger;
 
 import org.apache.qpid.jms.test.testpeer.describedtypes.Accepted;
 import org.apache.qpid.jms.test.testpeer.describedtypes.AttachFrame;
@@ -36,25 +39,33 @@ import org.apache.qpid.jms.test.testpeer
 import org.apache.qpid.jms.test.testpeer.describedtypes.OpenFrame;
 import org.apache.qpid.jms.test.testpeer.describedtypes.SaslMechanismsFrame;
 import org.apache.qpid.jms.test.testpeer.describedtypes.SaslOutcomeFrame;
+import org.apache.qpid.jms.test.testpeer.describedtypes.TransferFrame;
 import org.apache.qpid.jms.test.testpeer.matchers.AttachMatcher;
 import org.apache.qpid.jms.test.testpeer.matchers.BeginMatcher;
 import org.apache.qpid.jms.test.testpeer.matchers.CloseMatcher;
+import org.apache.qpid.jms.test.testpeer.matchers.DispositionMatcher;
+import org.apache.qpid.jms.test.testpeer.matchers.FlowMatcher;
 import org.apache.qpid.jms.test.testpeer.matchers.OpenMatcher;
 import org.apache.qpid.jms.test.testpeer.matchers.SaslInitMatcher;
 import org.apache.qpid.jms.test.testpeer.matchers.TransferMatcher;
+import org.apache.qpid.proton.Proton;
 import org.apache.qpid.proton.amqp.Binary;
 import org.apache.qpid.proton.amqp.DescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
 import org.apache.qpid.proton.amqp.UnsignedByte;
 import org.apache.qpid.proton.amqp.UnsignedInteger;
 import org.apache.qpid.proton.amqp.UnsignedShort;
+import org.apache.qpid.proton.codec.Data;
 import org.apache.qpid.proton.engine.impl.AmqpHeader;
 import org.hamcrest.Matcher;
 import org.hamcrest.Matchers;
+import org.junit.Assert;
 
-
+// TODO should expectXXXYYYZZZ methods just be expect(matcher)?
 public class TestAmqpPeer implements AutoCloseable
 {
+    private static final Logger _logger = Logger.getLogger(TestAmqpPeer.class.getName());
+
     /** Roles are represented as booleans - see AMQP spec 2.8.1*/
     private static final boolean SENDER_ROLE = false;
 
@@ -67,7 +78,19 @@ public class TestAmqpPeer implements Aut
 
     private final TestAmqpPeerRunner _driverRunnable;
     private final Thread _driverThread;
-    private final List<Handler> _handlers = Collections.synchronizedList(new ArrayList<Handler>());
+
+    /**
+     * Guarded by {@link #_handlersLock}
+     */
+    private final List<Handler> _handlers = new ArrayList<Handler>();
+    private final Object _handlersLock = new Object();
+
+    /**
+     * Guarded by {@link #_handlersLock}
+     */
+    private CountDownLatch _handlersCompletedLatch;
+
+    private int _nextLinkHandle = 100;
 
     public TestAmqpPeer(int port) throws IOException
     {
@@ -76,8 +99,13 @@ public class TestAmqpPeer implements Aut
         _driverThread.start();
     }
 
+    /**
+     * Shuts down the test peer, throwing any Exception
+     * that occurred on the peer, or validating that no
+     * unused matchers remain.
+     */
     @Override
-    public void close() throws IOException
+    public void close() throws Exception
     {
         _driverRunnable.stop();
 
@@ -89,6 +117,20 @@ public class TestAmqpPeer implements Aut
         {
             Thread.currentThread().interrupt();
         }
+        finally
+        {
+            if(getException() == null)
+            {
+                synchronized(_handlersLock)
+                {
+                    assertThat(_handlers, Matchers.empty());
+                }
+            }
+            else
+            {
+                throw getException();
+            }
+        }
     }
 
     public Exception getException()
@@ -104,7 +146,7 @@ public class TestAmqpPeer implements Aut
             ((HeaderHandler)handler).header(header,this);
             if(handler.isComplete())
             {
-                _handlers.remove(0);
+                removeFirstHandler();
             }
         }
         else
@@ -121,7 +163,7 @@ public class TestAmqpPeer implements Aut
             ((FrameHandler)handler).frame(type, channel, describedType, payload, this);
             if(handler.isComplete())
             {
-                _handlers.remove(0);
+                removeFirstHandler();
             }
         }
         else
@@ -130,22 +172,64 @@ public class TestAmqpPeer implements Aut
         }
     }
 
+    private void removeFirstHandler()
+    {
+        synchronized(_handlersLock)
+        {
+            Handler h = _handlers.remove(0);
+            if(_handlersCompletedLatch != null)
+            {
+                _handlersCompletedLatch.countDown();
+            }
+            _logger.finest("Removed completed handler: " + h);
+        }
+    }
+
+    private void addHandler(Handler handler)
+    {
+        synchronized(_handlersLock)
+        {
+            _handlers.add(handler);
+            _logger.fine("Added handler " + handler);
+        }
+    }
+
     private Handler getFirstHandler()
     {
-        if(_handlers.isEmpty())
+        synchronized(_handlersLock)
         {
-            throw new IllegalStateException("No handlers");
+            if(_handlers.isEmpty())
+            {
+                throw new IllegalStateException("No handlers");
+            }
+            return _handlers.get(0);
         }
-        return _handlers.get(0);
+    }
+
+    public void waitForAllHandlersToComplete() throws InterruptedException
+    {
+        final int timeoutSeconds = 5;
+
+        synchronized(_handlersLock)
+        {
+            _handlersCompletedLatch = new CountDownLatch(_handlers.size());
+        }
+
+        boolean countedDownOk = _handlersCompletedLatch.await(timeoutSeconds, TimeUnit.SECONDS);
+
+        Assert.assertTrue(
+                "All handlers should have completed within the " + timeoutSeconds + "s timeout", countedDownOk);
     }
 
     void sendHeader(byte[] header)
     {
+        _logger.fine("About to send header "+ new Binary(header));
         _driverRunnable.sendBytes(header);
     }
 
     public void sendFrame(FrameType type, int channel, DescribedType describedType, Binary payload)
     {
+        _logger.fine("About to send "+ describedType);
         byte[] output = AmqpDataFramer.encodeFrame(type, channel, describedType, payload);
         _driverRunnable.sendBytes(output);
     }
@@ -153,7 +237,7 @@ public class TestAmqpPeer implements Aut
     public void expectPlainConnect(String username, String password, boolean authorize)
     {
         SaslMechanismsFrame saslMechanismsFrame = new SaslMechanismsFrame().setSaslServerMechanisms(Symbol.valueOf("PLAIN"));
-        _handlers.add(new HeaderHandlerImpl(AmqpHeader.SASL_HEADER, AmqpHeader.SASL_HEADER,
+        addHandler(new HeaderHandlerImpl(AmqpHeader.SASL_HEADER, AmqpHeader.SASL_HEADER,
                                             new FrameSender(
                                                     this, FrameType.SASL, 0,
                                                     saslMechanismsFrame, null)));
@@ -164,7 +248,7 @@ public class TestAmqpPeer implements Aut
         System.arraycopy(usernameBytes, 0, data, 1, usernameBytes.length);
         System.arraycopy(passwordBytes, 0, data, 2 + usernameBytes.length, passwordBytes.length);
 
-        _handlers.add(new SaslInitMatcher()
+        addHandler(new SaslInitMatcher()
             .withMechanism(equalTo(Symbol.valueOf("PLAIN")))
             .withInitialResponse(equalTo(new Binary(data)))
             .onSuccess(new AmqpPeerRunnable()
@@ -180,9 +264,9 @@ public class TestAmqpPeer implements Aut
                 }
             }));
 
-        _handlers.add(new HeaderHandlerImpl(AmqpHeader.HEADER, AmqpHeader.HEADER));
+        addHandler(new HeaderHandlerImpl(AmqpHeader.HEADER, AmqpHeader.HEADER));
 
-        _handlers.add(new OpenMatcher()
+        addHandler(new OpenMatcher()
             .withContainerId(notNullValue(String.class))
             .onSuccess(new FrameSender(
                     this, FrameType.AMQP, 0,
@@ -192,7 +276,7 @@ public class TestAmqpPeer implements Aut
 
     public void expectClose()
     {
-        _handlers.add(new CloseMatcher()
+        addHandler(new CloseMatcher()
             .withError(Matchers.nullValue())
             .onSuccess(new FrameSender(this, FrameType.AMQP, 0,
                     new CloseFrame(),
@@ -209,9 +293,9 @@ public class TestAmqpPeer implements Aut
 
         // the response will have its remote channel dynamically set based on incoming value
         final BeginFrame beginResponse = new BeginFrame()
-            .setNextOutgoingId(UnsignedInteger.valueOf(0))
-            .setIncomingWindow(UnsignedInteger.valueOf(0))
-            .setOutgoingWindow(UnsignedInteger.valueOf(0));
+            .setNextOutgoingId(UnsignedInteger.ZERO)
+            .setIncomingWindow(UnsignedInteger.ZERO)
+            .setOutgoingWindow(UnsignedInteger.ZERO);
 
         beginMatcher.onSuccess(
                 new FrameSender(this, FrameType.AMQP, 0, beginResponse, null)
@@ -225,29 +309,24 @@ public class TestAmqpPeer implements Aut
                             }
                         }));
 
-        _handlers.add(beginMatcher);
+        addHandler(beginMatcher);
     }
 
     public void expectSenderAttach()
     {
-        expectAttach(SENDER_ROLE);
-    }
-
-    private void expectAttach(boolean role)
-    {
         final AttachMatcher attachMatcher = new AttachMatcher()
                 .withName(notNullValue())
                 .withHandle(notNullValue())
-                .withRole(equalTo(role))
+                .withRole(equalTo(SENDER_ROLE))
                 .withSndSettleMode(equalTo(ATTACH_SND_SETTLE_MODE_UNSETTLED))
                 .withRcvSettleMode(equalTo(ATTACH_RCV_SETTLE_MODE_FIRST))
                 .withSource(notNullValue())
                 .withTarget(notNullValue());
 
-        UnsignedInteger linkHandle = UnsignedInteger.valueOf(101);
+        UnsignedInteger linkHandle = UnsignedInteger.valueOf(_nextLinkHandle++);
         final AttachFrame attachResponse = new AttachFrame()
                             .setHandle(linkHandle)
-                            .setRole(!role)
+                            .setRole(RECEIVER_ROLE)
                             .setSndSettleMode(ATTACH_SND_SETTLE_MODE_UNSETTLED)
                             .setRcvSettleMode(ATTACH_RCV_SETTLE_MODE_FIRST);
 
@@ -263,9 +342,9 @@ public class TestAmqpPeer implements Aut
                                 }
                             });
 
-        final FlowFrame flowFrame = new FlowFrame().setNextIncomingId(UnsignedInteger.valueOf(0))
+        final FlowFrame flowFrame = new FlowFrame().setNextIncomingId(UnsignedInteger.ZERO)
                 .setIncomingWindow(UnsignedInteger.valueOf(2048))
-                .setNextOutgoingId(UnsignedInteger.valueOf(0))
+                .setNextOutgoingId(UnsignedInteger.ZERO)
                 .setOutgoingWindow(UnsignedInteger.valueOf(2048))
                 .setLinkCredit(UnsignedInteger.valueOf(100))
                 .setHandle(linkHandle);
@@ -286,7 +365,86 @@ public class TestAmqpPeer implements Aut
 
         attachMatcher.onSuccess(composite);
 
-        _handlers.add(attachMatcher);
+        addHandler(attachMatcher);
+    }
+
+    public void expectReceiverAttach()
+    {
+        final AttachMatcher attachMatcher = new AttachMatcher()
+                .withName(notNullValue())
+                .withHandle(notNullValue())
+                .withRole(equalTo(RECEIVER_ROLE))
+                .withSndSettleMode(equalTo(ATTACH_SND_SETTLE_MODE_UNSETTLED))
+                .withRcvSettleMode(equalTo(ATTACH_RCV_SETTLE_MODE_FIRST))
+                .withSource(notNullValue())
+                .withTarget(notNullValue());
+
+        UnsignedInteger linkHandle = UnsignedInteger.valueOf(_nextLinkHandle++);
+        final AttachFrame attachResponse = new AttachFrame()
+                            .setHandle(linkHandle)
+                            .setRole(SENDER_ROLE)
+                            .setSndSettleMode(ATTACH_SND_SETTLE_MODE_UNSETTLED)
+                            .setRcvSettleMode(ATTACH_RCV_SETTLE_MODE_FIRST)
+                            .setInitialDeliveryCount(UnsignedInteger.ZERO);
+
+        FrameSender attachResponseSender = new FrameSender(this, FrameType.AMQP, 0, attachResponse, null)
+                            .setValueProvider(new ValueProvider()
+                            {
+                                @Override
+                                public void setValues()
+                                {
+                                    attachResponse.setName(attachMatcher.getReceivedName());
+                                    attachResponse.setSource(attachMatcher.getReceivedSource());
+                                    attachResponse.setTarget(attachMatcher.getReceivedTarget());
+                                }
+                            });
+
+        attachMatcher.onSuccess(attachResponseSender);
+
+        addHandler(attachMatcher);
+    }
+
+    public void expectLinkFlowRespondWithTransfer()
+    {
+        final FlowMatcher flowMatcher = new FlowMatcher()
+                        .withLinkCredit(Matchers.greaterThan(UnsignedInteger.ZERO));
+
+        final TransferFrame transferResponse = new TransferFrame()
+            .setHandle(UnsignedInteger.valueOf(_nextLinkHandle - 1)) // TODO: this needs to be the value used in the attach response
+            .setDeliveryId(UnsignedInteger.ZERO) // TODO: we shouldn't assume this is the first transfer on the session
+            .setDeliveryTag(new Binary("theDeliveryTag".getBytes()))
+            .setMessageFormat(UnsignedInteger.ZERO)
+            .setSettled(false);
+
+        Data payloadData = Proton.data(1024);
+
+        // TODO: create an actual AmqpValue described type?
+        payloadData.putDescribedType(new DescribedType()
+        {
+            @Override
+            public Object getDescriptor()
+            {
+                return  Symbol.valueOf("amqp:amqp-value:*");
+            }
+
+            @Override
+            public Object getDescribed()
+            {
+                return "Hello World";
+            }
+        });
+        Binary payload = payloadData.encode();
+
+        FrameSender transferResponseSender = new FrameSender(
+                this,
+                FrameType.AMQP,
+                0, // TODO use correct channel number (and check for dodgy hard-coded zeros elsewhere)
+                transferResponse,
+                payload);
+
+        flowMatcher.onSuccess(transferResponseSender);
+
+        addHandler(flowMatcher);
     }
 
     public void expectTransfer(Matcher<Binary> expectedPayloadMatcher)
@@ -310,6 +468,13 @@ public class TestAmqpPeer implements Aut
                             });
         transferMatcher.onSuccess(dispositionFrameSender);
 
-        _handlers.add(transferMatcher);
+        addHandler(transferMatcher);
+    }
+
+    public void expectDispositionThatIsAcceptedAndSettled()
+    {
+        addHandler(new DispositionMatcher()
+            .withSettled(equalTo(true))
+            .withState(new DescriptorMatcher(Accepted.DESCRIPTOR_CODE, Accepted.DESCRIPTOR_SYMBOL)));
     }
 }

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeerRunner.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeerRunner.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeerRunner.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeerRunner.java Fri Sep 13 12:52:52 2013
@@ -38,6 +38,7 @@ class TestAmqpPeerRunner implements Runn
     private Socket _clientSocket;
     private OutputStream _networkOutputStream;
 
+    private final Object _inputHandlingLock = new Object();
     private final TestFrameParser _testFrameParser;
 
     private volatile Exception _exception;
@@ -67,11 +68,15 @@ class TestAmqpPeerRunner implements Runn
             _logger.finest("Attempting read");
             while((bytesRead = networkInputStream.read(networkInputBytes)) != -1)
             {
-                ByteBuffer networkInputByteBuffer = ByteBuffer.wrap(networkInputBytes, 0, bytesRead);
+                //prevent stop() from killing the socket while the frame parser might be using it handling input
+                synchronized(_inputHandlingLock)
+                {
+                    ByteBuffer networkInputByteBuffer = ByteBuffer.wrap(networkInputBytes, 0, bytesRead);
 
-                _logger.info("Read: " + new Binary(networkInputBytes, 0, bytesRead));
+                    _logger.finer("Read: " + new Binary(networkInputBytes, 0, bytesRead));
 
-                _testFrameParser.input(networkInputByteBuffer);
+                    _testFrameParser.input(networkInputByteBuffer);
+                }
                 _logger.finest("Attempting read");
             }
 
@@ -82,12 +87,11 @@ class TestAmqpPeerRunner implements Runn
             if(!_serverSocket.isClosed())
             {
                 _logger.log(Level.SEVERE, "Problem in peer", e);
-                e.printStackTrace(); // TODO make this a logger call
                 _exception = e;
             }
             else
             {
-                _logger.log(Level.FINE, "Caught exception, ignoring as socket is closed: " + e);
+                _logger.fine("Caught exception, ignoring as socket is closed: " + e);
             }
         }
         finally
@@ -105,15 +109,19 @@ class TestAmqpPeerRunner implements Runn
 
     public void stop() throws IOException
     {
-        try
-        {
-            _serverSocket.close();
-        }
-        finally
+        //wait for the frame parser to handle any input it already had
+        synchronized(_inputHandlingLock)
         {
-            if(_clientSocket != null)
+            try
+            {
+                _serverSocket.close();
+            }
+            finally
             {
-                _clientSocket.close();
+                if(_clientSocket != null)
+                {
+                    _clientSocket.close();
+                }
             }
         }
     }
@@ -125,8 +133,7 @@ class TestAmqpPeerRunner implements Runn
 
     public void sendBytes(byte[] bytes)
     {
-        //TODO remove
-        _logger.info("Sending: " + new Binary(bytes));
+        _logger.finer("Sending: " + new Binary(bytes));
         try
         {
             _networkOutputStream.write(bytes);

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/TestFrameParser.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/TestFrameParser.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/TestFrameParser.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/TestFrameParser.java Fri Sep 13 12:52:52 2013
@@ -21,7 +21,6 @@ package org.apache.qpid.jms.test.testpee
 import static org.apache.qpid.proton.engine.TransportResultFactory.error;
 
 import java.nio.ByteBuffer;
-import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import org.apache.qpid.proton.ProtonFactoryLoader;
@@ -35,8 +34,7 @@ import org.apache.qpid.proton.engine.Tra
 
 class TestFrameParser
 {
-    // PHTODO replace logger
-    private static final Logger TRACE_LOGGER = Logger.getLogger("proton.trace");
+    private static final Logger _logger = Logger.getLogger(TestFrameParser.class.getName());
 
     private enum State
     {
@@ -320,7 +318,7 @@ class TestFrameParser
                             }
 
                             DescribedType describedType = data.getDescribedType();
-                            TRACE_LOGGER.info("Received described type: " + describedType);
+                            _logger.finer("Received described type: " + describedType);
 
                             Binary payload;
 
@@ -339,10 +337,7 @@ class TestFrameParser
                         }
                         else
                         {
-                            if(TRACE_LOGGER.isLoggable(Level.FINEST))
-                            {
-                                TRACE_LOGGER.finest("Ignored empty frame");
-                            }
+                            _logger.finest("Ignored empty frame");
                         }
                         _size = 0;
                         currentInput = nextFramesInput;
@@ -369,7 +364,7 @@ class TestFrameParser
 
         if(_state == State.ERROR)
         {
-            // PHTODO throw non-proton exception
+            // TODO throw non-proton exception
             if(frameParsingError != null)
             {
                 frameParsingError.checkIsOk();

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Accepted.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Accepted.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Accepted.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Accepted.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class Accepted extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:accepted:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:accepted:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000024L);
+
 
 
     public Accepted(Object... fields)
@@ -44,7 +47,7 @@ public class Accepted extends ListDescri
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
 }

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/AttachFrame.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/AttachFrame.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/AttachFrame.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/AttachFrame.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class AttachFrame extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:attach:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:attach:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000012L);
+
 
     private static final int FIELD_NAME = 0;
     private static final int FIELD_HANDLE = 1;
@@ -58,7 +61,7 @@ public class AttachFrame extends ListDes
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public AttachFrame setName(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/BeginFrame.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/BeginFrame.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/BeginFrame.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/BeginFrame.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class BeginFrame extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:begin:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:begin:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000011L);
+
 
     private static final int FIELD_REMOTE_CHANNEL = 0;
     private static final int FIELD_NEXT_OUTGOING_ID = 1;
@@ -52,7 +55,7 @@ public class BeginFrame extends ListDesc
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public BeginFrame setRemoteChannel(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/CloseFrame.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/CloseFrame.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/CloseFrame.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/CloseFrame.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class CloseFrame extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:close:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:close:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000018L);
+
 
     private static final int FIELD_ERROR = 0;
 
@@ -45,7 +48,7 @@ public class CloseFrame extends ListDesc
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public CloseFrame setError(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/DetachFrame.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/DetachFrame.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/DetachFrame.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/DetachFrame.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class DetachFrame extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:detach:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:detach:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000016L);
+
 
     private static final int FIELD_HANDLE = 0;
     private static final int FIELD_CLOSED = 1;
@@ -47,7 +50,7 @@ public class DetachFrame extends ListDes
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public DetachFrame setHandle(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/DispositionFrame.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/DispositionFrame.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/DispositionFrame.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/DispositionFrame.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class DispositionFrame extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:disposition:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:disposition:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000015L);
+
 
     private static final int FIELD_ROLE = 0;
     private static final int FIELD_FIRST = 1;
@@ -50,7 +53,7 @@ public class DispositionFrame extends Li
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public DispositionFrame setRole(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/EndFrame.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/EndFrame.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/EndFrame.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/EndFrame.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class EndFrame extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:end:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:end:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000017L);
+
 
     private static final int FIELD_ERROR = 0;
 
@@ -45,7 +48,7 @@ public class EndFrame extends ListDescri
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public EndFrame setError(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/FlowFrame.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/FlowFrame.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/FlowFrame.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/FlowFrame.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class FlowFrame extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:flow:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:flow:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000013L);
+
 
     private static final int FIELD_NEXT_INCOMING_ID = 0;
     private static final int FIELD_INCOMING_WINDOW = 1;
@@ -55,7 +58,7 @@ public class FlowFrame extends ListDescr
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public FlowFrame setNextIncomingId(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Modified.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Modified.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Modified.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Modified.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class Modified extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:modified:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:modified:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000027L);
+
 
     private static final int FIELD_DELIVERY_FAILED = 0;
     private static final int FIELD_UNDELIVERABLE_HERE = 1;
@@ -47,7 +50,7 @@ public class Modified extends ListDescri
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public Modified setDeliveryFailed(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/OpenFrame.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/OpenFrame.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/OpenFrame.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/OpenFrame.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class OpenFrame extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:open:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:open:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000010L);
+
 
     private static final int FIELD_CONTAINER_ID = 0;
     private static final int FIELD_HOSTNAME = 1;
@@ -54,7 +57,7 @@ public class OpenFrame extends ListDescr
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public OpenFrame setContainerId(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Rejected.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Rejected.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Rejected.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Rejected.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class Rejected extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:rejected:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:rejected:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000025L);
+
 
     private static final int FIELD_ERROR = 0;
 
@@ -45,7 +48,7 @@ public class Rejected extends ListDescri
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public Rejected setError(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Released.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Released.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Released.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Released.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class Released extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:released:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:released:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000026L);
+
 
 
     public Released(Object... fields)
@@ -44,7 +47,7 @@ public class Released extends ListDescri
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
 }

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslChallengeFrame.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslChallengeFrame.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslChallengeFrame.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslChallengeFrame.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class SaslChallengeFrame extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:sasl-challenge:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:sasl-challenge:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000042L);
+
 
     private static final int FIELD_CHALLENGE = 0;
 
@@ -45,7 +48,7 @@ public class SaslChallengeFrame extends 
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public SaslChallengeFrame setChallenge(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslInitFrame.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslInitFrame.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslInitFrame.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslInitFrame.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class SaslInitFrame extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:sasl-init:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:sasl-init:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000041L);
+
 
     private static final int FIELD_MECHANISM = 0;
     private static final int FIELD_INITIAL_RESPONSE = 1;
@@ -47,7 +50,7 @@ public class SaslInitFrame extends ListD
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public SaslInitFrame setMechanism(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslMechanismsFrame.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslMechanismsFrame.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslMechanismsFrame.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslMechanismsFrame.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class SaslMechanismsFrame extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:sasl-mechanisms:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:sasl-mechanisms:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000040L);
+
 
     private static final int FIELD_SASL_SERVER_MECHANISMS = 0;
 
@@ -45,7 +48,7 @@ public class SaslMechanismsFrame extends
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public SaslMechanismsFrame setSaslServerMechanisms(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslOutcomeFrame.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslOutcomeFrame.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslOutcomeFrame.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslOutcomeFrame.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class SaslOutcomeFrame extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:sasl-outcome:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:sasl-outcome:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000044L);
+
 
     private static final int FIELD_CODE = 0;
     private static final int FIELD_ADDITIONAL_DATA = 1;
@@ -46,7 +49,7 @@ public class SaslOutcomeFrame extends Li
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public SaslOutcomeFrame setCode(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslResponseFrame.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslResponseFrame.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslResponseFrame.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/SaslResponseFrame.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class SaslResponseFrame extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:sasl-response:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:sasl-response:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000043L);
+
 
     private static final int FIELD_RESPONSE = 0;
 
@@ -45,7 +48,7 @@ public class SaslResponseFrame extends L
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public SaslResponseFrame setResponse(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Source.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Source.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Source.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Source.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class Source extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:source:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:source:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000028L);
+
 
     private static final int FIELD_ADDRESS = 0;
     private static final int FIELD_DURABLE = 1;
@@ -55,7 +58,7 @@ public class Source extends ListDescribe
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public Source setAddress(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Target.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Target.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Target.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Target.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class Target extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:target:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:target:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000029L);
+
 
     private static final int FIELD_ADDRESS = 0;
     private static final int FIELD_DURABLE = 1;
@@ -51,7 +54,7 @@ public class Target extends ListDescribe
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public Target setAddress(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/TransferFrame.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/TransferFrame.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/TransferFrame.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/TransferFrame.java Fri Sep 13 12:52:52 2013
@@ -22,13 +22,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class TransferFrame extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("amqp:transfer:list");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("amqp:transfer:list");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(0x0000000000000014L);
+
 
     private static final int FIELD_HANDLE = 0;
     private static final int FIELD_DELIVERY_ID = 1;
@@ -55,7 +58,7 @@ public class TransferFrame extends ListD
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 
     public TransferFrame setHandle(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/generate-frames.xsl
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/generate-frames.xsl?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/generate-frames.xsl (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/generate-frames.xsl Fri Sep 13 12:52:52 2013
@@ -63,13 +63,16 @@ package org.apache.qpid.jms.test.testpee
 
 import org.apache.qpid.jms.test.testpeer.ListDescribedType;
 import org.apache.qpid.proton.amqp.Symbol;
+import org.apache.qpid.proton.amqp.UnsignedLong;
 
 /**
  * Generated by generate-frames.xsl, which resides in this package.
  */
 public class <xsl:value-of select="$classname"/> extends ListDescribedType
 {
-    private static final Symbol DESCRIPTOR = Symbol.valueOf("<xsl:value-of select="descendant::node()[name()='descriptor']/@name"/>");
+    public static final Symbol DESCRIPTOR_SYMBOL = Symbol.valueOf("<xsl:value-of select="descendant::node()[name()='descriptor']/@name"/>");
+    public static final UnsignedLong DESCRIPTOR_CODE = UnsignedLong.valueOf(<xsl:value-of select="concat(substring(descendant::node()[name()='descriptor']/@code,1,10),substring(descendant::node()[name()='descriptor']/@code,14))"/>L);
+
 <xsl:for-each select="descendant::node()[name()='field']">
     private static final int FIELD_<xsl:call-template name="toUpperDashToUnderscore"><xsl:with-param name="input" select="@name"/></xsl:call-template> = <xsl:value-of select="count(preceding-sibling::node()[name()='field'])"/>;</xsl:for-each>
 
@@ -86,7 +89,7 @@ public class <xsl:value-of select="$clas
     @Override
     public Symbol getDescriptor()
     {
-        return DESCRIPTOR;
+        return DESCRIPTOR_SYMBOL;
     }
 <xsl:for-each select="descendant::node()[name()='field']">
     public <xsl:value-of select="$classname"/> set<xsl:call-template name="dashToCamel"><xsl:with-param name="input" select="@name"/></xsl:call-template>(Object o)

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/AttachMatcher.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/AttachMatcher.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/AttachMatcher.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/AttachMatcher.java Fri Sep 13 12:52:52 2013
@@ -32,21 +32,24 @@ import org.hamcrest.Matcher;
  */
 public class AttachMatcher extends FrameWithNoPayloadMatchingHandler
 {
-
-    private static final int FIELD_NAME = 0;
-    private static final int FIELD_HANDLE = 1;
-    private static final int FIELD_ROLE = 2;
-    private static final int FIELD_SND_SETTLE_MODE = 3;
-    private static final int FIELD_RCV_SETTLE_MODE = 4;
-    private static final int FIELD_SOURCE = 5;
-    private static final int FIELD_TARGET = 6;
-    private static final int FIELD_UNSETTLED = 7;
-    private static final int FIELD_INCOMPLETE_UNSETTLED = 8;
-    private static final int FIELD_INITIAL_DELIVERY_COUNT = 9;
-    private static final int FIELD_MAX_MESSAGE_SIZE = 10;
-    private static final int FIELD_OFFERED_CAPABILITIES = 11;
-    private static final int FIELD_DESIRED_CAPABILITIES = 12;
-    private static final int FIELD_PROPERTIES = 13;
+    /** Note that the ordinals of the Field enums match the order specified in the spec */
+    public enum Field
+    {
+        NAME,
+        HANDLE,
+        ROLE,
+        SND_SETTLE_MODE,
+        RCV_SETTLE_MODE,
+        SOURCE,
+        TARGET,
+        UNSETTLED,
+        INCOMPLETE_UNSETTLED,
+        INITIAL_DELIVERY_COUNT,
+        MAX_MESSAGE_SIZE,
+        OFFERED_CAPABILITIES,
+        DESIRED_CAPABILITIES,
+        PROPERTIES,
+    }
 
     public AttachMatcher()
     {
@@ -54,7 +57,7 @@ public class AttachMatcher extends Frame
               ANY_CHANNEL,
               UnsignedLong.valueOf(0x0000000000000012L),
               Symbol.valueOf("amqp:attach:list"),
-              new HashMap<Integer, Matcher<?>>(),
+              new HashMap<Enum<?>, Matcher<?>>(),
               null);
     }
 
@@ -67,157 +70,162 @@ public class AttachMatcher extends Frame
 
     public AttachMatcher withName(Matcher<?> m)
     {
-        getMatchers().put(FIELD_NAME, m);
+        getMatchers().put(Field.NAME, m);
         return this;
     }
 
     public AttachMatcher withHandle(Matcher<?> m)
     {
-        getMatchers().put(FIELD_HANDLE, m);
+        getMatchers().put(Field.HANDLE, m);
         return this;
     }
 
     public AttachMatcher withRole(Matcher<?> m)
     {
-        getMatchers().put(FIELD_ROLE, m);
+        getMatchers().put(Field.ROLE, m);
         return this;
     }
 
     public AttachMatcher withSndSettleMode(Matcher<?> m)
     {
-        getMatchers().put(FIELD_SND_SETTLE_MODE, m);
+        getMatchers().put(Field.SND_SETTLE_MODE, m);
         return this;
     }
 
     public AttachMatcher withRcvSettleMode(Matcher<?> m)
     {
-        getMatchers().put(FIELD_RCV_SETTLE_MODE, m);
+        getMatchers().put(Field.RCV_SETTLE_MODE, m);
         return this;
     }
 
     public AttachMatcher withSource(Matcher<?> m)
     {
-        getMatchers().put(FIELD_SOURCE, m);
+        getMatchers().put(Field.SOURCE, m);
         return this;
     }
 
     public AttachMatcher withTarget(Matcher<?> m)
     {
-        getMatchers().put(FIELD_TARGET, m);
+        getMatchers().put(Field.TARGET, m);
         return this;
     }
 
     public AttachMatcher withUnsettled(Matcher<?> m)
     {
-        getMatchers().put(FIELD_UNSETTLED, m);
+        getMatchers().put(Field.UNSETTLED, m);
         return this;
     }
 
     public AttachMatcher withIncompleteUnsettled(Matcher<?> m)
     {
-        getMatchers().put(FIELD_INCOMPLETE_UNSETTLED, m);
+        getMatchers().put(Field.INCOMPLETE_UNSETTLED, m);
         return this;
     }
 
     public AttachMatcher withInitialDeliveryCount(Matcher<?> m)
     {
-        getMatchers().put(FIELD_INITIAL_DELIVERY_COUNT, m);
+        getMatchers().put(Field.INITIAL_DELIVERY_COUNT, m);
         return this;
     }
 
     public AttachMatcher withMaxMessageSize(Matcher<?> m)
     {
-        getMatchers().put(FIELD_MAX_MESSAGE_SIZE, m);
+        getMatchers().put(Field.MAX_MESSAGE_SIZE, m);
         return this;
     }
 
     public AttachMatcher withOfferedCapabilities(Matcher<?> m)
     {
-        getMatchers().put(FIELD_OFFERED_CAPABILITIES, m);
+        getMatchers().put(Field.OFFERED_CAPABILITIES, m);
         return this;
     }
 
     public AttachMatcher withDesiredCapabilities(Matcher<?> m)
     {
-        getMatchers().put(FIELD_DESIRED_CAPABILITIES, m);
+        getMatchers().put(Field.DESIRED_CAPABILITIES, m);
         return this;
     }
 
     public AttachMatcher withProperties(Matcher<?> m)
     {
-        getMatchers().put(FIELD_PROPERTIES, m);
+        getMatchers().put(Field.PROPERTIES, m);
         return this;
     }
 
     public Object getReceivedName()
     {
-        return getReceivedFields().get(FIELD_NAME);
+        return getReceivedFields().get(Field.NAME);
     }
 
     public Object getReceivedHandle()
     {
-        return getReceivedFields().get(FIELD_HANDLE);
+        return getReceivedFields().get(Field.HANDLE);
     }
 
     public Object getReceivedRole()
     {
-        return getReceivedFields().get(FIELD_ROLE);
+        return getReceivedFields().get(Field.ROLE);
     }
 
     public Object getReceivedSndSettleMode()
     {
-        return getReceivedFields().get(FIELD_SND_SETTLE_MODE);
+        return getReceivedFields().get(Field.SND_SETTLE_MODE);
     }
 
     public Object getReceivedRcvSettleMode()
     {
-        return getReceivedFields().get(FIELD_RCV_SETTLE_MODE);
+        return getReceivedFields().get(Field.RCV_SETTLE_MODE);
     }
 
     public Object getReceivedSource()
     {
-        return getReceivedFields().get(FIELD_SOURCE);
+        return getReceivedFields().get(Field.SOURCE);
     }
 
     public Object getReceivedTarget()
     {
-        return getReceivedFields().get(FIELD_TARGET);
+        return getReceivedFields().get(Field.TARGET);
     }
 
     public Object getReceivedUnsettled()
     {
-        return getReceivedFields().get(FIELD_UNSETTLED);
+        return getReceivedFields().get(Field.UNSETTLED);
     }
 
     public Object getReceivedIncompleteUnsettled()
     {
-        return getReceivedFields().get(FIELD_INCOMPLETE_UNSETTLED);
+        return getReceivedFields().get(Field.INCOMPLETE_UNSETTLED);
     }
 
     public Object getReceivedInitialDeliveryCount()
     {
-        return getReceivedFields().get(FIELD_INITIAL_DELIVERY_COUNT);
+        return getReceivedFields().get(Field.INITIAL_DELIVERY_COUNT);
     }
 
     public Object getReceivedMaxMessageSize()
     {
-        return getReceivedFields().get(FIELD_MAX_MESSAGE_SIZE);
+        return getReceivedFields().get(Field.MAX_MESSAGE_SIZE);
     }
 
     public Object getReceivedOfferedCapabilities()
     {
-        return getReceivedFields().get(FIELD_OFFERED_CAPABILITIES);
+        return getReceivedFields().get(Field.OFFERED_CAPABILITIES);
     }
 
     public Object getReceivedDesiredCapabilities()
     {
-        return getReceivedFields().get(FIELD_DESIRED_CAPABILITIES);
+        return getReceivedFields().get(Field.DESIRED_CAPABILITIES);
     }
 
     public Object getReceivedProperties()
     {
-        return getReceivedFields().get(FIELD_PROPERTIES);
+        return getReceivedFields().get(Field.PROPERTIES);
     }
 
+    @Override
+    protected Enum<?> getField(int fieldIndex)
+    {
+        return Field.values()[fieldIndex];
+    }
 }
 

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/BeginMatcher.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/BeginMatcher.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/BeginMatcher.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/BeginMatcher.java Fri Sep 13 12:52:52 2013
@@ -32,15 +32,18 @@ import org.hamcrest.Matcher;
  */
 public class BeginMatcher extends FrameWithNoPayloadMatchingHandler
 {
-
-    private static final int FIELD_REMOTE_CHANNEL = 0;
-    private static final int FIELD_NEXT_OUTGOING_ID = 1;
-    private static final int FIELD_INCOMING_WINDOW = 2;
-    private static final int FIELD_OUTGOING_WINDOW = 3;
-    private static final int FIELD_HANDLE_MAX = 4;
-    private static final int FIELD_OFFERED_CAPABILITIES = 5;
-    private static final int FIELD_DESIRED_CAPABILITIES = 6;
-    private static final int FIELD_PROPERTIES = 7;
+    /** Note that the ordinals of the Field enums match the order specified in the spec */
+    public enum Field
+    {
+        REMOTE_CHANNEL,
+        NEXT_OUTGOING_ID,
+        INCOMING_WINDOW,
+        OUTGOING_WINDOW,
+        HANDLE_MAX,
+        OFFERED_CAPABILITIES,
+        DESIRED_CAPABILITIES,
+        PROPERTIES,
+    }
 
     public BeginMatcher()
     {
@@ -48,7 +51,7 @@ public class BeginMatcher extends FrameW
               ANY_CHANNEL,
               UnsignedLong.valueOf(0x0000000000000011L),
               Symbol.valueOf("amqp:begin:list"),
-              new HashMap<Integer, Matcher<?>>(),
+              new HashMap<Enum<?>, Matcher<?>>(),
               null);
     }
 
@@ -61,91 +64,96 @@ public class BeginMatcher extends FrameW
 
     public BeginMatcher withRemoteChannel(Matcher<?> m)
     {
-        getMatchers().put(FIELD_REMOTE_CHANNEL, m);
+        getMatchers().put(Field.REMOTE_CHANNEL, m);
         return this;
     }
 
     public BeginMatcher withNextOutgoingId(Matcher<?> m)
     {
-        getMatchers().put(FIELD_NEXT_OUTGOING_ID, m);
+        getMatchers().put(Field.NEXT_OUTGOING_ID, m);
         return this;
     }
 
     public BeginMatcher withIncomingWindow(Matcher<?> m)
     {
-        getMatchers().put(FIELD_INCOMING_WINDOW, m);
+        getMatchers().put(Field.INCOMING_WINDOW, m);
         return this;
     }
 
     public BeginMatcher withOutgoingWindow(Matcher<?> m)
     {
-        getMatchers().put(FIELD_OUTGOING_WINDOW, m);
+        getMatchers().put(Field.OUTGOING_WINDOW, m);
         return this;
     }
 
     public BeginMatcher withHandleMax(Matcher<?> m)
     {
-        getMatchers().put(FIELD_HANDLE_MAX, m);
+        getMatchers().put(Field.HANDLE_MAX, m);
         return this;
     }
 
     public BeginMatcher withOfferedCapabilities(Matcher<?> m)
     {
-        getMatchers().put(FIELD_OFFERED_CAPABILITIES, m);
+        getMatchers().put(Field.OFFERED_CAPABILITIES, m);
         return this;
     }
 
     public BeginMatcher withDesiredCapabilities(Matcher<?> m)
     {
-        getMatchers().put(FIELD_DESIRED_CAPABILITIES, m);
+        getMatchers().put(Field.DESIRED_CAPABILITIES, m);
         return this;
     }
 
     public BeginMatcher withProperties(Matcher<?> m)
     {
-        getMatchers().put(FIELD_PROPERTIES, m);
+        getMatchers().put(Field.PROPERTIES, m);
         return this;
     }
 
     public Object getReceivedRemoteChannel()
     {
-        return getReceivedFields().get(FIELD_REMOTE_CHANNEL);
+        return getReceivedFields().get(Field.REMOTE_CHANNEL);
     }
 
     public Object getReceivedNextOutgoingId()
     {
-        return getReceivedFields().get(FIELD_NEXT_OUTGOING_ID);
+        return getReceivedFields().get(Field.NEXT_OUTGOING_ID);
     }
 
     public Object getReceivedIncomingWindow()
     {
-        return getReceivedFields().get(FIELD_INCOMING_WINDOW);
+        return getReceivedFields().get(Field.INCOMING_WINDOW);
     }
 
     public Object getReceivedOutgoingWindow()
     {
-        return getReceivedFields().get(FIELD_OUTGOING_WINDOW);
+        return getReceivedFields().get(Field.OUTGOING_WINDOW);
     }
 
     public Object getReceivedHandleMax()
     {
-        return getReceivedFields().get(FIELD_HANDLE_MAX);
+        return getReceivedFields().get(Field.HANDLE_MAX);
     }
 
     public Object getReceivedOfferedCapabilities()
     {
-        return getReceivedFields().get(FIELD_OFFERED_CAPABILITIES);
+        return getReceivedFields().get(Field.OFFERED_CAPABILITIES);
     }
 
     public Object getReceivedDesiredCapabilities()
     {
-        return getReceivedFields().get(FIELD_DESIRED_CAPABILITIES);
+        return getReceivedFields().get(Field.DESIRED_CAPABILITIES);
     }
 
     public Object getReceivedProperties()
     {
-        return getReceivedFields().get(FIELD_PROPERTIES);
+        return getReceivedFields().get(Field.PROPERTIES);
     }
 
+    @Override
+    protected Enum<?> getField(int fieldIndex)
+    {
+        return Field.values()[fieldIndex];
+    }
 }
 

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/CloseMatcher.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/CloseMatcher.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/CloseMatcher.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/CloseMatcher.java Fri Sep 13 12:52:52 2013
@@ -32,8 +32,11 @@ import org.hamcrest.Matcher;
  */
 public class CloseMatcher extends FrameWithNoPayloadMatchingHandler
 {
-
-    private static final int FIELD_ERROR = 0;
+    /** Note that the ordinals of the Field enums match the order specified in the spec */
+    public enum Field
+    {
+        ERROR,
+    }
 
     public CloseMatcher()
     {
@@ -41,7 +44,7 @@ public class CloseMatcher extends FrameW
               ANY_CHANNEL,
               UnsignedLong.valueOf(0x0000000000000018L),
               Symbol.valueOf("amqp:close:list"),
-              new HashMap<Integer, Matcher<?>>(),
+              new HashMap<Enum<?>, Matcher<?>>(),
               null);
     }
 
@@ -54,14 +57,19 @@ public class CloseMatcher extends FrameW
 
     public CloseMatcher withError(Matcher<?> m)
     {
-        getMatchers().put(FIELD_ERROR, m);
+        getMatchers().put(Field.ERROR, m);
         return this;
     }
 
     public Object getReceivedError()
     {
-        return getReceivedFields().get(FIELD_ERROR);
+        return getReceivedFields().get(Field.ERROR);
     }
 
+    @Override
+    protected Enum<?> getField(int fieldIndex)
+    {
+        return Field.values()[fieldIndex];
+    }
 }
 

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/DetachMatcher.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/DetachMatcher.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/DetachMatcher.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/DetachMatcher.java Fri Sep 13 12:52:52 2013
@@ -32,10 +32,13 @@ import org.hamcrest.Matcher;
  */
 public class DetachMatcher extends FrameWithNoPayloadMatchingHandler
 {
-
-    private static final int FIELD_HANDLE = 0;
-    private static final int FIELD_CLOSED = 1;
-    private static final int FIELD_ERROR = 2;
+    /** Note that the ordinals of the Field enums match the order specified in the spec */
+    public enum Field
+    {
+        HANDLE,
+        CLOSED,
+        ERROR,
+    }
 
     public DetachMatcher()
     {
@@ -43,7 +46,7 @@ public class DetachMatcher extends Frame
               ANY_CHANNEL,
               UnsignedLong.valueOf(0x0000000000000016L),
               Symbol.valueOf("amqp:detach:list"),
-              new HashMap<Integer, Matcher<?>>(),
+              new HashMap<Enum<?>, Matcher<?>>(),
               null);
     }
 
@@ -56,36 +59,41 @@ public class DetachMatcher extends Frame
 
     public DetachMatcher withHandle(Matcher<?> m)
     {
-        getMatchers().put(FIELD_HANDLE, m);
+        getMatchers().put(Field.HANDLE, m);
         return this;
     }
 
     public DetachMatcher withClosed(Matcher<?> m)
     {
-        getMatchers().put(FIELD_CLOSED, m);
+        getMatchers().put(Field.CLOSED, m);
         return this;
     }
 
     public DetachMatcher withError(Matcher<?> m)
     {
-        getMatchers().put(FIELD_ERROR, m);
+        getMatchers().put(Field.ERROR, m);
         return this;
     }
 
     public Object getReceivedHandle()
     {
-        return getReceivedFields().get(FIELD_HANDLE);
+        return getReceivedFields().get(Field.HANDLE);
     }
 
     public Object getReceivedClosed()
     {
-        return getReceivedFields().get(FIELD_CLOSED);
+        return getReceivedFields().get(Field.CLOSED);
     }
 
     public Object getReceivedError()
     {
-        return getReceivedFields().get(FIELD_ERROR);
+        return getReceivedFields().get(Field.ERROR);
     }
 
+    @Override
+    protected Enum<?> getField(int fieldIndex)
+    {
+        return Field.values()[fieldIndex];
+    }
 }
 

Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/DispositionMatcher.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/DispositionMatcher.java?rev=1522905&r1=1522904&r2=1522905&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/DispositionMatcher.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/test/testpeer/matchers/DispositionMatcher.java Fri Sep 13 12:52:52 2013
@@ -32,13 +32,16 @@ import org.hamcrest.Matcher;
  */
 public class DispositionMatcher extends FrameWithNoPayloadMatchingHandler
 {
-
-    private static final int FIELD_ROLE = 0;
-    private static final int FIELD_FIRST = 1;
-    private static final int FIELD_LAST = 2;
-    private static final int FIELD_SETTLED = 3;
-    private static final int FIELD_STATE = 4;
-    private static final int FIELD_BATCHABLE = 5;
+    /** Note that the ordinals of the Field enums match the order specified in the spec */
+    public enum Field
+    {
+        ROLE,
+        FIRST,
+        LAST,
+        SETTLED,
+        STATE,
+        BATCHABLE,
+    }
 
     public DispositionMatcher()
     {
@@ -46,7 +49,7 @@ public class DispositionMatcher extends 
               ANY_CHANNEL,
               UnsignedLong.valueOf(0x0000000000000015L),
               Symbol.valueOf("amqp:disposition:list"),
-              new HashMap<Integer, Matcher<?>>(),
+              new HashMap<Enum<?>, Matcher<?>>(),
               null);
     }
 
@@ -59,69 +62,74 @@ public class DispositionMatcher extends 
 
     public DispositionMatcher withRole(Matcher<?> m)
     {
-        getMatchers().put(FIELD_ROLE, m);
+        getMatchers().put(Field.ROLE, m);
         return this;
     }
 
     public DispositionMatcher withFirst(Matcher<?> m)
     {
-        getMatchers().put(FIELD_FIRST, m);
+        getMatchers().put(Field.FIRST, m);
         return this;
     }
 
     public DispositionMatcher withLast(Matcher<?> m)
     {
-        getMatchers().put(FIELD_LAST, m);
+        getMatchers().put(Field.LAST, m);
         return this;
     }
 
     public DispositionMatcher withSettled(Matcher<?> m)
     {
-        getMatchers().put(FIELD_SETTLED, m);
+        getMatchers().put(Field.SETTLED, m);
         return this;
     }
 
     public DispositionMatcher withState(Matcher<?> m)
     {
-        getMatchers().put(FIELD_STATE, m);
+        getMatchers().put(Field.STATE, m);
         return this;
     }
 
     public DispositionMatcher withBatchable(Matcher<?> m)
     {
-        getMatchers().put(FIELD_BATCHABLE, m);
+        getMatchers().put(Field.BATCHABLE, m);
         return this;
     }
 
     public Object getReceivedRole()
     {
-        return getReceivedFields().get(FIELD_ROLE);
+        return getReceivedFields().get(Field.ROLE);
     }
 
     public Object getReceivedFirst()
     {
-        return getReceivedFields().get(FIELD_FIRST);
+        return getReceivedFields().get(Field.FIRST);
     }
 
     public Object getReceivedLast()
     {
-        return getReceivedFields().get(FIELD_LAST);
+        return getReceivedFields().get(Field.LAST);
     }
 
     public Object getReceivedSettled()
     {
-        return getReceivedFields().get(FIELD_SETTLED);
+        return getReceivedFields().get(Field.SETTLED);
     }
 
     public Object getReceivedState()
     {
-        return getReceivedFields().get(FIELD_STATE);
+        return getReceivedFields().get(Field.STATE);
     }
 
     public Object getReceivedBatchable()
     {
-        return getReceivedFields().get(FIELD_BATCHABLE);
+        return getReceivedFields().get(Field.BATCHABLE);
     }
 
+    @Override
+    protected Enum<?> getField(int fieldIndex)
+    {
+        return Field.values()[fieldIndex];
+    }
 }
 



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