You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ri...@apache.org on 2007/02/02 16:28:13 UTC

svn commit: r502624 [2/5] - in /incubator/qpid/branches/perftesting/qpid/java: ./ broker/src/main/java/org/apache/qpid/server/ broker/src/main/java/org/apache/qpid/server/ack/ broker/src/main/java/org/apache/qpid/server/protocol/ client/src/main/java/o...

Modified: incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java Fri Feb  2 07:28:08 2007
@@ -121,20 +121,27 @@
 
             stateManager.changeState(AMQState.CONNECTION_NOT_TUNED);
             FieldTable clientProperties = FieldTableFactory.newFieldTable();
-            
-            clientProperties.put(ClientProperties.instance.toString(), ps.getClientID());
-            clientProperties.put(ClientProperties.product.toString(), QpidProperties.getProductName());
-            clientProperties.put(ClientProperties.version.toString(), QpidProperties.getReleaseVersion());
-            clientProperties.put(ClientProperties.platform.toString(), getFullSystemInfo());
+
+            try
+            {
+                clientProperties.put(ClientProperties.instance.toString(), ps.getClientID());
+                clientProperties.put(ClientProperties.product.toString(), QpidProperties.getProductName());
+                clientProperties.put(ClientProperties.version.toString(), QpidProperties.getReleaseVersion());
+                clientProperties.put(ClientProperties.platform.toString(), getFullSystemInfo());
+            }
+            catch (Exception e)
+            {
+                e.printStackTrace();
+            }
             // AMQP version change: Hardwire the version to 0-8 (major=8, minor=0)
             // TODO: Connect this to the session version obtained from ProtocolInitiation for this session.
             // Be aware of possible changes to parameter order as versions change.
             ps.writeFrame(ConnectionStartOkBody.createAMQFrame(evt.getChannelId(),
-                (byte)8, (byte)0,	// AMQP version (major, minor)
-                clientProperties,	// clientProperties
-                selectedLocale,	// locale
-                mechanism,	// mechanism
-                saslResponse));	// response
+                                                               (byte) 8, (byte) 0,    // AMQP version (major, minor)
+                                                               clientProperties,    // clientProperties
+                                                               selectedLocale,    // locale
+                                                               mechanism,    // mechanism
+                                                               saslResponse));    // response
         }
         catch (UnsupportedEncodingException e)
         {

Modified: incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageConverter.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageConverter.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageConverter.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageConverter.java Fri Feb  2 07:28:08 2007
@@ -25,7 +25,8 @@
 import javax.jms.*;
 import java.util.Enumeration;
 
-public class MessageConverter {
+public class MessageConverter
+{
 
     /**
      * Log4J logger
@@ -114,6 +115,16 @@
         {
             //we're at the end so don't mind the exception
         }
+        _newMessage = (AbstractJMSMessage) nativeMessage;
+        setMessageProperties(message);
+    }
+    
+    public MessageConverter(Message message) throws JMSException
+    {
+        //Send a message with just properties.
+        // Throwing away content
+        BytesMessage nativeMessage = new JMSBytesMessage();
+
         _newMessage = (AbstractJMSMessage) nativeMessage;
         setMessageProperties(message);
     }

Modified: incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java Fri Feb  2 07:28:08 2007
@@ -29,6 +29,7 @@
 import org.apache.qpid.AMQConnectionClosedException;
 import org.apache.qpid.AMQDisconnectedException;
 import org.apache.qpid.AMQException;
+import org.apache.qpid.pool.ReadWriteThreadModel;
 import org.apache.qpid.client.AMQConnection;
 import org.apache.qpid.client.AMQSession;
 import org.apache.qpid.client.failover.FailoverHandler;
@@ -146,6 +147,19 @@
             sslFilter.setUseClientMode(true);
             session.getFilterChain().addBefore("protocolFilter", "ssl", sslFilter);
         }
+
+        try
+        {
+
+            ReadWriteThreadModel threadModel = ReadWriteThreadModel.getInstance();
+            threadModel.getAsynchronousReadFilter().createNewJobForSession(session);
+            threadModel.getAsynchronousWriteFilter().createNewJobForSession(session);
+        }
+        catch (RuntimeException e)
+        {
+            e.printStackTrace();
+        }
+
 
         _protocolSession = new AMQProtocolSession(this, session, _connection);
         _protocolSession.init();

Modified: incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/state/AMQStateManager.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/state/AMQStateManager.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/state/AMQStateManager.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/state/AMQStateManager.java Fri Feb  2 07:28:08 2007
@@ -53,6 +53,8 @@
     private final Map _state2HandlersMap = new HashMap();
 
     private final CopyOnWriteArraySet _stateListeners = new CopyOnWriteArraySet();
+    private final Object _stateLock = new Object();
+    private static final long MAXIMUM_STATE_WAIT_TIME = 30000l;
 
     public AMQStateManager()
     {
@@ -62,7 +64,7 @@
     protected AMQStateManager(AMQState state, boolean register)
     {
         _currentState = state;
-        if(register)
+        if (register)
         {
             registerListeners();
         }
@@ -118,17 +120,10 @@
     public void changeState(AMQState newState) throws AMQException
     {
         _logger.debug("State changing to " + newState + " from old state " + _currentState);
-        final AMQState oldState = _currentState;
-        _currentState = newState;
-
-        synchronized (_stateListeners)
+        synchronized (_stateLock)
         {
-            final Iterator it = _stateListeners.iterator();
-            while (it.hasNext())
-            {
-                final StateListener l = (StateListener) it.next();
-                l.stateChanged(oldState, newState);
-            }
+            _currentState = newState;
+            _stateLock.notifyAll();
         }
     }
 
@@ -195,35 +190,33 @@
         }
     }
 
-    public void addStateListener(StateListener listener)
-    {
-        _logger.debug("Adding state listener");
-        _stateListeners.add(listener);
-    }
-
-    public void removeStateListener(StateListener listener)
+    public void attainState(final AMQState s) throws AMQException
     {
-        _stateListeners.remove(listener);
-    }
-
-    public void attainState(AMQState s) throws AMQException
-    {
-        boolean needToWait = false;
-        StateWaiter sw = null;
-        synchronized (_stateListeners)
+        synchronized (_stateLock)
         {
+            final long waitUntilTime = System.currentTimeMillis() + MAXIMUM_STATE_WAIT_TIME;
+            long waitTime = MAXIMUM_STATE_WAIT_TIME;
+
+            while (_currentState != s && waitTime > 0)
+            {
+                try
+                {
+                    _stateLock.wait(MAXIMUM_STATE_WAIT_TIME);
+                }
+                catch (InterruptedException e)
+                {
+                    _logger.warn("Thread interrupted");
+                }
+                if (_currentState != s)
+                {
+                    waitTime = waitUntilTime - System.currentTimeMillis();
+                }
+            }
             if (_currentState != s)
             {
-                _logger.debug("Adding state wait to reach state " + s);
-                sw = new StateWaiter(s);
-                addStateListener(sw);
-                // we use a boolean since we must release the lock before starting to wait
-                needToWait = true;
+                _logger.warn("State not achieved within permitted time.  Current state " + _currentState + ", desired state: " + s);                
+                throw new AMQException("State not achieved within permitted time.  Current state " + _currentState + ", desired state: " + s);
             }
-        }
-        if (needToWait)
-        {
-            sw.waituntilStateHasChanged();
         }
         // at this point the state will have changed.
     }

Modified: incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/transport/SocketTransportConnection.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/transport/SocketTransportConnection.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/transport/SocketTransportConnection.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/transport/SocketTransportConnection.java Fri Feb  2 07:28:08 2007
@@ -71,7 +71,7 @@
         boolean readWriteThreading = Boolean.getBoolean("amqj.shared_read_write_pool");
         if (readWriteThreading)
         {
-            cfg.setThreadModel(new ReadWriteThreadModel());
+            cfg.setThreadModel(ReadWriteThreadModel.getInstance());
         }
 
         SocketSessionConfig scfg = (SocketSessionConfig) cfg.getSessionConfig();

Modified: incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/transport/TransportConnection.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/transport/TransportConnection.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/transport/TransportConnection.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/client/src/main/java/org/apache/qpid/client/transport/TransportConnection.java Fri Feb  2 07:28:08 2007
@@ -70,7 +70,7 @@
 
         IoServiceConfig config = _acceptor.getDefaultConfig();
 
-        config.setThreadModel(new ReadWriteThreadModel());
+        config.setThreadModel(ReadWriteThreadModel.getInstance());
     }
 
     public static ITransportConnection getInstance() throws AMQTransportConnectionException

Added: incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/client/DispatcherTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/client/DispatcherTest.java?view=auto&rev=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/client/DispatcherTest.java (added)
+++ incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/client/DispatcherTest.java Fri Feb  2 07:28:08 2007
@@ -0,0 +1,258 @@
+/*
+ *  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.client;
+
+import junit.framework.TestCase;
+import org.apache.log4j.Logger;
+import org.apache.qpid.client.transport.TransportConnection;
+import org.apache.qpid.jndi.PropertiesFileInitialContextFactory;
+
+import javax.jms.Connection;
+import javax.jms.Session;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageListener;
+import javax.jms.Message;
+import javax.jms.ConnectionFactory;
+import javax.jms.JMSException;
+import javax.naming.Context;
+import javax.naming.spi.InitialContextFactory;
+import java.util.Hashtable;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * QPID-293 Setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue
+ * <p/>
+ * The message delivery process:
+ * Mina puts a message on _queue in AMQSession and the dispatcher thread take()s
+ * from here and dispatches to the _consumers. If the _consumer doesn't have a message listener set at connection start
+ * then messages are stored on _synchronousQueue (which needs to be > 1 to pass JMS TCK as multiple consumers on a
+ * session can run in any order and a synchronous put/poll will block the dispatcher).
+ * <p/>
+ * When setting the message listener later the _synchronousQueue is just poll()'ed and the first message delivered
+ * the remaining messages will be left on the queue and lost, subsequent messages on the session will arrive first.
+ */
+public class DispatcherTest extends TestCase
+{
+    private static final Logger _logger = Logger.getLogger(DispatcherTest.class);
+
+    Context _context;
+
+    private static final int MSG_COUNT = 6;
+    private int _receivedCount = 0;
+    private int _receivedCountWhileStopped = 0;
+    private Connection _clientConnection, _producerConnection;
+    private MessageConsumer _consumer;
+    MessageProducer _producer;
+    Session _clientSession, _producerSession;
+
+    private final CountDownLatch _allFirstMessagesSent = new CountDownLatch(1); //all messages Sent Lock
+    private final CountDownLatch _allSecondMessagesSent = new CountDownLatch(1); //all messages Sent Lock
+
+    private volatile boolean _connectionStopped = false;
+
+    protected void setUp() throws Exception
+    {
+        super.setUp();
+        TransportConnection.createVMBroker(1);
+
+        InitialContextFactory factory = new PropertiesFileInitialContextFactory();
+
+        Hashtable<String, String> env = new Hashtable<String, String>();
+
+        env.put("connectionfactory.connection", "amqp://client:client@MLT_ID/test?brokerlist='vm://:1'");
+        env.put("queue.queue", "direct://amq.direct//MessageListenerTest");
+
+        _context = factory.getInitialContext(env);
+
+        Queue queue = (Queue) _context.lookup("queue");
+
+        //Create Client 1
+        _clientConnection = ((ConnectionFactory) _context.lookup("connection")).createConnection();
+
+        _clientSession = _clientConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+        _consumer = _clientSession.createConsumer(queue);
+
+        //Create Producer
+        _producerConnection = ((ConnectionFactory) _context.lookup("connection")).createConnection();
+
+        _producerConnection.start();
+
+        _producerSession = _producerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+        _producer = _producerSession.createProducer(queue);
+
+        for (int msg = 0; msg < MSG_COUNT; msg++)
+        {
+            _producer.send(_producerSession.createTextMessage("Message " + msg));
+        }
+
+    }
+
+    protected void tearDown() throws Exception
+    {
+
+        _clientConnection.close();
+
+        _producerConnection.close();
+        super.tearDown();
+        TransportConnection.killAllVMBrokers();
+    }
+
+
+    public void testAsynchronousRecieve()
+    {
+
+        _logger.info("Test Start");
+
+
+        assertTrue(!((AMQConnection) _clientConnection).started());
+
+        //Set default Message Listener
+        try
+        {
+            _consumer.setMessageListener(new MessageListener()
+            {
+                public void onMessage(Message message)
+                {
+                    _logger.info("Client 1 ML 1 Received Message(" + _receivedCount + "):" + message);
+
+                    _receivedCount++;
+
+                    if (_receivedCount == MSG_COUNT)
+                    {
+                        _allFirstMessagesSent.countDown();
+                    }
+
+                    if (_connectionStopped)
+                    {
+                        _logger.info("Running with Message:" + _receivedCount);
+                    }
+
+                    if (_connectionStopped && _allFirstMessagesSent.getCount() == 0)
+                    {
+                        _receivedCountWhileStopped++;
+                    }
+
+                    if (_allFirstMessagesSent.getCount() == 0)
+                    {
+                        if (_receivedCount == MSG_COUNT * 2)
+                        {
+                            _allSecondMessagesSent.countDown();
+                        }
+                    }
+                }
+            });
+
+            assertTrue("Connecion should not be started", !((AMQConnection) _clientConnection).started());
+            _clientConnection.start();
+        }
+        catch (JMSException e)
+        {
+            _logger.error("Error Setting Default ML on consumer1");
+        }
+
+
+        try
+        {
+            _allFirstMessagesSent.await(1000, TimeUnit.MILLISECONDS);
+        }
+        catch (InterruptedException e)
+        {
+            //do nothing
+        }
+
+        try
+        {
+            assertTrue("Connecion should be started", ((AMQConnection) _clientConnection).started());
+            _clientConnection.stop();
+            _connectionStopped = true;
+        }
+        catch (JMSException e)
+        {
+            _logger.error("Error stopping connection");
+        }
+
+
+        try
+        {
+            _logger.error("Send additional messages");
+
+            for (int msg = 0; msg < MSG_COUNT; msg++)
+            {
+                _producer.send(_producerSession.createTextMessage("Message " + msg));
+            }
+        }
+        catch (JMSException e)
+        {
+            _logger.error("Unable to send additional messages", e);
+        }
+
+
+        try
+        {
+            Thread.sleep(1000);
+        }
+        catch (InterruptedException e)
+        {
+            //ignore
+        }
+
+        try
+        {
+            _logger.info("Restarting connection");
+
+            _connectionStopped = false;
+            _clientConnection.start();
+        }
+        catch (JMSException e)
+        {
+            _logger.error("Error Setting Better ML on consumer1", e);
+        }
+
+
+        _logger.info("Waiting upto 2 seconds for messages");
+
+        try
+        {
+            _allSecondMessagesSent.await(1000, TimeUnit.MILLISECONDS);
+        }
+        catch (InterruptedException e)
+        {
+            //do nothing
+        }
+
+        assertEquals("Messages not received correctly", 0, _allFirstMessagesSent.getCount());
+        assertEquals("Messages not received correctly", 0, _allSecondMessagesSent.getCount());
+        assertEquals("Client didn't get all messages", MSG_COUNT * 2, _receivedCount);
+        assertEquals("Messages received while stopped is not 0", 0, _receivedCountWhileStopped);
+
+    }
+
+
+    public static junit.framework.Test suite()
+    {
+        return new junit.framework.TestSuite(DispatcherTest.class);
+    }
+}
\ No newline at end of file

Propchange: incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/client/DispatcherTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/client/DispatcherTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/client/message/NonQpidObjectMessage.java (from r502534, incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/client/message/TestNonQpidTextMessage.java)
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/client/message/NonQpidObjectMessage.java?view=diff&rev=502624&p1=incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/client/message/TestNonQpidTextMessage.java&r1=502534&p2=incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/client/message/NonQpidObjectMessage.java&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/client/message/TestNonQpidTextMessage.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/client/message/NonQpidObjectMessage.java Fri Feb  2 07:28:08 2007
@@ -24,7 +24,7 @@
 import java.util.Enumeration;
 import java.io.Serializable;
 
-public class TestNonQpidTextMessage implements ObjectMessage {
+public class NonQpidObjectMessage implements ObjectMessage {
 
     private JMSObjectMessage _realMessage;
     private String _contentString;
@@ -34,7 +34,7 @@
      * does not inherit from the Qpid message superclasses
      * and expand our unit testing of MessageConverter et al
      */
-    public TestNonQpidTextMessage()
+    public NonQpidObjectMessage()
     {
         _realMessage = new JMSObjectMessage();
     }

Added: incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionStartTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionStartTest.java?view=auto&rev=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionStartTest.java (added)
+++ incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionStartTest.java Fri Feb  2 07:28:08 2007
@@ -0,0 +1,173 @@
+/*
+ *
+ * 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.test.unit.client.connection;
+
+import org.apache.qpid.client.AMQConnection;
+import org.apache.qpid.client.AMQAuthenticationException;
+import org.apache.qpid.client.AMQSession;
+import org.apache.qpid.client.AMQQueue;
+import org.apache.qpid.client.message.AMQMessage;
+import org.apache.qpid.client.transport.TransportConnection;
+import org.apache.qpid.AMQException;
+import org.apache.qpid.AMQConnectionException;
+import org.apache.qpid.AMQUnresolvedAddressException;
+import org.apache.qpid.AMQConnectionFailureException;
+
+import javax.jms.Connection;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.Session;
+import javax.jms.MessageProducer;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageListener;
+import javax.jms.TextMessage;
+
+import junit.framework.TestCase;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+public class ConnectionStartTest extends TestCase
+{
+
+    String _broker = "vm://:1";
+
+    AMQConnection _connection;
+    private Session _consumerSess;
+    private MessageConsumer _consumer;
+
+    protected void setUp() throws Exception
+    {
+        super.setUp();
+        TransportConnection.createVMBroker(1);
+
+        try
+        {
+            AMQQueue queue = new AMQQueue("ConnectionStartTest");
+
+            AMQConnection pubCon = new AMQConnection(_broker, "guest", "guest", "fred", "/test");
+
+            Session pubSess = pubCon.createSession(false, AMQSession.AUTO_ACKNOWLEDGE);
+
+            MessageProducer pub = pubSess.createProducer(queue);
+
+            pub.send(pubSess.createTextMessage("Initial Message"));
+
+            _connection = new AMQConnection(_broker, "guest", "guest", "fred", "/" +
+                                                                               "" +
+                                                                               "" +
+                                                                               "" +
+                                                                               "" +
+                                                                               "" +
+                                                                               "" +
+                                                                               "" +
+                                                                               "test");
+
+            _consumerSess = _connection.createSession(false, AMQSession.AUTO_ACKNOWLEDGE);
+
+            _consumer = _consumerSess.createConsumer(queue);
+
+            pubCon.close();
+
+        }
+        catch (Exception e)
+        {
+            fail("Connection to " + _broker + " should succeed. Reason: " + e);
+        }
+    }
+
+    protected void tearDown() throws Exception
+    {
+        _connection.close();
+        TransportConnection.killVMBroker(1);
+    }
+
+    public void testSimpleReceiveConnection()
+    {
+        try
+        {
+            assertTrue("Connection should not be started", !_connection.started());
+            //Note that this next line will start the dispatcher in the session
+            // should really not be called before _connection start
+            assertTrue("There should not be messages waiting for the consumer", _consumer.receiveNoWait() == null);
+            _connection.start();
+            assertTrue("There should be messages waiting for the consumer", _consumer.receiveNoWait() == null);
+            assertTrue("Connection should be started", _connection.started());
+
+        }
+        catch (JMSException e)
+        {
+            fail("An error occured during test because:" + e);
+        }
+
+    }
+
+    public void testMessageListenerConnection()
+    {
+        final CountDownLatch _gotMessage = new CountDownLatch(1);
+
+        try
+        {
+            assertTrue("Connection should not be started", !_connection.started());
+            _consumer.setMessageListener(new MessageListener()
+            {
+                public void onMessage(Message message)
+                {
+                    try
+                    {
+                        assertTrue("Connection should be started", _connection.started());
+                        assertEquals("Mesage Received", "Initial Message", ((TextMessage) message).getText());
+                        _gotMessage.countDown();
+                    }
+                    catch (JMSException e)
+                    {
+                        fail("Couldn't get message text because:" + e.getCause());
+                    }
+                }
+            });
+
+            assertTrue("Connection should not be started", !_connection.started());
+            _connection.start();
+            assertTrue("Connection should be started", _connection.started());
+
+            try
+            {
+                _gotMessage.await(1000, TimeUnit.MILLISECONDS);
+            }
+            catch (InterruptedException e)
+            {
+                fail("Timed out awaiting message via onMessage");
+            }
+
+        }
+        catch (JMSException e)
+        {
+            fail("Failed because:" + e.getCause());
+        }
+
+    }
+
+
+    public static junit.framework.Test suite()
+    {
+        return new junit.framework.TestSuite(ConnectionStartTest.class);
+    }
+}

Propchange: incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionStartTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionStartTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/JMSPropertiesTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/JMSPropertiesTest.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/JMSPropertiesTest.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/JMSPropertiesTest.java Fri Feb  2 07:28:08 2007
@@ -26,7 +26,8 @@
 import org.apache.qpid.client.AMQConnection;
 import org.apache.qpid.client.AMQSession;
 import org.apache.qpid.client.AMQQueue;
-import org.apache.qpid.client.message.TestNonQpidTextMessage;
+import org.apache.qpid.client.message.NonQpidObjectMessage;
+
 
 import javax.jms.*;
 
@@ -70,7 +71,7 @@
         MessageProducer producer = producerSession.createProducer(queue);
 
         //create a test message to send
-        ObjectMessage sentMsg = new TestNonQpidTextMessage();
+        ObjectMessage sentMsg = new NonQpidObjectMessage();
         sentMsg.setJMSCorrelationID(JMS_CORR_ID);
         sentMsg.setJMSDeliveryMode(JMS_DELIV_MODE);
         sentMsg.setJMSType(JMS_TYPE);

Modified: incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/MessageConverterTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/MessageConverterTest.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/MessageConverterTest.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/MessageConverterTest.java Fri Feb  2 07:28:08 2007
@@ -31,10 +31,12 @@
 import javax.jms.Destination;
 import javax.jms.TextMessage;
 import javax.jms.MapMessage;
+import javax.jms.JMSException;
 import java.util.HashMap;
 
 
-public class MessageConverterTest extends TestCase {
+public class MessageConverterTest extends TestCase
+{
 
     public static final String JMS_CORR_ID = "QPIDID_01";
     public static final int JMS_DELIV_MODE = 1;
@@ -50,53 +52,79 @@
         super.setUp();
         testTextMessage = new JMSTextMessage();
 
-        //Add JMSProperties
-        testTextMessage.setJMSCorrelationID(JMS_CORR_ID);
-        testTextMessage.setJMSDeliveryMode(JMS_DELIV_MODE);
-        testTextMessage.setJMSType(JMS_TYPE);
-        testTextMessage.setJMSReplyTo(JMS_REPLY_TO);
+        //Set Message Text
         testTextMessage.setText("testTextMessage text");
-
-        //Add non-JMS properties
-        testTextMessage.setStringProperty("testProp1","testValue1");
-        testTextMessage.setDoubleProperty("testProp2",Double.MIN_VALUE);
+        setMessageProperties(testTextMessage);
 
         testMapMessage = new JMSMapMessage();
-        testMapMessage.setString("testMapString","testMapStringValue");
-        testMapMessage.setDouble("testMapDouble",Double.MAX_VALUE);
+        testMapMessage.setString("testMapString", "testMapStringValue");
+        testMapMessage.setDouble("testMapDouble", Double.MAX_VALUE);
     }
 
     public void testSetProperties() throws Exception
     {
-        AbstractJMSMessage newMessage = new MessageConverter((TextMessage)testTextMessage).getConvertedMessage();
-
-        //check JMS prop values on newMessage match
-        assertEquals("JMS Correlation ID mismatch",testTextMessage.getJMSCorrelationID(),newMessage.getJMSCorrelationID());
-        assertEquals("JMS Delivery mode mismatch",testTextMessage.getJMSDeliveryMode(),newMessage.getJMSDeliveryMode());
-        assertEquals("JMS Type mismatch",testTextMessage.getJMSType(),newMessage.getJMSType());
-        assertEquals("JMS Reply To mismatch",testTextMessage.getJMSReplyTo(),newMessage.getJMSReplyTo());
-
-        //check non-JMS standard props ok too
-        assertEquals("Test String prop value mismatch",testTextMessage.getStringProperty("testProp1"),
-                    newMessage.getStringProperty("testProp1"));
-        assertEquals("Test Double prop value mismatch",testTextMessage.getDoubleProperty("testProp2"),
-                    newMessage.getDoubleProperty("testProp2"));
+        AbstractJMSMessage newMessage = new MessageConverter((TextMessage) testTextMessage).getConvertedMessage();
+        mesagePropertiesTest(testTextMessage, newMessage);
     }
 
     public void testJMSTextMessageConversion() throws Exception
     {
-        AbstractJMSMessage newMessage = new MessageConverter((TextMessage)testTextMessage).getConvertedMessage();
-        assertEquals("Converted message text mismatch",((JMSTextMessage)newMessage).getText(),testTextMessage.getText());
+        AbstractJMSMessage newMessage = new MessageConverter((TextMessage) testTextMessage).getConvertedMessage();
+        assertEquals("Converted message text mismatch", ((JMSTextMessage) newMessage).getText(), testTextMessage.getText());
     }
 
     public void testJMSMapMessageConversion() throws Exception
     {
-        AbstractJMSMessage newMessage = new MessageConverter((MapMessage)testMapMessage).getConvertedMessage();
-        assertEquals("Converted map message String mismatch",((JMSMapMessage)newMessage).getString("testMapString"),
-                    testMapMessage.getString("testMapString"));
-        assertEquals("Converted map message Double mismatch",((JMSMapMessage)newMessage).getDouble("testMapDouble"),
-                    testMapMessage.getDouble("testMapDouble"));
+        AbstractJMSMessage newMessage = new MessageConverter((MapMessage) testMapMessage).getConvertedMessage();
+        assertEquals("Converted map message String mismatch", ((JMSMapMessage) newMessage).getString("testMapString"),
+                     testMapMessage.getString("testMapString"));
+        assertEquals("Converted map message Double mismatch", ((JMSMapMessage) newMessage).getDouble("testMapDouble"),
+                     testMapMessage.getDouble("testMapDouble"));
+
+    }
+
+    public void testMessageConversion() throws Exception
+    {
+        Message newMessage = new NonQpidMessage();
+        setMessageProperties(newMessage);
+        mesagePropertiesTest(testTextMessage, newMessage);
+    }
 
+    private void setMessageProperties(Message message) throws JMSException
+    {
+        message.setJMSCorrelationID(JMS_CORR_ID);
+        message.setJMSDeliveryMode(JMS_DELIV_MODE);
+        message.setJMSType(JMS_TYPE);
+        message.setJMSReplyTo(JMS_REPLY_TO);
+
+        //Add non-JMS properties
+        message.setStringProperty("testProp1", "testValue1");
+        message.setDoubleProperty("testProp2", Double.MIN_VALUE);
+    }
+
+
+    private void mesagePropertiesTest(Message expectedMessage, Message actualMessage)
+    {
+        try
+        {
+            //check JMS prop values on newMessage match
+            assertEquals("JMS Correlation ID mismatch", expectedMessage.getJMSCorrelationID(), actualMessage.getJMSCorrelationID());
+            assertEquals("JMS Delivery mode mismatch", expectedMessage.getJMSDeliveryMode(), actualMessage.getJMSDeliveryMode());
+            assertEquals("JMS Type mismatch", expectedMessage.getJMSType(), actualMessage.getJMSType());
+            assertEquals("JMS Reply To mismatch", expectedMessage.getJMSReplyTo(), actualMessage.getJMSReplyTo());
+
+            //check non-JMS standard props ok too
+            assertEquals("Test String prop value mismatch", expectedMessage.getStringProperty("testProp1"),
+                         actualMessage.getStringProperty("testProp1"));
+
+            assertEquals("Test Double prop value mismatch", expectedMessage.getDoubleProperty("testProp2"),
+                         actualMessage.getDoubleProperty("testProp2"));
+        }
+        catch (JMSException e)
+        {
+            fail("An error occured testing the property values" + e.getCause());
+            e.printStackTrace();
+        }
     }
 
     protected void tearDown() throws Exception

Added: incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/NonQpidMessage.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/NonQpidMessage.java?view=auto&rev=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/NonQpidMessage.java (added)
+++ incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/NonQpidMessage.java Fri Feb  2 07:28:08 2007
@@ -0,0 +1,410 @@
+/*
+ *  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.test.unit.message;
+
+import javax.jms.Message;
+import javax.jms.JMSException;
+import javax.jms.Destination;
+import java.util.Enumeration;
+import java.util.Hashtable;
+
+public class NonQpidMessage implements Message
+{
+    private String _JMSMessageID;
+    private long _JMSTimestamp;
+    private byte[] _JMSCorrelationIDAsBytes;
+    private String _JMSCorrelationID;
+    private Destination _JMSReplyTo;
+    private Destination _JMSDestination;
+    private int _JMSDeliveryMode;
+    private boolean _JMSRedelivered;
+    private String _JMSType;
+    private long _JMSExpiration;
+    private int _JMSPriority;
+    private Hashtable _properties;
+
+    public NonQpidMessage()
+    {
+        _properties = new Hashtable();
+        _JMSPriority = javax.jms.Message.DEFAULT_PRIORITY;
+        _JMSDeliveryMode = javax.jms.Message.DEFAULT_DELIVERY_MODE;
+    }
+
+    public String getJMSMessageID() throws JMSException
+    {
+        return _JMSMessageID;
+    }
+
+    public void setJMSMessageID(String string) throws JMSException
+    {
+        _JMSMessageID = string;
+    }
+
+    public long getJMSTimestamp() throws JMSException
+    {
+        return _JMSTimestamp;
+    }
+
+    public void setJMSTimestamp(long l) throws JMSException
+    {
+        _JMSTimestamp = l;
+    }
+
+    public byte[] getJMSCorrelationIDAsBytes() throws JMSException
+    {
+        return _JMSCorrelationIDAsBytes;
+    }
+
+    public void setJMSCorrelationIDAsBytes(byte[] bytes) throws JMSException
+    {
+        _JMSCorrelationIDAsBytes = bytes;
+    }
+
+    public void setJMSCorrelationID(String string) throws JMSException
+    {
+        _JMSCorrelationID = string;
+    }
+
+    public String getJMSCorrelationID() throws JMSException
+    {
+        return _JMSCorrelationID;
+    }
+
+    public Destination getJMSReplyTo() throws JMSException
+    {
+        return _JMSReplyTo;
+    }
+
+    public void setJMSReplyTo(Destination destination) throws JMSException
+    {
+        _JMSReplyTo = destination;
+    }
+
+    public Destination getJMSDestination() throws JMSException
+    {
+        return _JMSDestination;
+    }
+
+    public void setJMSDestination(Destination destination) throws JMSException
+    {
+        _JMSDestination = destination;
+    }
+
+    public int getJMSDeliveryMode() throws JMSException
+    {
+        return _JMSDeliveryMode;
+    }
+
+    public void setJMSDeliveryMode(int i) throws JMSException
+    {
+        _JMSDeliveryMode = i;
+    }
+
+    public boolean getJMSRedelivered() throws JMSException
+    {
+        return _JMSRedelivered;
+    }
+
+    public void setJMSRedelivered(boolean b) throws JMSException
+    {
+        _JMSRedelivered = b;
+    }
+
+    public String getJMSType() throws JMSException
+    {
+        return _JMSType;
+    }
+
+    public void setJMSType(String string) throws JMSException
+    {
+        _JMSType = string;
+    }
+
+    public long getJMSExpiration() throws JMSException
+    {
+        return _JMSExpiration;
+    }
+
+    public void setJMSExpiration(long l) throws JMSException
+    {
+        _JMSExpiration = l;
+    }
+
+    public int getJMSPriority() throws JMSException
+    {
+        return _JMSPriority;
+    }
+
+    public void setJMSPriority(int i) throws JMSException
+    {
+        _JMSPriority = i;
+    }
+
+    public void clearProperties() throws JMSException
+    {
+        _properties.clear();
+    }
+
+    public boolean propertyExists(String string) throws JMSException
+    {
+        return _properties.containsKey(string);
+    }
+
+    public boolean getBooleanProperty(String string) throws JMSException
+    {
+        if (propertyExists(string))
+        {
+            Object o = _properties.get(string);
+            if (o instanceof Boolean)
+            {
+                return (Boolean) o;
+            }
+            else
+            {
+                return Boolean.valueOf(null);
+            }
+        }
+        else
+        {
+            throw new JMSException("property does not exist: " + string);
+        }
+    }
+
+    public byte getByteProperty(String string) throws JMSException
+    {
+        if (propertyExists(string))
+        {
+            Object o = _properties.get(string);
+            if (o instanceof Byte)
+            {
+                return (Byte) o;
+            }
+            else
+            {
+                return Byte.valueOf(null);
+            }
+        }
+        else
+        {
+            throw new JMSException("property does not exist: " + string);
+        }
+    }
+
+    public short getShortProperty(String string) throws JMSException
+    {
+        if (propertyExists(string))
+        {
+            Object o = _properties.get(string);
+            if (o instanceof Short)
+            {
+                return (Short) o;
+            }
+            else
+            {
+                return Short.valueOf(null);
+            }
+        }
+        else
+        {
+            throw new JMSException("property does not exist: " + string);
+        }
+    }
+
+    public int getIntProperty(String string) throws JMSException
+    {
+        if (propertyExists(string))
+        {
+            Object o = _properties.get(string);
+            if (o instanceof Integer)
+            {
+                return (Integer) o;
+            }
+            else
+            {
+                return Integer.valueOf(null);
+            }
+        }
+        else
+        {
+            throw new JMSException("property does not exist: " + string);
+        }
+    }
+
+    public long getLongProperty(String string) throws JMSException
+    {
+        if (propertyExists(string))
+        {
+            Object o = _properties.get(string);
+            if (o instanceof Long)
+            {
+                return (Long) o;
+            }
+            else
+            {
+                return Long.valueOf(null);
+            }
+        }
+        else
+        {
+            throw new JMSException("property does not exist: " + string);
+        }
+    }
+
+    public float getFloatProperty(String string) throws JMSException
+    {
+        if (propertyExists(string))
+        {
+            Object o = _properties.get(string);
+            if (o instanceof Float)
+            {
+                return (Float) o;
+            }
+            else
+            {
+                return Float.valueOf(null);
+            }
+        }
+        else
+        {
+            throw new JMSException("property does not exist: " + string);
+        }
+    }
+
+    public double getDoubleProperty(String string) throws JMSException
+    {
+        if (propertyExists(string))
+        {
+            Object o = _properties.get(string);
+            if (o instanceof Double)
+            {
+                return (Double) o;
+            }
+            else
+            {
+                return Double.valueOf(null);
+            }
+        }
+        else
+        {
+            throw new JMSException("property does not exist: " + string);
+        }
+    }
+
+    public String getStringProperty(String string) throws JMSException
+    {
+        if (propertyExists(string))
+        {
+            Object o = _properties.get(string);
+            if (o instanceof String)
+            {
+                return (String) o;
+            }
+            else
+            {
+                return null;
+            }
+        }
+        else
+        {
+            throw new JMSException("property does not exist: " + string);
+        }
+    }
+
+    public Object getObjectProperty(String string) throws JMSException
+    {
+        if (propertyExists(string))
+        {
+            Object o = _properties.get(string);
+            if (o instanceof Boolean)
+            {
+                return (Boolean) o;
+            }
+            else
+            {
+                return Boolean.valueOf(null);
+            }
+        }
+        else
+        {
+            throw new JMSException("property does not exist: " + string);
+        }
+    }
+
+    public Enumeration getPropertyNames() throws JMSException
+    {
+        return _properties.keys();
+    }
+
+    public void setBooleanProperty(String string, boolean b) throws JMSException
+    {
+        _properties.put(string, b);
+    }
+
+    public void setByteProperty(String string, byte b) throws JMSException
+    {
+        _properties.put(string, b);
+    }
+
+    public void setShortProperty(String string, short i) throws JMSException
+    {
+        _properties.put(string, i);
+    }
+
+    public void setIntProperty(String string, int i) throws JMSException
+    {
+        _properties.put(string, i);
+    }
+
+    public void setLongProperty(String string, long l) throws JMSException
+    {
+        _properties.put(string, l);
+    }
+
+    public void setFloatProperty(String string, float v) throws JMSException
+    {
+        _properties.put(string, v);
+    }
+
+    public void setDoubleProperty(String string, double v) throws JMSException
+    {
+        _properties.put(string, v);
+    }
+
+    public void setStringProperty(String string, String string1) throws JMSException
+    {
+        _properties.put(string, string1);
+    }
+
+    public void setObjectProperty(String string, Object object) throws JMSException
+    {
+        _properties.put(string, object);
+    }
+
+    public void acknowledge() throws JMSException
+    {
+
+    }
+
+    public void clearBody() throws JMSException
+    {
+
+    }
+}

Propchange: incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/NonQpidMessage.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/qpid/branches/perftesting/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/NonQpidMessage.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/qpid/branches/perftesting/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/Main.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/Main.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/Main.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/Main.java Fri Feb  2 07:28:08 2007
@@ -83,7 +83,7 @@
             // implementation provided by MINA
             if (connectorConfig.enableExecutorPool)
             {
-                sconfig.setThreadModel(new ReadWriteThreadModel());
+                sconfig.setThreadModel(ReadWriteThreadModel.getInstance());
             }
 
             String host = InetAddress.getLocalHost().getHostName();

Modified: incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQTypedValue.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQTypedValue.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQTypedValue.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQTypedValue.java Fri Feb  2 07:28:08 2007
@@ -10,7 +10,7 @@
 
     public AMQTypedValue(AMQType type, Object value)
     {
-        if(type == null)
+        if (type == null)
         {
             throw new NullPointerException("Cannot create a typed value with null type");
         }
@@ -21,7 +21,7 @@
     private AMQTypedValue(AMQType type, ByteBuffer buffer)
     {
         _type = type;
-        _value = type.readValueFromBuffer( buffer );
+        _value = type.readValueFromBuffer(buffer);
     }
 
 
@@ -38,7 +38,7 @@
 
     public void writeToBuffer(ByteBuffer buffer)
     {
-        _type.writeToBuffer(_value,buffer);
+        _type.writeToBuffer(_value, buffer);
     }
 
     public int getEncodingSize()
@@ -50,5 +50,10 @@
     {
         AMQType type = AMQTypeMap.getType(buffer.get());
         return new AMQTypedValue(type, buffer);
+    }
+
+    public String toString()
+    {
+        return "[" + getType() + ": " + getValue() + "]";
     }
 }

Modified: incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/framing/ProtocolInitiation.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/framing/ProtocolInitiation.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/framing/ProtocolInitiation.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/framing/ProtocolInitiation.java Fri Feb  2 07:28:08 2007
@@ -27,7 +27,7 @@
 
 public class ProtocolInitiation extends AMQDataBlock implements EncodableAMQDataBlock
 {
-    public char[] header = new char[]{'A','M','Q','P'};
+    public char[] header = new char[]{'A', 'M', 'Q', 'P'};
     // TODO: generate these constants automatically from the xml protocol spec file
 
     private static byte CURRENT_PROTOCOL_CLASS = 1;
@@ -103,11 +103,10 @@
     public static class Decoder //implements MessageDecoder
     {
         /**
-         *
          * @param session
          * @param in
          * @return true if we have enough data to decode the PI frame fully, false if more
-         * data is required
+         *         data is required
          */
         public boolean decodable(IoSession session, ByteBuffer in)
         {
@@ -115,12 +114,12 @@
         }
 
         public void decode(IoSession session, ByteBuffer in, ProtocolDecoderOutput out)
-            throws Exception
+                throws Exception
         {
             byte[] theHeader = new byte[4];
             in.get(theHeader);
-            ProtocolInitiation pi = new ProtocolInitiation((byte)0, (byte)0);
-            pi.header = new char[]{(char) theHeader[0],(char) theHeader[CURRENT_PROTOCOL_INSTANCE],(char) theHeader[2], (char) theHeader[3]};
+            ProtocolInitiation pi = new ProtocolInitiation((byte) 0, (byte) 0);
+            pi.header = new char[]{(char) theHeader[0], (char) theHeader[CURRENT_PROTOCOL_INSTANCE], (char) theHeader[2], (char) theHeader[3]};
             String stringHeader = new String(pi.header);
             if (!"AMQP".equals(stringHeader))
             {
@@ -139,17 +138,17 @@
         if (protocolClass != CURRENT_PROTOCOL_CLASS)
         {
             throw new AMQProtocolClassException("Protocol class " + CURRENT_PROTOCOL_CLASS + " was expected; received " +
-                    protocolClass);
+                                                protocolClass);
         }
         if (protocolInstance != CURRENT_PROTOCOL_INSTANCE)
         {
             throw new AMQProtocolInstanceException("Protocol instance " + CURRENT_PROTOCOL_INSTANCE + " was expected; received " +
-                    protocolInstance);
+                                                   protocolInstance);
         }
-        
+
         /* Look through list of available protocol versions */
         boolean found = false;
-        for (int i=0; i<pvl.pv.length; i++)
+        for (int i = 0; i < pvl.pv.length; i++)
         {
             if (pvl.pv[i][pvl.PROTOCOL_MAJOR] == protocolMajor &&
                 pvl.pv[i][pvl.PROTOCOL_MINOR] == protocolMinor)
@@ -161,7 +160,17 @@
         {
             // TODO: add list of available versions in list to msg...
             throw new AMQProtocolVersionException("Protocol version " +
-                protocolMajor + "." +  protocolMinor + " not found in protocol version list.");
+                                                  protocolMajor + "." + protocolMinor + " not found in protocol version list.");
         }
+    }
+
+    public String toString()
+    {
+        StringBuffer buffer = new StringBuffer(new String(header));
+        buffer.append(Integer.toHexString(protocolClass));
+        buffer.append(Integer.toHexString(protocolInstance));
+        buffer.append(Integer.toHexString(protocolMajor));
+        buffer.append(Integer.toHexString(protocolMinor));
+        return buffer.toString();
     }
 }

Modified: incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/pool/Job.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/pool/Job.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/pool/Job.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/pool/Job.java Fri Feb  2 07:28:08 2007
@@ -30,13 +30,13 @@
  * Holds events for a session that will be processed asynchronously by
  * the thread pool in PoolingFilter.
  */
-class Job implements Runnable
+public class Job implements Runnable
 {
     private final int _maxEvents;
     private final IoSession _session;
     private final java.util.Queue<Event> _eventQueue = new ConcurrentLinkedQueue<Event>();
     private final AtomicBoolean _active = new AtomicBoolean();
-    private final AtomicInteger _refCount = new AtomicInteger();
+//    private final AtomicInteger _refCount = new AtomicInteger();
     private final JobCompletionHandler _completionHandler;
 
     Job(IoSession session, JobCompletionHandler completionHandler, int maxEvents)
@@ -46,20 +46,20 @@
         _maxEvents = maxEvents;
     }
 
-    void acquire()
-    {
-        _refCount.incrementAndGet();
-    }
-
-    void release()
-    {
-        _refCount.decrementAndGet();
-    }
-
-    boolean isReferenced()
-    {
-        return _refCount.get() > 0;
-    }
+//    void acquire()
+//    {
+//        _refCount.incrementAndGet();
+//    }
+//
+//    void release()
+//    {
+//        _refCount.decrementAndGet();
+//    }
+//
+//    boolean isReferenced()
+//    {
+//        return _refCount.get() > 0;
+//    }
 
     void add(Event evt)
     {

Modified: incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/pool/PoolingFilter.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/pool/PoolingFilter.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/pool/PoolingFilter.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/pool/PoolingFilter.java Fri Feb  2 07:28:08 2007
@@ -48,7 +48,7 @@
     void fireAsynchEvent(IoSession session, Event event)
     {
         Job job = getJobForSession(session);
-        job.acquire(); //prevents this job being removed from _jobs
+//        job.acquire(); //prevents this job being removed from _jobs
         job.add(event);
 
         //Additional checks on pool to check that it hasn't shutdown.
@@ -60,10 +60,25 @@
 
     }
 
+    public void createNewJobForSession(IoSession session)
+    {
+        Job job = new Job(session, this, _maxEvents);
+        session.setAttribute(_name, job);
+    }
+
     private Job getJobForSession(IoSession session)
     {
-        Job job = _jobs.get(session);
-        return job == null ? createJobForSession(session) : job;
+        return (Job) session.getAttribute(_name);
+
+/*        if(job == null)
+        {
+            System.err.println("Error in " + _name);
+            Thread.dumpStack();
+        }
+
+
+        job = _jobs.get(session);
+        return job == null ? createJobForSession(session) : job;*/
     }
 
     private Job createJobForSession(IoSession session)
@@ -81,16 +96,18 @@
     //Job.JobCompletionHandler
     public void completed(IoSession session, Job job)
     {
-        if (job.isComplete())
-        {
-            job.release();
-            if (!job.isReferenced())
-            {
-                _jobs.remove(session);
-            }
-        }
-        else
+//        if (job.isComplete())
+//        {
+//            job.release();
+//            if (!job.isReferenced())
+//            {
+//                _jobs.remove(session);
+//            }
+//        }
+//        else
+        if (!job.isComplete())
         {
+
             // ritchiem : 2006-12-13 Do we need to perform the additional checks here?
             //                       Can the pool be shutdown at this point?
             if (job.activate() && _poolReference.getPool() != null && !_poolReference.getPool().isShutdown())
@@ -121,13 +138,13 @@
     public void exceptionCaught(final NextFilter nextFilter, final IoSession session,
                                 final Throwable cause) throws Exception
     {
-            nextFilter.exceptionCaught(session,cause);
+        nextFilter.exceptionCaught(session, cause);
     }
 
     public void messageReceived(final NextFilter nextFilter, final IoSession session,
                                 final Object message) throws Exception
     {
-        nextFilter.messageReceived(session,message);
+        nextFilter.messageReceived(session, message);
     }
 
     public void messageSent(final NextFilter nextFilter, final IoSession session,
@@ -185,7 +202,7 @@
         }
 
         public void messageReceived(final NextFilter nextFilter, final IoSession session,
-                                final Object message) throws Exception
+                                    final Object message) throws Exception
         {
 
             fireAsynchEvent(session, new Event.ReceivedEvent(nextFilter, message));
@@ -211,15 +228,15 @@
 
     }
 
-    public static PoolingFilter createAynschReadPoolingFilter(ReferenceCountingExecutorService refCountingPool,String name)
+    public static PoolingFilter createAynschReadPoolingFilter(ReferenceCountingExecutorService refCountingPool, String name)
     {
-        return new AsynchReadPoolingFilter(refCountingPool,name);
+        return new AsynchReadPoolingFilter(refCountingPool, name);
     }
 
 
-    public static PoolingFilter createAynschWritePoolingFilter(ReferenceCountingExecutorService refCountingPool,String name)
+    public static PoolingFilter createAynschWritePoolingFilter(ReferenceCountingExecutorService refCountingPool, String name)
     {
-        return new AsynchWritePoolingFilter(refCountingPool,name);
+        return new AsynchWritePoolingFilter(refCountingPool, name);
     }
 
 }

Modified: incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/pool/ReadWriteThreadModel.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/pool/ReadWriteThreadModel.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/pool/ReadWriteThreadModel.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/common/src/main/java/org/apache/qpid/pool/ReadWriteThreadModel.java Fri Feb  2 07:28:08 2007
@@ -26,12 +26,36 @@
 
 public class ReadWriteThreadModel implements ThreadModel
 {
+     private static final ReadWriteThreadModel _instance = new ReadWriteThreadModel();
+
+    private final PoolingFilter _asynchronousReadFilter;
+    private final PoolingFilter _asynchronousWriteFilter;
+
+    private ReadWriteThreadModel()
+    {
+        final ReferenceCountingExecutorService executor = ReferenceCountingExecutorService.getInstance();
+        _asynchronousReadFilter = PoolingFilter.createAynschReadPoolingFilter(executor, "AsynchronousReadFilter");
+        _asynchronousWriteFilter = PoolingFilter.createAynschWritePoolingFilter(executor, "AsynchronousWriteFilter");
+    }
+
+    public PoolingFilter getAsynchronousReadFilter()
+    {
+        return _asynchronousReadFilter;
+    }
+
+    public PoolingFilter getAsynchronousWriteFilter()
+    {
+        return _asynchronousWriteFilter;
+    }
+
     public void buildFilterChain(IoFilterChain chain) throws Exception
     {
-        ReferenceCountingExecutorService executor = ReferenceCountingExecutorService.getInstance();
-        PoolingFilter asyncRead = PoolingFilter.createAynschReadPoolingFilter(executor, "AsynchronousReadFilter");
-        PoolingFilter asyncWrite = PoolingFilter.createAynschWritePoolingFilter(executor, "AsynchronousWriteFilter");
-        chain.addFirst("AsynchronousReadFilter", new ReferenceCountingIoFilter(asyncRead));
-        chain.addLast("AsynchronousWriteFilter", new ReferenceCountingIoFilter(asyncWrite));
+        chain.addFirst("AsynchronousReadFilter", new ReferenceCountingIoFilter(_asynchronousReadFilter));
+        chain.addLast("AsynchronousWriteFilter", new ReferenceCountingIoFilter(_asynchronousWriteFilter));
+    }
+
+    public static ReadWriteThreadModel getInstance()
+    {
+        return _instance;
     }
 }

Modified: incubator/qpid/branches/perftesting/qpid/java/common/src/test/java/org/apache/qpid/pool/PoolingFilterTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/common/src/test/java/org/apache/qpid/pool/PoolingFilterTest.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/common/src/test/java/org/apache/qpid/pool/PoolingFilterTest.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/common/src/test/java/org/apache/qpid/pool/PoolingFilterTest.java Fri Feb  2 07:28:08 2007
@@ -39,22 +39,26 @@
         //Create Pool
         _executorService = ReferenceCountingExecutorService.getInstance();
         _executorService.acquireExecutorService();
-        _pool = PoolingFilter.createAynschWritePoolingFilter(_executorService, 
-                                  "AsynchronousWriteFilter");
-
+        _pool = PoolingFilter.createAynschWritePoolingFilter(_executorService,
+                                                             "AsynchronousWriteFilter");
     }
 
     public void testRejectedExecution() throws Exception
     {
-        _pool.filterWrite(new NoOpFilter(), new TestSession(), new IoFilter.WriteRequest("Message"));
+        TestSession testSession = new TestSession();
+        _pool.createNewJobForSession(testSession);
+        _pool.filterWrite(new NoOpFilter(), testSession, new IoFilter.WriteRequest("Message"));
 
         //Shutdown the pool
         _executorService.getPool().shutdownNow();
 
         try
         {
+
+            testSession = new TestSession();
+            _pool.createNewJobForSession(testSession);
             //prior to fix for QPID-172 this would throw RejectedExecutionException
-            _pool.filterWrite(null, new TestSession(), null);
+            _pool.filterWrite(null, testSession, null);
         }
         catch (RejectedExecutionException rje)
         {

Modified: incubator/qpid/branches/perftesting/qpid/java/common/src/test/java/org/apache/qpid/session/TestSession.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/common/src/test/java/org/apache/qpid/session/TestSession.java?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/common/src/test/java/org/apache/qpid/session/TestSession.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/common/src/test/java/org/apache/qpid/session/TestSession.java Fri Feb  2 07:28:08 2007
@@ -24,9 +24,13 @@
 
 import java.net.SocketAddress;
 import java.util.Set;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.ConcurrentHashMap;
 
 public class TestSession implements IoSession
 {
+    private final ConcurrentMap attributes = new ConcurrentHashMap();
+
     public TestSession()
     {
     }
@@ -68,42 +72,42 @@
 
     public Object getAttachment()
     {
-        return null;  //TODO
+        return getAttribute("");
     }
 
     public Object setAttachment(Object attachment)
     {
-        return null;  //TODO
+        return setAttribute("",attachment);
     }
 
     public Object getAttribute(String key)
     {
-        return null;  //TODO
+        return attributes.get(key);
     }
 
     public Object setAttribute(String key, Object value)
     {
-        return null;  //TODO
+        return attributes.put(key,value);
     }
 
     public Object setAttribute(String key)
     {
-        return null;  //TODO
+        return attributes.put(key, Boolean.TRUE);
     }
 
     public Object removeAttribute(String key)
     {
-        return null;  //TODO
+        return attributes.remove(key);
     }
 
     public boolean containsAttribute(String key)
     {
-        return false;  //TODO
+        return attributes.containsKey(key);
     }
 
     public Set getAttributeKeys()
     {
-        return null;  //TODO
+        return attributes.keySet();
     }
 
     public TransportType getTransportType()
@@ -270,4 +274,4 @@
     {
         return 0;  //TODO
     }
-}
+}
\ No newline at end of file

Modified: incubator/qpid/branches/perftesting/qpid/java/mvn-repo/README.txt
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/mvn-repo/README.txt?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/mvn-repo/README.txt (original)
+++ incubator/qpid/branches/perftesting/qpid/java/mvn-repo/README.txt Fri Feb  2 07:28:08 2007
@@ -1 +1,5 @@
 Temporary local repository for jars that are not available in the central repository yet.
+This was created because junit-toolkit is undergoing some development to use it with perf tests. Its an Apache licensed performance testing utility.
+It takes 2-4 days to get something added to the central repo but want to keep up with changed to junit-toolkit. This repository holds a snapshot
+of it, so that the build can get it from somewhere without breaking. It is anticipated that it will reach a stable 0.5 version within two weeks from
+30/01/2007, at which time it will be placed in the central repo and this local repository will be deleted.

Modified: incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/0.5-SNAPSHOT/maven-metadata.xml
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/0.5-SNAPSHOT/maven-metadata.xml?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/0.5-SNAPSHOT/maven-metadata.xml (original)
+++ incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/0.5-SNAPSHOT/maven-metadata.xml Fri Feb  2 07:28:08 2007
@@ -4,9 +4,9 @@
   <version>0.5-SNAPSHOT</version>
   <versioning>
     <snapshot>
-      <timestamp>20070130.122841</timestamp>
+      <timestamp>20070130.111904</timestamp>
       <buildNumber>1</buildNumber>
     </snapshot>
-    <lastUpdated>20070130122841</lastUpdated>
+    <lastUpdated>20070130111904</lastUpdated>
   </versioning>
 </metadata>

Modified: incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/0.5-SNAPSHOT/maven-metadata.xml.md5
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/0.5-SNAPSHOT/maven-metadata.xml.md5?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/0.5-SNAPSHOT/maven-metadata.xml.md5 (original)
+++ incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/0.5-SNAPSHOT/maven-metadata.xml.md5 Fri Feb  2 07:28:08 2007
@@ -1 +1 @@
-084991a8786d91eff123b053768eb232
\ No newline at end of file
+c619b7ac915b2eba622d556b2d2e0c25
\ No newline at end of file

Modified: incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/0.5-SNAPSHOT/maven-metadata.xml.sha1
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/0.5-SNAPSHOT/maven-metadata.xml.sha1?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/0.5-SNAPSHOT/maven-metadata.xml.sha1 (original)
+++ incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/0.5-SNAPSHOT/maven-metadata.xml.sha1 Fri Feb  2 07:28:08 2007
@@ -1 +1 @@
-13e6beaf255d393f939a59399b833f87ae7f4379
\ No newline at end of file
+db7b5d51a53a5018611391ecc3346032a6c20dda
\ No newline at end of file

Modified: incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/maven-metadata.xml
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/maven-metadata.xml?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/maven-metadata.xml (original)
+++ incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/maven-metadata.xml Fri Feb  2 07:28:08 2007
@@ -7,6 +7,6 @@
     <versions>
       <version>0.5-SNAPSHOT</version>
     </versions>
-    <lastUpdated>20070130122841</lastUpdated>
+    <lastUpdated>20070130111904</lastUpdated>
   </versioning>
 </metadata>

Modified: incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/maven-metadata.xml.md5
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/maven-metadata.xml.md5?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/maven-metadata.xml.md5 (original)
+++ incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/maven-metadata.xml.md5 Fri Feb  2 07:28:08 2007
@@ -1 +1 @@
-7a321ffcf3cba7f6cd7b43690d37c518
\ No newline at end of file
+da47ce66de64d4ba056d0a9c901c5676
\ No newline at end of file

Modified: incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/maven-metadata.xml.sha1
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/maven-metadata.xml.sha1?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/maven-metadata.xml.sha1 (original)
+++ incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit-maven-plugin/maven-metadata.xml.sha1 Fri Feb  2 07:28:08 2007
@@ -1 +1 @@
-66446d0944bcb9269796a65834df3806cb45fd40
\ No newline at end of file
+70adf93da1c1757152e954750ceb2477a8659a99
\ No newline at end of file

Modified: incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/0.5-SNAPSHOT/maven-metadata.xml
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/0.5-SNAPSHOT/maven-metadata.xml?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/0.5-SNAPSHOT/maven-metadata.xml (original)
+++ incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/0.5-SNAPSHOT/maven-metadata.xml Fri Feb  2 07:28:08 2007
@@ -4,9 +4,9 @@
   <version>0.5-SNAPSHOT</version>
   <versioning>
     <snapshot>
-      <timestamp>20070130.111852</timestamp>
+      <timestamp>20070131.112634</timestamp>
       <buildNumber>1</buildNumber>
     </snapshot>
-    <lastUpdated>20070130111852</lastUpdated>
+    <lastUpdated>20070131112634</lastUpdated>
   </versioning>
 </metadata>

Modified: incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/0.5-SNAPSHOT/maven-metadata.xml.md5
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/0.5-SNAPSHOT/maven-metadata.xml.md5?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/0.5-SNAPSHOT/maven-metadata.xml.md5 (original)
+++ incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/0.5-SNAPSHOT/maven-metadata.xml.md5 Fri Feb  2 07:28:08 2007
@@ -1 +1 @@
-ee20ec4f594fd6efa85274c88d5d87ee
\ No newline at end of file
+59aa948e74a22a370cc414718864f65f
\ No newline at end of file

Modified: incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/0.5-SNAPSHOT/maven-metadata.xml.sha1
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/0.5-SNAPSHOT/maven-metadata.xml.sha1?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/0.5-SNAPSHOT/maven-metadata.xml.sha1 (original)
+++ incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/0.5-SNAPSHOT/maven-metadata.xml.sha1 Fri Feb  2 07:28:08 2007
@@ -1 +1 @@
-d8eb4f60a311e78bb6be82426fee0e579176344d
\ No newline at end of file
+f2350021d6d3c2091d35d074b6ecd312d6f91657
\ No newline at end of file

Modified: incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/maven-metadata.xml
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/maven-metadata.xml?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/maven-metadata.xml (original)
+++ incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/maven-metadata.xml Fri Feb  2 07:28:08 2007
@@ -6,6 +6,6 @@
     <versions>
       <version>0.5-SNAPSHOT</version>
     </versions>
-    <lastUpdated>20070130111852</lastUpdated>
+    <lastUpdated>20070131112634</lastUpdated>
   </versioning>
 </metadata>

Modified: incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/maven-metadata.xml.md5
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/maven-metadata.xml.md5?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/maven-metadata.xml.md5 (original)
+++ incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/maven-metadata.xml.md5 Fri Feb  2 07:28:08 2007
@@ -1 +1 @@
-4278265ef1e27202cffc5d54d429b510
\ No newline at end of file
+260c92993eec99c2c2c0217cf6241842
\ No newline at end of file

Modified: incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/maven-metadata.xml.sha1
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/maven-metadata.xml.sha1?view=diff&rev=502624&r1=502623&r2=502624
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/maven-metadata.xml.sha1 (original)
+++ incubator/qpid/branches/perftesting/qpid/java/mvn-repo/uk/co/thebadgerset/junit-toolkit/maven-metadata.xml.sha1 Fri Feb  2 07:28:08 2007
@@ -1 +1 @@
-31c796d63b1c0625d26f5df2ecb44220222546bd
\ No newline at end of file
+c8803f171049b2bb3e258f78b8c9490dec3074c4
\ No newline at end of file