You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kp...@apache.org on 2017/10/04 21:20:53 UTC

[3/3] qpid-interop-test git commit: QPIDIT-97: Prepare for v. 0.1.0, this is RC3

QPIDIT-97: Prepare for v. 0.1.0, this is RC3


Project: http://git-wip-us.apache.org/repos/asf/qpid-interop-test/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-interop-test/commit/84a22327
Tree: http://git-wip-us.apache.org/repos/asf/qpid-interop-test/tree/84a22327
Diff: http://git-wip-us.apache.org/repos/asf/qpid-interop-test/diff/84a22327

Branch: refs/heads/master
Commit: 84a22327ea84e32519c1bb71a3592dc4a217e38f
Parents: dda19a9
Author: Kim van der Riet <kp...@apache.org>
Authored: Wed Oct 4 17:20:31 2017 -0400
Committer: Kim van der Riet <kp...@apache.org>
Committed: Wed Oct 4 17:20:31 2017 -0400

----------------------------------------------------------------------
 pom.xml                                         |   4 +-
 shims/qpid-jms/pom.xml                          |   2 +-
 .../jms_dtx_test/Receiver.java                  | 407 -------------------
 .../qpid_interop_test/jms_dtx_test/Sender.java  | 113 -----
 .../jms_hdrs_props_test/Receiver.java           |   2 +-
 .../jms_hdrs_props_test/Sender.java             |   2 +-
 .../jms_large_content_test/Receiver.java        | 407 -------------------
 .../jms_large_content_test/Sender.java          | 113 -----
 .../jms_messages_test/Receiver.java             |   2 +-
 .../jms_messages_test/Sender.java               |   2 +-
 .../jms_dtx_test/Receiver.java                  | 407 +++++++++++++++++++
 .../qpid_interop_test/jms_dtx_test/Sender.java  | 113 +++++
 .../jms_large_content_test/Receiver.java        | 407 +++++++++++++++++++
 .../jms_large_content_test/Sender.java          | 113 +++++
 .../src/not_yet_impl/amqp_dtx_test/Receiver.cpp |  43 ++
 .../src/not_yet_impl/amqp_dtx_test/Receiver.hpp |  39 ++
 .../src/not_yet_impl/amqp_dtx_test/Sender.cpp   |  43 ++
 .../src/not_yet_impl/amqp_dtx_test/Sender.hpp   |  39 ++
 .../amqp_features_test/Receiver.cpp             |  43 ++
 .../amqp_features_test/Receiver.hpp             |  39 ++
 .../not_yet_impl/amqp_features_test/Sender.cpp  | 138 +++++++
 .../not_yet_impl/amqp_features_test/Sender.hpp  |  67 +++
 .../src/not_yet_impl/jms_dtx_test/Receiver.cpp  |  43 ++
 .../src/not_yet_impl/jms_dtx_test/Receiver.hpp  |  39 ++
 .../src/not_yet_impl/jms_dtx_test/Sender.cpp    |  43 ++
 .../src/not_yet_impl/jms_dtx_test/Sender.hpp    |  39 ++
 .../jms_large_content_test/Receiver.cpp         |  43 ++
 .../jms_large_content_test/Receiver.hpp         |  39 ++
 .../jms_large_content_test/Sender.cpp           |  43 ++
 .../jms_large_content_test/Sender.hpp           |  39 ++
 .../src/qpidit/amqp_dtx_test/Receiver.cpp       |  43 --
 .../src/qpidit/amqp_dtx_test/Receiver.hpp       |  39 --
 .../src/qpidit/amqp_dtx_test/Sender.cpp         |  43 --
 .../src/qpidit/amqp_dtx_test/Sender.hpp         |  39 --
 .../src/qpidit/amqp_features_test/Receiver.cpp  |  43 --
 .../src/qpidit/amqp_features_test/Receiver.hpp  |  39 --
 .../src/qpidit/amqp_features_test/Sender.cpp    | 138 -------
 .../src/qpidit/amqp_features_test/Sender.hpp    |  67 ---
 .../src/qpidit/jms_dtx_test/Receiver.cpp        |  43 --
 .../src/qpidit/jms_dtx_test/Receiver.hpp        |  39 --
 .../src/qpidit/jms_dtx_test/Sender.cpp          |  43 --
 .../src/qpidit/jms_dtx_test/Sender.hpp          |  39 --
 .../qpidit/jms_large_content_test/Receiver.cpp  |  43 --
 .../qpidit/jms_large_content_test/Receiver.hpp  |  39 --
 .../qpidit/jms_large_content_test/Sender.cpp    |  43 --
 .../qpidit/jms_large_content_test/Sender.hpp    |  39 --
 .../not_yet_impl/amqp_dtx_test/Receiver.py      |  76 ++++
 .../not_yet_impl/amqp_dtx_test/Sender.py        |  95 +++++
 .../not_yet_impl/amqp_features_test/Receiver.py |  96 +++++
 .../not_yet_impl/amqp_features_test/Sender.py   | 113 +++++
 .../not_yet_impl/jms_dtx_test/Receiver.py       |  77 ++++
 .../not_yet_impl/jms_dtx_test/Sender.py         |  96 +++++
 .../jms_large_content_test/Receiver.py          |  77 ++++
 .../jms_large_content_test/Sender.py            |  96 +++++
 .../src/amqp_dtx_test/Receiver.py               |  76 ----
 .../src/amqp_dtx_test/Sender.py                 |  95 -----
 .../src/amqp_features_test/Receiver.py          |  96 -----
 .../src/amqp_features_test/Sender.py            | 113 -----
 .../src/jms_dtx_test/Receiver.py                |  77 ----
 .../src/jms_dtx_test/Sender.py                  |  96 -----
 .../src/jms_large_content_test/Receiver.py      |  77 ----
 .../src/jms_large_content_test/Sender.py        |  96 -----
 .../qpid_interop_test/jms_hdrs_props_test.py    |   8 +-
 .../qpid_interop_test/jms_messages_test.py      |   9 +-
 src/python/qpid_interop_test/shims.py           |   5 -
 utils/pom.xml                                   |   2 +-
 66 files changed, 2564 insertions(+), 2564 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-interop-test/blob/84a22327/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index ae6c3e7..f80cc0c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
   <groupId>org.apache.qpid</groupId>
   <artifactId>qpid-interop-test-parent</artifactId>
   <packaging>pom</packaging>
-  <version>0.1.0-SNAPSHOT</version>
+  <version>0.1.0</version>
   <url>https://qpid.apache.org</url>
   <name>Qpid Interop Test</name>
   <description>Qpid client interoperability test suite for AMQP 1.0 clients</description>
@@ -53,7 +53,7 @@
     <!-- Dependency versions -->
     <geronimo.jms.2.spec-version>1.0-alpha-2</geronimo.jms.2.spec-version>
     <json-version>1.1</json-version>
-    <qpid-jms-client-version>[0.25.0-SNAPSHOT,)</qpid-jms-client-version>
+    <qpid-jms-client-version>0.25.0</qpid-jms-client-version>
     <slf4j-version>1.7.25</slf4j-version>
     
   </properties>

http://git-wip-us.apache.org/repos/asf/qpid-interop-test/blob/84a22327/shims/qpid-jms/pom.xml
----------------------------------------------------------------------
diff --git a/shims/qpid-jms/pom.xml b/shims/qpid-jms/pom.xml
index 5030e71..33739d9 100644
--- a/shims/qpid-jms/pom.xml
+++ b/shims/qpid-jms/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.qpid</groupId>
     <artifactId>qpid-interop-test-parent</artifactId>
-    <version>0.1.0-SNAPSHOT</version>
+    <version>0.1.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>

http://git-wip-us.apache.org/repos/asf/qpid-interop-test/blob/84a22327/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Receiver.java
----------------------------------------------------------------------
diff --git a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Receiver.java b/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Receiver.java
deleted file mode 100644
index a4763f8..0000000
--- a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Receiver.java
+++ /dev/null
@@ -1,407 +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.interop_test.jms_dtx_test;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.List;
-import javax.jms.BytesMessage;
-import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
-import javax.jms.Destination;
-import javax.jms.ExceptionListener;
-import javax.jms.JMSException;
-import javax.jms.MapMessage;
-import javax.jms.Message;
-import javax.jms.MessageConsumer;
-import javax.jms.ObjectMessage;
-import javax.jms.Queue;
-import javax.jms.Session;
-import javax.jms.StreamMessage;
-import javax.jms.TextMessage;
-import javax.jms.Topic;
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonReader;
-import javax.json.JsonWriter;
-import org.apache.qpid.jms.JmsConnectionFactory;
-
-public class Receiver {
-    private static final String USER = "guest";
-    private static final String PASSWORD = "guest";
-    private static final int TIMEOUT = 1000;
-    private static final String[] SUPPORTED_JMS_MESSAGE_TYPES = {"JMS_MESSAGE_TYPE",
-                                                                 "JMS_BYTESMESSAGE_TYPE",
-                                                                 "JMS_MAPMESSAGE_TYPE",
-                                                                 "JMS_OBJECTMESSAGE_TYPE",
-                                                                 "JMS_STREAMMESSAGE_TYPE",
-                                                                 "JMS_TEXTMESSAGE_TYPE"};
-    private static enum JMS_DESTINATION_TYPE {JMS_QUEUE, JMS_TEMPORARY_QUEUE, JMS_TOPIC, JMS_TEMPORARY_TOPIC};
-    
-    Connection _connection;
-    Session _session;
-    Queue _queue;
-    MessageConsumer _messageConsumer;
-    JsonObjectBuilder _jsonTestValueMapBuilder;
-    
-    // args[0]: Broker URL
-    // args[1]: Queue name
-    // args[2]: JMS message type
-    // args[3]: JSON Test parameters containing testValuesMap
-    public static void main(String[] args) throws Exception {
-        if (args.length != 4) {
-            System.out.println("JmsReceiverShim: Incorrect number of arguments");
-            System.out.println("JmsReceiverShim: Expected arguments: broker_address, queue_name, JMS_msg_type, JSON_receive_params");
-            System.exit(1);
-        }
-        String brokerAddress = "amqp://" + args[0];
-        String queueName = args[1];
-        String jmsMessageType = args[2];
-        if (!isSupportedJmsMessageType(jmsMessageType)) {
-            System.out.println("ERROR: JmsReceiverShim: Unknown or unsupported JMS message type \"" + jmsMessageType + "\"");
-            System.exit(1);
-        }
-
-        JsonReader jsonReader = Json.createReader(new StringReader(args[3]));
-        JsonObject numTestValuesMap = jsonReader.readObject();
-        jsonReader.close();
-        
-        Receiver shim = new Receiver(brokerAddress, queueName);
-        shim.run(jmsMessageType, numTestValuesMap);
-    }
-
-    public Receiver(String brokerAddress, String queueName) {
-        try {
-            _connection = null;
-            ConnectionFactory factory = (ConnectionFactory)new JmsConnectionFactory(brokerAddress);
-            _connection = factory.createConnection(USER, PASSWORD);
-            _connection.setExceptionListener(new MyExceptionListener());
-            _connection.start();
-
-            _session = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-
-            _queue = _session.createQueue(queueName);
-
-            _messageConsumer = _session.createConsumer(_queue);
-
-            _jsonTestValueMapBuilder = Json.createObjectBuilder();
-        } catch (Exception exc) {
-            if (_connection != null)
-                try { _connection.close(); } catch (JMSException e) {}
-            System.out.println("Caught exception, exiting.");
-            exc.printStackTrace(System.out);
-            System.exit(1);
-        }
-    }
-    
-    public void run(String jmsMessageType, JsonObject numTestValuesMap) {
-        try {
-            List<String> subTypeKeyList = new ArrayList<String>(numTestValuesMap.keySet());
-            Collections.sort(subTypeKeyList);
-            
-            Message message = null;
-            
-            for (String subType: subTypeKeyList) {
-                JsonArrayBuilder jasonTestValuesArrayBuilder = Json.createArrayBuilder();
-                for (int i=0; i<numTestValuesMap.getJsonNumber(subType).intValue(); ++i) {
-                    message = _messageConsumer.receive(TIMEOUT);
-                    if (message == null) break;
-                    switch (jmsMessageType) {
-                    case "JMS_MESSAGE_TYPE":
-                        processJMSMessage(jasonTestValuesArrayBuilder);
-                        break;
-                    case "JMS_BYTESMESSAGE_TYPE":
-                        processJMSBytesMessage(jmsMessageType, subType, message, jasonTestValuesArrayBuilder);
-                        break;
-                    case "JMS_STREAMMESSAGE_TYPE":
-                        processJMSStreamMessage(jmsMessageType, subType, message, jasonTestValuesArrayBuilder);
-                        break;
-                    case "JMS_MAPMESSAGE_TYPE":
-                        processJMSMapMessage(jmsMessageType, subType, i, message, jasonTestValuesArrayBuilder);
-                        break;
-                    case "JMS_OBJECTMESSAGE_TYPE":
-                        processJMSObjectMessage(subType, message, jasonTestValuesArrayBuilder);
-                        break;
-                    case "JMS_TEXTMESSAGE_TYPE":
-                        processJMSTextMessage(message, jasonTestValuesArrayBuilder);
-                        break;
-                    default:
-                        _connection.close();
-                        throw new Exception("JmsReceiverShim: Internal error: Unknown or unsupported JMS message type \"" + jmsMessageType + "\"");
-                    }
-                }
-                _jsonTestValueMapBuilder.add(subType, jasonTestValuesArrayBuilder);
-            }
-            _connection.close();
-    
-            System.out.println(jmsMessageType);
-            StringWriter out = new StringWriter();
-            writeJsonObject(_jsonTestValueMapBuilder, out);
-            System.out.println(out.toString());        
-        } catch (Exception exp) {
-            try { _connection.close(); } catch (JMSException e) {}
-            System.out.println("Caught exception, exiting.");
-            exp.printStackTrace(System.out);
-            System.exit(1);
-        }
-    }
-    
-    protected void processJMSMessage(JsonArrayBuilder jasonTestValuesArrayBuilder) {
-        jasonTestValuesArrayBuilder.addNull();        
-    }
-    
-    protected void processJMSBytesMessage(String jmsMessageType, String subType, Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws Exception, JMSException, IOException, ClassNotFoundException {
-        switch (subType) {
-        case "boolean":
-            jasonTestValuesArrayBuilder.add(((BytesMessage)message).readBoolean()?"True":"False");
-            break;
-        case "byte":
-            jasonTestValuesArrayBuilder.add(formatByte(((BytesMessage)message).readByte()));
-            break;
-        case "bytes":
-            {
-                byte[] bytesBuff = new byte[65536];
-                int numBytesRead = ((BytesMessage)message).readBytes(bytesBuff);
-                if (numBytesRead >= 0) {
-                    jasonTestValuesArrayBuilder.add(new String(Arrays.copyOfRange(bytesBuff, 0, numBytesRead)));
-                } else {
-                    // NOTE: For this case, an empty byte array has nothing to return
-                    jasonTestValuesArrayBuilder.add(new String());
-                }
-            }
-            break;
-        case "char":
-            jasonTestValuesArrayBuilder.add(formatChar(((BytesMessage)message).readChar()));
-            break;
-        case "double":
-            long l = Double.doubleToRawLongBits(((BytesMessage)message).readDouble());
-            jasonTestValuesArrayBuilder.add(String.format("0x%16s", Long.toHexString(l)).replace(' ', '0'));
-            break;
-        case "float":
-            int i0 = Float.floatToRawIntBits(((BytesMessage)message).readFloat());
-            jasonTestValuesArrayBuilder.add(String.format("0x%8s", Integer.toHexString(i0)).replace(' ', '0'));
-            break;
-        case "int":
-            jasonTestValuesArrayBuilder.add(formatInt(((BytesMessage)message).readInt()));
-            break;
-        case "long":
-            jasonTestValuesArrayBuilder.add(formatLong(((BytesMessage)message).readLong()));
-            break;
-        case "object":
-            {
-                byte[] bytesBuff = new byte[65536];
-                int numBytesRead = ((BytesMessage)message).readBytes(bytesBuff);
-                if (numBytesRead >= 0) {
-                    ByteArrayInputStream bais = new ByteArrayInputStream(Arrays.copyOfRange(bytesBuff, 0, numBytesRead));
-                    ObjectInputStream ois = new ObjectInputStream(bais);
-                    Object obj = ois.readObject();
-                    jasonTestValuesArrayBuilder.add(obj.getClass().getName() + ":" + obj.toString());
-                } else {
-                    jasonTestValuesArrayBuilder.add("<object error>");
-                }
-            }
-            break;
-        case "short":
-            jasonTestValuesArrayBuilder.add(formatShort(((BytesMessage)message).readShort()));
-            break;
-        case "string":
-            jasonTestValuesArrayBuilder.add(((BytesMessage)message).readUTF());
-            break;
-        default:
-            throw new Exception("JmsReceiverShim: Unknown subtype for " + jmsMessageType + ": \"" + subType + "\"");
-        }        
-    }
-    
-    protected void processJMSMapMessage(String jmsMessageType, String subType, int count, Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws Exception, JMSException {
-        String name = String.format("%s%03d", subType, count);
-        switch (subType) {
-        case "boolean":
-            jasonTestValuesArrayBuilder.add(((MapMessage)message).getBoolean(name)?"True":"False");
-            break;
-        case "byte":
-            jasonTestValuesArrayBuilder.add(formatByte(((MapMessage)message).getByte(name)));
-            break;
-        case "bytes":
-            jasonTestValuesArrayBuilder.add(new String(((MapMessage)message).getBytes(name)));
-            break;
-        case "char":
-            jasonTestValuesArrayBuilder.add(formatChar(((MapMessage)message).getChar(name)));
-            break;
-        case "double":
-            long l = Double.doubleToRawLongBits(((MapMessage)message).getDouble(name));
-            jasonTestValuesArrayBuilder.add(String.format("0x%16s", Long.toHexString(l)).replace(' ', '0'));
-            break;
-        case "float":
-            int i0 = Float.floatToRawIntBits(((MapMessage)message).getFloat(name));
-            jasonTestValuesArrayBuilder.add(String.format("0x%8s", Integer.toHexString(i0)).replace(' ', '0'));
-            break;
-        case "int":
-            jasonTestValuesArrayBuilder.add(formatInt(((MapMessage)message).getInt(name)));
-            break;
-        case "long":
-            jasonTestValuesArrayBuilder.add(formatLong(((MapMessage)message).getLong(name)));
-            break;
-        case "object":
-            Object obj = ((MapMessage)message).getObject(name);
-            jasonTestValuesArrayBuilder.add(obj.getClass().getName() + ":" + obj.toString());
-            break;
-        case "short":
-            jasonTestValuesArrayBuilder.add(formatShort(((MapMessage)message).getShort(name)));
-            break;
-        case "string":
-            jasonTestValuesArrayBuilder.add(((MapMessage)message).getString(name));
-            break;
-        default:
-            throw new Exception("JmsReceiverShim: Unknown subtype for " + jmsMessageType + ": \"" + subType + "\"");
-        }        
-    }
-    
-    protected void processJMSObjectMessage(String subType, Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws JMSException {
-        jasonTestValuesArrayBuilder.add(((ObjectMessage)message).getObject().toString());
-    }
-    
-    protected void processJMSStreamMessage(String jmsMessageType, String subType, Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws Exception, JMSException {
-        switch (subType) {
-        case "boolean":
-            jasonTestValuesArrayBuilder.add(((StreamMessage)message).readBoolean()?"True":"False");
-            break;
-        case "byte":
-            jasonTestValuesArrayBuilder.add(formatByte(((StreamMessage)message).readByte()));
-            break;
-        case "bytes":
-            byte[] bytesBuff = new byte[65536];
-            int numBytesRead = ((StreamMessage)message).readBytes(bytesBuff);
-            if (numBytesRead >= 0) {
-                jasonTestValuesArrayBuilder.add(new String(Arrays.copyOfRange(bytesBuff, 0, numBytesRead)));
-            } else {
-                System.out.println("StreamMessage.readBytes() returned " + numBytesRead);
-                jasonTestValuesArrayBuilder.add("<bytes error>");
-            }
-            break;
-        case "char":
-            jasonTestValuesArrayBuilder.add(formatChar(((StreamMessage)message).readChar()));
-            break;
-        case "double":
-            long l = Double.doubleToRawLongBits(((StreamMessage)message).readDouble());
-            jasonTestValuesArrayBuilder.add(String.format("0x%16s", Long.toHexString(l)).replace(' ', '0'));
-            break;
-        case "float":
-            int i0 = Float.floatToRawIntBits(((StreamMessage)message).readFloat());
-            jasonTestValuesArrayBuilder.add(String.format("0x%8s", Integer.toHexString(i0)).replace(' ', '0'));
-            break;
-        case "int":
-            jasonTestValuesArrayBuilder.add(formatInt(((StreamMessage)message).readInt()));
-            break;
-        case "long":
-            jasonTestValuesArrayBuilder.add(formatLong(((StreamMessage)message).readLong()));
-            break;
-        case "object":
-            Object obj = ((StreamMessage)message).readObject();
-            jasonTestValuesArrayBuilder.add(obj.getClass().getName() + ":" + obj.toString());
-            break;
-        case "short":
-            jasonTestValuesArrayBuilder.add(formatShort(((StreamMessage)message).readShort()));
-            break;
-        case "string":
-            jasonTestValuesArrayBuilder.add(((StreamMessage)message).readString());
-            break;
-        default:
-            throw new Exception("JmsReceiverShim: Unknown subtype for " + jmsMessageType + ": \"" + subType + "\"");
-        }        
-    }
-
-    protected void processJMSTextMessage(Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws JMSException {
-        jasonTestValuesArrayBuilder.add(((TextMessage)message).getText());
-    }
-
-    protected static void writeJsonObject(JsonObjectBuilder builder, StringWriter out) {
-        JsonWriter jsonWriter = Json.createWriter(out);
-        jsonWriter.writeObject(builder.build());
-        jsonWriter.close();        
-    }
-
-    protected static String formatByte(byte b) {
-        boolean neg = false;
-        if (b < 0) {
-            neg = true;
-            b = (byte)-b;
-        }
-        return String.format("%s0x%x", neg?"-":"", b);
-    }
-    
-    protected static String formatChar(char c) {
-        if (Character.isLetterOrDigit(c)) {
-            return String.format("%c", c);
-        }
-        char[] ca = {c};
-        return new String(ca);
-    }
-    
-    protected static String formatInt(int i) {
-        boolean neg = false;
-        if (i < 0) {
-            neg = true;
-            i = -i;
-        }
-        return String.format("%s0x%x", neg?"-":"", i);
-    }
-    
-    protected static String formatLong(long l) {
-        boolean neg = false;
-        if (l < 0) {
-            neg = true;
-            l = -l;
-        }
-        return String.format("%s0x%x", neg?"-":"", l);
-    }
-    
-    protected static String formatShort(int s) {
-        boolean neg = false;
-        if (s < 0) {
-            neg = true;
-            s = -s;
-        }
-        return String.format("%s0x%x", neg?"-":"", s);
-    }
-        
-    protected static boolean isSupportedJmsMessageType(String jmsMessageType) {
-        for (String supportedJmsMessageType: SUPPORTED_JMS_MESSAGE_TYPES) {
-            if (jmsMessageType.equals(supportedJmsMessageType))
-                return true;
-        }
-    return false;
-    }
-
-    private static class MyExceptionListener implements ExceptionListener {
-        @Override
-        public void onException(JMSException exception) {
-            System.out.println("Connection ExceptionListener fired, exiting.");
-            exception.printStackTrace(System.out);
-            System.exit(1);
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-interop-test/blob/84a22327/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Sender.java
----------------------------------------------------------------------
diff --git a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Sender.java b/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Sender.java
deleted file mode 100644
index 78dfa4f..0000000
--- a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Sender.java
+++ /dev/null
@@ -1,113 +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.interop_test.jms_dtx_test;
-
-import java.io.Serializable;
-import java.io.StringReader;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import javax.jms.BytesMessage;
-import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
-import javax.jms.DeliveryMode;
-import javax.jms.ExceptionListener;
-import javax.jms.JMSException;
-import javax.jms.MapMessage;
-import javax.jms.Message;
-import javax.jms.MessageProducer;
-import javax.jms.ObjectMessage;
-import javax.jms.Queue;
-import javax.jms.Session;
-import javax.jms.StreamMessage;
-import javax.jms.TextMessage;
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
-import org.apache.qpid.jms.JmsConnectionFactory;
-
-public class Sender {
-    private static final String USER = "guest";
-    private static final String PASSWORD = "guest";
-    private static final String[] SUPPORTED_JMS_MESSAGE_TYPES = {"JMS_MESSAGE_TYPE",
-                                                                 "JMS_BYTESMESSAGE_TYPE",
-                                                                 "JMS_MAPMESSAGE_TYPE",
-                                                                 "JMS_OBJECTMESSAGE_TYPE",
-                                                                 "JMS_STREAMMESSAGE_TYPE",
-                                                                 "JMS_TEXTMESSAGE_TYPE"};
-    Connection _connection;
-    Session _session;
-    Queue _queue;
-    MessageProducer _messageProducer;
-    int _msgsSent;
-    
-
-    // args[0]: Broker URL
-    // args[1]: Queue name
-    // ...
-    public static void main(String[] args) throws Exception {
-        if (args.length != 2) {
-            System.out.println("JmsSenderShim: Incorrect number of arguments");
-            System.out.println("JmsSenderShim: Expected arguments: broker_address, queue_name, ...");
-            System.exit(1);
-        }
-        String brokerAddress = "amqp://" + args[0];
-        String queueName = args[1];
-
-        Sender shim = new Sender(brokerAddress, queueName);
-        shim.runTests();
-    }
-
-    public Sender(String brokerAddress, String queueName) {
-        try {
-            ConnectionFactory factory = (ConnectionFactory)new JmsConnectionFactory(brokerAddress);
-
-            _connection = factory.createConnection();
-            _connection.setExceptionListener(new MyExceptionListener());
-            _connection.start();
-
-            _session = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-
-            _queue = _session.createQueue(queueName);
-
-            _messageProducer = _session.createProducer(_queue);
-            
-            _msgsSent = 0;
-        } catch (Exception exp) {
-            System.out.println("Caught exception, exiting.");
-            exp.printStackTrace(System.out);
-            System.exit(1);
-        }
-    }
-
-    public void runTests() throws Exception {
-        _connection.close();
-    }
-    
-
-    private static class MyExceptionListener implements ExceptionListener {
-        @Override
-        public void onException(JMSException exception) {
-            System.out.println("Connection ExceptionListener fired, exiting.");
-            exception.printStackTrace(System.out);
-            System.exit(1);
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-interop-test/blob/84a22327/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_hdrs_props_test/Receiver.java
----------------------------------------------------------------------
diff --git a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_hdrs_props_test/Receiver.java b/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_hdrs_props_test/Receiver.java
index 00d2e4c..13331ba 100644
--- a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_hdrs_props_test/Receiver.java
+++ b/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_hdrs_props_test/Receiver.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.qpid.interop_test.jms_hdrs_props_test;
+package org.apache.qpid.qpid_interop_test.jms_hdrs_props_test;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;

http://git-wip-us.apache.org/repos/asf/qpid-interop-test/blob/84a22327/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_hdrs_props_test/Sender.java
----------------------------------------------------------------------
diff --git a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_hdrs_props_test/Sender.java b/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_hdrs_props_test/Sender.java
index 2f38991..efc3fb9 100644
--- a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_hdrs_props_test/Sender.java
+++ b/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_hdrs_props_test/Sender.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.qpid.interop_test.jms_hdrs_props_test;
+package org.apache.qpid.qpid_interop_test.jms_hdrs_props_test;
 
 import java.io.Serializable;
 import java.io.StringReader;

http://git-wip-us.apache.org/repos/asf/qpid-interop-test/blob/84a22327/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_large_content_test/Receiver.java
----------------------------------------------------------------------
diff --git a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_large_content_test/Receiver.java b/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_large_content_test/Receiver.java
deleted file mode 100644
index 0eed5ef..0000000
--- a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_large_content_test/Receiver.java
+++ /dev/null
@@ -1,407 +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.interop_test.jms_large_content_test;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.List;
-import javax.jms.BytesMessage;
-import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
-import javax.jms.Destination;
-import javax.jms.ExceptionListener;
-import javax.jms.JMSException;
-import javax.jms.MapMessage;
-import javax.jms.Message;
-import javax.jms.MessageConsumer;
-import javax.jms.ObjectMessage;
-import javax.jms.Queue;
-import javax.jms.Session;
-import javax.jms.StreamMessage;
-import javax.jms.TextMessage;
-import javax.jms.Topic;
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonReader;
-import javax.json.JsonWriter;
-import org.apache.qpid.jms.JmsConnectionFactory;
-
-public class Receiver {
-    private static final String USER = "guest";
-    private static final String PASSWORD = "guest";
-    private static final int TIMEOUT = 1000;
-    private static final String[] SUPPORTED_JMS_MESSAGE_TYPES = {"JMS_MESSAGE_TYPE",
-                                                                 "JMS_BYTESMESSAGE_TYPE",
-                                                                 "JMS_MAPMESSAGE_TYPE",
-                                                                 "JMS_OBJECTMESSAGE_TYPE",
-                                                                 "JMS_STREAMMESSAGE_TYPE",
-                                                                 "JMS_TEXTMESSAGE_TYPE"};
-    private static enum JMS_DESTINATION_TYPE {JMS_QUEUE, JMS_TEMPORARY_QUEUE, JMS_TOPIC, JMS_TEMPORARY_TOPIC};
-    
-    Connection _connection;
-    Session _session;
-    Queue _queue;
-    MessageConsumer _messageConsumer;
-    JsonObjectBuilder _jsonTestValueMapBuilder;
-    
-    // args[0]: Broker URL
-    // args[1]: Queue name
-    // args[2]: JMS message type
-    // args[3]: JSON Test parameters containing testValuesMap
-    public static void main(String[] args) throws Exception {
-        if (args.length != 4) {
-            System.out.println("JmsReceiverShim: Incorrect number of arguments");
-            System.out.println("JmsReceiverShim: Expected arguments: broker_address, queue_name, JMS_msg_type, JSON_receive_params");
-            System.exit(1);
-        }
-        String brokerAddress = "amqp://" + args[0];
-        String queueName = args[1];
-        String jmsMessageType = args[2];
-        if (!isSupportedJmsMessageType(jmsMessageType)) {
-            System.out.println("ERROR: JmsReceiverShim: Unknown or unsupported JMS message type \"" + jmsMessageType + "\"");
-            System.exit(1);
-        }
-
-        JsonReader jsonReader = Json.createReader(new StringReader(args[3]));
-        JsonObject numTestValuesMap = jsonReader.readObject();
-        jsonReader.close();
-        
-        Receiver shim = new Receiver(brokerAddress, queueName);
-        shim.run(jmsMessageType, numTestValuesMap);
-    }
-
-    public Receiver(String brokerAddress, String queueName) {
-        try {
-            _connection = null;
-            ConnectionFactory factory = (ConnectionFactory)new JmsConnectionFactory(brokerAddress);
-            _connection = factory.createConnection(USER, PASSWORD);
-            _connection.setExceptionListener(new MyExceptionListener());
-            _connection.start();
-
-            _session = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-
-            _queue = _session.createQueue(queueName);
-
-            _messageConsumer = _session.createConsumer(_queue);
-
-            _jsonTestValueMapBuilder = Json.createObjectBuilder();
-        } catch (Exception exc) {
-            if (_connection != null)
-                try { _connection.close(); } catch (JMSException e) {}
-            System.out.println("Caught exception, exiting.");
-            exc.printStackTrace(System.out);
-            System.exit(1);
-        }
-    }
-    
-    public void run(String jmsMessageType, JsonObject numTestValuesMap) {
-        try {
-            List<String> subTypeKeyList = new ArrayList<String>(numTestValuesMap.keySet());
-            Collections.sort(subTypeKeyList);
-            
-            Message message = null;
-            
-            for (String subType: subTypeKeyList) {
-                JsonArrayBuilder jasonTestValuesArrayBuilder = Json.createArrayBuilder();
-                for (int i=0; i<numTestValuesMap.getJsonNumber(subType).intValue(); ++i) {
-                    message = _messageConsumer.receive(TIMEOUT);
-                    if (message == null) break;
-                    switch (jmsMessageType) {
-                    case "JMS_MESSAGE_TYPE":
-                        processJMSMessage(jasonTestValuesArrayBuilder);
-                        break;
-                    case "JMS_BYTESMESSAGE_TYPE":
-                        processJMSBytesMessage(jmsMessageType, subType, message, jasonTestValuesArrayBuilder);
-                        break;
-                    case "JMS_STREAMMESSAGE_TYPE":
-                        processJMSStreamMessage(jmsMessageType, subType, message, jasonTestValuesArrayBuilder);
-                        break;
-                    case "JMS_MAPMESSAGE_TYPE":
-                        processJMSMapMessage(jmsMessageType, subType, i, message, jasonTestValuesArrayBuilder);
-                        break;
-                    case "JMS_OBJECTMESSAGE_TYPE":
-                        processJMSObjectMessage(subType, message, jasonTestValuesArrayBuilder);
-                        break;
-                    case "JMS_TEXTMESSAGE_TYPE":
-                        processJMSTextMessage(message, jasonTestValuesArrayBuilder);
-                        break;
-                    default:
-                        _connection.close();
-                        throw new Exception("JmsReceiverShim: Internal error: Unknown or unsupported JMS message type \"" + jmsMessageType + "\"");
-                    }
-                }
-                _jsonTestValueMapBuilder.add(subType, jasonTestValuesArrayBuilder);
-            }
-            _connection.close();
-    
-            System.out.println(jmsMessageType);
-            StringWriter out = new StringWriter();
-            writeJsonObject(_jsonTestValueMapBuilder, out);
-            System.out.println(out.toString());        
-        } catch (Exception exp) {
-            try { _connection.close(); } catch (JMSException e) {}
-            System.out.println("Caught exception, exiting.");
-            exp.printStackTrace(System.out);
-            System.exit(1);
-        }
-    }
-    
-    protected void processJMSMessage(JsonArrayBuilder jasonTestValuesArrayBuilder) {
-        jasonTestValuesArrayBuilder.addNull();        
-    }
-    
-    protected void processJMSBytesMessage(String jmsMessageType, String subType, Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws Exception, JMSException, IOException, ClassNotFoundException {
-        switch (subType) {
-        case "boolean":
-            jasonTestValuesArrayBuilder.add(((BytesMessage)message).readBoolean()?"True":"False");
-            break;
-        case "byte":
-            jasonTestValuesArrayBuilder.add(formatByte(((BytesMessage)message).readByte()));
-            break;
-        case "bytes":
-            {
-                byte[] bytesBuff = new byte[65536];
-                int numBytesRead = ((BytesMessage)message).readBytes(bytesBuff);
-                if (numBytesRead >= 0) {
-                    jasonTestValuesArrayBuilder.add(new String(Arrays.copyOfRange(bytesBuff, 0, numBytesRead)));
-                } else {
-                    // NOTE: For this case, an empty byte array has nothing to return
-                    jasonTestValuesArrayBuilder.add(new String());
-                }
-            }
-            break;
-        case "char":
-            jasonTestValuesArrayBuilder.add(formatChar(((BytesMessage)message).readChar()));
-            break;
-        case "double":
-            long l = Double.doubleToRawLongBits(((BytesMessage)message).readDouble());
-            jasonTestValuesArrayBuilder.add(String.format("0x%16s", Long.toHexString(l)).replace(' ', '0'));
-            break;
-        case "float":
-            int i0 = Float.floatToRawIntBits(((BytesMessage)message).readFloat());
-            jasonTestValuesArrayBuilder.add(String.format("0x%8s", Integer.toHexString(i0)).replace(' ', '0'));
-            break;
-        case "int":
-            jasonTestValuesArrayBuilder.add(formatInt(((BytesMessage)message).readInt()));
-            break;
-        case "long":
-            jasonTestValuesArrayBuilder.add(formatLong(((BytesMessage)message).readLong()));
-            break;
-        case "object":
-            {
-                byte[] bytesBuff = new byte[65536];
-                int numBytesRead = ((BytesMessage)message).readBytes(bytesBuff);
-                if (numBytesRead >= 0) {
-                    ByteArrayInputStream bais = new ByteArrayInputStream(Arrays.copyOfRange(bytesBuff, 0, numBytesRead));
-                    ObjectInputStream ois = new ObjectInputStream(bais);
-                    Object obj = ois.readObject();
-                    jasonTestValuesArrayBuilder.add(obj.getClass().getName() + ":" + obj.toString());
-                } else {
-                    jasonTestValuesArrayBuilder.add("<object error>");
-                }
-            }
-            break;
-        case "short":
-            jasonTestValuesArrayBuilder.add(formatShort(((BytesMessage)message).readShort()));
-            break;
-        case "string":
-            jasonTestValuesArrayBuilder.add(((BytesMessage)message).readUTF());
-            break;
-        default:
-            throw new Exception("JmsReceiverShim: Unknown subtype for " + jmsMessageType + ": \"" + subType + "\"");
-        }        
-    }
-    
-    protected void processJMSMapMessage(String jmsMessageType, String subType, int count, Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws Exception, JMSException {
-        String name = String.format("%s%03d", subType, count);
-        switch (subType) {
-        case "boolean":
-            jasonTestValuesArrayBuilder.add(((MapMessage)message).getBoolean(name)?"True":"False");
-            break;
-        case "byte":
-            jasonTestValuesArrayBuilder.add(formatByte(((MapMessage)message).getByte(name)));
-            break;
-        case "bytes":
-            jasonTestValuesArrayBuilder.add(new String(((MapMessage)message).getBytes(name)));
-            break;
-        case "char":
-            jasonTestValuesArrayBuilder.add(formatChar(((MapMessage)message).getChar(name)));
-            break;
-        case "double":
-            long l = Double.doubleToRawLongBits(((MapMessage)message).getDouble(name));
-            jasonTestValuesArrayBuilder.add(String.format("0x%16s", Long.toHexString(l)).replace(' ', '0'));
-            break;
-        case "float":
-            int i0 = Float.floatToRawIntBits(((MapMessage)message).getFloat(name));
-            jasonTestValuesArrayBuilder.add(String.format("0x%8s", Integer.toHexString(i0)).replace(' ', '0'));
-            break;
-        case "int":
-            jasonTestValuesArrayBuilder.add(formatInt(((MapMessage)message).getInt(name)));
-            break;
-        case "long":
-            jasonTestValuesArrayBuilder.add(formatLong(((MapMessage)message).getLong(name)));
-            break;
-        case "object":
-            Object obj = ((MapMessage)message).getObject(name);
-            jasonTestValuesArrayBuilder.add(obj.getClass().getName() + ":" + obj.toString());
-            break;
-        case "short":
-            jasonTestValuesArrayBuilder.add(formatShort(((MapMessage)message).getShort(name)));
-            break;
-        case "string":
-            jasonTestValuesArrayBuilder.add(((MapMessage)message).getString(name));
-            break;
-        default:
-            throw new Exception("JmsReceiverShim: Unknown subtype for " + jmsMessageType + ": \"" + subType + "\"");
-        }        
-    }
-    
-    protected void processJMSObjectMessage(String subType, Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws JMSException {
-        jasonTestValuesArrayBuilder.add(((ObjectMessage)message).getObject().toString());
-    }
-    
-    protected void processJMSStreamMessage(String jmsMessageType, String subType, Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws Exception, JMSException {
-        switch (subType) {
-        case "boolean":
-            jasonTestValuesArrayBuilder.add(((StreamMessage)message).readBoolean()?"True":"False");
-            break;
-        case "byte":
-            jasonTestValuesArrayBuilder.add(formatByte(((StreamMessage)message).readByte()));
-            break;
-        case "bytes":
-            byte[] bytesBuff = new byte[65536];
-            int numBytesRead = ((StreamMessage)message).readBytes(bytesBuff);
-            if (numBytesRead >= 0) {
-                jasonTestValuesArrayBuilder.add(new String(Arrays.copyOfRange(bytesBuff, 0, numBytesRead)));
-            } else {
-                System.out.println("StreamMessage.readBytes() returned " + numBytesRead);
-                jasonTestValuesArrayBuilder.add("<bytes error>");
-            }
-            break;
-        case "char":
-            jasonTestValuesArrayBuilder.add(formatChar(((StreamMessage)message).readChar()));
-            break;
-        case "double":
-            long l = Double.doubleToRawLongBits(((StreamMessage)message).readDouble());
-            jasonTestValuesArrayBuilder.add(String.format("0x%16s", Long.toHexString(l)).replace(' ', '0'));
-            break;
-        case "float":
-            int i0 = Float.floatToRawIntBits(((StreamMessage)message).readFloat());
-            jasonTestValuesArrayBuilder.add(String.format("0x%8s", Integer.toHexString(i0)).replace(' ', '0'));
-            break;
-        case "int":
-            jasonTestValuesArrayBuilder.add(formatInt(((StreamMessage)message).readInt()));
-            break;
-        case "long":
-            jasonTestValuesArrayBuilder.add(formatLong(((StreamMessage)message).readLong()));
-            break;
-        case "object":
-            Object obj = ((StreamMessage)message).readObject();
-            jasonTestValuesArrayBuilder.add(obj.getClass().getName() + ":" + obj.toString());
-            break;
-        case "short":
-            jasonTestValuesArrayBuilder.add(formatShort(((StreamMessage)message).readShort()));
-            break;
-        case "string":
-            jasonTestValuesArrayBuilder.add(((StreamMessage)message).readString());
-            break;
-        default:
-            throw new Exception("JmsReceiverShim: Unknown subtype for " + jmsMessageType + ": \"" + subType + "\"");
-        }        
-    }
-
-    protected void processJMSTextMessage(Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws JMSException {
-        jasonTestValuesArrayBuilder.add(((TextMessage)message).getText());
-    }
-
-    protected static void writeJsonObject(JsonObjectBuilder builder, StringWriter out) {
-        JsonWriter jsonWriter = Json.createWriter(out);
-        jsonWriter.writeObject(builder.build());
-        jsonWriter.close();        
-    }
-
-    protected static String formatByte(byte b) {
-        boolean neg = false;
-        if (b < 0) {
-            neg = true;
-            b = (byte)-b;
-        }
-        return String.format("%s0x%x", neg?"-":"", b);
-    }
-    
-    protected static String formatChar(char c) {
-        if (Character.isLetterOrDigit(c)) {
-            return String.format("%c", c);
-        }
-        char[] ca = {c};
-        return new String(ca);
-    }
-    
-    protected static String formatInt(int i) {
-        boolean neg = false;
-        if (i < 0) {
-            neg = true;
-            i = -i;
-        }
-        return String.format("%s0x%x", neg?"-":"", i);
-    }
-    
-    protected static String formatLong(long l) {
-        boolean neg = false;
-        if (l < 0) {
-            neg = true;
-            l = -l;
-        }
-        return String.format("%s0x%x", neg?"-":"", l);
-    }
-    
-    protected static String formatShort(int s) {
-        boolean neg = false;
-        if (s < 0) {
-            neg = true;
-            s = -s;
-        }
-        return String.format("%s0x%x", neg?"-":"", s);
-    }
-        
-    protected static boolean isSupportedJmsMessageType(String jmsMessageType) {
-        for (String supportedJmsMessageType: SUPPORTED_JMS_MESSAGE_TYPES) {
-            if (jmsMessageType.equals(supportedJmsMessageType))
-                return true;
-        }
-    return false;
-    }
-
-    private static class MyExceptionListener implements ExceptionListener {
-        @Override
-        public void onException(JMSException exception) {
-            System.out.println("Connection ExceptionListener fired, exiting.");
-            exception.printStackTrace(System.out);
-            System.exit(1);
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-interop-test/blob/84a22327/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_large_content_test/Sender.java
----------------------------------------------------------------------
diff --git a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_large_content_test/Sender.java b/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_large_content_test/Sender.java
deleted file mode 100644
index 41f5ee8..0000000
--- a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_large_content_test/Sender.java
+++ /dev/null
@@ -1,113 +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.interop_test.jms_large_content_test;
-
-import java.io.Serializable;
-import java.io.StringReader;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import javax.jms.BytesMessage;
-import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
-import javax.jms.DeliveryMode;
-import javax.jms.ExceptionListener;
-import javax.jms.JMSException;
-import javax.jms.MapMessage;
-import javax.jms.Message;
-import javax.jms.MessageProducer;
-import javax.jms.ObjectMessage;
-import javax.jms.Queue;
-import javax.jms.Session;
-import javax.jms.StreamMessage;
-import javax.jms.TextMessage;
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
-import org.apache.qpid.jms.JmsConnectionFactory;
-
-public class Sender {
-    private static final String USER = "guest";
-    private static final String PASSWORD = "guest";
-    private static final String[] SUPPORTED_JMS_MESSAGE_TYPES = {"JMS_MESSAGE_TYPE",
-                                                                 "JMS_BYTESMESSAGE_TYPE",
-                                                                 "JMS_MAPMESSAGE_TYPE",
-                                                                 "JMS_OBJECTMESSAGE_TYPE",
-                                                                 "JMS_STREAMMESSAGE_TYPE",
-                                                                 "JMS_TEXTMESSAGE_TYPE"};
-    Connection _connection;
-    Session _session;
-    Queue _queue;
-    MessageProducer _messageProducer;
-    int _msgsSent;
-    
-
-    // args[0]: Broker URL
-    // args[1]: Queue name
-    // ...
-    public static void main(String[] args) throws Exception {
-        if (args.length != 2) {
-            System.out.println("JmsSenderShim: Incorrect number of arguments");
-            System.out.println("JmsSenderShim: Expected arguments: broker_address, queue_name, ...");
-            System.exit(1);
-        }
-        String brokerAddress = "amqp://" + args[0];
-        String queueName = args[1];
-
-        Sender shim = new Sender(brokerAddress, queueName);
-        shim.runTests();
-    }
-
-    public Sender(String brokerAddress, String queueName) {
-        try {
-            ConnectionFactory factory = (ConnectionFactory)new JmsConnectionFactory(brokerAddress);
-
-            _connection = factory.createConnection();
-            _connection.setExceptionListener(new MyExceptionListener());
-            _connection.start();
-
-            _session = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-
-            _queue = _session.createQueue(queueName);
-
-            _messageProducer = _session.createProducer(_queue);
-            
-            _msgsSent = 0;
-        } catch (Exception exp) {
-            System.out.println("Caught exception, exiting.");
-            exp.printStackTrace(System.out);
-            System.exit(1);
-        }
-    }
-
-    public void runTests() throws Exception {
-        _connection.close();
-    }
-    
-
-    private static class MyExceptionListener implements ExceptionListener {
-        @Override
-        public void onException(JMSException exception) {
-            System.out.println("Connection ExceptionListener fired, exiting.");
-            exception.printStackTrace(System.out);
-            System.exit(1);
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-interop-test/blob/84a22327/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_messages_test/Receiver.java
----------------------------------------------------------------------
diff --git a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_messages_test/Receiver.java b/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_messages_test/Receiver.java
index 07d1f06..a3acb66 100644
--- a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_messages_test/Receiver.java
+++ b/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_messages_test/Receiver.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.qpid.interop_test.jms_messages_test;
+package org.apache.qpid.qpid_interop_test.jms_messages_test;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;

http://git-wip-us.apache.org/repos/asf/qpid-interop-test/blob/84a22327/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_messages_test/Sender.java
----------------------------------------------------------------------
diff --git a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_messages_test/Sender.java b/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_messages_test/Sender.java
index 0cccc97..5348663 100644
--- a/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_messages_test/Sender.java
+++ b/shims/qpid-jms/src/main/java/org/apache/qpid/qpid_interop_test/jms_messages_test/Sender.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.qpid.interop_test.jms_messages_test;
+package org.apache.qpid.qpid_interop_test.jms_messages_test;
 
 import java.io.Serializable;
 import java.io.StringReader;

http://git-wip-us.apache.org/repos/asf/qpid-interop-test/blob/84a22327/shims/qpid-jms/src_not_yet_impl/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Receiver.java
----------------------------------------------------------------------
diff --git a/shims/qpid-jms/src_not_yet_impl/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Receiver.java b/shims/qpid-jms/src_not_yet_impl/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Receiver.java
new file mode 100644
index 0000000..0614e15
--- /dev/null
+++ b/shims/qpid-jms/src_not_yet_impl/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Receiver.java
@@ -0,0 +1,407 @@
+/**
+ * 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.qpid_interop_test.jms_dtx_test;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.List;
+import javax.jms.BytesMessage;
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.Destination;
+import javax.jms.ExceptionListener;
+import javax.jms.JMSException;
+import javax.jms.MapMessage;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.ObjectMessage;
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.jms.StreamMessage;
+import javax.jms.TextMessage;
+import javax.jms.Topic;
+import javax.json.Json;
+import javax.json.JsonArray;
+import javax.json.JsonArrayBuilder;
+import javax.json.JsonObject;
+import javax.json.JsonObjectBuilder;
+import javax.json.JsonReader;
+import javax.json.JsonWriter;
+import org.apache.qpid.jms.JmsConnectionFactory;
+
+public class Receiver {
+    private static final String USER = "guest";
+    private static final String PASSWORD = "guest";
+    private static final int TIMEOUT = 1000;
+    private static final String[] SUPPORTED_JMS_MESSAGE_TYPES = {"JMS_MESSAGE_TYPE",
+                                                                 "JMS_BYTESMESSAGE_TYPE",
+                                                                 "JMS_MAPMESSAGE_TYPE",
+                                                                 "JMS_OBJECTMESSAGE_TYPE",
+                                                                 "JMS_STREAMMESSAGE_TYPE",
+                                                                 "JMS_TEXTMESSAGE_TYPE"};
+    private static enum JMS_DESTINATION_TYPE {JMS_QUEUE, JMS_TEMPORARY_QUEUE, JMS_TOPIC, JMS_TEMPORARY_TOPIC};
+    
+    Connection _connection;
+    Session _session;
+    Queue _queue;
+    MessageConsumer _messageConsumer;
+    JsonObjectBuilder _jsonTestValueMapBuilder;
+    
+    // args[0]: Broker URL
+    // args[1]: Queue name
+    // args[2]: JMS message type
+    // args[3]: JSON Test parameters containing testValuesMap
+    public static void main(String[] args) throws Exception {
+        if (args.length != 4) {
+            System.out.println("JmsReceiverShim: Incorrect number of arguments");
+            System.out.println("JmsReceiverShim: Expected arguments: broker_address, queue_name, JMS_msg_type, JSON_receive_params");
+            System.exit(1);
+        }
+        String brokerAddress = "amqp://" + args[0];
+        String queueName = args[1];
+        String jmsMessageType = args[2];
+        if (!isSupportedJmsMessageType(jmsMessageType)) {
+            System.out.println("ERROR: JmsReceiverShim: Unknown or unsupported JMS message type \"" + jmsMessageType + "\"");
+            System.exit(1);
+        }
+
+        JsonReader jsonReader = Json.createReader(new StringReader(args[3]));
+        JsonObject numTestValuesMap = jsonReader.readObject();
+        jsonReader.close();
+        
+        Receiver shim = new Receiver(brokerAddress, queueName);
+        shim.run(jmsMessageType, numTestValuesMap);
+    }
+
+    public Receiver(String brokerAddress, String queueName) {
+        try {
+            _connection = null;
+            ConnectionFactory factory = (ConnectionFactory)new JmsConnectionFactory(brokerAddress);
+            _connection = factory.createConnection(USER, PASSWORD);
+            _connection.setExceptionListener(new MyExceptionListener());
+            _connection.start();
+
+            _session = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+            _queue = _session.createQueue(queueName);
+
+            _messageConsumer = _session.createConsumer(_queue);
+
+            _jsonTestValueMapBuilder = Json.createObjectBuilder();
+        } catch (Exception exc) {
+            if (_connection != null)
+                try { _connection.close(); } catch (JMSException e) {}
+            System.out.println("Caught exception, exiting.");
+            exc.printStackTrace(System.out);
+            System.exit(1);
+        }
+    }
+    
+    public void run(String jmsMessageType, JsonObject numTestValuesMap) {
+        try {
+            List<String> subTypeKeyList = new ArrayList<String>(numTestValuesMap.keySet());
+            Collections.sort(subTypeKeyList);
+            
+            Message message = null;
+            
+            for (String subType: subTypeKeyList) {
+                JsonArrayBuilder jasonTestValuesArrayBuilder = Json.createArrayBuilder();
+                for (int i=0; i<numTestValuesMap.getJsonNumber(subType).intValue(); ++i) {
+                    message = _messageConsumer.receive(TIMEOUT);
+                    if (message == null) break;
+                    switch (jmsMessageType) {
+                    case "JMS_MESSAGE_TYPE":
+                        processJMSMessage(jasonTestValuesArrayBuilder);
+                        break;
+                    case "JMS_BYTESMESSAGE_TYPE":
+                        processJMSBytesMessage(jmsMessageType, subType, message, jasonTestValuesArrayBuilder);
+                        break;
+                    case "JMS_STREAMMESSAGE_TYPE":
+                        processJMSStreamMessage(jmsMessageType, subType, message, jasonTestValuesArrayBuilder);
+                        break;
+                    case "JMS_MAPMESSAGE_TYPE":
+                        processJMSMapMessage(jmsMessageType, subType, i, message, jasonTestValuesArrayBuilder);
+                        break;
+                    case "JMS_OBJECTMESSAGE_TYPE":
+                        processJMSObjectMessage(subType, message, jasonTestValuesArrayBuilder);
+                        break;
+                    case "JMS_TEXTMESSAGE_TYPE":
+                        processJMSTextMessage(message, jasonTestValuesArrayBuilder);
+                        break;
+                    default:
+                        _connection.close();
+                        throw new Exception("JmsReceiverShim: Internal error: Unknown or unsupported JMS message type \"" + jmsMessageType + "\"");
+                    }
+                }
+                _jsonTestValueMapBuilder.add(subType, jasonTestValuesArrayBuilder);
+            }
+            _connection.close();
+    
+            System.out.println(jmsMessageType);
+            StringWriter out = new StringWriter();
+            writeJsonObject(_jsonTestValueMapBuilder, out);
+            System.out.println(out.toString());        
+        } catch (Exception exp) {
+            try { _connection.close(); } catch (JMSException e) {}
+            System.out.println("Caught exception, exiting.");
+            exp.printStackTrace(System.out);
+            System.exit(1);
+        }
+    }
+    
+    protected void processJMSMessage(JsonArrayBuilder jasonTestValuesArrayBuilder) {
+        jasonTestValuesArrayBuilder.addNull();        
+    }
+    
+    protected void processJMSBytesMessage(String jmsMessageType, String subType, Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws Exception, JMSException, IOException, ClassNotFoundException {
+        switch (subType) {
+        case "boolean":
+            jasonTestValuesArrayBuilder.add(((BytesMessage)message).readBoolean()?"True":"False");
+            break;
+        case "byte":
+            jasonTestValuesArrayBuilder.add(formatByte(((BytesMessage)message).readByte()));
+            break;
+        case "bytes":
+            {
+                byte[] bytesBuff = new byte[65536];
+                int numBytesRead = ((BytesMessage)message).readBytes(bytesBuff);
+                if (numBytesRead >= 0) {
+                    jasonTestValuesArrayBuilder.add(new String(Arrays.copyOfRange(bytesBuff, 0, numBytesRead)));
+                } else {
+                    // NOTE: For this case, an empty byte array has nothing to return
+                    jasonTestValuesArrayBuilder.add(new String());
+                }
+            }
+            break;
+        case "char":
+            jasonTestValuesArrayBuilder.add(formatChar(((BytesMessage)message).readChar()));
+            break;
+        case "double":
+            long l = Double.doubleToRawLongBits(((BytesMessage)message).readDouble());
+            jasonTestValuesArrayBuilder.add(String.format("0x%16s", Long.toHexString(l)).replace(' ', '0'));
+            break;
+        case "float":
+            int i0 = Float.floatToRawIntBits(((BytesMessage)message).readFloat());
+            jasonTestValuesArrayBuilder.add(String.format("0x%8s", Integer.toHexString(i0)).replace(' ', '0'));
+            break;
+        case "int":
+            jasonTestValuesArrayBuilder.add(formatInt(((BytesMessage)message).readInt()));
+            break;
+        case "long":
+            jasonTestValuesArrayBuilder.add(formatLong(((BytesMessage)message).readLong()));
+            break;
+        case "object":
+            {
+                byte[] bytesBuff = new byte[65536];
+                int numBytesRead = ((BytesMessage)message).readBytes(bytesBuff);
+                if (numBytesRead >= 0) {
+                    ByteArrayInputStream bais = new ByteArrayInputStream(Arrays.copyOfRange(bytesBuff, 0, numBytesRead));
+                    ObjectInputStream ois = new ObjectInputStream(bais);
+                    Object obj = ois.readObject();
+                    jasonTestValuesArrayBuilder.add(obj.getClass().getName() + ":" + obj.toString());
+                } else {
+                    jasonTestValuesArrayBuilder.add("<object error>");
+                }
+            }
+            break;
+        case "short":
+            jasonTestValuesArrayBuilder.add(formatShort(((BytesMessage)message).readShort()));
+            break;
+        case "string":
+            jasonTestValuesArrayBuilder.add(((BytesMessage)message).readUTF());
+            break;
+        default:
+            throw new Exception("JmsReceiverShim: Unknown subtype for " + jmsMessageType + ": \"" + subType + "\"");
+        }        
+    }
+    
+    protected void processJMSMapMessage(String jmsMessageType, String subType, int count, Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws Exception, JMSException {
+        String name = String.format("%s%03d", subType, count);
+        switch (subType) {
+        case "boolean":
+            jasonTestValuesArrayBuilder.add(((MapMessage)message).getBoolean(name)?"True":"False");
+            break;
+        case "byte":
+            jasonTestValuesArrayBuilder.add(formatByte(((MapMessage)message).getByte(name)));
+            break;
+        case "bytes":
+            jasonTestValuesArrayBuilder.add(new String(((MapMessage)message).getBytes(name)));
+            break;
+        case "char":
+            jasonTestValuesArrayBuilder.add(formatChar(((MapMessage)message).getChar(name)));
+            break;
+        case "double":
+            long l = Double.doubleToRawLongBits(((MapMessage)message).getDouble(name));
+            jasonTestValuesArrayBuilder.add(String.format("0x%16s", Long.toHexString(l)).replace(' ', '0'));
+            break;
+        case "float":
+            int i0 = Float.floatToRawIntBits(((MapMessage)message).getFloat(name));
+            jasonTestValuesArrayBuilder.add(String.format("0x%8s", Integer.toHexString(i0)).replace(' ', '0'));
+            break;
+        case "int":
+            jasonTestValuesArrayBuilder.add(formatInt(((MapMessage)message).getInt(name)));
+            break;
+        case "long":
+            jasonTestValuesArrayBuilder.add(formatLong(((MapMessage)message).getLong(name)));
+            break;
+        case "object":
+            Object obj = ((MapMessage)message).getObject(name);
+            jasonTestValuesArrayBuilder.add(obj.getClass().getName() + ":" + obj.toString());
+            break;
+        case "short":
+            jasonTestValuesArrayBuilder.add(formatShort(((MapMessage)message).getShort(name)));
+            break;
+        case "string":
+            jasonTestValuesArrayBuilder.add(((MapMessage)message).getString(name));
+            break;
+        default:
+            throw new Exception("JmsReceiverShim: Unknown subtype for " + jmsMessageType + ": \"" + subType + "\"");
+        }        
+    }
+    
+    protected void processJMSObjectMessage(String subType, Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws JMSException {
+        jasonTestValuesArrayBuilder.add(((ObjectMessage)message).getObject().toString());
+    }
+    
+    protected void processJMSStreamMessage(String jmsMessageType, String subType, Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws Exception, JMSException {
+        switch (subType) {
+        case "boolean":
+            jasonTestValuesArrayBuilder.add(((StreamMessage)message).readBoolean()?"True":"False");
+            break;
+        case "byte":
+            jasonTestValuesArrayBuilder.add(formatByte(((StreamMessage)message).readByte()));
+            break;
+        case "bytes":
+            byte[] bytesBuff = new byte[65536];
+            int numBytesRead = ((StreamMessage)message).readBytes(bytesBuff);
+            if (numBytesRead >= 0) {
+                jasonTestValuesArrayBuilder.add(new String(Arrays.copyOfRange(bytesBuff, 0, numBytesRead)));
+            } else {
+                System.out.println("StreamMessage.readBytes() returned " + numBytesRead);
+                jasonTestValuesArrayBuilder.add("<bytes error>");
+            }
+            break;
+        case "char":
+            jasonTestValuesArrayBuilder.add(formatChar(((StreamMessage)message).readChar()));
+            break;
+        case "double":
+            long l = Double.doubleToRawLongBits(((StreamMessage)message).readDouble());
+            jasonTestValuesArrayBuilder.add(String.format("0x%16s", Long.toHexString(l)).replace(' ', '0'));
+            break;
+        case "float":
+            int i0 = Float.floatToRawIntBits(((StreamMessage)message).readFloat());
+            jasonTestValuesArrayBuilder.add(String.format("0x%8s", Integer.toHexString(i0)).replace(' ', '0'));
+            break;
+        case "int":
+            jasonTestValuesArrayBuilder.add(formatInt(((StreamMessage)message).readInt()));
+            break;
+        case "long":
+            jasonTestValuesArrayBuilder.add(formatLong(((StreamMessage)message).readLong()));
+            break;
+        case "object":
+            Object obj = ((StreamMessage)message).readObject();
+            jasonTestValuesArrayBuilder.add(obj.getClass().getName() + ":" + obj.toString());
+            break;
+        case "short":
+            jasonTestValuesArrayBuilder.add(formatShort(((StreamMessage)message).readShort()));
+            break;
+        case "string":
+            jasonTestValuesArrayBuilder.add(((StreamMessage)message).readString());
+            break;
+        default:
+            throw new Exception("JmsReceiverShim: Unknown subtype for " + jmsMessageType + ": \"" + subType + "\"");
+        }        
+    }
+
+    protected void processJMSTextMessage(Message message, JsonArrayBuilder jasonTestValuesArrayBuilder) throws JMSException {
+        jasonTestValuesArrayBuilder.add(((TextMessage)message).getText());
+    }
+
+    protected static void writeJsonObject(JsonObjectBuilder builder, StringWriter out) {
+        JsonWriter jsonWriter = Json.createWriter(out);
+        jsonWriter.writeObject(builder.build());
+        jsonWriter.close();        
+    }
+
+    protected static String formatByte(byte b) {
+        boolean neg = false;
+        if (b < 0) {
+            neg = true;
+            b = (byte)-b;
+        }
+        return String.format("%s0x%x", neg?"-":"", b);
+    }
+    
+    protected static String formatChar(char c) {
+        if (Character.isLetterOrDigit(c)) {
+            return String.format("%c", c);
+        }
+        char[] ca = {c};
+        return new String(ca);
+    }
+    
+    protected static String formatInt(int i) {
+        boolean neg = false;
+        if (i < 0) {
+            neg = true;
+            i = -i;
+        }
+        return String.format("%s0x%x", neg?"-":"", i);
+    }
+    
+    protected static String formatLong(long l) {
+        boolean neg = false;
+        if (l < 0) {
+            neg = true;
+            l = -l;
+        }
+        return String.format("%s0x%x", neg?"-":"", l);
+    }
+    
+    protected static String formatShort(int s) {
+        boolean neg = false;
+        if (s < 0) {
+            neg = true;
+            s = -s;
+        }
+        return String.format("%s0x%x", neg?"-":"", s);
+    }
+        
+    protected static boolean isSupportedJmsMessageType(String jmsMessageType) {
+        for (String supportedJmsMessageType: SUPPORTED_JMS_MESSAGE_TYPES) {
+            if (jmsMessageType.equals(supportedJmsMessageType))
+                return true;
+        }
+    return false;
+    }
+
+    private static class MyExceptionListener implements ExceptionListener {
+        @Override
+        public void onException(JMSException exception) {
+            System.out.println("Connection ExceptionListener fired, exiting.");
+            exception.printStackTrace(System.out);
+            System.exit(1);
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-interop-test/blob/84a22327/shims/qpid-jms/src_not_yet_impl/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Sender.java
----------------------------------------------------------------------
diff --git a/shims/qpid-jms/src_not_yet_impl/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Sender.java b/shims/qpid-jms/src_not_yet_impl/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Sender.java
new file mode 100644
index 0000000..c5b3506
--- /dev/null
+++ b/shims/qpid-jms/src_not_yet_impl/main/java/org/apache/qpid/qpid_interop_test/jms_dtx_test/Sender.java
@@ -0,0 +1,113 @@
+/**
+ * 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.qpid_interop_test.jms_dtx_test;
+
+import java.io.Serializable;
+import java.io.StringReader;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import javax.jms.BytesMessage;
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.DeliveryMode;
+import javax.jms.ExceptionListener;
+import javax.jms.JMSException;
+import javax.jms.MapMessage;
+import javax.jms.Message;
+import javax.jms.MessageProducer;
+import javax.jms.ObjectMessage;
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.jms.StreamMessage;
+import javax.jms.TextMessage;
+import javax.json.Json;
+import javax.json.JsonArray;
+import javax.json.JsonObject;
+import javax.json.JsonReader;
+import org.apache.qpid.jms.JmsConnectionFactory;
+
+public class Sender {
+    private static final String USER = "guest";
+    private static final String PASSWORD = "guest";
+    private static final String[] SUPPORTED_JMS_MESSAGE_TYPES = {"JMS_MESSAGE_TYPE",
+                                                                 "JMS_BYTESMESSAGE_TYPE",
+                                                                 "JMS_MAPMESSAGE_TYPE",
+                                                                 "JMS_OBJECTMESSAGE_TYPE",
+                                                                 "JMS_STREAMMESSAGE_TYPE",
+                                                                 "JMS_TEXTMESSAGE_TYPE"};
+    Connection _connection;
+    Session _session;
+    Queue _queue;
+    MessageProducer _messageProducer;
+    int _msgsSent;
+    
+
+    // args[0]: Broker URL
+    // args[1]: Queue name
+    // ...
+    public static void main(String[] args) throws Exception {
+        if (args.length != 2) {
+            System.out.println("JmsSenderShim: Incorrect number of arguments");
+            System.out.println("JmsSenderShim: Expected arguments: broker_address, queue_name, ...");
+            System.exit(1);
+        }
+        String brokerAddress = "amqp://" + args[0];
+        String queueName = args[1];
+
+        Sender shim = new Sender(brokerAddress, queueName);
+        shim.runTests();
+    }
+
+    public Sender(String brokerAddress, String queueName) {
+        try {
+            ConnectionFactory factory = (ConnectionFactory)new JmsConnectionFactory(brokerAddress);
+
+            _connection = factory.createConnection();
+            _connection.setExceptionListener(new MyExceptionListener());
+            _connection.start();
+
+            _session = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+            _queue = _session.createQueue(queueName);
+
+            _messageProducer = _session.createProducer(_queue);
+            
+            _msgsSent = 0;
+        } catch (Exception exp) {
+            System.out.println("Caught exception, exiting.");
+            exp.printStackTrace(System.out);
+            System.exit(1);
+        }
+    }
+
+    public void runTests() throws Exception {
+        _connection.close();
+    }
+    
+
+    private static class MyExceptionListener implements ExceptionListener {
+        @Override
+        public void onException(JMSException exception) {
+            System.out.println("Connection ExceptionListener fired, exiting.");
+            exception.printStackTrace(System.out);
+            System.exit(1);
+        }
+    }
+}
\ No newline at end of file


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