[jboss-cvs] JBoss Messaging SVN: r4146 - in trunk: src/main/org/jboss/messaging/core/client and 40 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue May 6 07:50:28 EDT 2008


Author: timfox
Date: 2008-05-06 07:50:27 -0400 (Tue, 06 May 2008)
New Revision: 4146

Modified:
   trunk/docs/examples/messaging/src/org/jboss/messaging/example/EmbeddedExample.java
   trunk/docs/examples/messaging/src/org/jboss/messaging/example/SSLClient.java
   trunk/docs/examples/messaging/src/org/jboss/messaging/example/SimpleClient.java
   trunk/src/main/org/jboss/messaging/core/client/ClientProducer.java
   trunk/src/main/org/jboss/messaging/core/client/ClientSession.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
   trunk/src/main/org/jboss/messaging/core/deployers/impl/QueueSettingsDeployer.java
   trunk/src/main/org/jboss/messaging/core/filter/Filter.java
   trunk/src/main/org/jboss/messaging/core/filter/impl/FilterImpl.java
   trunk/src/main/org/jboss/messaging/core/management/MessagingServerManagement.java
   trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerManagementImpl.java
   trunk/src/main/org/jboss/messaging/core/message/impl/MessageReferenceImpl.java
   trunk/src/main/org/jboss/messaging/core/persistence/StorageManager.java
   trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java
   trunk/src/main/org/jboss/messaging/core/persistence/impl/nullpm/NullStorageManager.java
   trunk/src/main/org/jboss/messaging/core/postoffice/Binding.java
   trunk/src/main/org/jboss/messaging/core/postoffice/PostOffice.java
   trunk/src/main/org/jboss/messaging/core/postoffice/impl/BindingImpl.java
   trunk/src/main/org/jboss/messaging/core/postoffice/impl/FlowControllerImpl.java
   trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/BytesPacketCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerDeliverMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerFlowTokenMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/MessagingExceptionMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerReceiveTokensMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerSendMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/RemotingBuffer.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAcknowledgeMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAddDestinationMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserHasNextMessageResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCancelMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateQueueMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionDeleteQueueMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionRemoveDestinationMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXACommitMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAEndMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetInDoubtXidsResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetTimeoutResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/BufferWrapper.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ProducerSendMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAddDestinationMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateQueueMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionDeleteQueueMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionRemoveDestinationMessage.java
   trunk/src/main/org/jboss/messaging/core/server/Queue.java
   trunk/src/main/org/jboss/messaging/core/server/QueueFactory.java
   trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java
   trunk/src/main/org/jboss/messaging/core/server/ServerProducer.java
   trunk/src/main/org/jboss/messaging/core/server/ServerSession.java
   trunk/src/main/org/jboss/messaging/core/server/impl/QueueFactoryImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java
   trunk/src/main/org/jboss/messaging/core/transaction/Transaction.java
   trunk/src/main/org/jboss/messaging/core/transaction/impl/TransactionImpl.java
   trunk/src/main/org/jboss/messaging/jms/JBossDestination.java
   trunk/src/main/org/jboss/messaging/jms/JBossTemporaryQueue.java
   trunk/src/main/org/jboss/messaging/jms/JBossTemporaryTopic.java
   trunk/src/main/org/jboss/messaging/jms/client/JBossMessageProducer.java
   trunk/src/main/org/jboss/messaging/jms/client/JBossSession.java
   trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java
   trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
   trunk/src/main/org/jboss/messaging/util/SimpleString.java
   trunk/src/main/org/jboss/messaging/util/StreamUtils.java
   trunk/tests/src/org/jboss/messaging/tests/integration/CoreClientTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/ClientCrashTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/ClientExitTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/PacketFilterTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/ssl/CoreClientOverSSLTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/impl/JMSServerManagerimplTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/QueueSettingsDeployerTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/filter/impl/FilterTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/message/impl/MessageTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/PostOfficeTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/QueueTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/concurrent/QueueTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/fakes/FakeFilter.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/fakes/FakeQueueFactory.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/timing/QueueTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/settings/impl/QueueSettingsTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/transaction/impl/TransactionTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/util/SimpleStringTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/util/SpawnedVMSupport.java
Log:
Now use SimpleString in core


Modified: trunk/docs/examples/messaging/src/org/jboss/messaging/example/EmbeddedExample.java
===================================================================
--- trunk/docs/examples/messaging/src/org/jboss/messaging/example/EmbeddedExample.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/docs/examples/messaging/src/org/jboss/messaging/example/EmbeddedExample.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -21,24 +21,31 @@
    */
 package org.jboss.messaging.example;
 
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.core.server.impl.MessagingServerImpl;
+import java.util.HashSet;
+
+import org.jboss.messaging.core.client.ClientConnection;
+import org.jboss.messaging.core.client.ClientConnectionFactory;
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ConnectionParams;
+import org.jboss.messaging.core.client.Location;
+import org.jboss.messaging.core.client.impl.ClientConnectionFactoryImpl;
+import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
+import org.jboss.messaging.core.client.impl.LocationImpl;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
-import org.jboss.messaging.core.remoting.TransportType;
-import org.jboss.messaging.core.client.*;
-import org.jboss.messaging.core.client.impl.LocationImpl;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
-import org.jboss.messaging.core.client.impl.ClientConnectionFactoryImpl;
+import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.message.impl.MessageImpl;
-import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.TransportType;
+import org.jboss.messaging.core.security.CheckType;
+import org.jboss.messaging.core.security.JBMSecurityManager;
 import org.jboss.messaging.core.security.Role;
-import org.jboss.messaging.core.security.JBMSecurityManager;
-import org.jboss.messaging.core.security.CheckType;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.server.impl.MessagingServerImpl;
 import org.jboss.messaging.jms.client.JBossTextMessage;
+import org.jboss.messaging.util.SimpleString;
 
-import java.util.HashSet;
-
 /**
  * A simple embedded server is started with an INVM transport, a message is sentr and received.
  * @author <a href="ataylor at redhat.com">Andy Taylor</a>
@@ -74,7 +81,10 @@
          //start the server
          messagingServer.start();
          //add a new binding
-         messagingServer.getPostOffice().addBinding("atestq", "atestq", null, false, false);
+         
+         SimpleString atestq = new SimpleString("atestq");
+         
+         messagingServer.getPostOffice().addBinding(atestq, atestq, null, false, false);
 
          //then we create a client as normal
          Location location = new LocationImpl(0);
@@ -83,12 +93,12 @@
 
          clientConnection = connectionFactory.createConnection();
          ClientSession clientSession = clientConnection.createClientSession(false, true, true, 100, true, false);
-         ClientProducer clientProducer = clientSession.createProducer("atestq");
+         ClientProducer clientProducer = clientSession.createProducer(atestq);
          Message message = new MessageImpl(JBossTextMessage.TYPE, false, 0,
                  System.currentTimeMillis(), (byte) 1);
          message.setPayload("Hello!".getBytes());
          clientProducer.send(message);
-         ClientConsumer clientConsumer = clientSession.createConsumer("atestq", null, false, false, false);
+         ClientConsumer clientConsumer = clientSession.createConsumer(atestq, null, false, false, false);
          clientConnection.start();
          Message msg = clientConsumer.receive(5000);
          System.out.println("msg.getPayload() = " + new String(msg.getPayload()));

Modified: trunk/docs/examples/messaging/src/org/jboss/messaging/example/SSLClient.java
===================================================================
--- trunk/docs/examples/messaging/src/org/jboss/messaging/example/SSLClient.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/docs/examples/messaging/src/org/jboss/messaging/example/SSLClient.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -21,15 +21,22 @@
    */
 package org.jboss.messaging.example;
 
-import org.jboss.messaging.core.client.*;
+import org.jboss.messaging.core.client.ClientConnection;
+import org.jboss.messaging.core.client.ClientConnectionFactory;
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ConnectionParams;
+import org.jboss.messaging.core.client.Location;
+import org.jboss.messaging.core.client.impl.ClientConnectionFactoryImpl;
+import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
 import org.jboss.messaging.core.client.impl.LocationImpl;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
-import org.jboss.messaging.core.client.impl.ClientConnectionFactoryImpl;
-import org.jboss.messaging.core.remoting.TransportType;
+import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.message.impl.MessageImpl;
-import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.TransportType;
 import org.jboss.messaging.jms.client.JBossTextMessage;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * A simple Client that uses SSL, to run this example enable ssl on the server in the jbm-configuration.xml file.
@@ -60,12 +67,13 @@
          ClientConnectionFactory connectionFactory = new ClientConnectionFactoryImpl(location, connectionParams);
          clientConnection = connectionFactory.createConnection(null, null);
          ClientSession clientSession = clientConnection.createClientSession(false, true, true, 100, true, false);
-         ClientProducer clientProducer = clientSession.createProducer("queuejms.testQueue");
+         SimpleString queue = new SimpleString("queuejms.testQueue");
+         ClientProducer clientProducer = clientSession.createProducer(queue);
          Message message = new MessageImpl(JBossTextMessage.TYPE, false, 0,
                System.currentTimeMillis(), (byte) 1);
          message.setPayload("Hello!".getBytes());
          clientProducer.send(message);
-         ClientConsumer clientConsumer = clientSession.createConsumer("queuejms.testQueue", null, false, false, false);
+         ClientConsumer clientConsumer = clientSession.createConsumer(queue, null, false, false, false);
          clientConnection.start();
          Message msg = clientConsumer.receive(5000);
          System.out.println("msg.getPayload() = " + new String(msg.getPayload()));

Modified: trunk/docs/examples/messaging/src/org/jboss/messaging/example/SimpleClient.java
===================================================================
--- trunk/docs/examples/messaging/src/org/jboss/messaging/example/SimpleClient.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/docs/examples/messaging/src/org/jboss/messaging/example/SimpleClient.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -21,13 +21,22 @@
    */
 package org.jboss.messaging.example;
 
-import org.jboss.messaging.core.client.*;
-import org.jboss.messaging.core.client.impl.*;
-import org.jboss.messaging.core.remoting.TransportType;
+import org.jboss.messaging.core.client.ClientConnection;
+import org.jboss.messaging.core.client.ClientConnectionFactory;
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ConnectionParams;
+import org.jboss.messaging.core.client.Location;
+import org.jboss.messaging.core.client.impl.ClientConnectionFactoryImpl;
+import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
+import org.jboss.messaging.core.client.impl.LocationImpl;
+import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.message.impl.MessageImpl;
-import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.TransportType;
 import org.jboss.messaging.jms.client.JBossTextMessage;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * Uses the core messaging API to send and receive a message to a queue.
@@ -46,12 +55,13 @@
          ClientConnectionFactory connectionFactory = new ClientConnectionFactoryImpl(location, connectionParams);
          clientConnection = connectionFactory.createConnection();
          ClientSession clientSession = clientConnection.createClientSession(false, true, true, 100, true, false);
-         ClientProducer clientProducer = clientSession.createProducer("queuejms.testQueue");
+         SimpleString queue = new SimpleString("queuejms.testQueue");
+         ClientProducer clientProducer = clientSession.createProducer(queue);
          Message message = new MessageImpl(JBossTextMessage.TYPE, false, 0,
                  System.currentTimeMillis(), (byte) 1);
          message.setPayload("Hello!".getBytes());
          clientProducer.send(message);
-         ClientConsumer clientConsumer = clientSession.createConsumer("queuejms.testQueue", null, false, false, false);
+         ClientConsumer clientConsumer = clientSession.createConsumer(queue, null, false, false, false);
          clientConnection.start();
          Message msg = clientConsumer.receive(5000);
          System.out.println("msg.getPayload() = " + new String(msg.getPayload()));

Modified: trunk/src/main/org/jboss/messaging/core/client/ClientProducer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/ClientProducer.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/client/ClientProducer.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -9,17 +9,18 @@
 
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  */
 public interface ClientProducer
 {        
-	String getAddress();
+	SimpleString getAddress();
 	
 	void send(Message message) throws MessagingException;
 	
-   void send(String address, Message message) throws MessagingException;
+   void send(SimpleString address, Message message) throws MessagingException;
    
    void registerAcknowledgementHandler(AcknowledgementHandler handler);
    

Modified: trunk/src/main/org/jboss/messaging/core/client/ClientSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/ClientSession.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/client/ClientSession.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -12,6 +12,7 @@
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryResponseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryResponseMessage;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  *  
@@ -20,29 +21,29 @@
  */
 public interface ClientSession extends XAResource
 {   
-   void createQueue(String address, String queueName, String filterString, boolean durable, boolean temporary)
+   void createQueue(SimpleString address, SimpleString queueName, SimpleString filterString, boolean durable, boolean temporary)
                     throws MessagingException;
    
-   void deleteQueue(String queueName) throws MessagingException;
+   void deleteQueue(SimpleString queueName) throws MessagingException;
    
-   void addDestination(String address, boolean temporary) throws MessagingException;
+   void addDestination(SimpleString address, boolean temporary) throws MessagingException;
    
-   void removeDestination(String address, boolean temporary) throws MessagingException;
+   void removeDestination(SimpleString address, boolean temporary) throws MessagingException;
    
-   SessionQueueQueryResponseMessage queueQuery(String queueName) throws MessagingException;
+   SessionQueueQueryResponseMessage queueQuery(SimpleString queueName) throws MessagingException;
    
-   SessionBindingQueryResponseMessage bindingQuery(String address) throws MessagingException;
+   SessionBindingQueryResponseMessage bindingQuery(SimpleString address) throws MessagingException;
    
-   ClientConsumer createConsumer(String queueName, String filterString, boolean noLocal,
+   ClientConsumer createConsumer(SimpleString queueName, SimpleString filterString, boolean noLocal,
                                  boolean autoDeleteQueue, boolean direct) throws MessagingException;
    
-   ClientBrowser createBrowser(String queueName, String messageSelector) throws MessagingException;
+   ClientBrowser createBrowser(SimpleString queueName, SimpleString filterString) throws MessagingException;
    
-   ClientProducer createProducer(String address) throws MessagingException;
+   ClientProducer createProducer(SimpleString address) throws MessagingException;
    
-   ClientProducer createRateLimitedProducer(String address, int rate) throws MessagingException;
+   ClientProducer createRateLimitedProducer(SimpleString address, int rate) throws MessagingException;
    
-   ClientProducer createProducerWithWindowSize(String address, int windowSize) throws MessagingException;
+   ClientProducer createProducerWithWindowSize(SimpleString address, int windowSize) throws MessagingException;
    
    XAResource getXAResource();
 

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -26,6 +26,7 @@
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.remoting.impl.wireformat.ProducerSendMessage;
+import org.jboss.messaging.util.SimpleString;
 import org.jboss.messaging.util.TokenBucketLimiter;
 
 /**
@@ -48,7 +49,7 @@
 
    private boolean trace = log.isTraceEnabled();
    
-   private final String address;
+   private final SimpleString address;
    
    private final long serverTargetID;
    
@@ -71,7 +72,7 @@
    // Constructors ---------------------------------------------------------------------------------
       
    public ClientProducerImpl(final ClientSessionInternal session, final long serverTargetID,
-   		                    final String address,
+   		                    final SimpleString address,
    		                    final RemotingConnection remotingConnection, final int windowSize,
    		                    final int maxRate)
    {   	
@@ -97,7 +98,7 @@
    
    // ClientProducer implementation ----------------------------------------------------------------
 
-   public String getAddress()
+   public SimpleString getAddress()
    {
    	return address;
    }
@@ -109,14 +110,14 @@
       doSend(null, msg);
    }
    
-   public void send(final String address, final Message msg) throws MessagingException
+   public void send(final SimpleString address, final Message msg) throws MessagingException
    {
       checkClosed();
       
       doSend(address, msg);
    }
    
-   private void doSend(final String address, final Message msg) throws MessagingException
+   private void doSend(final SimpleString address, final Message msg) throws MessagingException
    {
    	ProducerSendMessage message = new ProducerSendMessage(address, msg.copy());
    	

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -77,7 +77,7 @@
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutResponseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAStartMessage;
-import org.jboss.messaging.jms.client.SelectorTranslator;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -139,7 +139,7 @@
    
    private final Map<Long, ClientConsumerInternal> consumers = new HashMap<Long, ClientConsumerInternal>();
    
-   private final Map<String, ClientProducerInternal> producerCache;
+   private final Map<SimpleString, ClientProducerInternal> producerCache;
    
    //For testing only
    private boolean forceNotSameRM;
@@ -190,7 +190,7 @@
       
       if (cacheProducers)
       {
-      	producerCache = new HashMap<String, ClientProducerInternal>();
+      	producerCache = new HashMap<SimpleString, ClientProducerInternal>();
       }
       else
       {
@@ -206,7 +206,7 @@
    
    // ClientSession implementation -----------------------------------------------------------------
 
-   public void createQueue(final String address, final String queueName, final String filterString,
+   public void createQueue(final SimpleString address, final SimpleString queueName, final SimpleString filterString,
    		                  final boolean durable, final boolean temporary)
                            throws MessagingException
    {
@@ -217,14 +217,14 @@
       remotingConnection.send(serverTargetID, request);
    }
 
-   public void deleteQueue(final String queueName) throws MessagingException
+   public void deleteQueue(final SimpleString queueName) throws MessagingException
    {
       checkClosed();
 
       remotingConnection.send(serverTargetID, new SessionDeleteQueueMessage(queueName));
    }
    
-   public SessionQueueQueryResponseMessage queueQuery(final String queueName) throws MessagingException
+   public SessionQueueQueryResponseMessage queueQuery(final SimpleString queueName) throws MessagingException
    {
       checkClosed();
       
@@ -235,7 +235,7 @@
       return response;
    }
    
-   public SessionBindingQueryResponseMessage bindingQuery(final String address) throws MessagingException
+   public SessionBindingQueryResponseMessage bindingQuery(final SimpleString address) throws MessagingException
    {
       checkClosed();
       
@@ -246,7 +246,7 @@
       return response;
    }
    
-   public void addDestination(final String address, final boolean temporary) throws MessagingException
+   public void addDestination(final SimpleString address, final boolean temporary) throws MessagingException
    {
       checkClosed();
       
@@ -255,7 +255,7 @@
       remotingConnection.send(serverTargetID, request);
    }
    
-   public void removeDestination(final String address, final boolean temporary) throws MessagingException
+   public void removeDestination(final SimpleString address, final boolean temporary) throws MessagingException
    {
       checkClosed();
       
@@ -264,7 +264,7 @@
       remotingConnection.send(serverTargetID, request);  
    }
    
-   public ClientConsumer createConsumer(final String queueName, final String filterString, final boolean noLocal,
+   public ClientConsumer createConsumer(final SimpleString queueName, final SimpleString filterString, final boolean noLocal,
                                         final boolean autoDeleteQueue, final boolean direct) throws MessagingException
    {
       checkClosed();
@@ -290,14 +290,12 @@
       return consumer;
    }
    
-   public ClientBrowser createBrowser(final String queueName, final String messageSelector) throws MessagingException
+   public ClientBrowser createBrowser(final SimpleString queueName, final SimpleString filterString) throws MessagingException
    {
       checkClosed();
 
-      String coreSelector = SelectorTranslator.convertToJBMFilterString(messageSelector);
+      SessionCreateBrowserMessage request = new SessionCreateBrowserMessage(queueName, filterString);
 
-      SessionCreateBrowserMessage request = new SessionCreateBrowserMessage(queueName, coreSelector);
-
       SessionCreateBrowserResponseMessage response = (SessionCreateBrowserResponseMessage)remotingConnection.send(serverTargetID, request);
 
       ClientBrowser browser = new ClientBrowserImpl(response.getBrowserTargetID(), this, remotingConnection);  
@@ -307,12 +305,12 @@
       return browser;
    }
 
-   public ClientProducer createProducer(final String address) throws MessagingException
+   public ClientProducer createProducer(final SimpleString address) throws MessagingException
    {
       return createProducer(address, defaultProducerWindowSize, defaultProducerMaxRate);
    }
       
-   public ClientProducer createProducer(final String address, final int windowSize, final int maxRate) throws MessagingException
+   public ClientProducer createProducer(final SimpleString address, final int windowSize, final int maxRate) throws MessagingException
    {
       checkClosed();
       
@@ -344,12 +342,12 @@
       return producer;
    }
    
-   public ClientProducer createRateLimitedProducer(String address, int rate) throws MessagingException
+   public ClientProducer createRateLimitedProducer(SimpleString address, int rate) throws MessagingException
    {
    	return createProducer(address, -1, rate);
    }
    
-   public ClientProducer createProducerWithWindowSize(String address, int windowSize) throws MessagingException
+   public ClientProducer createProducerWithWindowSize(SimpleString address, int windowSize) throws MessagingException
    {
    	return createProducer(address, windowSize, 0);
    }

Modified: trunk/src/main/org/jboss/messaging/core/deployers/impl/QueueSettingsDeployer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/deployers/impl/QueueSettingsDeployer.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/deployers/impl/QueueSettingsDeployer.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -21,10 +21,10 @@
    */
 package org.jboss.messaging.core.deployers.impl;
 
-import org.jboss.messaging.core.deployers.Deployer;
 import org.jboss.messaging.core.postoffice.PostOffice;
 import org.jboss.messaging.core.settings.HierarchicalRepository;
 import org.jboss.messaging.core.settings.impl.QueueSettings;
+import org.jboss.messaging.util.SimpleString;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -91,7 +91,7 @@
          }
          else if (DLQ_NODE_NAME.equalsIgnoreCase(child.getNodeName()))
          {
-            String queueName = child.getTextContent();
+            SimpleString queueName = new SimpleString(child.getTextContent());
             
             if (postOffice.getBinding(queueName) == null)
             {
@@ -102,7 +102,7 @@
          }
          else if (EXPIRY_QUEUE_NODE_NAME.equalsIgnoreCase(child.getNodeName()))
          {
-            String queueName = child.getTextContent();
+         	SimpleString queueName = new SimpleString(child.getTextContent());
             
             if (postOffice.getBinding(queueName) == null)
             {

Modified: trunk/src/main/org/jboss/messaging/core/filter/Filter.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/filter/Filter.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/filter/Filter.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -22,6 +22,7 @@
 package org.jboss.messaging.core.filter;
 
 import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -34,5 +35,5 @@
 {
    boolean match(Message message);
    
-   String getFilterString();
+   SimpleString getFilterString();
 }

Modified: trunk/src/main/org/jboss/messaging/core/filter/impl/FilterImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/filter/impl/FilterImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/filter/impl/FilterImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -28,6 +28,7 @@
 import org.jboss.messaging.core.filter.Filter;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.util.SimpleString;
 
 /**
 * This class implements a JBoss Messaging filter
@@ -61,6 +62,8 @@
 {
   private static final Logger log = Logger.getLogger(FilterImpl.class);
   
+  private final SimpleString sfilterString;
+  
   private final String filterString;
 
   private final Map<String, Identifier> identifiers = new HashMap<String, Identifier>();
@@ -69,9 +72,11 @@
   
   private final FilterParser parser = new FilterParser();
   
-  public FilterImpl(final String filterString) throws MessagingException
+  //TODO - convert to work natively with SimpleString
+  public FilterImpl(final SimpleString str) throws MessagingException
   {
-     this.filterString = filterString;
+     this.filterString = str == null ? null : str.toString();
+     this.sfilterString = str;
 
      try
      {
@@ -85,9 +90,9 @@
   
   // Filter implementation ---------------------------------------------------------------------
   
-  public String getFilterString()
+  public SimpleString getFilterString()
   {
-     return filterString;
+     return sfilterString;
   }
   
   public boolean match(final Message message)

Modified: trunk/src/main/org/jboss/messaging/core/management/MessagingServerManagement.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/MessagingServerManagement.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/management/MessagingServerManagement.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -25,13 +25,13 @@
 import java.util.List;
 import java.util.Set;
 
-import org.jboss.messaging.core.client.ClientConnectionFactory;
+import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.filter.Filter;
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.messagecounter.MessageCounter;
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.ServerConnection;
-import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * This interface describes the core management interface exposed by the server
@@ -53,14 +53,14 @@
     * @param name the name of the queue
     * @throws Exception if a problem occurred
     */
-   void createQueue(String address,String name) throws Exception;
+   void createQueue(SimpleString address, SimpleString name) throws Exception;
 
    /**
     * destroy a particular queue
     * @param name the name of the queue
     * @throws Exception if a problem occurred
     */
-   void destroyQueue(String name) throws Exception;
+   void destroyQueue(SimpleString name) throws Exception;
 
    /**
     * add an address to the post office
@@ -68,7 +68,7 @@
     * @return true if the address was added
     * @throws Exception if a problem occurred
     */
-   boolean addDestination(String address) throws Exception;
+   boolean addDestination(SimpleString address) throws Exception;
 
    /**
     * remove an address from the post office
@@ -76,7 +76,7 @@
     * @return true if the address was removed
     * @throws Exception if a problem occurred
     */
-   boolean removeDestination(String address) throws Exception;
+   boolean removeDestination(SimpleString address) throws Exception;
 
    /**
     * returns all the queues for a specific address
@@ -84,21 +84,21 @@
     * @return the queues
     * @throws Exception if a problem occurred
     */
-   List<Queue> getQueuesForAddress(String address) throws Exception;
+   List<Queue> getQueuesForAddress(SimpleString address) throws Exception;
 
    /**
     * remove all the messages for a specific address
     * @param address the address
     * @throws Exception if a problem occurred
     */
-   void removeAllMessagesForAddress(String address) throws Exception;
+   void removeAllMessagesForAddress(SimpleString address) throws Exception;
 
    /**
     * remove all the messages for a specific binding
     * @param name the name of the binding
     * @throws Exception if a problem occurred
     */
-   void removeAllMessagesForBinding(String name) throws Exception;
+   //void removeAllMessagesForBinding(SimpleString name) throws Exception;
 
    /**
     * List all messages in a queue that match the filter provided
@@ -107,7 +107,7 @@
     * @return the messages
     * @throws Exception if a problem occurred
     */
-   List<Message> listMessages(String queue, Filter filter) throws Exception;
+   //List<Message> listMessages(SimpleString queue, Filter filter) throws Exception;
 
    /**
     * remove the messages for a specific binding that match the specified filter
@@ -131,21 +131,21 @@
     * @return the number of messages in a queue
     * @throws Exception if a problem occurred
     */
-   int getMessageCountForQueue(String queue) throws Exception;
+   int getMessageCountForQueue(SimpleString queue) throws Exception;
 
    /**
     * register a message counter with a specific queue
     * @param queue the name of the queue
     * @throws Exception if a problem occurred
     */
-   void registerMessageCounter(String queue) throws Exception;
+   //void registerMessageCounter(SimpleString queue) throws Exception;
 
    /**
     * unregister a message counter from a specific queue
     * @param queue the name of the queue
     * @throws Exception if a problem occurred
     */
-   void unregisterMessageCounter(String queue) throws Exception;
+   //void unregisterMessageCounter(SimpleString queue) throws Exception;
 
    /**
     * start collection statistics on a message counter. The message counter must have been registered first.
@@ -153,7 +153,7 @@
     * @param duration how long to take a sample for in seconds. 0 means indefinitely.
     * @throws Exception if a problem occurred
     */
-   void startMessageCounter(String queue, long duration) throws Exception;
+   //void startMessageCounter(SimpleString queue, long duration) throws Exception;
 
    /**
     * stop a message counter on a specific queue. The message counter must be started to call this.
@@ -161,55 +161,55 @@
     * @return the message counter stopped
     * @throws Exception if a problem occurred
     */
-   MessageCounter stopMessageCounter(String queue) throws Exception;
+   //MessageCounter stopMessageCounter(SimpleString queue) throws Exception;
 
    /**
     * get a message counter for a specific queue
     * @param queue the name of the queue
     * @return the message counter
     */
-   MessageCounter getMessageCounter(String queue);
-
+   //MessageCounter getMessageCounter(SimpleString queue);
+//
    /**
     * get all message counters
     * @return the message counters
     */
-   Collection<MessageCounter> getMessageCounters();
+   //Collection<MessageCounter> getMessageCounters();
 
    /**
     * reset a message counter for a specific queue
     * @param queue the name of the queue
     */
-   void resetMessageCounter(String queue);
+   //void resetMessageCounter(SimpleString queue);
 
    /**
     * reset all message counters registered
     */
-   void resetMessageCounters();
+   //void resetMessageCounters();
 
    /**
     * reset the history for a message counter for a queue
     * @param queue the name of the queue
     */
-   void resetMessageCounterHistory(String queue);
+   //void resetMessageCounterHistory(SimpleString queue);
 
    /**
     * reset all message counter histories
     */
-   void resetMessageCounterHistories();
+   //void resetMessageCounterHistories();
 
    /**
     * stop all message counters
     * @return all message counters
     * @throws Exception if a problem occurred
     */
-   List<MessageCounter> stopAllMessageCounters() throws Exception;
+   //List<MessageCounter> stopAllMessageCounters() throws Exception;
 
    /**
     * unregister all message counters
     * @throws Exception if a problem occurred
     */
-   void unregisterAllMessageCounters() throws Exception;
+   //void unregisterAllMessageCounters() throws Exception;
 
    /**
     * get the number of consumers for a specific queue
@@ -217,13 +217,13 @@
     * @return the count
     * @throws Exception if a problem occurred
     */
-   public int getConsumerCountForQueue(String queue) throws Exception;
+   //public int getConsumerCountForQueue(SimpleString queue) throws Exception;
 
    /**
     * return all the active connections
     * @return all connections
     */
-   List<ServerConnection> getActiveConnections();
+   //List<ServerConnection> getActiveConnections();
 
    /**
     * move a set of messages from one queue to another
@@ -240,7 +240,7 @@
     * @param filter the filter to use
     * @throws Exception if a problem occurred
     */
-   void expireMessages(String queue,String filter) throws Exception;
+   //void expireMessages(SimpleString queue,String filter) throws Exception;
 
    /**
     * change the message priority for a set of messages
@@ -255,7 +255,7 @@
     * list all available addresses
     * @return the addresses
     */
-   Set<String> listAvailableAddresses();
+   //Set<SimpleString> listAvailableAddresses();
 
    Configuration getConfiguration();
 

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerManagementImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerManagementImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerManagementImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -31,8 +31,7 @@
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 
-import org.jboss.messaging.core.client.ClientConnectionFactory;
-import org.jboss.messaging.core.client.impl.ClientConnectionFactoryImpl;
+import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.filter.Filter;
 import org.jboss.messaging.core.filter.impl.FilterImpl;
@@ -45,7 +44,7 @@
 import org.jboss.messaging.core.server.MessagingServer;
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.ServerConnection;
-import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * This interface describes the properties and operations that comprise the management interface of the
@@ -62,14 +61,14 @@
 {
    private MessagingServer messagingServer;
 
-   private HashMap<String, MessageCounter> currentCounters = new HashMap<String, MessageCounter>();
+//   private HashMap<String, MessageCounter> currentCounters = new HashMap<String, MessageCounter>();
+//
+//   private HashMap<String, ScheduledFuture> currentRunningCounters = new HashMap<String, ScheduledFuture>();
+//
+//   private ScheduledExecutorService scheduler;
+//
+//   private int maxMessageCounters = 20;
 
-   private HashMap<String, ScheduledFuture> currentRunningCounters = new HashMap<String, ScheduledFuture>();
-
-   private ScheduledExecutorService scheduler;
-
-   private int maxMessageCounters = 20;
-
    public void setMessagingServer(MessagingServer messagingServer)
    {
       this.messagingServer = messagingServer;
@@ -80,7 +79,7 @@
       return messagingServer.isStarted();
    }
 
-   public void createQueue(String address, String name) throws Exception
+   public void createQueue(SimpleString address, SimpleString name) throws Exception
    {
       if (messagingServer.getPostOffice().getBinding(name) == null)
       {
@@ -88,7 +87,7 @@
       }
    }
 
-   public void destroyQueue(String name) throws Exception
+   public void destroyQueue(SimpleString name) throws Exception
    {
       Binding binding = messagingServer.getPostOffice().getBinding(name);
 
@@ -102,17 +101,17 @@
       }
    }
 
-   public boolean addDestination(String address) throws Exception
+   public boolean addDestination(SimpleString address) throws Exception
    {
       return messagingServer.getPostOffice().addDestination(address, false);
    }
 
-   public boolean removeDestination(String address) throws Exception
+   public boolean removeDestination(SimpleString address) throws Exception
    {
       return messagingServer.getPostOffice().removeDestination(address, false);
    }
 
-   public void removeAllMessagesForAddress(String address) throws Exception
+   public void removeAllMessagesForAddress(SimpleString address) throws Exception
    {
       List<Binding> bindings = messagingServer.getPostOffice().getBindingsForAddress(address);
 
@@ -123,33 +122,33 @@
          queue.deleteAllReferences(messagingServer.getStorageManager());
       }
    }
+//
+//   public void removeAllMessagesForBinding(SimpleString name) throws Exception
+//   {
+//      Binding binding = messagingServer.getPostOffice().getBinding(name);
+//      if (binding != null)
+//      {
+//         Queue queue = binding.getQueue();
+//
+//         queue.deleteAllReferences(messagingServer.getStorageManager());
+//      }
+//   }
+//
+//   public List<Message> listMessages(SimpleString queueName, Filter filter) throws Exception
+//   {
+//      List<Message> msgs = new ArrayList<Message>();
+//      Queue queue = getQueue(queueName);
+//      if (queue != null)
+//      {
+//         List<MessageReference> allRefs = queue.list(filter);
+//         for (MessageReference allRef : allRefs)
+//         {
+//            msgs.add(allRef.getMessage());
+//         }
+//      }
+//      return msgs;
+//   }
 
-   public void removeAllMessagesForBinding(String name) throws Exception
-   {
-      Binding binding = messagingServer.getPostOffice().getBinding(name);
-      if (binding != null)
-      {
-         Queue queue = binding.getQueue();
-
-         queue.deleteAllReferences(messagingServer.getStorageManager());
-      }
-   }
-
-   public List<Message> listMessages(String queueName, Filter filter) throws Exception
-   {
-      List<Message> msgs = new ArrayList<Message>();
-      Queue queue = getQueue(queueName);
-      if (queue != null)
-      {
-         List<MessageReference> allRefs = queue.list(filter);
-         for (MessageReference allRef : allRefs)
-         {
-            msgs.add(allRef.getMessage());
-         }
-      }
-      return msgs;
-   }
-
 //   public void removeMessageForBinding(String name, Filter filter) throws Exception
 //   {
 //      Binding binding = messagingServer.getPostOffice().getBinding(name);
@@ -174,7 +173,7 @@
 //      }
 //   }
 
-   public List<Queue> getQueuesForAddress(String address) throws Exception
+   public List<Queue> getQueuesForAddress(SimpleString address) throws Exception
    {
       List<Queue> queues = new ArrayList<Queue>();
       List<Binding> bindings = messagingServer.getPostOffice().getBindingsForAddress(address);
@@ -187,183 +186,183 @@
       return queues;
    }
 
-   public int getMessageCountForQueue(String queue) throws Exception
+   public int getMessageCountForQueue(SimpleString queue) throws Exception
    {
       return getQueue(queue).getMessageCount();
    }
+//
+//   public int getMaxMessageCounters()
+//   {
+//      return maxMessageCounters;
+//   }
+//
+//   public void setMaxMessageCounters(int maxMessageCounters)
+//   {
+//      this.maxMessageCounters = maxMessageCounters;
+//   }
+//
+//   public void registerMessageCounter(final SimpleString queueName) throws Exception
+//   {
+//      if (currentCounters.get(queueName) != null)
+//      {
+//         throw new IllegalStateException("Message Counter Already Registered");
+//      }
+//      Binding binding = messagingServer.getPostOffice().getBinding(queueName);
+//      if (binding == null)
+//      {
+//         throw new MessagingException(MessagingException.QUEUE_DOES_NOT_EXIST);
+//      }
+//      Queue queue = binding.getQueue();
+//      currentCounters.put(queueName, new MessageCounter(queue.getName(), queue, queue.isDurable(),
+//      		messagingServer.getQueueSettingsRepository().getMatch(queue.getName()).getMessageCounterHistoryDayLimit()));
+//   }
+//
+//   public void unregisterMessageCounter(final SimpleString queueName) throws Exception
+//   {
+//      if (currentCounters.get(queueName) == null)
+//      {
+//         throw new MessagingException(MessagingException.ILLEGAL_STATE, "Counter is not registered");
+//      }
+//      currentCounters.remove(queueName);
+//      if (currentRunningCounters.get(queueName) != null)
+//      {
+//         currentRunningCounters.get(queueName).cancel(true);
+//         currentRunningCounters.remove(queueName);
+//      }
+//   }
+//
+//   public void startMessageCounter(final String SimpleString, long duration) throws Exception
+//   {
+//      MessageCounter messageCounter = currentCounters.get(queueName);
+//      if (messageCounter == null)
+//      {
+//         Binding binding = messagingServer.getPostOffice().getBinding(queueName);
+//         if (binding == null)
+//         {
+//            throw new MessagingException(MessagingException.QUEUE_DOES_NOT_EXIST);
+//         }
+//         Queue queue = binding.getQueue();
+//         messageCounter = new MessageCounter(queue.getName(), queue, queue.isDurable(),
+//         		messagingServer.getQueueSettingsRepository().getMatch(queue.getName()).getMessageCounterHistoryDayLimit());
+//      }
+//      currentCounters.put(queueName, messageCounter);
+//      messageCounter.resetCounter();
+//      if (duration > 0)
+//      {
+//
+//         ScheduledFuture future = scheduler.schedule(new Runnable()
+//         {
+//            public void run()
+//            {
+//               currentCounters.get(queueName).sample();
+//            }
+//         }, duration, TimeUnit.SECONDS);
+//         currentRunningCounters.put(queueName, future);
+//      }
+//   }
+//
+//   public MessageCounter stopMessageCounter(SimpleString queueName) throws Exception
+//   {
+//      MessageCounter messageCounter = currentCounters.get(queueName);
+//      if (messageCounter == null)
+//      {
+//         throw new IllegalArgumentException(queueName + "counter not registered");
+//      }
+//      if (currentRunningCounters.get(queueName) != null)
+//      {
+//         currentRunningCounters.get(queueName).cancel(true);
+//         currentRunningCounters.remove(queueName);
+//      }
+//      messageCounter.sample();
+//      return messageCounter;
+//   }
+//
+//   public MessageCounter getMessageCounter(SimpleString queueName)
+//   {
+//      MessageCounter messageCounter = currentCounters.get(queueName);
+//      if (messageCounter != null && currentRunningCounters.get(queueName) == null)
+//      {
+//         messageCounter.sample();
+//      }
+//      return messageCounter;
+//   }
+//
+//
+//   public Collection<MessageCounter> getMessageCounters()
+//   {
+//      for (String s : currentCounters.keySet())
+//      {
+//         currentCounters.get(s).sample();
+//      }
+//      return currentCounters.values();
+//   }
+//
+//   public void resetMessageCounter(SimpleString queue)
+//   {
+//      MessageCounter messageCounter = currentCounters.get(queue);
+//      if (messageCounter != null)
+//      {
+//         messageCounter.resetCounter();
+//      }
+//   }
+//
+//   public void resetMessageCounters()
+//   {
+//      Set<String> counterNames = currentCounters.keySet();
+//      for (String counterName : counterNames)
+//      {
+//         resetMessageCounter(counterName);
+//      }
+//   }
+//
+//   public void resetMessageCounterHistory(SimpleString queue)
+//   {
+//      MessageCounter messageCounter = currentCounters.get(queue);
+//      if (messageCounter != null)
+//      {
+//         messageCounter.resetHistory();
+//      }
+//   }
+//
+//   public void resetMessageCounterHistories()
+//   {
+//      Set<String> counterNames = currentCounters.keySet();
+//      for (String counterName : counterNames)
+//      {
+//         resetMessageCounterHistory(counterName);
+//      }
+//   }
+//
+//   public List<MessageCounter> stopAllMessageCounters() throws Exception
+//   {
+//      Set<String> counterNames = currentCounters.keySet();
+//      List<MessageCounter> messageCounters = new ArrayList<MessageCounter>();
+//      for (String counterName : counterNames)
+//      {
+//         messageCounters.add(stopMessageCounter(counterName));
+//      }
+//      return messageCounters;
+//   }
+//
+//   public void unregisterAllMessageCounters() throws Exception
+//   {
+//      Set<String> counterNames = currentCounters.keySet();
+//      for (String counterName : counterNames)
+//      {
+//         unregisterMessageCounter(counterName);
+//      }
+//   }
+//
+//   public int getConsumerCountForQueue(SimpleString queue) throws Exception
+//   {
+//      return getQueue(queue).getConsumerCount();
+//   }
+//
+//   public List<ServerConnection> getActiveConnections()
+//   {
+//      return messagingServer.getConnectionManager().getActiveConnections();
+//   }
 
-   public int getMaxMessageCounters()
-   {
-      return maxMessageCounters;
-   }
-
-   public void setMaxMessageCounters(int maxMessageCounters)
-   {
-      this.maxMessageCounters = maxMessageCounters;
-   }
-
-   public void registerMessageCounter(final String queueName) throws Exception
-   {
-      if (currentCounters.get(queueName) != null)
-      {
-         throw new IllegalStateException("Message Counter Already Registered");
-      }
-      Binding binding = messagingServer.getPostOffice().getBinding(queueName);
-      if (binding == null)
-      {
-         throw new MessagingException(MessagingException.QUEUE_DOES_NOT_EXIST);
-      }
-      Queue queue = binding.getQueue();
-      currentCounters.put(queueName, new MessageCounter(queue.getName(), queue, queue.isDurable(),
-      		messagingServer.getQueueSettingsRepository().getMatch(queue.getName()).getMessageCounterHistoryDayLimit()));
-   }
-
-   public void unregisterMessageCounter(final String queueName) throws Exception
-   {
-      if (currentCounters.get(queueName) == null)
-      {
-         throw new MessagingException(MessagingException.ILLEGAL_STATE, "Counter is not registered");
-      }
-      currentCounters.remove(queueName);
-      if (currentRunningCounters.get(queueName) != null)
-      {
-         currentRunningCounters.get(queueName).cancel(true);
-         currentRunningCounters.remove(queueName);
-      }
-   }
-
-   public void startMessageCounter(final String queueName, long duration) throws Exception
-   {
-      MessageCounter messageCounter = currentCounters.get(queueName);
-      if (messageCounter == null)
-      {
-         Binding binding = messagingServer.getPostOffice().getBinding(queueName);
-         if (binding == null)
-         {
-            throw new MessagingException(MessagingException.QUEUE_DOES_NOT_EXIST);
-         }
-         Queue queue = binding.getQueue();
-         messageCounter = new MessageCounter(queue.getName(), queue, queue.isDurable(),
-         		messagingServer.getQueueSettingsRepository().getMatch(queue.getName()).getMessageCounterHistoryDayLimit());
-      }
-      currentCounters.put(queueName, messageCounter);
-      messageCounter.resetCounter();
-      if (duration > 0)
-      {
-
-         ScheduledFuture future = scheduler.schedule(new Runnable()
-         {
-            public void run()
-            {
-               currentCounters.get(queueName).sample();
-            }
-         }, duration, TimeUnit.SECONDS);
-         currentRunningCounters.put(queueName, future);
-      }
-   }
-
-   public MessageCounter stopMessageCounter(String queueName) throws Exception
-   {
-      MessageCounter messageCounter = currentCounters.get(queueName);
-      if (messageCounter == null)
-      {
-         throw new IllegalArgumentException(queueName + "counter not registered");
-      }
-      if (currentRunningCounters.get(queueName) != null)
-      {
-         currentRunningCounters.get(queueName).cancel(true);
-         currentRunningCounters.remove(queueName);
-      }
-      messageCounter.sample();
-      return messageCounter;
-   }
-
-   public MessageCounter getMessageCounter(String queueName)
-   {
-      MessageCounter messageCounter = currentCounters.get(queueName);
-      if (messageCounter != null && currentRunningCounters.get(queueName) == null)
-      {
-         messageCounter.sample();
-      }
-      return messageCounter;
-   }
-
-
-   public Collection<MessageCounter> getMessageCounters()
-   {
-      for (String s : currentCounters.keySet())
-      {
-         currentCounters.get(s).sample();
-      }
-      return currentCounters.values();
-   }
-
-   public void resetMessageCounter(String queue)
-   {
-      MessageCounter messageCounter = currentCounters.get(queue);
-      if (messageCounter != null)
-      {
-         messageCounter.resetCounter();
-      }
-   }
-
-   public void resetMessageCounters()
-   {
-      Set<String> counterNames = currentCounters.keySet();
-      for (String counterName : counterNames)
-      {
-         resetMessageCounter(counterName);
-      }
-   }
-
-   public void resetMessageCounterHistory(String queue)
-   {
-      MessageCounter messageCounter = currentCounters.get(queue);
-      if (messageCounter != null)
-      {
-         messageCounter.resetHistory();
-      }
-   }
-
-   public void resetMessageCounterHistories()
-   {
-      Set<String> counterNames = currentCounters.keySet();
-      for (String counterName : counterNames)
-      {
-         resetMessageCounterHistory(counterName);
-      }
-   }
-
-   public List<MessageCounter> stopAllMessageCounters() throws Exception
-   {
-      Set<String> counterNames = currentCounters.keySet();
-      List<MessageCounter> messageCounters = new ArrayList<MessageCounter>();
-      for (String counterName : counterNames)
-      {
-         messageCounters.add(stopMessageCounter(counterName));
-      }
-      return messageCounters;
-   }
-
-   public void unregisterAllMessageCounters() throws Exception
-   {
-      Set<String> counterNames = currentCounters.keySet();
-      for (String counterName : counterNames)
-      {
-         unregisterMessageCounter(counterName);
-      }
-   }
-
-   public int getConsumerCountForQueue(String queue) throws Exception
-   {
-      return getQueue(queue).getConsumerCount();
-   }
-
-   public List<ServerConnection> getActiveConnections()
-   {
-      return messagingServer.getConnectionManager().getActiveConnections();
-   }
-
 //   public void moveMessages(String fromQueue, String toQueue, String filter) throws Exception
 //   {
 //      Filter actFilter = new FilterImpl(filter);
@@ -376,17 +375,17 @@
 //      }
 //
 //   }
+//
+//   public void expireMessages(SimpleString queue, SimpleString filter) throws Exception
+//   {
+//      Filter actFilter = new FilterImpl(filter);
+//      List<MessageReference> allRefs = getQueue(queue).list(actFilter);
+//      for (MessageReference messageReference : allRefs)
+//      {
+//         messageReference.getMessage().setExpiration(System.currentTimeMillis());
+//      }
+//   }
 
-   public void expireMessages(String queue, String filter) throws Exception
-   {
-      Filter actFilter = new FilterImpl(filter);
-      List<MessageReference> allRefs = getQueue(queue).list(actFilter);
-      for (MessageReference messageReference : allRefs)
-      {
-         messageReference.getMessage().setExpiration(System.currentTimeMillis());
-      }
-   }
-
 //   public void changeMessagePriority(String queue, String filter, int priority) throws Exception
 //   {
 //      Filter actFilter = new FilterImpl(filter);
@@ -402,12 +401,12 @@
 //      }
 //
 //   }
+//
+//   public Set<SimpleString> listAvailableAddresses()
+//   {
+//      return messagingServer.getPostOffice().listAllDestinations();
+//   }
 
-   public Set<String> listAvailableAddresses()
-   {
-      return messagingServer.getPostOffice().listAllDestinations();
-   }
-
    public Configuration getConfiguration()
    {
       return messagingServer.getConfiguration();
@@ -416,7 +415,7 @@
    // Private ---------------------------------------------------------------------------
 
 
-   private Queue getQueue(String queueName) throws Exception
+   private Queue getQueue(SimpleString queueName) throws Exception
    {
       Binding binding = messagingServer.getPostOffice().getBinding(queueName);
       if (binding == null)
@@ -431,20 +430,20 @@
 
    public void start() throws Exception
    {
-      scheduler = Executors.newScheduledThreadPool(maxMessageCounters);
+      //scheduler = Executors.newScheduledThreadPool(maxMessageCounters);
    }
 
    public void stop() throws Exception
    {
-      if (scheduler != null)
-      {
-         scheduler.shutdown();
-      }
+//      if (scheduler != null)
+//      {
+//         scheduler.shutdown();
+//      }
    }
 
-   protected void finalize() throws Throwable
-   {
-      super.finalize();
-
-   }
+//   protected void finalize() throws Throwable
+//   {
+//      super.finalize();
+//
+//   }
 }

Modified: trunk/src/main/org/jboss/messaging/core/message/impl/MessageReferenceImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/impl/MessageReferenceImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/message/impl/MessageReferenceImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -133,11 +133,11 @@
               
       queue.referenceCancelled();
 
-      int maxDeliveries = queueSettingsRepository.getMatch(queue.getName()).getMaxDeliveryAttempts();
+      int maxDeliveries = queueSettingsRepository.getMatch(queue.getName().toString()).getMaxDeliveryAttempts();
       
       if (maxDeliveries > 0 && deliveryCount >= maxDeliveries)
       {      	      	
-         Queue DLQ = queueSettingsRepository.getMatch(queue.getName()).getDLQ();
+         Queue DLQ = queueSettingsRepository.getMatch(queue.getName().toString()).getDLQ();
          
          Transaction tx = new TransactionImpl(persistenceManager, postOffice);
                   
@@ -176,7 +176,7 @@
    public void expire(final StorageManager persistenceManager, final PostOffice postOffice,
    		final HierarchicalRepository<QueueSettings> queueSettingsRepository) throws Exception
    {
-      Queue expiryQueue = queueSettingsRepository.getMatch(queue.getName()).getExpiryQueue();
+      Queue expiryQueue = queueSettingsRepository.getMatch(queue.getName().toString()).getExpiryQueue();
       
       Transaction tx = new TransactionImpl(persistenceManager, postOffice);
       

Modified: trunk/src/main/org/jboss/messaging/core/persistence/StorageManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/persistence/StorageManager.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/persistence/StorageManager.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -31,6 +31,7 @@
 import org.jboss.messaging.core.server.MessagingComponent;
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.QueueFactory;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -49,14 +50,14 @@
    long generateTransactionID();
    
       
-   void storeMessage(String address, Message message) throws Exception;
+   void storeMessage(SimpleString address, Message message) throws Exception;
    
    void storeAcknowledge(long queueID, long messageID) throws Exception;
    
    void storeDelete(long messageID) throws Exception;
     
    
-   void storeMessageTransactional(long txID, String address, Message message) throws Exception;
+   void storeMessageTransactional(long txID, SimpleString address, Message message) throws Exception;
    
    void storeAcknowledgeTransactional(long txID, long queueID, long messageiD) throws Exception;
    
@@ -81,12 +82,12 @@
    
    void deleteBinding(Binding binding) throws Exception;
    
-   boolean addDestination(String destination) throws Exception;
+   boolean addDestination(SimpleString destination) throws Exception;
    
-   boolean deleteDestination(String destination) throws Exception;
+   boolean deleteDestination(SimpleString destination) throws Exception;
    
    
    void loadBindings(QueueFactory queueFactory, List<Binding> bindings,
-   		            List<String> destinations) throws Exception;
+   		            List<SimpleString> destinations) throws Exception;
       
 }

Modified: trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -34,6 +34,7 @@
 import org.jboss.messaging.core.server.JournalType;
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.QueueFactory;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -79,7 +80,7 @@
 	
 	private final Journal bindingsJournal;
 	
-	private final ConcurrentMap<String, Long> destinationIDMap = new ConcurrentHashMap<String, Long>();
+	private final ConcurrentMap<SimpleString, Long> destinationIDMap = new ConcurrentHashMap<SimpleString, Long>();
    
 	private volatile boolean started;
 	
@@ -155,7 +156,7 @@
 	
 	// Non transactional operations
 	
-	public void storeMessage(final String address, final Message message) throws Exception
+	public void storeMessage(final SimpleString address, final Message message) throws Exception
 	{
 		byte[] bytes = messageBytes(address, message);
       
@@ -176,7 +177,7 @@
 	
 	// Transactional operations
 	
-   public void storeMessageTransactional(long txID, String address, Message message) throws Exception
+   public void storeMessageTransactional(long txID, SimpleString address, Message message) throws Exception
    {
    	byte[] bytes = messageBytes(address, message);
       
@@ -259,7 +260,7 @@
 					
 					bb.get(addressBytes);
 					
-					String address = new String(addressBytes, "UTF-8");
+					SimpleString address = new SimpleString(addressBytes);
 					
 					maxMessageID = Math.max(maxMessageID, record.id);
 
@@ -387,9 +388,17 @@
 
 		 daos.writeByte(BINDING_RECORD);
 		 
-		 daos.writeUTF(queue.getName());
+		 byte[] nameBytes = queue.getName().getData();
+		 
+		 daos.writeInt(nameBytes.length);
+		 
+		 daos.write(nameBytes);
+		 
+		 byte[] addressBytes = binding.getAddress().getData();
 
-		 daos.writeUTF(binding.getAddress());
+		 daos.writeInt(addressBytes.length);
+		 
+		 daos.write(addressBytes);
 
 		 Filter filter = queue.getFilter();
 
@@ -397,7 +406,11 @@
 
 		 if (filter != null)
 		 {
-			 daos.writeUTF(filter.getFilterString());
+			 byte[] filterBytes = queue.getFilter().getFilterString().getData();
+
+			 daos.writeInt(filterBytes.length);
+			 
+			 daos.write(filterBytes);
 		 }
 
 		 daos.flush();
@@ -419,7 +432,7 @@
 		bindingsJournal.appendDeleteRecord(id);
 	}
 	
-	public boolean addDestination(final String destination) throws Exception
+	public boolean addDestination(final SimpleString destination) throws Exception
 	{
 		long destinationID = bindingIDSequence.getAndIncrement();
 		
@@ -436,8 +449,12 @@
 			
 			daos.writeByte(DESTINATION_RECORD);
 			
-			daos.writeUTF(destination);
+			byte[] destBytes = destination.getData();
 			
+			daos.writeInt(destBytes.length);
+			
+			daos.write(destBytes);
+			
 			daos.flush();
 			
 			byte[] data = baos.toByteArray();
@@ -448,7 +465,7 @@
 		}		
 	}
 	
-	public boolean deleteDestination(final String destination) throws Exception
+	public boolean deleteDestination(final SimpleString destination) throws Exception
 	{
 		Long destinationID = destinationIDMap.remove(destination);
 		
@@ -465,7 +482,7 @@
 	}
 	
 	public void loadBindings(final QueueFactory queueFactory,
-			                   final List<Binding> bindings, final List<String> destinations) throws Exception
+			                   final List<Binding> bindings, final List<SimpleString> destinations) throws Exception
 	{
 		log.info("*** loading bindings");
 		
@@ -491,15 +508,26 @@
 			
 			if (rec == BINDING_RECORD)
 			{
-				String queueName = dais.readUTF();
+				int len = dais.readInt();
+				byte[] queueNameBytes = new byte[len];
+				dais.read(queueNameBytes);
+				SimpleString queueName = new SimpleString(queueNameBytes);
 
-				String address = dais.readUTF();
+				len = dais.readInt();
+				byte[] addressBytes = new byte[len];
+				dais.read(addressBytes);
+				SimpleString address = new SimpleString(addressBytes);
 
 				Filter filter = null;
 
 				if (dais.readBoolean())
 				{
-					filter = new FilterImpl(dais.readUTF());
+					len = dais.readInt();
+					byte[] filterBytes = new byte[len];
+					dais.read(filterBytes);
+					SimpleString filterString = new SimpleString(filterBytes);
+										
+					filter = new FilterImpl(filterString);
 				}
 
 				Queue queue = queueFactory.createQueue(id, queueName, filter, true, false);
@@ -511,8 +539,14 @@
 			}
 			else if (rec == DESTINATION_RECORD)
 			{
-				String destinationName = dais.readUTF();
+				int len = dais.readInt();
 				
+				byte[] destData = new byte[len];
+				
+				dais.read(destData);
+				
+				SimpleString destinationName = new SimpleString(destData);
+				
 				destinationIDMap.put(destinationName, id);
 				
 				destinations.add(destinationName);
@@ -564,11 +598,11 @@
 	
 	// Private ----------------------------------------------------------------------------------
 	
-	private byte[] messageBytes(final String address, final Message message) throws Exception
+	private byte[] messageBytes(final SimpleString address, final Message message) throws Exception
 	{
 		//TODO optimise this
 		
-		byte[] addressBytes = address.getBytes("UTF-8");
+		byte[] addressBytes = address.getData();
 		
 		byte[] headers = message.getHeaderBytes();
       

Modified: trunk/src/main/org/jboss/messaging/core/persistence/impl/nullpm/NullStorageManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/persistence/impl/nullpm/NullStorageManager.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/persistence/impl/nullpm/NullStorageManager.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -32,6 +32,7 @@
 import org.jboss.messaging.core.postoffice.PostOffice;
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.QueueFactory;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -53,7 +54,7 @@
 	{
 	}
 
-	public boolean addDestination(String destination) throws Exception
+	public boolean addDestination(SimpleString destination) throws Exception
 	{
 		return true;
 	}
@@ -66,13 +67,13 @@
 	{
 	}
 
-	public boolean deleteDestination(String destination) throws Exception
+	public boolean deleteDestination(SimpleString destination) throws Exception
 	{
 		return true;
 	}
 
 	public void loadBindings(QueueFactory queueFactory, List<Binding> bindings,
-			List<String> destinations) throws Exception
+			List<SimpleString> destinations) throws Exception
 	{
 	}
 
@@ -107,11 +108,11 @@
 	{
 	}
 
-	public void storeMessage(String address, Message message) throws Exception
+	public void storeMessage(SimpleString address, Message message) throws Exception
 	{
 	}
 
-	public void storeMessageTransactional(long txID, String address,
+	public void storeMessageTransactional(long txID, SimpleString address,
 			Message message) throws Exception
 	{
 	}

Modified: trunk/src/main/org/jboss/messaging/core/postoffice/Binding.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/postoffice/Binding.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/postoffice/Binding.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -22,6 +22,7 @@
 package org.jboss.messaging.core.postoffice;
 
 import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.util.SimpleString;
 
 
 /**
@@ -33,7 +34,7 @@
  */
 public interface Binding
 {
-   String getAddress();
+   SimpleString getAddress();
    
    Queue getQueue();
 }

Modified: trunk/src/main/org/jboss/messaging/core/postoffice/PostOffice.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/postoffice/PostOffice.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/postoffice/PostOffice.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -29,6 +29,7 @@
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.message.MessageReference;
 import org.jboss.messaging.core.server.MessagingComponent;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -53,31 +54,29 @@
  */
 public interface PostOffice extends MessagingComponent
 {   
-   boolean addDestination(String address, boolean temporary) throws Exception;
+   boolean addDestination(SimpleString address, boolean temporary) throws Exception;
    
-   boolean removeDestination(String address, boolean temporary) throws Exception;
+   boolean removeDestination(SimpleString address, boolean temporary) throws Exception;
    
-   boolean containsDestination(String address);
+   boolean containsDestination(SimpleString address);
 
-   Binding addBinding(String address, String queueName, Filter filter,
+   Binding addBinding(SimpleString address, SimpleString queueName, Filter filter,
                       boolean durable, boolean temporary) throws Exception;
    
-   Binding removeBinding(String queueName) throws Exception;
+   Binding removeBinding(SimpleString queueName) throws Exception;
    
-   List<Binding> getBindingsForAddress(String address) throws Exception;
+   List<Binding> getBindingsForAddress(SimpleString address) throws Exception;
    
-   Binding getBinding(String queueName) throws Exception;
+   Binding getBinding(SimpleString queueName) throws Exception;
       
-   List<MessageReference> route(String address, Message message) throws Exception;
+   List<MessageReference> route(SimpleString address, Message message) throws Exception;
    
-  // void routeFromCluster(String address, Message message) throws Exception;
-   
    //Flow control
    
-   FlowController getFlowController(String address);
+   FlowController getFlowController(SimpleString address);
      
    //For testing only
-   Map<String, List<Binding>> getMappings();
+   Map<SimpleString, List<Binding>> getMappings();
 
-   Set<String> listAllDestinations();
+   Set<SimpleString> listAllDestinations();
 }

Modified: trunk/src/main/org/jboss/messaging/core/postoffice/impl/BindingImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/postoffice/impl/BindingImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/postoffice/impl/BindingImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -23,6 +23,7 @@
 
 import org.jboss.messaging.core.postoffice.Binding;
 import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -33,7 +34,7 @@
  */
 public class BindingImpl implements Binding
 { 
-   private final String address;
+   private final SimpleString address;
    
    private final Queue queue;
    
@@ -41,14 +42,14 @@
    
    private int hash;
       
-   public BindingImpl(final String address, final Queue queue)
+   public BindingImpl(final SimpleString address, final Queue queue)
    {
       this.address = address;
       
       this.queue = queue;
    }
    
-   public String getAddress()
+   public SimpleString getAddress()
    {
       return address;
    }

Modified: trunk/src/main/org/jboss/messaging/core/postoffice/impl/FlowControllerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/postoffice/impl/FlowControllerImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/postoffice/impl/FlowControllerImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -30,6 +30,7 @@
 import org.jboss.messaging.core.postoffice.PostOffice;
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.ServerProducer;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -48,11 +49,11 @@
 	
 	private final PostOffice postOffice;
 	
-	private final String address;
+	private final SimpleString address;
 	
 	private final java.util.Queue<ServerProducer> waitingList = new ConcurrentLinkedQueue<ServerProducer>();
 	
-	public FlowControllerImpl(String address, PostOffice postOffice) throws Exception
+	public FlowControllerImpl(final SimpleString address, final PostOffice postOffice) throws Exception
 	{
 		this.address = address;
 		
@@ -61,7 +62,7 @@
 		fillPot();
 	}
 	
-	public synchronized int getInitialTokens(int windowSize, ServerProducer producer)
+	public synchronized int getInitialTokens(final int windowSize, final ServerProducer producer)
 	{
 		int num = Math.min(windowSize, tokenPot);
 		
@@ -102,7 +103,7 @@
 		}					
 	}
 		
-	public synchronized void messageReceived(ServerProducer producer, int windowSize) throws Exception
+	public synchronized void messageReceived(final ServerProducer producer, final int windowSize) throws Exception
 	{		
 		if (tokenPot == 0)
 		{

Modified: trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -45,6 +45,7 @@
 import org.jboss.messaging.core.server.QueueFactory;
 import org.jboss.messaging.util.ConcurrentHashSet;
 import org.jboss.messaging.util.ConcurrentSet;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -59,13 +60,13 @@
    
    //private final int nodeID;
    
-   private final ConcurrentMap<String, List<Binding>> mappings = new ConcurrentHashMap<String, List<Binding>>();
+   private final ConcurrentMap<SimpleString, List<Binding>> mappings = new ConcurrentHashMap<SimpleString, List<Binding>>();
    
-   private final ConcurrentSet<String> destinations = new ConcurrentHashSet<String>();
+   private final ConcurrentSet<SimpleString> destinations = new ConcurrentHashSet<SimpleString>();
    
-   private final ConcurrentMap<String, Binding> nameMap = new ConcurrentHashMap<String, Binding>();
+   private final ConcurrentMap<SimpleString, Binding> nameMap = new ConcurrentHashMap<SimpleString, Binding>();
    
-   private final ConcurrentMap<String, FlowController> flowControllers = new ConcurrentHashMap<String, FlowController>();
+   private final ConcurrentMap<SimpleString, FlowController> flowControllers = new ConcurrentHashMap<SimpleString, FlowController>();
    
    private final QueueFactory queueFactory;
    
@@ -99,7 +100,7 @@
    
    // PostOffice implementation -----------------------------------------------
 
-   public boolean addDestination(final String address, final boolean temporary) throws Exception
+   public boolean addDestination(final SimpleString address, final boolean temporary) throws Exception
    {      
    	boolean added = destinations.addIfAbsent(address);
    	
@@ -116,7 +117,7 @@
    	return added;
    }
    
-   public boolean removeDestination(final String address, final boolean temporary) throws Exception
+   public boolean removeDestination(final SimpleString address, final boolean temporary) throws Exception
    {      
       boolean removed = destinations.remove(address);
       
@@ -133,17 +134,17 @@
       return removed;
    }
    
-   public boolean containsDestination(final String address)
+   public boolean containsDestination(final SimpleString address)
    {
       return destinations.contains(address);
    }
 
-   public Set<String> listAllDestinations()
+   public Set<SimpleString> listAllDestinations()
    {
       return destinations;
    }
 
-   public Binding addBinding(final String address, final String queueName, final Filter filter, 
+   public Binding addBinding(final SimpleString address, final SimpleString queueName, final Filter filter, 
                              final boolean durable, final boolean temporary) throws Exception
    {
       Binding binding = createBinding(address, queueName, filter, durable, temporary);
@@ -158,7 +159,7 @@
       return binding;      
    }
          
-   public Binding removeBinding(final String queueName) throws Exception
+   public Binding removeBinding(final SimpleString queueName) throws Exception
    {
       Binding binding = removeQueueInMemory(queueName);
       
@@ -170,7 +171,7 @@
       return binding;
    }
    
-   public List<Binding> getBindingsForAddress(final String address)
+   public List<Binding> getBindingsForAddress(final SimpleString address)
    {
       List<Binding> bindings = mappings.get(address);
       
@@ -184,12 +185,12 @@
       }
    }
    
-   public Binding getBinding(final String queueName)
+   public Binding getBinding(final SimpleString queueName)
    {
       return nameMap.get(queueName);
    }
          
-   public List<MessageReference> route(final String address, final Message message) throws Exception
+   public List<MessageReference> route(final SimpleString address, final Message message) throws Exception
    {
       if (checkAllowable)
       {
@@ -244,19 +245,19 @@
 //      }
 //   }
 
-   public Map<String, List<Binding>> getMappings()
+   public Map<SimpleString, List<Binding>> getMappings()
    {
       return mappings;
    }
 
-   public FlowController getFlowController(String address)
+   public FlowController getFlowController(SimpleString address)
    {   	
    	return flowControllers.get(address);
    }
 
    // Private -----------------------------------------------------------------
    
-   private Binding createBinding(final String address, final String name, final Filter filter,
+   private Binding createBinding(final SimpleString address, final SimpleString name, final Filter filter,
                                  final boolean durable, final boolean temporary)
    {
       Queue queue = queueFactory.createQueue(-1, name, filter, durable, temporary);
@@ -289,7 +290,7 @@
       binding.getQueue().setFlowController(flowController);
    }
    
-   private Binding removeQueueInMemory(final String queueName) throws Exception
+   private Binding removeQueueInMemory(final SimpleString queueName) throws Exception
    {
       Binding binding = nameMap.remove(queueName);
       
@@ -333,7 +334,7 @@
    {
       List<Binding> bindings = new ArrayList<Binding>();
       
-      List<String> dests = new ArrayList<String>();
+      List<SimpleString> dests = new ArrayList<SimpleString>();
       
       storageManager.loadBindings(queueFactory, bindings, dests);
    	

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,6 +6,10 @@
  */
 package org.jboss.messaging.core.remoting.impl.codec;
 
+import static org.jboss.messaging.util.DataConstants.SIZE_BYTE;
+import static org.jboss.messaging.util.DataConstants.SIZE_CHAR;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
+
 import javax.transaction.xa.Xid;
 
 import org.apache.mina.common.IoBuffer;
@@ -16,6 +20,7 @@
 import org.jboss.messaging.core.remoting.impl.mina.BufferWrapper;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.transaction.impl.XidImpl;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -25,25 +30,8 @@
 {
    // Constants -----------------------------------------------------
 
-   public static final byte TRUE = (byte) 0;
-
-   public static final byte FALSE = (byte) 1;
-
-   public static final int BOOLEAN_LENGTH = 1;
+   public static final int HEADER_LENGTH = DataConstants.SIZE_BYTE + 3 * DataConstants.SIZE_LONG;
    
-   public static final int BYTE_LENGTH = 1;
-
-   public static final int INT_LENGTH = 4;
-
-   public static final int FLOAT_LENGTH = 4;
-
-   public static final int LONG_LENGTH = 8;
-   
-   public static final int CHAR_LENGTH = 2;
-   
-   public static final int HEADER_LENGTH =
-   	BYTE_LENGTH + LONG_LENGTH + LONG_LENGTH + LONG_LENGTH;
-   
    private static final Logger log = Logger.getLogger(AbstractPacketCodec.class);
 
    // Attributes ----------------------------------------------------
@@ -52,6 +40,18 @@
 
    // Static --------------------------------------------------------
    
+   public static int sizeof(final String nullableString)
+   {
+      if (nullableString == null)
+      {
+         return SIZE_BYTE; // NULL_STRING byte
+      }
+      else
+      {
+         return SIZE_BYTE + SIZE_INT + SIZE_CHAR * nullableString.length();
+      }
+   }
+   
    // Constructors --------------------------------------------------
    
    protected AbstractPacketCodec(PacketType type)
@@ -89,22 +89,10 @@
       iobuf.flip();
       out.write(iobuf);
    }
-
-   public static int sizeof(final String nullableString)
-   {
-      if (nullableString == null)
-      {
-         return BYTE_LENGTH; // NULL_STRING byte
-      }
-      else
-      {
-         return BYTE_LENGTH + INT_LENGTH + CHAR_LENGTH * nullableString.length();
-      }
-   }
    
    public static int getXidLength(final Xid xid)
    {
-      return INT_LENGTH + INT_LENGTH + xid.getBranchQualifier().length + INT_LENGTH + xid.getGlobalTransactionId().length;
+      return SIZE_INT + SIZE_INT + xid.getBranchQualifier().length + SIZE_INT + xid.getGlobalTransactionId().length;
    }
 
    public void decode(final RemotingBuffer buffer, final ProtocolDecoderOutput out) throws Exception

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/BytesPacketCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/BytesPacketCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/BytesPacketCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,9 +7,12 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.BYTES;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.BytesPacket;
+import org.jboss.messaging.util.DataConstants;
 
+
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -36,7 +39,7 @@
 
    public int getBodyLength(final BytesPacket packet)
    {
-   	return INT_LENGTH + packet.getBytes().length;
+   	return SIZE_INT + packet.getBytes().length;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,10 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_CREATESESSION;
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -36,7 +38,7 @@
 
    public int getBodyLength(final ConnectionCreateSessionMessage packet)
    {
-   	return 3 * BOOLEAN_LENGTH;
+   	return 3 * SIZE_BOOLEAN;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,8 +6,11 @@
  */
 package org.jboss.messaging.core.remoting.impl.codec;
 
+import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
+
 import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionResponseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -35,7 +38,7 @@
 
    public int getBodyLength(final ConnectionCreateSessionResponseMessage packet)
    {
-   	return LONG_LENGTH;
+   	return SIZE_LONG;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerDeliverMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerDeliverMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerDeliverMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,10 +7,13 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONS_DELIVER;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
+import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
 
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.message.impl.MessageImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerDeliverMessage;
+import org.jboss.messaging.util.DataConstants;
 import org.jboss.messaging.util.StreamUtils;
 
 /**
@@ -43,7 +46,7 @@
    {
    	encodedMsg = StreamUtils.toBytes(packet.getMessage());
    	
-   	return INT_LENGTH + encodedMsg.length + LONG_LENGTH; 
+   	return SIZE_INT + encodedMsg.length + SIZE_LONG; 
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerFlowTokenMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerFlowTokenMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerFlowTokenMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,10 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONS_FLOWTOKEN;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowTokenMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
@@ -35,7 +37,7 @@
    
    public int getBodyLength(final ConsumerFlowTokenMessage packet) throws Exception
    {
-   	return INT_LENGTH;
+   	return SIZE_INT;
    }
 
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,11 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
+import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionRequest;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -35,8 +38,8 @@
 
    public int getBodyLength(final CreateConnectionRequest packet) throws Exception
    {
-      int bodyLength = INT_LENGTH // version
-            + LONG_LENGTH +
+      int bodyLength = SIZE_INT // version
+            + SIZE_LONG +
             + sizeof(packet.getUsername()) 
             + sizeof(packet.getPassword());
       return bodyLength;

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -11,6 +11,7 @@
 import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionResponse;
 import org.jboss.messaging.core.version.impl.VersionImpl;
 import org.jboss.messaging.core.version.Version;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -37,12 +38,9 @@
 
    public int getBodyLength(final CreateConnectionResponse packet) throws Exception
    {
-      return LONG_LENGTH +
+      return DataConstants.SIZE_LONG +
               sizeof(packet.getServerVersion().getVersionName()) +
-              INT_LENGTH +
-              INT_LENGTH +
-              INT_LENGTH +
-              INT_LENGTH +
+              4 * DataConstants.SIZE_INT +
               sizeof(packet.getServerVersion().getVersionSuffix());
    }
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/MessagingExceptionMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/MessagingExceptionMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/MessagingExceptionMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,9 +7,11 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.EXCEPTION;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
 
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -36,7 +38,7 @@
 
    public int getBodyLength(final MessagingExceptionMessage packet) throws Exception
    {
-   	return INT_LENGTH + sizeof(packet.getException().getMessage());
+   	return SIZE_INT + sizeof(packet.getException().getMessage());
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,10 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PING;
+import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -36,7 +38,7 @@
 
    public int getBodyLength(final Ping packet) throws Exception
    {
-   	return LONG_LENGTH;
+   	return SIZE_LONG;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,11 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PONG;
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
+import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.Pong;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -36,7 +39,7 @@
    
    public int getBodyLength(final Pong packet) throws Exception
    {
-   	return LONG_LENGTH + BOOLEAN_LENGTH;
+   	return SIZE_LONG + SIZE_BOOLEAN;
    }
 
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerReceiveTokensMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerReceiveTokensMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerReceiveTokensMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,10 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PROD_RECEIVETOKENS;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.ProducerReceiveTokensMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * 
@@ -38,7 +40,7 @@
 
    public int getBodyLength(final ProducerReceiveTokensMessage packet) throws Exception
    {
-   	return INT_LENGTH;
+   	return SIZE_INT;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerSendMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerSendMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerSendMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,10 +7,12 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PROD_SEND;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
 
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.message.impl.MessageImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.ProducerSendMessage;
+import org.jboss.messaging.util.SimpleString;
 import org.jboss.messaging.util.StreamUtils;
 
 /**
@@ -46,7 +48,7 @@
    {
    	encodedMsg = StreamUtils.toBytes(packet.getMessage());   
 
-      int bodyLength = sizeof(packet.getAddress()) + INT_LENGTH + encodedMsg.length;
+      int bodyLength = SimpleString.sizeofNullableString(packet.getAddress()) + SIZE_INT + encodedMsg.length;
       
       return bodyLength;
    }
@@ -54,7 +56,7 @@
    @Override
    protected void encodeBody(final ProducerSendMessage message, final RemotingBuffer out) throws Exception
    {
-      out.putNullableString(message.getAddress());
+      out.putNullableSimpleString(message.getAddress());
       out.putInt(encodedMsg.length);
       out.put(encodedMsg);
       encodedMsg = null;
@@ -64,7 +66,7 @@
    protected ProducerSendMessage decodeBody(final RemotingBuffer in)
          throws Exception
    {
-      String address = in.getNullableString();
+      SimpleString address = in.getNullableSimpleString();
       int msgLength = in.getInt();
       byte[] encodedMsg = new byte[msgLength];
       in.get(encodedMsg);

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/RemotingBuffer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/RemotingBuffer.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/RemotingBuffer.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,7 +6,9 @@
  */
 package org.jboss.messaging.core.remoting.impl.codec;
 
+import org.jboss.messaging.util.SimpleString;
 
+
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -45,7 +47,15 @@
    void putNullableString(String nullableString);
 
    String getNullableString();
+         
+   void putSimpleString(SimpleString simpleString);
    
+   SimpleString getSimpleString();
+   
+   void putNullableSimpleString(SimpleString simpleString);
+   
+   SimpleString getNullableSimpleString();
+   
    void rewind();
 
    byte[] array();

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAcknowledgeMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAcknowledgeMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAcknowledgeMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,8 +6,12 @@
  */
 package org.jboss.messaging.core.remoting.impl.codec;
 
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
+import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
+
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * 
@@ -38,7 +42,7 @@
 
    public int getBodyLength(final SessionAcknowledgeMessage packet) throws Exception
    {
-      return LONG_LENGTH + 1;
+      return SIZE_LONG + SIZE_BOOLEAN;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAddDestinationMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAddDestinationMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAddDestinationMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,11 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_ADD_DESTINATION;
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionAddDestinationMessage;
+import org.jboss.messaging.util.DataConstants;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -38,13 +41,13 @@
 
    public int getBodyLength(final SessionAddDestinationMessage packet) throws Exception
    {
-      return sizeof(packet.getAddress()) + BOOLEAN_LENGTH;
+      return SimpleString.sizeofString(packet.getAddress()) + SIZE_BOOLEAN;
    }
    
    @Override
    protected void encodeBody(final SessionAddDestinationMessage message, final RemotingBuffer out) throws Exception
    {
-      out.putNullableString(message.getAddress());
+      out.putSimpleString(message.getAddress());
       out.putBoolean(message.isTemporary());
    }
 
@@ -52,7 +55,7 @@
    protected SessionAddDestinationMessage decodeBody(final RemotingBuffer in)
          throws Exception
    {
-      String address = in.getNullableString();
+      SimpleString address = in.getSimpleString();
       boolean temp = in.getBoolean();    
       return new SessionAddDestinationMessage(address, temp);
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -9,6 +9,7 @@
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BINDINGQUERY;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryMessage;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -38,22 +39,22 @@
 
    public int getBodyLength(final SessionBindingQueryMessage packet) throws Exception
    {
-      return sizeof(packet.getAddress());
+      return SimpleString.sizeofString(packet.getAddress());
    }
    
    @Override
    protected void encodeBody(final SessionBindingQueryMessage message, final RemotingBuffer out) throws Exception
    {
-      String address = message.getAddress();
+      SimpleString address = message.getAddress();
      
-      out.putNullableString(address);
+      out.putSimpleString(address);
    }
 
    @Override
    protected SessionBindingQueryMessage decodeBody(final RemotingBuffer in)
          throws Exception
    {
-      String address = in.getNullableString();
+      SimpleString address = in.getSimpleString();
     
       return new SessionBindingQueryMessage(address);
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryResponseMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryResponseMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,11 +7,14 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BINDINGQUERY_RESP;
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryResponseMessage;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -41,13 +44,13 @@
 
    public int getBodyLength(final SessionBindingQueryResponseMessage packet) throws Exception
    {   	
-      List<String> queueNames = packet.getQueueNames();
+      List<SimpleString> queueNames = packet.getQueueNames();
 
-      int bodyLength = BOOLEAN_LENGTH + INT_LENGTH;
+      int bodyLength = SIZE_BOOLEAN + SIZE_INT;
       
-      for (String queueName: queueNames)
+      for (SimpleString queueName: queueNames)
       {
-         bodyLength += sizeof(queueName);
+         bodyLength += SimpleString.sizeofString(queueName);
       }
       
       return bodyLength;
@@ -57,14 +60,14 @@
    protected void encodeBody(final SessionBindingQueryResponseMessage message, final RemotingBuffer out) throws Exception
    {
       boolean exists = message.isExists();
-      List<String> queueNames = message.getQueueNames();
+      List<SimpleString> queueNames = message.getQueueNames();
 
       out.putBoolean(exists);
       out.putInt(queueNames.size());
       
-      for (String queueName: queueNames)
+      for (SimpleString queueName: queueNames)
       {
-         out.putNullableString(queueName);
+         out.putSimpleString(queueName);
       }      
    }
 
@@ -76,11 +79,11 @@
       
       int numQueues = in.getInt();
       
-      List<String> queueNames = new ArrayList<String>(numQueues);
+      List<SimpleString> queueNames = new ArrayList<SimpleString>(numQueues);
       
       for (int i = 0; i < numQueues; i++)
       {
-         queueNames.add(in.getNullableString());
+         queueNames.add(in.getSimpleString());
       }
           
       return new SessionBindingQueryResponseMessage(exists, queueNames);

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserHasNextMessageResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserHasNextMessageResponseMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserHasNextMessageResponseMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,10 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_HASNEXTMESSAGE_RESP;
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserHasNextMessageResponseMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -36,7 +38,7 @@
 
    public int getBodyLength(final SessionBrowserHasNextMessageResponseMessage packet) throws Exception
    {   	
-      return BOOLEAN_LENGTH;
+      return SIZE_BOOLEAN;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,10 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_NEXTMESSAGEBLOCK;
+import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserNextMessageBlockMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -35,7 +37,7 @@
 
    public int getBodyLength(final SessionBrowserNextMessageBlockMessage packet) throws Exception
    {   	
-      return LONG_LENGTH;
+      return SIZE_LONG;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockResponseMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockResponseMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,6 +7,7 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_NEXTMESSAGEBLOCK_RESP;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -16,6 +17,7 @@
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.message.impl.MessageImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserNextMessageBlockResponseMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -64,7 +66,7 @@
       
       encodedMsgs = encode(messages);
 
-      int bodyLength = INT_LENGTH + encodedMsgs.length;
+      int bodyLength = SIZE_INT + encodedMsgs.length;
       
       return bodyLength;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageResponseMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageResponseMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,6 +7,7 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_NEXTMESSAGE_RESP;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
 
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.message.impl.MessageImpl;
@@ -43,7 +44,7 @@
    {   	
    	encodedMsg = StreamUtils.toBytes(packet.getMessage());
 
-      int bodyLength = INT_LENGTH + encodedMsg.length;
+      int bodyLength = SIZE_INT + encodedMsg.length;
       
       return bodyLength;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCancelMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCancelMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCancelMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,8 +6,12 @@
  */
 package org.jboss.messaging.core.remoting.impl.codec;
 
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
+import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
+
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionCancelMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * 
@@ -37,7 +41,7 @@
 
    public int getBodyLength(final SessionCancelMessage packet) throws Exception
    {   	
-      return LONG_LENGTH + 1;
+      return SIZE_LONG + SIZE_BOOLEAN;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -9,6 +9,7 @@
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEBROWSER;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserMessage;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -36,10 +37,10 @@
 
    public int getBodyLength(final SessionCreateBrowserMessage packet) throws Exception
    {   	
-   	String queueName = packet.getQueueName();
-      String filterString = packet.getFilterString();
+   	SimpleString queueName = packet.getQueueName();
+      SimpleString filterString = packet.getFilterString();
 
-      int bodyLength = sizeof(queueName) + sizeof(filterString);
+      int bodyLength = SimpleString.sizeofString(queueName) + SimpleString.sizeofNullableString(filterString);
       
       return bodyLength;
    }
@@ -47,19 +48,19 @@
    @Override
    protected void encodeBody(final SessionCreateBrowserMessage request, final RemotingBuffer out) throws Exception
    {
-      String queueName = request.getQueueName();
-      String filterString = request.getFilterString();
+      SimpleString queueName = request.getQueueName();
+      SimpleString filterString = request.getFilterString();
 
-      out.putNullableString(queueName);
-      out.putNullableString(filterString);
+      out.putSimpleString(queueName);
+      out.putNullableSimpleString(filterString);
    }
 
    @Override
    protected SessionCreateBrowserMessage decodeBody(final RemotingBuffer in)
          throws Exception
    {
-      String queueName = in.getNullableString();
-      String filterString = in.getNullableString();
+      SimpleString queueName = in.getSimpleString();
+      SimpleString filterString = in.getNullableSimpleString();
 
       return new SessionCreateBrowserMessage(queueName, filterString);
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,10 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEBROWSER_RESP;
+import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserResponseMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -36,7 +38,7 @@
 
    public int getBodyLength(final SessionCreateBrowserResponseMessage packet) throws Exception
    {   	
-      return LONG_LENGTH;
+      return SIZE_LONG;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,11 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATECONSUMER;
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateConsumerMessage;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -36,8 +39,8 @@
 
    public int getBodyLength(final SessionCreateConsumerMessage packet) throws Exception
    {   	
-   	int bodyLength = sizeof(packet.getQueueName()) +
-   	   sizeof(packet.getFilterString()) + 2 * BOOLEAN_LENGTH + 2 * INT_LENGTH;
+   	int bodyLength = SimpleString.sizeofString(packet.getQueueName()) +
+   	SimpleString.sizeofNullableString(packet.getFilterString()) + 2 * SIZE_BOOLEAN + 2 * SIZE_INT;
    	
    	return bodyLength;
    }
@@ -45,15 +48,15 @@
    @Override
    protected void encodeBody(final SessionCreateConsumerMessage request, final RemotingBuffer out) throws Exception
    {
-      String queueName = request.getQueueName();
-      String filterString = request.getFilterString();
+      SimpleString queueName = request.getQueueName();
+      SimpleString filterString = request.getFilterString();
       boolean noLocal = request.isNoLocal();
       boolean autoDelete = request.isAutoDeleteQueue();
       int windowSize = request.getWindowSize();
       int maxRate = request.getMaxRate();
 
-      out.putNullableString(queueName);
-      out.putNullableString(filterString);
+      out.putSimpleString(queueName);
+      out.putNullableSimpleString(filterString);
       out.putBoolean(noLocal);
       out.putBoolean(autoDelete);
       out.putInt(windowSize);
@@ -64,8 +67,8 @@
    protected SessionCreateConsumerMessage decodeBody(final RemotingBuffer in)
          throws Exception
    {
-      String queueName = in.getNullableString();
-      String filterString = in.getNullableString();
+      SimpleString queueName = in.getSimpleString();
+      SimpleString filterString = in.getNullableSimpleString();
       boolean noLocal = in.getBoolean();
       boolean autoDelete = in.getBoolean();
       int windowSize = in.getInt();

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,11 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATECONSUMER_RESP;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
+import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateConsumerResponseMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -36,7 +39,7 @@
 
    public int getBodyLength(final SessionCreateConsumerResponseMessage packet) throws Exception
    {   	
-   	return LONG_LENGTH + INT_LENGTH;
+   	return SIZE_LONG + SIZE_INT;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,11 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEPRODUCER;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateProducerMessage;
+import org.jboss.messaging.util.DataConstants;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -39,9 +42,9 @@
 
    public int getBodyLength(final SessionCreateProducerMessage packet) throws Exception
    {   	
-   	String address = packet.getAddress();
+   	SimpleString address = packet.getAddress();
       
-      int bodyLength = sizeof(address) + 2 * INT_LENGTH;
+      int bodyLength = SimpleString.sizeofString(address) + 2 * SIZE_INT;
       
       return bodyLength;
    }
@@ -49,9 +52,9 @@
    @Override
    protected void encodeBody(final SessionCreateProducerMessage request, final RemotingBuffer out) throws Exception
    {
-      String address = request.getAddress();
+      SimpleString address = request.getAddress();
      
-      out.putNullableString(address);
+      out.putSimpleString(address);
       out.putInt(request.getWindowSize());
       out.putInt(request.getMaxRate());
    }
@@ -60,7 +63,7 @@
    protected SessionCreateProducerMessage decodeBody(final RemotingBuffer in)
          throws Exception
    {
-      String address = in.getNullableString();
+      SimpleString address = in.getSimpleString();
       
       int windowSize = in.getInt();
       

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,11 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEPRODUCER_RESP;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
+import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateProducerResponseMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * 
@@ -39,7 +42,7 @@
 
    public int getBodyLength(final SessionCreateProducerResponseMessage packet) throws Exception
    {   	
-      return LONG_LENGTH + 2 * INT_LENGTH;
+      return SIZE_LONG + 2 * SIZE_INT;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateQueueMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateQueueMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateQueueMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,10 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEQUEUE;
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateQueueMessage;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -38,25 +40,26 @@
 
    public int getBodyLength(final SessionCreateQueueMessage packet) throws Exception
    {   	
-   	String address = packet.getAddress();
-      String queueName = packet.getQueueName();
-      String filterString = packet.getFilterString();
-   	int bodyLength = sizeof(address) + sizeof(queueName) + sizeof(filterString) + 2;
+   	SimpleString address = packet.getAddress();
+      SimpleString queueName = packet.getQueueName();
+      SimpleString filterString = packet.getFilterString();
+   	int bodyLength = SimpleString.sizeofString(address) + SimpleString.sizeofString(queueName) +
+   	SimpleString.sizeofNullableString(filterString) + 2 * SIZE_BOOLEAN;
    	return bodyLength;
    }
    
    @Override
    protected void encodeBody(final SessionCreateQueueMessage message, final RemotingBuffer out) throws Exception
    {
-      String address = message.getAddress();
-      String queueName = message.getQueueName();
-      String filterString = message.getFilterString();
+      SimpleString address = message.getAddress();
+      SimpleString queueName = message.getQueueName();
+      SimpleString filterString = message.getFilterString();
       boolean durable = message.isDurable();
       boolean temporary = message.isTemporary();
      
-      out.putNullableString(address);
-      out.putNullableString(queueName);
-      out.putNullableString(filterString);
+      out.putSimpleString(address);
+      out.putSimpleString(queueName);
+      out.putNullableSimpleString(filterString);
       out.putBoolean(durable);
       out.putBoolean(temporary);
    }
@@ -65,9 +68,9 @@
    protected SessionCreateQueueMessage decodeBody(final RemotingBuffer in)
          throws Exception
    {
-      String address = in.getNullableString();
-      String queueName = in.getNullableString();
-      String filterString = in.getNullableString();
+      SimpleString address = in.getSimpleString();
+      SimpleString queueName = in.getSimpleString();
+      SimpleString filterString = in.getNullableSimpleString();
       boolean durable = in.getBoolean();
       boolean temporary = in.getBoolean();
     

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionDeleteQueueMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionDeleteQueueMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionDeleteQueueMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -9,6 +9,7 @@
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_DELETE_QUEUE;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionDeleteQueueMessage;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -38,23 +39,23 @@
 
    public int getBodyLength(final SessionDeleteQueueMessage packet) throws Exception
    {   	
-   	String queueName = packet.getQueueName();      
-      int bodyLength = sizeof(queueName);
+   	SimpleString queueName = packet.getQueueName();      
+      int bodyLength = SimpleString.sizeofString(queueName);
    	return bodyLength;
    }
    
    @Override
    protected void encodeBody(final SessionDeleteQueueMessage message, final RemotingBuffer out) throws Exception
    {
-      String queueName = message.getQueueName();   
-      out.putNullableString(queueName);
+      SimpleString queueName = message.getQueueName();   
+      out.putSimpleString(queueName);
    }
 
    @Override
    protected SessionDeleteQueueMessage decodeBody(final RemotingBuffer in)
          throws Exception
    {
-      String queueName = in.getNullableString();
+      SimpleString queueName = in.getSimpleString();
     
       return new SessionDeleteQueueMessage(queueName);
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -9,6 +9,7 @@
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_QUEUEQUERY;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryMessage;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -38,23 +39,23 @@
 
    public int getBodyLength(final SessionQueueQueryMessage packet) throws Exception
    {   	
-   	String queueName = packet.getQueueName();       
-      int bodyLength = sizeof(queueName);
+   	SimpleString queueName = packet.getQueueName();       
+      int bodyLength = SimpleString.sizeofString(queueName);
    	return bodyLength;
    }
    
    @Override
    protected void encodeBody(final SessionQueueQueryMessage message, final RemotingBuffer out) throws Exception
    {
-      String queueName = message.getQueueName();
-      out.putNullableString(queueName);
+      SimpleString queueName = message.getQueueName();
+      out.putSimpleString(queueName);
    }
 
    @Override
    protected SessionQueueQueryMessage decodeBody(final RemotingBuffer in)
          throws Exception
    {
-      String queueName = in.getNullableString();    
+      SimpleString queueName = in.getSimpleString();    
       return new SessionQueueQueryMessage(queueName);
    }
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryResponseMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryResponseMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,11 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_QUEUEQUERY_RESP;
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryResponseMessage;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -38,9 +41,10 @@
 
    public int getBodyLength(final SessionQueueQueryResponseMessage packet) throws Exception
    {   	
-   	String filterString  = packet.getFilterString();
-      String address = packet.getAddress();
-   	int bodyLength = 3 * BOOLEAN_LENGTH + 3 * INT_LENGTH + sizeof(filterString) + sizeof(address);
+   	SimpleString filterString  = packet.getFilterString();
+      SimpleString address = packet.getAddress();
+   	int bodyLength = 3 * SIZE_BOOLEAN + 3 * SIZE_INT + SimpleString.sizeofNullableString(filterString) +
+   	SimpleString.sizeofNullableString(address);
    	return bodyLength;
    }
    
@@ -53,8 +57,8 @@
       int maxSize = message.getMaxSize();
       int consumerCount = message.getConsumerCount();
       int messageCount = message.getMessageCount();
-      String filterString  = message.getFilterString();
-      String address = message.getAddress();
+      SimpleString filterString  = message.getFilterString();
+      SimpleString address = message.getAddress();
      
       out.putBoolean(exists);
       out.putBoolean(durable);
@@ -62,8 +66,8 @@
       out.putInt(maxSize);
       out.putInt(consumerCount);
       out.putInt(messageCount);
-      out.putNullableString(filterString);
-      out.putNullableString(address);
+      out.putNullableSimpleString(filterString);
+      out.putNullableSimpleString(address);
    }
 
    @Override
@@ -76,8 +80,8 @@
       int maxSize = in.getInt();
       int consumerCount = in.getInt();
       int messageCount = in.getInt();
-      String filterString  = in.getNullableString();
-      String address = in.getNullableString();
+      SimpleString filterString  = in.getNullableSimpleString();
+      SimpleString address = in.getNullableSimpleString();
     
       if (exists)
       {

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionRemoveDestinationMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionRemoveDestinationMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionRemoveDestinationMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -7,8 +7,11 @@
 package org.jboss.messaging.core.remoting.impl.codec;
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_REMOVE_DESTINATION;
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionRemoveDestinationMessage;
+import org.jboss.messaging.util.DataConstants;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -38,17 +41,17 @@
 
    public int getBodyLength(final SessionRemoveDestinationMessage packet) throws Exception
    {   	
-   	String address = packet.getAddress();      
-      int bodyLength = sizeof(address) + BOOLEAN_LENGTH;
+   	SimpleString address = packet.getAddress();      
+      int bodyLength = SimpleString.sizeofString(address) + SIZE_BOOLEAN;
    	return bodyLength;
    }
    
    @Override
    protected void encodeBody(final SessionRemoveDestinationMessage message, final RemotingBuffer out) throws Exception
    {
-      String address = message.getAddress();
+      SimpleString address = message.getAddress();
      
-      out.putNullableString(address);
+      out.putSimpleString(address);
       out.putBoolean(message.isTemporary());
    }
 
@@ -56,7 +59,7 @@
    protected SessionRemoveDestinationMessage decodeBody(final RemotingBuffer in)
          throws Exception
    {
-      String address = in.getNullableString();
+      SimpleString address = in.getSimpleString();
     
       return new SessionRemoveDestinationMessage(address, in.getBoolean());
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXACommitMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXACommitMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXACommitMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,10 +6,13 @@
  */
 package org.jboss.messaging.core.remoting.impl.codec;
 
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
+
 import javax.transaction.xa.Xid;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXACommitMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * 
@@ -39,7 +42,7 @@
 
    public int getBodyLength(final SessionXACommitMessage packet) throws Exception
    {   	
-   	int bodyLength = getXidLength(packet.getXid()) + BOOLEAN_LENGTH;
+   	int bodyLength = getXidLength(packet.getXid()) + SIZE_BOOLEAN;
    	return bodyLength;
    }
    

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAEndMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAEndMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAEndMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,10 +6,13 @@
  */
 package org.jboss.messaging.core.remoting.impl.codec;
 
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
+
 import javax.transaction.xa.Xid;
 
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAEndMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * 
@@ -39,7 +42,7 @@
 
    public int getBodyLength(final SessionXAEndMessage packet) throws Exception
    {   	
-   	int bodyLength = getXidLength(packet.getXid()) + BOOLEAN_LENGTH;
+   	int bodyLength = getXidLength(packet.getXid()) + SIZE_BOOLEAN;
    	return bodyLength;
    }
    

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetInDoubtXidsResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetInDoubtXidsResponseMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetInDoubtXidsResponseMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,6 +6,8 @@
  */
 package org.jboss.messaging.core.remoting.impl.codec;
 
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -13,6 +15,7 @@
 
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAGetInDoubtXidsResponseMessage;
+import org.jboss.messaging.util.DataConstants;
 
 
 /**
@@ -43,7 +46,7 @@
 
    public int getBodyLength(final SessionXAGetInDoubtXidsResponseMessage packet) throws Exception
    {   	
-      int bodyLength = INT_LENGTH;
+      int bodyLength = SIZE_INT;
       
       for (Xid xid: packet.getXids())
       {

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetTimeoutResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetTimeoutResponseMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetTimeoutResponseMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,8 +6,11 @@
  */
 package org.jboss.messaging.core.remoting.impl.codec;
 
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
+
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAGetTimeoutResponseMessage;
+import org.jboss.messaging.util.DataConstants;
 
 
 /**
@@ -38,7 +41,7 @@
 
    public int getBodyLength(final SessionXAGetTimeoutResponseMessage packet) throws Exception
    {   	
-   	return INT_LENGTH;
+   	return SIZE_INT;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAResponseMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAResponseMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,8 +6,12 @@
  */
 package org.jboss.messaging.core.remoting.impl.codec;
 
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
+
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResponseMessage;
+import org.jboss.messaging.util.DataConstants;
 
 
 /**
@@ -38,7 +42,7 @@
 
    public int getBodyLength(final SessionXAResponseMessage packet) throws Exception
    {   	
-   	int bodyLength = BOOLEAN_LENGTH + INT_LENGTH + sizeof(packet.getMessage());
+   	int bodyLength = SIZE_BOOLEAN + SIZE_INT + sizeof(packet.getMessage());
    	
    	return bodyLength;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,8 +6,11 @@
  */
 package org.jboss.messaging.core.remoting.impl.codec;
 
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
+
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * 
@@ -37,7 +40,7 @@
 
    public int getBodyLength(final SessionXASetTimeoutMessage packet) throws Exception
    {   	
-      return INT_LENGTH;
+      return SIZE_INT;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutResponseMessageCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutResponseMessageCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,8 +6,11 @@
  */
 package org.jboss.messaging.core.remoting.impl.codec;
 
+import static org.jboss.messaging.util.DataConstants.SIZE_BOOLEAN;
+
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutResponseMessage;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * 
@@ -37,7 +40,7 @@
 
    public int getBodyLength(final SessionXASetTimeoutResponseMessage packet) throws Exception
    {   	
-      return BOOLEAN_LENGTH;
+      return SIZE_BOOLEAN;
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/BufferWrapper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/BufferWrapper.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/BufferWrapper.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,15 +6,14 @@
  */
 package org.jboss.messaging.core.remoting.impl.mina;
 
-import static org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec.FALSE;
-import static org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec.TRUE;
+import static org.jboss.messaging.util.DataConstants.FALSE;
+import static org.jboss.messaging.util.DataConstants.NOT_NULL;
+import static org.jboss.messaging.util.DataConstants.NULL;
+import static org.jboss.messaging.util.DataConstants.TRUE;
 
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.nio.charset.CharsetEncoder;
-
 import org.apache.mina.common.IoBuffer;
 import org.jboss.messaging.core.remoting.impl.codec.RemotingBuffer;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -28,19 +27,6 @@
 {
    // Constants -----------------------------------------------------
 	
-   // used to terminate encoded Strings
-   public static final byte NULL_BYTE = (byte) 0;
-
-   public static final byte NULL_STRING = (byte) 0;
-
-   public static final byte NOT_NULL_STRING = (byte) 1;
-
-   public static final CharsetEncoder UTF_8_ENCODER = Charset.forName("UTF-8")
-         .newEncoder();
-
-   public static final CharsetDecoder UTF_8_DECODER = Charset.forName("UTF-8")
-         .newDecoder();
-
    // Attributes ----------------------------------------------------
 
    protected final IoBuffer buffer;
@@ -125,7 +111,8 @@
       if (b)
       {
          buffer.put(TRUE);
-      } else
+      }
+      else
       {
          buffer.put(FALSE);
       }
@@ -137,32 +124,82 @@
       return (b == TRUE);
    }
 
+   
+  
+   
+   
    public void putNullableString(final String nullableString)
    {
       if (nullableString == null)
       {
-         buffer.put(NULL_STRING);
+         buffer.put(NULL);
       }
       else
       {
-         buffer.put(NOT_NULL_STRING);
+         buffer.put(NOT_NULL);
+         
          putString(nullableString);
       }
    }
-
+   
    public String getNullableString()
    {
       byte check = buffer.get();
-      if (check == NULL_STRING)
+      
+      if (check == NULL)
       {
          return null;
       }
       else
       {
-         return getString();
+      	return getString();
       }
    }
    
+   public void putSimpleString(final SimpleString string)
+   {
+   	byte[] data = string.getData();
+   	
+   	buffer.putInt(data.length);
+   	buffer.put(data);
+   }
+   
+   public SimpleString getSimpleString()
+   {
+   	int len = buffer.getInt();
+   	
+   	byte[] data = new byte[len];
+   	buffer.get(data);
+   	
+   	return new SimpleString(data);
+   }
+      
+   public void putNullableSimpleString(final SimpleString string)
+   {
+   	if (string == null)
+   	{
+   		buffer.put(NULL);
+   	}
+   	else
+   	{
+   		buffer.put(NOT_NULL);
+   		putSimpleString(string);
+   	}
+   }
+         
+   public SimpleString getNullableSimpleString()
+   {
+   	int b = buffer.get();
+   	if (b == NULL)
+   	{
+   		return null;
+   	}
+   	else
+   	{
+   	   return getSimpleString();
+   	}
+   }
+         
    public void rewind()
    {
    	buffer.rewind();
@@ -179,30 +216,28 @@
 
    // Private -------------------------------------------------------
 
-   private void putString(final String string)
+   private void putString(final String nullableString)
    {
-      assert string != null;
+      buffer.putInt(nullableString.length());
       
-      int len = string.length();
-      buffer.putInt(len);
-      for (int i = 0; i < len; i++)
-      {   
-         buffer.putChar(string.charAt(i));
-      }
+      for (int i = 0; i < nullableString.length(); i++)
+      {
+         buffer.putChar(nullableString.charAt(i));
+      }      
    }
-
+   
    private String getString()
    {
       int len = buffer.getInt();
+         
       char[] chars = new char[len];
+      
       for (int i = 0; i < len; i++)
       {
          chars[i] = buffer.getChar();
       }
-                     
-      String string =  new String(chars);
       
-      return string;
+      return new String(chars);               
    }
    
    // Inner classes -------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,6 +6,8 @@
  */
 package org.jboss.messaging.core.remoting.impl.mina;
 
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
+
 import java.util.HashMap;
 import java.util.Map;
 
@@ -19,6 +21,7 @@
 import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
+import org.jboss.messaging.util.DataConstants;
 
 /**
  * 
@@ -63,7 +66,7 @@
    {
       int start = in.position();
 
-      if (in.remaining() <= AbstractPacketCodec.INT_LENGTH)
+      if (in.remaining() <= SIZE_INT)
       {
          in.position(start);
          return false;

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ProducerSendMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ProducerSendMessage.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ProducerSendMessage.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -9,6 +9,7 @@
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PROD_SEND;
 
 import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -22,7 +23,7 @@
 
    // Attributes ----------------------------------------------------
 
-	private String address;
+	private final SimpleString address;
 	
    private final Message message;
 
@@ -30,7 +31,7 @@
 
    // Constructors --------------------------------------------------
 
-   public ProducerSendMessage(final String address, final Message message)
+   public ProducerSendMessage(final SimpleString address, final Message message)
    {
       super(PROD_SEND);
 
@@ -41,7 +42,7 @@
 
    // Public --------------------------------------------------------
 
-   public String getAddress()
+   public SimpleString getAddress()
    {
    	return address;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAddDestinationMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAddDestinationMessage.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAddDestinationMessage.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -8,7 +8,9 @@
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_ADD_DESTINATION;
 
+import org.jboss.messaging.util.SimpleString;
 
+
 /**
  * 
  * A SessionAddDestinationMessage
@@ -22,7 +24,7 @@
 
    // Attributes ----------------------------------------------------
    
-   private final String address;
+   private final SimpleString address;
    
    private final boolean temporary;
    
@@ -30,7 +32,7 @@
 
    // Constructors --------------------------------------------------
 
-   public SessionAddDestinationMessage(final String address, final boolean temp)
+   public SessionAddDestinationMessage(final SimpleString address, final boolean temp)
    {
       super(SESS_ADD_DESTINATION);
       
@@ -41,7 +43,7 @@
 
    // Public --------------------------------------------------------
    
-   public String getAddress()
+   public SimpleString getAddress()
    {
       return address;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryMessage.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryMessage.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,7 +6,9 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.SimpleString;
 
+
 /**
  * 
  * A SessionQueueQueryMessage
@@ -16,16 +18,16 @@
  */
 public class SessionBindingQueryMessage extends PacketImpl
 {
-   private final String address;
+   private final SimpleString address;
 
-   public SessionBindingQueryMessage(final String address)
+   public SessionBindingQueryMessage(final SimpleString address)
    {
       super(PacketType.SESS_BINDINGQUERY);
 
       this.address = address;            
    }
 
-   public String getAddress()
+   public SimpleString getAddress()
    {
       return address;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryResponseMessage.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryResponseMessage.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -4,6 +4,8 @@
 
 import java.util.List;
 
+import org.jboss.messaging.util.SimpleString;
+
 /**
  * 
  * A SessionBindingQueryResponseMessage
@@ -15,9 +17,9 @@
 {
    private final boolean exists;
    
-   private final List<String> queueNames;
+   private final List<SimpleString> queueNames;
    
-   public SessionBindingQueryResponseMessage(final boolean exists, final List<String> queueNames)
+   public SessionBindingQueryResponseMessage(final boolean exists, final List<SimpleString> queueNames)
    {
       super(SESS_BINDINGQUERY_RESP);
 
@@ -31,7 +33,7 @@
       return exists;
    }
 
-   public List<String> getQueueNames()
+   public List<SimpleString> getQueueNames()
    {
       return this.queueNames;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserMessage.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserMessage.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -8,6 +8,8 @@
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEBROWSER;
 
+import org.jboss.messaging.util.SimpleString;
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -21,15 +23,15 @@
 
    // Attributes ----------------------------------------------------
 
-   private final String queueName;
+   private final SimpleString queueName;
    
-   private final String filterString;
+   private final SimpleString filterString;
 
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   public SessionCreateBrowserMessage(final String queueName, final String filterString)
+   public SessionCreateBrowserMessage(final SimpleString queueName, final SimpleString filterString)
    {
       super(SESS_CREATEBROWSER);
 
@@ -41,12 +43,12 @@
 
    // Public --------------------------------------------------------
 
-   public String getQueueName()
+   public SimpleString getQueueName()
    {
       return queueName;
    }
 
-   public String getFilterString()
+   public SimpleString getFilterString()
    {
       return filterString;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerMessage.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerMessage.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,7 +6,9 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.SimpleString;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  *
@@ -18,9 +20,9 @@
 
    // Attributes ----------------------------------------------------
 
-   private final String queueName;
+   private final SimpleString queueName;
    
-   private final String filterString;
+   private final SimpleString filterString;
    
    private final boolean noLocal;
    
@@ -34,7 +36,7 @@
 
    // Constructors --------------------------------------------------
 
-   public SessionCreateConsumerMessage(final String queueName, final String filterString,
+   public SessionCreateConsumerMessage(final SimpleString queueName, final SimpleString filterString,
    		                              final boolean noLocal, final boolean autoDeleteQueue,
    		                              final int windowSize, final int maxRate)
    {
@@ -64,12 +66,12 @@
       return buff.toString();
    }
 
-   public String getQueueName()
+   public SimpleString getQueueName()
    {
       return queueName;
    }
 
-   public String getFilterString()
+   public SimpleString getFilterString()
    {
       return filterString;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerMessage.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerMessage.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,7 +6,9 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.SimpleString;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  *
@@ -18,7 +20,7 @@
 
    // Attributes ----------------------------------------------------
 
-   private final String address;
+   private final SimpleString address;
    
    private final int windowSize;
    
@@ -28,7 +30,7 @@
 
    // Constructors --------------------------------------------------
 
-   public SessionCreateProducerMessage(final String address, final int windowSize, final int maxRate)
+   public SessionCreateProducerMessage(final SimpleString address, final int windowSize, final int maxRate)
    {
       super(PacketType.SESS_CREATEPRODUCER);
 
@@ -52,7 +54,7 @@
       return buff.toString();
    }
 
-   public String getAddress()
+   public SimpleString getAddress()
    {
       return address;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateQueueMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateQueueMessage.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateQueueMessage.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -8,7 +8,9 @@
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEQUEUE;
 
+import org.jboss.messaging.util.SimpleString;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
 
@@ -20,9 +22,9 @@
 
    // Attributes ----------------------------------------------------
 
-   private final String address;
-   private final String queueName;
-   private final String filterString;
+   private final SimpleString address;
+   private final SimpleString queueName;
+   private final SimpleString filterString;
    private final boolean durable;
    private final boolean temporary;
    
@@ -30,8 +32,8 @@
 
    // Constructors --------------------------------------------------
 
-   public SessionCreateQueueMessage(final String address, final String queueName,
-   		final String filterString, final boolean durable, final boolean temporary)
+   public SessionCreateQueueMessage(final SimpleString address, final SimpleString queueName,
+   		final SimpleString filterString, final boolean durable, final boolean temporary)
    {
       super(SESS_CREATEQUEUE);
 
@@ -57,17 +59,17 @@
       return buff.toString();
    }
    
-   public String getAddress()
+   public SimpleString getAddress()
    {
       return address;
    }
 
-   public String getQueueName()
+   public SimpleString getQueueName()
    {
       return queueName;
    }
 
-   public String getFilterString()
+   public SimpleString getFilterString()
    {
       return filterString;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionDeleteQueueMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionDeleteQueueMessage.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionDeleteQueueMessage.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -8,7 +8,9 @@
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_DELETE_QUEUE;
 
+import org.jboss.messaging.util.SimpleString;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
 
@@ -20,13 +22,13 @@
 
    // Attributes ----------------------------------------------------
 
-   private final String queueName;
+   private final SimpleString queueName;
 
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   public SessionDeleteQueueMessage(final String queueName)
+   public SessionDeleteQueueMessage(final SimpleString queueName)
    {
       super(SESS_DELETE_QUEUE);
 
@@ -44,7 +46,7 @@
       return buff.toString();
    }
    
-   public String getQueueName()
+   public SimpleString getQueueName()
    {
       return queueName;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryMessage.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryMessage.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,7 +6,9 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.SimpleString;
 
+
 /**
  * 
  * A SessionQueueQueryMessage
@@ -16,16 +18,16 @@
  */
 public class SessionQueueQueryMessage extends PacketImpl
 {
-   private final String queueName;
+   private final SimpleString queueName;
 
-   public SessionQueueQueryMessage(final String queueName)
+   public SessionQueueQueryMessage(final SimpleString queueName)
    {
       super(PacketType.SESS_QUEUEQUERY);
 
       this.queueName = queueName;            
    }
 
-   public String getQueueName()
+   public SimpleString getQueueName()
    {
       return queueName;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryResponseMessage.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryResponseMessage.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -2,6 +2,8 @@
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_QUEUEQUERY_RESP;
 
+import org.jboss.messaging.util.SimpleString;
+
 /**
  * 
  * A SessionQueueQueryResponseMessage
@@ -23,12 +25,12 @@
    
    private final int messageCount;
    
-   private final String filterString;
+   private final SimpleString filterString;
    
-   private final String address;
+   private final SimpleString address;
    
    public SessionQueueQueryResponseMessage(final boolean durable, final boolean temporary, final int maxSize, 
-   		final int consumerCount, final int messageCount, final String filterString, final String address)
+   		final int consumerCount, final int messageCount, final SimpleString filterString, final SimpleString address)
    {
    	this(durable, temporary, maxSize, consumerCount, messageCount, filterString, address, true);
    }
@@ -39,7 +41,7 @@
    }
    
    private SessionQueueQueryResponseMessage(final boolean durable, final boolean temporary, final int maxSize, 
-   		final int consumerCount, final int messageCount, final String filterString, final String address,
+   		final int consumerCount, final int messageCount, final SimpleString filterString, final SimpleString address,
    		final boolean exists)
    {
       super(SESS_QUEUEQUERY_RESP);
@@ -91,12 +93,12 @@
       return messageCount;
    }
    
-   public String getFilterString()
+   public SimpleString getFilterString()
    {
       return filterString;
    }
    
-   public String getAddress()
+   public SimpleString getAddress()
    {
       return address;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionRemoveDestinationMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionRemoveDestinationMessage.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionRemoveDestinationMessage.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -8,7 +8,9 @@
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_REMOVE_DESTINATION;
 
+import org.jboss.messaging.util.SimpleString;
 
+
 /**
  * 
  * A SessionRemoveDestinationMessage
@@ -22,7 +24,7 @@
 
    // Attributes ----------------------------------------------------
    
-   private final String address;
+   private final SimpleString address;
    
    private final boolean temporary;
    
@@ -30,7 +32,7 @@
 
    // Constructors --------------------------------------------------
    
-   public SessionRemoveDestinationMessage(final String address, final boolean temporary)
+   public SessionRemoveDestinationMessage(final SimpleString address, final boolean temporary)
    {
       super(SESS_REMOVE_DESTINATION);
       
@@ -41,7 +43,7 @@
 
    // Public --------------------------------------------------------
    
-   public String getAddress()
+   public SimpleString getAddress()
    {
       return address;
    }

Modified: trunk/src/main/org/jboss/messaging/core/server/Queue.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/Queue.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/server/Queue.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -26,8 +26,9 @@
 
 import org.jboss.messaging.core.filter.Filter;
 import org.jboss.messaging.core.message.MessageReference;
+import org.jboss.messaging.core.persistence.StorageManager;
 import org.jboss.messaging.core.postoffice.FlowController;
-import org.jboss.messaging.core.persistence.StorageManager;
+import org.jboss.messaging.util.SimpleString;
 
 
 /**
@@ -95,7 +96,7 @@
    
    boolean isDurable();
    
-   String getName();
+   SimpleString getName();
    
    int getMessagesAdded();
 

Modified: trunk/src/main/org/jboss/messaging/core/server/QueueFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/QueueFactory.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/server/QueueFactory.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -22,6 +22,7 @@
 package org.jboss.messaging.core.server;
 
 import org.jboss.messaging.core.filter.Filter;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -35,6 +36,6 @@
  */
 public interface QueueFactory
 {
-   Queue createQueue(long persistenceID, String name, Filter filter,
+   Queue createQueue(long persistenceID, SimpleString name, Filter filter,
                      boolean durable, boolean temporary);
 }

Modified: trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -21,12 +21,13 @@
   */
 package org.jboss.messaging.core.server;
 
+import java.util.Collection;
+
 import org.jboss.messaging.core.remoting.PacketSender;
 import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionResponseMessage;
 import org.jboss.messaging.core.security.SecurityStore;
+import org.jboss.messaging.util.SimpleString;
 
-import java.util.Collection;
-
 /**
  * 
  * A ServerConnection
@@ -60,9 +61,9 @@
 	
 	void removeTemporaryQueue(Queue queue);
 	
-	void addTemporaryDestination(String destination);
+	void addTemporaryDestination(SimpleString destination);
 	
-	void removeTemporaryDestination(String destination);
+	void removeTemporaryDestination(SimpleString destination);
 	
 	boolean isStarted();
 	

Modified: trunk/src/main/org/jboss/messaging/core/server/ServerProducer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/ServerProducer.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/server/ServerProducer.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -1,6 +1,7 @@
 package org.jboss.messaging.core.server;
 
 import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -15,7 +16,7 @@
 	
 	void close() throws Exception;
 	
-	void send(String address, Message msg) throws Exception;
+	void send(SimpleString address, Message msg) throws Exception;
 	
 	void sendCredits() throws Exception;
 	

Modified: trunk/src/main/org/jboss/messaging/core/server/ServerSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/ServerSession.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/server/ServerSession.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -36,6 +36,7 @@
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryResponseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResponseMessage;
 import org.jboss.messaging.core.server.impl.ServerBrowserImpl;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -62,7 +63,7 @@
 	
 	void promptDelivery(Queue queue);
 	
-	void send(String address, Message msg) throws Exception;
+	void send(SimpleString address, Message msg) throws Exception;
 
    void acknowledge(long deliveryID, boolean allUpTo) throws Exception;
 
@@ -96,22 +97,22 @@
 
    boolean setXATimeout(int timeoutSeconds);
 
-   void addDestination(String address, boolean temporary) throws Exception;
+   void addDestination(SimpleString address, boolean temporary) throws Exception;
 
-   void removeDestination(String address, boolean temporary) throws Exception;
+   void removeDestination(SimpleString address, boolean temporary) throws Exception;
 
-   void createQueue(String address, String queueName, String filterString, boolean durable, boolean temporary) throws Exception;
+   void createQueue(SimpleString address, SimpleString queueName, SimpleString filterString, boolean durable, boolean temporary) throws Exception;
 
-   void deleteQueue(String queueName) throws Exception;
+   void deleteQueue(SimpleString queueName) throws Exception;
 
-   SessionCreateConsumerResponseMessage createConsumer(String queueName, String filterString, boolean noLocal,
+   SessionCreateConsumerResponseMessage createConsumer(SimpleString queueName, SimpleString filterString, boolean noLocal,
    		                                              boolean autoDeleteQueue, int windowSize, int maxRate) throws Exception;
    
-   SessionCreateProducerResponseMessage createProducer(String address, int windowSize, int maxRate) throws Exception;   
+   SessionCreateProducerResponseMessage createProducer(SimpleString address, int windowSize, int maxRate) throws Exception;   
 
    SessionQueueQueryResponseMessage executeQueueQuery(SessionQueueQueryMessage request) throws Exception;
 
    SessionBindingQueryResponseMessage executeBindingQuery(SessionBindingQueryMessage request) throws Exception;
 
-   SessionCreateBrowserResponseMessage createBrowser(String queueName, String selector) throws Exception;
+   SessionCreateBrowserResponseMessage createBrowser(SimpleString queueName, SimpleString filterString) throws Exception;
 }

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/QueueFactoryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/QueueFactoryImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/QueueFactoryImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -28,6 +28,7 @@
 import org.jboss.messaging.core.server.QueueFactory;
 import org.jboss.messaging.core.settings.HierarchicalRepository;
 import org.jboss.messaging.core.settings.impl.QueueSettings;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  *
@@ -51,10 +52,10 @@
       this.scheduledExecutor = scheduledExecutor;
    }
    
-   public Queue createQueue(final long persistenceID, final String name, final Filter filter,
+   public Queue createQueue(final long persistenceID, final SimpleString name, final Filter filter,
                             final boolean durable, final boolean temporary)
    {
-      QueueSettings queueSettings = queueSettingsRepository.getMatch(name);
+      QueueSettings queueSettings = queueSettingsRepository.getMatch(name.toString());
             
       Queue queue = new QueueImpl(persistenceID, name, filter, queueSettings.isClustered(), durable, temporary,
       		queueSettings.getMaxSize(), scheduledExecutor);

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -45,6 +45,7 @@
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.transaction.Transaction;
 import org.jboss.messaging.core.transaction.impl.TransactionImpl;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  *
@@ -64,7 +65,7 @@
 
    private volatile long persistenceID = -1;
 
-   private final String name;
+   private final SimpleString name;
    
    private volatile Filter filter;
 
@@ -100,7 +101,7 @@
 
    private boolean delivering = true; 
    
-   public QueueImpl(final long persistenceID, final String name, final Filter filter, final boolean clustered,
+   public QueueImpl(final long persistenceID, final SimpleString name, final Filter filter, final boolean clustered,
                     final boolean durable, final boolean temporary, final int maxSize,
                     final ScheduledExecutorService scheduledExecutor)
    {
@@ -140,7 +141,7 @@
       return temporary;
    }
 
-   public String getName()
+   public SimpleString getName()
    {
       return name;
    }

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -21,16 +21,11 @@
  */
 package org.jboss.messaging.core.server.impl;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CLOSE;
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.NULL;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_HASNEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_NEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_RESET;
 
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
-import java.util.UUID;
 
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.filter.Filter;
@@ -41,13 +36,13 @@
 import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketHandler;
 import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserHasNextMessageResponseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserNextMessageResponseMessage;
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.ServerSession;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * Concrete implementation of BrowserEndpoint.
@@ -88,7 +83,7 @@
 
 		if (messageFilter != null)
 		{	
-		   filter = new FilterImpl(messageFilter);
+		   filter = new FilterImpl(new SimpleString(messageFilter));
 		}
 		else
 		{

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -42,6 +42,7 @@
 import org.jboss.messaging.core.settings.impl.QueueSettings;
 import org.jboss.messaging.core.transaction.ResourceManager;
 import org.jboss.messaging.util.ConcurrentHashSet;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * Concrete implementation of ConnectionEndpoint.
@@ -98,7 +99,7 @@
 
    private final Set<Queue> temporaryQueues = new ConcurrentHashSet<Queue>();
    
-   private final Set<String> temporaryDestinations = new ConcurrentHashSet<String>();
+   private final Set<SimpleString> temporaryDestinations = new ConcurrentHashSet<SimpleString>();
       
    private volatile boolean started;
 
@@ -193,7 +194,7 @@
 
       sessions.clear();
       
-      Set<String> addresses = new HashSet<String>();
+      Set<SimpleString> addresses = new HashSet<SimpleString>();
 
       for (Queue tempQueue: temporaryQueues)
       {                        
@@ -204,12 +205,12 @@
          postOffice.removeBinding(tempQueue.getName());         
       }
       
-      for (String address: addresses)
+      for (SimpleString address: addresses)
       {
          postOffice.removeDestination(address, true);
       }
       
-      for (String address: temporaryDestinations)
+      for (SimpleString address: temporaryDestinations)
       {
       	postOffice.removeDestination(address, true);
       }
@@ -258,12 +259,12 @@
       temporaryQueues.remove(queue);      
    }
    
-   public void addTemporaryDestination(final String address)
+   public void addTemporaryDestination(final SimpleString address)
    {
       temporaryDestinations.add(address);     
    }
    
-   public void removeTemporaryDestination(final String address)
+   public void removeTemporaryDestination(final SimpleString address)
    {
       temporaryDestinations.remove(address);
    }

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -21,8 +21,6 @@
   */
 package org.jboss.messaging.core.server.impl;
 
-import java.util.UUID;
-
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.postoffice.FlowController;
@@ -31,6 +29,7 @@
 import org.jboss.messaging.core.remoting.impl.wireformat.ProducerReceiveTokensMessage;
 import org.jboss.messaging.core.server.ServerProducer;
 import org.jboss.messaging.core.server.ServerSession;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -47,7 +46,7 @@
 	
 	private final ServerSession session;
 	
-	private final String address;
+	private final SimpleString address;
 	
 	private final FlowController flowController;
 	
@@ -57,7 +56,7 @@
 	
 	// Constructors ----------------------------------------------------------------
 	
-	public ServerProducerImpl(final long id, final ServerSession session, final String address, 
+	public ServerProducerImpl(final long id, final ServerSession session, final SimpleString address, 
 			                    final PacketSender sender,
 			                    final FlowController flowController) throws Exception
 	{
@@ -85,7 +84,7 @@
 	}
 	
 	
-	public void send(final String address, final Message message) throws Exception
+	public void send(final SimpleString address, final Message message) throws Exception
 	{		
 		if (address != null)
 		{

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -56,13 +56,21 @@
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResponseMessage;
 import org.jboss.messaging.core.security.CheckType;
 import org.jboss.messaging.core.security.SecurityStore;
-import org.jboss.messaging.core.server.*;
+import org.jboss.messaging.core.server.Delivery;
+import org.jboss.messaging.core.server.HandleStatus;
+import org.jboss.messaging.core.server.ObjectIDGenerator;
+import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.core.server.ServerConnection;
+import org.jboss.messaging.core.server.ServerConsumer;
+import org.jboss.messaging.core.server.ServerProducer;
+import org.jboss.messaging.core.server.ServerSession;
 import org.jboss.messaging.core.settings.HierarchicalRepository;
 import org.jboss.messaging.core.settings.impl.QueueSettings;
 import org.jboss.messaging.core.transaction.ResourceManager;
 import org.jboss.messaging.core.transaction.Transaction;
 import org.jboss.messaging.core.transaction.impl.TransactionImpl;
 import org.jboss.messaging.util.ConcurrentHashSet;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * Session implementation
@@ -298,10 +306,10 @@
       });
    }
 
-   public void send(final String address, final Message msg) throws Exception
+   public void send(final SimpleString address, final Message msg) throws Exception
    {
       //check the user has write access to this address
-      securityStore.check(address, CheckType.WRITE, connection);
+      securityStore.check(address.toString(), CheckType.WRITE, connection);
 
       msg.setMessageID(persistenceManager.generateMessageID());
 
@@ -804,9 +812,9 @@
       return resourceManager.setTimeoutSeconds(timeoutSeconds);
    }
 
-   public void addDestination(final String address, final boolean temporary) throws Exception
+   public void addDestination(final SimpleString address, final boolean temporary) throws Exception
    {
-      securityStore.check(address, CheckType.CREATE, connection);
+      securityStore.check(address.toString(), CheckType.CREATE, connection);
 
       if (!postOffice.addDestination(address, temporary))
       {
@@ -821,9 +829,9 @@
       }
    }
 
-   public void removeDestination(final String address, final boolean temporary) throws Exception
+   public void removeDestination(final SimpleString address, final boolean temporary) throws Exception
    {
-   	securityStore.check(address, CheckType.CREATE, connection);
+   	securityStore.check(address.toString(), CheckType.CREATE, connection);
 
       if (!postOffice.removeDestination(address, temporary))
       {
@@ -838,15 +846,15 @@
       }
    }
 
-   public void createQueue(final String address, final String queueName,
-         final String filterString, boolean durable, final boolean temporary) throws Exception
+   public void createQueue(final SimpleString address, final SimpleString queueName,
+         final SimpleString filterString, boolean durable, final boolean temporary) throws Exception
    {
       //make sure the user has privileges to create this address
       if (!postOffice.containsDestination(address))
       {
          try
          {
-         	securityStore.check(address, CheckType.CREATE, connection);
+         	securityStore.check(address.toString(), CheckType.CREATE, connection);
          }
          catch (MessagingException e)
          {
@@ -883,7 +891,7 @@
       }
    }
 
-   public void deleteQueue(final String queueName) throws Exception
+   public void deleteQueue(final SimpleString queueName) throws Exception
    {
       Binding binding = postOffice.removeBinding(queueName);
 
@@ -910,7 +918,7 @@
       }
    }
 
-   public SessionCreateConsumerResponseMessage createConsumer(final String queueName, final String filterString,
+   public SessionCreateConsumerResponseMessage createConsumer(final SimpleString queueName, final SimpleString filterString,
                                                               final boolean noLocal, final boolean autoDeleteQueue,
                                                               int windowSize, int maxRate) throws Exception
    {
@@ -921,7 +929,7 @@
          throw new MessagingException(MessagingException.QUEUE_DOES_NOT_EXIST);
       }
 
-      securityStore.check(binding.getAddress(), CheckType.READ, connection);
+      securityStore.check(binding.getAddress().toString(), CheckType.READ, connection);
 
       Filter filter = null;
 
@@ -932,11 +940,11 @@
 
       //Flow control values if specified on queue override those passed in from client
 
-      Integer queueWindowSize = queueSettingsRepository.getMatch(queueName).getConsumerWindowSize();
+      Integer queueWindowSize = queueSettingsRepository.getMatch(queueName.toString()).getConsumerWindowSize();
 
       windowSize = queueWindowSize != null ? queueWindowSize : windowSize;
 
-      Integer queueMaxRate = queueSettingsRepository.getMatch(queueName).getConsumerMaxRate();
+      Integer queueMaxRate = queueSettingsRepository.getMatch(queueName.toString()).getConsumerMaxRate();
 
       maxRate = queueMaxRate != null ? queueMaxRate : maxRate;
 
@@ -971,7 +979,7 @@
 
          Filter filter = queue.getFilter();
 
-         String filterString = filter == null ? null : filter.getFilterString();
+         SimpleString filterString = filter == null ? null : filter.getFilterString();
 
          response = new SessionQueueQueryResponseMessage(queue.isDurable(), queue.isTemporary(), queue.getMaxSize(),
                                            queue.getConsumerCount(), queue.getMessageCount(),
@@ -994,7 +1002,7 @@
 
       boolean exists = postOffice.containsDestination(request.getAddress());
 
-      List<String> queueNames = new ArrayList<String>();
+      List<SimpleString> queueNames = new ArrayList<SimpleString>();
 
       if (exists)
       {
@@ -1009,7 +1017,7 @@
       return new SessionBindingQueryResponseMessage(exists, queueNames);
    }
 
-   public SessionCreateBrowserResponseMessage createBrowser(final String queueName, final String selector)
+   public SessionCreateBrowserResponseMessage createBrowser(final SimpleString queueName, final SimpleString filterString)
          throws Exception
    {
       Binding binding = postOffice.getBinding(queueName);
@@ -1019,9 +1027,10 @@
          throw new MessagingException(MessagingException.QUEUE_DOES_NOT_EXIST);
       }
 
-      securityStore.check(binding.getAddress(), CheckType.READ, connection);
+      securityStore.check(binding.getAddress().toString(), CheckType.READ, connection);
 
-      ServerBrowserImpl browser = new ServerBrowserImpl(objectIDGenerator.generateID(), this, binding.getQueue(), selector);
+      ServerBrowserImpl browser = new ServerBrowserImpl(objectIDGenerator.generateID(),
+            this, binding.getQueue(), filterString == null ? null : filterString.toString());
 
       browsers.add(browser);
 
@@ -1039,7 +1048,7 @@
     * is set and there are not sufficient empty spaces in the queue, or it is overridden by any producer-window_size
     * specified on the queue
     */
-   public SessionCreateProducerResponseMessage createProducer(final String address, final int windowSize,
+   public SessionCreateProducerResponseMessage createProducer(final SimpleString address, final int windowSize,
    		                                                     final int maxRate) throws Exception
    {
    	FlowController flowController = null;

Modified: trunk/src/main/org/jboss/messaging/core/transaction/Transaction.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/transaction/Transaction.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/transaction/Transaction.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -21,15 +21,16 @@
  */
 package org.jboss.messaging.core.transaction;
 
+import java.util.List;
+
 import javax.transaction.xa.Xid;
 
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.message.MessageReference;
 import org.jboss.messaging.core.settings.HierarchicalRepository;
 import org.jboss.messaging.core.settings.impl.QueueSettings;
+import org.jboss.messaging.util.SimpleString;
 
-import java.util.List;
-
 /**
  * 
  * A JBoss Messaging internal transaction
@@ -45,7 +46,7 @@
    
    void rollback(HierarchicalRepository<QueueSettings> queueSettingsRepository) throws Exception;
    
-   void addMessage(String address, Message message) throws Exception;
+   void addMessage(SimpleString address, Message message) throws Exception;
 
    List<MessageReference> getAcknowledgements();
 

Modified: trunk/src/main/org/jboss/messaging/core/transaction/impl/TransactionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/transaction/impl/TransactionImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/core/transaction/impl/TransactionImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -38,6 +38,7 @@
 import org.jboss.messaging.core.settings.HierarchicalRepository;
 import org.jboss.messaging.core.settings.impl.QueueSettings;
 import org.jboss.messaging.core.transaction.Transaction;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -98,7 +99,7 @@
 		return id;
 	}
 
-	public void addMessage(final String address, final Message message)
+	public void addMessage(final SimpleString address, final Message message)
 			throws Exception
 	{
 		if (state != State.ACTIVE)

Modified: trunk/src/main/org/jboss/messaging/jms/JBossDestination.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/JBossDestination.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/jms/JBossDestination.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -28,6 +28,7 @@
 import javax.naming.Reference;
 
 import org.jboss.messaging.jms.referenceable.SerializableObjectRefAddr;
+import org.jboss.messaging.util.SimpleString;
 
 
 /**
@@ -47,12 +48,46 @@
    {
       return input.replace("\\", "\\\\").replace(".", "\\.");
    }
+	
+	public static JBossDestination fromAddress(final String address)
+	{
+		if (address.startsWith(JBossQueue.JMS_QUEUE_ADDRESS_PREFIX))
+		{
+			String name = address.substring(JBossQueue.JMS_QUEUE_ADDRESS_PREFIX.length());
+			
+			return new JBossQueue(address, name);
+		}
+		else if (address.startsWith(JBossTopic.JMS_TOPIC_ADDRESS_PREFIX))
+		{
+			String name = address.substring(JBossTopic.JMS_TOPIC_ADDRESS_PREFIX.length());
+			
+			return new JBossTopic(address, name);
+		}
+		else if (address.startsWith(JBossTemporaryQueue.JMS_TEMP_QUEUE_ADDRESS_PREFIX))
+		{
+			String name = address.substring(JBossTemporaryQueue.JMS_TEMP_QUEUE_ADDRESS_PREFIX.length());
+			
+			return new JBossTemporaryQueue(null, name);
+		}
+		else if (address.startsWith(JBossTemporaryTopic.JMS_TEMP_TOPIC_ADDRESS_PREFIX))
+		{
+			String name = address.substring(JBossTemporaryTopic.JMS_TEMP_TOPIC_ADDRESS_PREFIX.length());
+			
+			return new JBossTemporaryTopic(null, name);
+		}
+		else
+		{
+			throw new IllegalArgumentException("Invalid address " + address);
+		}
+	}
       
    // Attributes ----------------------------------------------------
 
    protected final String name;
    
    private final String address;
+   
+   private final SimpleString simpleAddress;
          
    // Constructors --------------------------------------------------
 
@@ -61,6 +96,8 @@
       this.address = address;
       
       this.name = name;
+      
+      this.simpleAddress = new SimpleString(address);
    }
    
    // Referenceable implementation ---------------------------------------
@@ -80,6 +117,11 @@
       return address;
    }
    
+   public SimpleString getSimpleAddress()
+   {
+   	return simpleAddress;
+   }
+   
    public String getName()
    {
       return name;

Modified: trunk/src/main/org/jboss/messaging/jms/JBossTemporaryQueue.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/JBossTemporaryQueue.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/jms/JBossTemporaryQueue.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -38,7 +38,7 @@
    
 	private static final long serialVersionUID = -4624930377557954624L;
 
-	private static final String JMS_TEMP_QUEUE_ADDRESS_PREFIX = "queuetempjms.";
+	public static final String JMS_TEMP_QUEUE_ADDRESS_PREFIX = "queuetempjms.";
    
    // Static --------------------------------------------------------
    

Modified: trunk/src/main/org/jboss/messaging/jms/JBossTemporaryTopic.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/JBossTemporaryTopic.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/jms/JBossTemporaryTopic.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -38,7 +38,7 @@
       
 	private static final long serialVersionUID = 845450764835635266L;
 
-	private static final String JMS_TEMP_TOPIC_ADDRESS_PREFIX = "topictempjms.";
+	public static final String JMS_TEMP_TOPIC_ADDRESS_PREFIX = "topictempjms.";
    
    // Static --------------------------------------------------------
    

Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossMessageProducer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossMessageProducer.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossMessageProducer.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -44,6 +44,7 @@
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.jms.JBossDestination;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * @author <a href="mailto:ovidiu at feodorov.com">Ovidiu Feodorov</a>
@@ -320,7 +321,7 @@
          message.setJMSTimestamp(0);
       }
       
-      String address = null;
+      SimpleString address = null;
       
       if (destination == null)
       {
@@ -344,7 +345,7 @@
       		}
       	}
       	
-      	address = destination.getAddress();
+      	address = destination.getSimpleAddress();
       }
       
       JBossMessage jbm;

Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossSession.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossSession.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -70,6 +70,7 @@
 import org.jboss.messaging.jms.JBossTemporaryQueue;
 import org.jboss.messaging.jms.JBossTemporaryTopic;
 import org.jboss.messaging.jms.JBossTopic;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * @author <a href="mailto:ovidiu at feodorov.com">Ovidiu Feodorov</a>
@@ -340,7 +341,7 @@
       
       try
       {
-         ClientProducer producer = session.createProducer(jbd == null ? null : jbd.getAddress());
+         ClientProducer producer = session.createProducer(jbd == null ? null : jbd.getSimpleAddress());
 
          return new JBossMessageProducer(producer, jbd);
       }
@@ -392,7 +393,7 @@
 
       try
       {      
-         SessionQueueQueryResponseMessage response = session.queueQuery(queue.getAddress());
+         SessionQueueQueryResponseMessage response = session.queueQuery(queue.getSimpleAddress());
 
          if (!response.isExists())
          {
@@ -421,7 +422,7 @@
       
       try
       {      
-         SessionBindingQueryResponseMessage response = session.bindingQuery(topic.getAddress());
+         SessionBindingQueryResponseMessage response = session.bindingQuery(topic.getSimpleAddress());
          
          if (!response.isExists())
          {
@@ -470,44 +471,44 @@
       {               
          selectorString = "".equals(selectorString) ? null : selectorString;
          
-         String coreFilterString = null;
+         SimpleString coreFilterString = null;
          
          if (selectorString != null)
          {
-            coreFilterString = SelectorTranslator.convertToJBMFilterString(selectorString);
+            coreFilterString = new SimpleString(SelectorTranslator.convertToJBMFilterString(selectorString));
          }
          
          ClientConsumer consumer;
          
          if (dest instanceof Queue)
          {
-            SessionQueueQueryResponseMessage response = session.queueQuery(dest.getAddress());
+            SessionQueueQueryResponseMessage response = session.queueQuery(dest.getSimpleAddress());
             
             if (!response.isExists())
             {
                throw new InvalidDestinationException("Queue " + dest.getName() + " does not exist");
             }
             
-            consumer = session.createConsumer(dest.getAddress(), coreFilterString, noLocal, false, false);
+            consumer = session.createConsumer(dest.getSimpleAddress(), coreFilterString, noLocal, false, false);
          }
          else
          {
-            SessionBindingQueryResponseMessage response = session.bindingQuery(dest.getAddress());
+            SessionBindingQueryResponseMessage response = session.bindingQuery(dest.getSimpleAddress());
             
             if (!response.isExists())
             {
                throw new InvalidDestinationException("Topic " + dest.getName() + " does not exist");
             }
                           
-            String queueName;
+            SimpleString queueName;
             
             if (subscriptionName == null)
             {
                //Non durable sub
               
-               queueName = UUID.randomUUID().toString();
+               queueName = new SimpleString(UUID.randomUUID().toString());
                
-               session.createQueue(dest.getAddress(), queueName, coreFilterString, false, false);
+               session.createQueue(dest.getSimpleAddress(), queueName, coreFilterString, false, false);
                
                consumer = session.createConsumer(queueName, null, noLocal, true, false);
             }
@@ -525,14 +526,14 @@
                   throw new InvalidDestinationException("Cannot create a durable subscription on a temporary topic");
                }
                
-               queueName =
-                  JBossTopic.createQueueNameForDurableSubscription(connection.getClientID(), subscriptionName);
+               queueName = new SimpleString(
+                  JBossTopic.createQueueNameForDurableSubscription(connection.getClientID(), subscriptionName));
                
                SessionQueueQueryResponseMessage subResponse = session.queueQuery(queueName);
                
                if (!subResponse.isExists())
                {
-                  session.createQueue(dest.getAddress(), queueName, coreFilterString, true, false);
+                  session.createQueue(dest.getSimpleAddress(), queueName, coreFilterString, true, false);
                }
                else
                {
@@ -548,7 +549,7 @@
                   // Changing a durable subscriber is equivalent to unsubscribing (deleting) the old
                   // one and creating a new one.
                   
-                  String oldFilterString = subResponse.getFilterString();
+                  SimpleString oldFilterString = subResponse.getFilterString();
                   
                   boolean selectorChanged =
                      (coreFilterString == null && oldFilterString != null) ||
@@ -557,9 +558,9 @@
                               !oldFilterString.equals(coreFilterString));
                   
    
-                  String oldTopicName = subResponse.getAddress();
+                  SimpleString oldTopicName = subResponse.getAddress();
                   
-                  boolean topicChanged = !oldTopicName.equals(dest.getAddress());
+                  boolean topicChanged = !oldTopicName.equals(dest.getSimpleAddress());
                   
                   if (selectorChanged || topicChanged)
                   {
@@ -567,7 +568,7 @@
                      session.deleteQueue(queueName);
                      
                      //Create the new one
-                     session.createQueue(dest.getAddress(), queueName, coreFilterString, true, false);        
+                     session.createQueue(dest.getSimpleAddress(), queueName, coreFilterString, true, false);        
                   }                          
                }
                
@@ -617,7 +618,7 @@
       return createBrowser(queue, null);
    }
 
-   public QueueBrowser createBrowser(final Queue queue, String messageSelector) throws JMSException
+   public QueueBrowser createBrowser(final Queue queue, String filterString) throws JMSException
    {
       //As per spec. section 4.11
       if (sessionType == TYPE_TOPIC_SESSION)
@@ -632,18 +633,20 @@
       {
          throw new InvalidDestinationException("Not a JBossQueue:" + queue);
       }
-      if ("".equals(messageSelector))
+      if ("".equals(filterString))
       {
-         messageSelector = null;
+      	filterString = null;
       }
 
       JBossQueue jbq = (JBossQueue)queue;
       
       try
       {      
-         ClientBrowser browser = session.createBrowser(jbq.getAddress(), messageSelector);
+         String coreSelector = SelectorTranslator.convertToJBMFilterString(filterString);
+      	
+         ClientBrowser browser = session.createBrowser(jbq.getSimpleAddress(), coreSelector == null ? null : new SimpleString(coreSelector));
    
-         return new JBossQueueBrowser(queue, messageSelector, browser);
+         return new JBossQueueBrowser(queue, filterString, browser);
       }
       catch (MessagingException e)
       {
@@ -665,9 +668,9 @@
       {      
          JBossTemporaryQueue queue = new JBossTemporaryQueue(this, queueName);
                            
-         session.createQueue(queue.getAddress(), queue.getAddress(), null, false, true);
+         session.createQueue(queue.getSimpleAddress(), queue.getSimpleAddress(), null, false, true);
          
-         session.addDestination(queue.getAddress(), true);
+         session.addDestination(queue.getSimpleAddress(), true);
          
          return queue;      
       }
@@ -691,7 +694,7 @@
       {      
          JBossTemporaryTopic topic = new JBossTemporaryTopic(this, topicName);
                            
-         session.addDestination(topic.getAddress(), true);
+         session.addDestination(topic.getSimpleAddress(), true);
          
          return topic;
       }
@@ -709,7 +712,7 @@
          throw new IllegalStateException("Cannot unsubscribe using a QueueSession");
       }
       
-      String queueName = JBossTopic.createQueueNameForDurableSubscription(connection.getClientID(), name);
+      SimpleString queueName = new SimpleString(JBossTopic.createQueueNameForDurableSubscription(connection.getClientID(), name));
       
       try
       {      
@@ -828,7 +831,7 @@
       {
          if (destination instanceof Topic)
          {
-            SessionBindingQueryResponseMessage response = session.bindingQuery(destination.getAddress());
+            SessionBindingQueryResponseMessage response = session.bindingQuery(destination.getSimpleAddress());
             
             if (!response.isExists())
             {
@@ -844,7 +847,7 @@
          }
          else
          {
-            SessionQueueQueryResponseMessage response = session.queueQuery(destination.getAddress());
+            SessionQueueQueryResponseMessage response = session.queueQuery(destination.getSimpleAddress());
             
             if (!response.isExists())
             {
@@ -858,7 +861,7 @@
                                                destination.getName() + " since it has subscribers");
             }
          }   
-         session.removeDestination(destination.getAddress(), true);
+         session.removeDestination(destination.getSimpleAddress(), true);
       }
       catch (MessagingException e)
       {

Modified: trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -59,25 +59,25 @@
     */
    boolean destroyTopic(String name) throws Exception;
 
-   /**
-    * returns a list of all the JMS queues
-    * @return all queues
-    */
-   Set<String> listAllQueues();
+//   /**
+//    * returns a list of all the JMS queues
+//    * @return all queues
+//    */
+//   Set<String> listAllQueues();
+//
+//   /**
+//    * returns a list of all the JMS topics
+//    * @return all topics
+//    */
+//   Set<String> listAllTopics();
+//
+//   /**
+//    * returns all the temporary destinations
+//    * @return all temporary destinations
+//    */
+//   Set<String> listTemporaryDestinations();
 
    /**
-    * returns a list of all the JMS topics
-    * @return all topics
-    */
-   Set<String> listAllTopics();
-
-   /**
-    * returns all the temporary destinations
-    * @return all temporary destinations
-    */
-   Set<String> listTemporaryDestinations();
-
-   /**
     * Creates a connection factory
     * @param name the name of this connection factory
     * @param clientID the client id
@@ -125,63 +125,63 @@
     */
    boolean destroyConnectionFactory(String name) throws Exception;
 
-   /**
-    * list all messages for a specific queue
-    * @param queue the queue to inspect
-    * @return all messages
-    * @throws Exception if a problem occurred
-    */
-   public List<Message> listMessagesForQueue(String queue) throws Exception;
+//   /**
+//    * list all messages for a specific queue
+//    * @param queue the queue to inspect
+//    * @return all messages
+//    * @throws Exception if a problem occurred
+//    */
+//   public List<Message> listMessagesForQueue(String queue) throws Exception;
+//
+//   /**
+//    * list the messages on a specific queue dependant on the ListType.
+//    * ListType.ALL returns all messages
+//    * ListType.DURABLE returns all durable messages
+//    * ListType.NON_DURABLE returns all non durable messages
+//    * @param queue the queue to inspect
+//    * @param listType the list type.
+//    * @return the messages
+//    * @throws Exception if a problem occurred
+//    */
+//   public List<Message> listMessagesForQueue(String queue, ListType listType) throws Exception;
+//
+//   /**
+//    * list all messages for a specific subscription
+//    * @param subscription the subscription to inspect
+//    * @return all messages
+//    * @throws Exception if a problem occurred
+//    */
+//   public List<Message> listMessagesForSubscription(String subscription) throws Exception;
+//
+//   /**
+//    * list the messages on a specific subscription dependant on the ListType.
+//    * ListType.ALL returns all messages
+//    * ListType.DURABLE returns all durable messages
+//    * ListType.NON_DURABLE returns all non durable messages
+//    * @param subscription the subscription to inspect
+//    * @param listType the list type
+//    * @return the messages
+//    * @throws Exception if a problem occurred
+//    */
+//   public List<Message> listMessagesForSubscription(String subscription, ListType listType) throws Exception;
+//
+//   /**
+//    * removes a particular message from a queue
+//    * @param queue the name of the queue
+//    * @param messageId the id of the message to remove
+//    * @throws Exception if a problem occurred
+//    */
+// //  void removeMessageFromQueue(String queue, String messageId) throws Exception;
+//
+//   /**
+//    * removes a particular message from a topic
+//    * @param topic the name of the topic
+//    * @param messageId the id of the message
+//    * @throws Exception if a problem occurred
+//    */
+// //  void removeMessageFromTopic(String topic, String messageId) throws Exception;
 
    /**
-    * list the messages on a specific queue dependant on the ListType.
-    * ListType.ALL returns all messages
-    * ListType.DURABLE returns all durable messages
-    * ListType.NON_DURABLE returns all non durable messages
-    * @param queue the queue to inspect
-    * @param listType the list type.
-    * @return the messages
-    * @throws Exception if a problem occurred
-    */
-   public List<Message> listMessagesForQueue(String queue, ListType listType) throws Exception;
-
-   /**
-    * list all messages for a specific subscription
-    * @param subscription the subscription to inspect
-    * @return all messages
-    * @throws Exception if a problem occurred
-    */
-   public List<Message> listMessagesForSubscription(String subscription) throws Exception;
-
-   /**
-    * list the messages on a specific subscription dependant on the ListType.
-    * ListType.ALL returns all messages
-    * ListType.DURABLE returns all durable messages
-    * ListType.NON_DURABLE returns all non durable messages
-    * @param subscription the subscription to inspect
-    * @param listType the list type
-    * @return the messages
-    * @throws Exception if a problem occurred
-    */
-   public List<Message> listMessagesForSubscription(String subscription, ListType listType) throws Exception;
-
-   /**
-    * removes a particular message from a queue
-    * @param queue the name of the queue
-    * @param messageId the id of the message to remove
-    * @throws Exception if a problem occurred
-    */
- //  void removeMessageFromQueue(String queue, String messageId) throws Exception;
-
-   /**
-    * removes a particular message from a topic
-    * @param topic the name of the topic
-    * @param messageId the id of the message
-    * @throws Exception if a problem occurred
-    */
- //  void removeMessageFromTopic(String topic, String messageId) throws Exception;
-
-   /**
     * removes all messages from a particular queue
     * @param queue the name of the queue
     * @throws Exception if a problem occurred
@@ -194,34 +194,34 @@
     * @throws Exception if a problem occurred
     */
    void removeAllMessagesForTopic(String topic) throws Exception;
-
+//
+//   /**
+//    * moves a message from one queue to another
+//    * @param fromQueue the name of the queue to find the message
+//    * @param toQueue the name of the queue to move the message to
+//    * @param messageID the id of the message
+//    * @throws Exception if a problem occurred
+//    */
+//   //void moveMessage(String fromQueue, String toQueue, String messageID) throws Exception;
+//
+//   /**
+//    * expires a message
+//    * @param queue the name of the queue
+//    * @param messageId the message id
+//    * @throws Exception if a problem occurred
+//    */
+//   void expireMessage(String queue, String messageId) throws Exception;
+//
+//   /**
+//    * changes the priority of a message.
+//    * @param queue the name of the queue
+//    * @param messageId the id of the message
+//    * @param priority the priority to change the message to
+//    * @throws Exception if a problem occurred
+//    */
+// //  void changeMessagePriority(String queue, String messageId, int priority) throws Exception;
+//
    /**
-    * moves a message from one queue to another
-    * @param fromQueue the name of the queue to find the message
-    * @param toQueue the name of the queue to move the message to
-    * @param messageID the id of the message
-    * @throws Exception if a problem occurred
-    */
-   //void moveMessage(String fromQueue, String toQueue, String messageID) throws Exception;
-
-   /**
-    * expires a message
-    * @param queue the name of the queue
-    * @param messageId the message id
-    * @throws Exception if a problem occurred
-    */
-   void expireMessage(String queue, String messageId) throws Exception;
-
-   /**
-    * changes the priority of a message.
-    * @param queue the name of the queue
-    * @param messageId the id of the message
-    * @param priority the priority to change the message to
-    * @throws Exception if a problem occurred
-    */
- //  void changeMessagePriority(String queue, String messageId, int priority) throws Exception;
-
-   /**
     * returns how many messages a queue is currently holding
     * @param queue the name of the queue
     * @return the number of messages
@@ -236,142 +236,142 @@
     * @throws Exception if a problem occurred
     */
    List<SubscriptionInfo> listSubscriptions(String topic) throws Exception;
-
-   /**
-    * lists all the subscriptions for a specific topic for a specific ListType.
-    * ListType.ALL returns all subscriptions
-    * ListType.DURABLE returns all durable subscriptions
-    * ListType.NON_DURABLE returns all non durable subscriptions
-    *
-    * @param topicName the name of the topic
-    * @param listType the list type
-    * @return the subscriptions
-    * @throws Exception if a problem occurred
-    */
-   List<SubscriptionInfo> listSubscriptions(String topicName, ListType listType) throws Exception;
-
-   /**
-    * count the subscriptions a topic currently has
-    * @param topic the name of the topic
-    * @return the number of subscriptions
-    * @throws Exception if a problem occurred
-    */
-   int getSubscriptionsCountForTopic(String topic) throws Exception;
-
-  /**
-    * count the subscriptions a topic currently has of a specific type.
-    * ListType.ALL returns all subscriptions
-    * ListType.DURABLE returns all durable subscriptions
-    * ListType.NON_DURABLE returns all non durable subscriptions
-   *
-    * @param topic the name of the topic
-    * @param listType the list type
-    * @return the number of subscriptions
-    * @throws Exception if a problem occurred
-    */
-   int getSubscriptionsCountForTopic(String topic, ListType listType) throws Exception;
-
-   /**
-    * drops a particular subscription
-    *
-    * @param subscription the id of the subscription
-    * @throws Exception if a problem occurred
-    */
-   void dropSubscription(String subscription) throws Exception;
-
-   /**
-    * count the consumers for a specific queue
-    * @param queue the name of the queue
-    * @return the number of consumers
-    * @throws Exception if a problem occurred
-    */
-   int getConsumerCountForQueue(String queue) throws Exception;
-
-   /**
-    * returns info on all the current active connections
-    * @return the connections info
-    * @throws Exception if a problem occurred
-    */
-   List<ConnectionInfo> getConnections() throws Exception;
-
-   /**
-    * return the connections info for a particular user.
-    * @param user the user
-    * @return the connections info
-    * @throws Exception if a problem occurred
-    */
-   List<ConnectionInfo> getConnectionsForUser(String user) throws Exception;
-
-   /**
-    * drops the connection with the specified client id
-    * @param clientId the client id
-    * @throws Exception if a problem occurred
-    */
-   void dropConnection(long id) throws Exception;
-
-   /**
-    * drop all the connections for a specific user
-    * @param user the user
-    * @throws Exception if a problem occurred
-    */
-   void dropConnectionsForUser(String user) throws Exception;
-
-   /**
-    * list all the sessions info
-    * @return the session info
-    * @throws Exception if a problem occurred
-    */
-   //public List<SessionInfo> getSessions() throws Exception;
-
-   /**
-    * get the session info for a particular connection with the specified client id
-    * @param clientid the client id
-    * @return the session info
-    * @throws Exception if a problem occurred
-    */
-  // public List<SessionInfo> getSessionsForConnection(long id) throws Exception;
-
-   /**
-    * get the session info for a particular user
-    * @param user the user
-    * @return the session info
-    * @throws Exception if a problem occurred
-    */
-  // public List<SessionInfo> getSessionsForUser(String user) throws Exception;
-
-   /**
-    * Start gathering delivery statistics for all queues
-    * @throws Exception if a problem occurred
-    */
-   void startGatheringStatistics() throws Exception;
-
-   /**
-    * Start gathering delivery statistics for a specified queue
-    * @param queue the name of the queue
-    * @throws Exception if a problem occurred
-    */
-   void startGatheringStatisticsForQueue(String queue) throws Exception;
-
-   /**
-    * stop gathering delivery statistics for all queues
-    * @return the delivery statistics at the time of stopping gathering
-    * @throws Exception if a problem occurred
-    */
-   List<MessageStatistics> stopGatheringStatistics() throws Exception;
-
-   /**
-    * stop gathering statistics for a specified queue
-    * @param queue the name of the queue
-    * @return the delivery statistics for that queue at the time of stopping gathering
-    * @throws Exception if a problem occurred
-    */
-   MessageStatistics stopGatheringStatisticsForQueue(String queue) throws Exception;
-
-   /**
-    * list all message delivery statistics. This will include statistics up to the point this method is called.
-    * The gathering of statistics will carry on.
-    * @return the delivery statistics
-    * @throws Exception if a problem occurred
-    */
-   List<MessageStatistics> getStatistics() throws Exception;
+//
+//   /**
+//    * lists all the subscriptions for a specific topic for a specific ListType.
+//    * ListType.ALL returns all subscriptions
+//    * ListType.DURABLE returns all durable subscriptions
+//    * ListType.NON_DURABLE returns all non durable subscriptions
+//    *
+//    * @param topicName the name of the topic
+//    * @param listType the list type
+//    * @return the subscriptions
+//    * @throws Exception if a problem occurred
+//    */
+//   List<SubscriptionInfo> listSubscriptions(String topicName, ListType listType) throws Exception;
+//
+//   /**
+//    * count the subscriptions a topic currently has
+//    * @param topic the name of the topic
+//    * @return the number of subscriptions
+//    * @throws Exception if a problem occurred
+//    */
+//   int getSubscriptionsCountForTopic(String topic) throws Exception;
+//
+//  /**
+//    * count the subscriptions a topic currently has of a specific type.
+//    * ListType.ALL returns all subscriptions
+//    * ListType.DURABLE returns all durable subscriptions
+//    * ListType.NON_DURABLE returns all non durable subscriptions
+//   *
+//    * @param topic the name of the topic
+//    * @param listType the list type
+//    * @return the number of subscriptions
+//    * @throws Exception if a problem occurred
+//    */
+//   int getSubscriptionsCountForTopic(String topic, ListType listType) throws Exception;
+//
+//   /**
+//    * drops a particular subscription
+//    *
+//    * @param subscription the id of the subscription
+//    * @throws Exception if a problem occurred
+//    */
+//   void dropSubscription(String subscription) throws Exception;
+//
+//   /**
+//    * count the consumers for a specific queue
+//    * @param queue the name of the queue
+//    * @return the number of consumers
+//    * @throws Exception if a problem occurred
+//    */
+//   int getConsumerCountForQueue(String queue) throws Exception;
+//
+//   /**
+//    * returns info on all the current active connections
+//    * @return the connections info
+//    * @throws Exception if a problem occurred
+//    */
+//   List<ConnectionInfo> getConnections() throws Exception;
+//
+//   /**
+//    * return the connections info for a particular user.
+//    * @param user the user
+//    * @return the connections info
+//    * @throws Exception if a problem occurred
+//    */
+//   List<ConnectionInfo> getConnectionsForUser(String user) throws Exception;
+//
+//   /**
+//    * drops the connection with the specified client id
+//    * @param clientId the client id
+//    * @throws Exception if a problem occurred
+//    */
+//   void dropConnection(long id) throws Exception;
+//
+//   /**
+//    * drop all the connections for a specific user
+//    * @param user the user
+//    * @throws Exception if a problem occurred
+//    */
+//   void dropConnectionsForUser(String user) throws Exception;
+//
+//   /**
+//    * list all the sessions info
+//    * @return the session info
+//    * @throws Exception if a problem occurred
+//    */
+//   //public List<SessionInfo> getSessions() throws Exception;
+//
+//   /**
+//    * get the session info for a particular connection with the specified client id
+//    * @param clientid the client id
+//    * @return the session info
+//    * @throws Exception if a problem occurred
+//    */
+//  // public List<SessionInfo> getSessionsForConnection(long id) throws Exception;
+//
+//   /**
+//    * get the session info for a particular user
+//    * @param user the user
+//    * @return the session info
+//    * @throws Exception if a problem occurred
+//    */
+//  // public List<SessionInfo> getSessionsForUser(String user) throws Exception;
+//
+//   /**
+//    * Start gathering delivery statistics for all queues
+//    * @throws Exception if a problem occurred
+//    */
+//   void startGatheringStatistics() throws Exception;
+//
+//   /**
+//    * Start gathering delivery statistics for a specified queue
+//    * @param queue the name of the queue
+//    * @throws Exception if a problem occurred
+//    */
+//   void startGatheringStatisticsForQueue(String queue) throws Exception;
+//
+//   /**
+//    * stop gathering delivery statistics for all queues
+//    * @return the delivery statistics at the time of stopping gathering
+//    * @throws Exception if a problem occurred
+//    */
+//   List<MessageStatistics> stopGatheringStatistics() throws Exception;
+//
+//   /**
+//    * stop gathering statistics for a specified queue
+//    * @param queue the name of the queue
+//    * @return the delivery statistics for that queue at the time of stopping gathering
+//    * @throws Exception if a problem occurred
+//    */
+//   MessageStatistics stopGatheringStatisticsForQueue(String queue) throws Exception;
+//
+//   /**
+//    * list all message delivery statistics. This will include statistics up to the point this method is called.
+//    * The gathering of statistics will carry on.
+//    * @return the delivery statistics
+//    * @throws Exception if a problem occurred
+//    */
+//   List<MessageStatistics> getStatistics() throws Exception;
 }

Modified: trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -22,38 +22,25 @@
 package org.jboss.messaging.jms.server.impl;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
-import javax.jms.Message;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
 import org.jboss.logging.Logger;
-import org.jboss.messaging.core.client.ClientConnectionFactory;
-import org.jboss.messaging.core.filter.Filter;
-import org.jboss.messaging.core.filter.impl.FilterImpl;
 import org.jboss.messaging.core.management.MessagingServerManagement;
-import org.jboss.messaging.core.messagecounter.MessageCounter;
 import org.jboss.messaging.core.server.Queue;
-import org.jboss.messaging.core.server.ServerConnection;
 import org.jboss.messaging.jms.JBossQueue;
-import org.jboss.messaging.jms.JBossTemporaryQueue;
-import org.jboss.messaging.jms.JBossTemporaryTopic;
 import org.jboss.messaging.jms.JBossTopic;
 import org.jboss.messaging.jms.client.JBossConnectionFactory;
-import org.jboss.messaging.jms.client.JBossMessage;
-import org.jboss.messaging.jms.server.ConnectionInfo;
 import org.jboss.messaging.jms.server.JMSServerManager;
-import org.jboss.messaging.jms.server.MessageStatistics;
 import org.jboss.messaging.jms.server.SubscriptionInfo;
 import org.jboss.messaging.util.JNDIUtil;
 import org.jboss.messaging.util.Pair;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * A Deployer used to create and add to JNDI queues, topics and connection factories. Typically this would only be used
@@ -143,8 +130,8 @@
    public boolean createQueue(String queueName, String jndiBinding) throws Exception
    {
       JBossQueue jBossQueue = new JBossQueue(queueName);
-      messagingServerManagement.addDestination(jBossQueue.getAddress());
-      messagingServerManagement.createQueue(jBossQueue.getAddress(), jBossQueue.getAddress());
+      messagingServerManagement.addDestination(jBossQueue.getSimpleAddress());
+      messagingServerManagement.createQueue(jBossQueue.getSimpleAddress(), jBossQueue.getSimpleAddress());
       boolean added = bindToJndi(jndiBinding, jBossQueue);
       if (added)
       {
@@ -156,7 +143,7 @@
    public boolean createTopic(String topicName, String jndiBinding) throws Exception
    {
       JBossTopic jBossTopic = new JBossTopic(topicName);
-      messagingServerManagement.addDestination(jBossTopic.getAddress());
+      messagingServerManagement.addDestination(jBossTopic.getSimpleAddress());
       boolean added = bindToJndi(jndiBinding, jBossTopic);
       if (added)
       {
@@ -168,8 +155,8 @@
    public boolean destroyQueue(String name) throws Exception
    {
    	JBossQueue jBossQueue = new JBossQueue(name);
-      messagingServerManagement.destroyQueue(name);
-      messagingServerManagement.removeDestination(jBossQueue.getAddress());
+      messagingServerManagement.destroyQueue(new SimpleString(name));
+      messagingServerManagement.removeDestination(jBossQueue.getSimpleAddress());
       List<String> jndiBindings = destinations.get(name);
       if (jndiBindings == null || jndiBindings.size() == 0)
       {
@@ -186,7 +173,7 @@
    public boolean destroyTopic(String name) throws Exception
    {
       JBossTopic jBossTopic = new JBossTopic(name);
-      messagingServerManagement.removeDestination(jBossTopic.getAddress());
+      messagingServerManagement.removeDestination(jBossTopic.getSimpleAddress());
       List<String> jndiBindings = destinations.get(name);
       if (jndiBindings == null || jndiBindings.size() == 0)
       {
@@ -200,48 +187,48 @@
       return true;
    }
 
-   public Set<String> listAllQueues()
-   {
-      Set<String> availableAddresses = messagingServerManagement.listAvailableAddresses();
-      Set<String> availableQueues = new HashSet<String>();
-      for (String address : availableAddresses)
-      {
-         if (address.startsWith(JBossQueue.JMS_QUEUE_ADDRESS_PREFIX))
-         {
-            availableQueues.add(address.replace(JBossQueue.JMS_QUEUE_ADDRESS_PREFIX, ""));
-         }
-      }
-      return availableQueues;
-   }
+//   public Set<String> listAllQueues()
+//   {
+//      Set<String> availableAddresses = messagingServerManagement.listAvailableAddresses();
+//      Set<String> availableQueues = new HashSet<String>();
+//      for (String address : availableAddresses)
+//      {
+//         if (address.startsWith(JBossQueue.JMS_QUEUE_ADDRESS_PREFIX))
+//         {
+//            availableQueues.add(address.replace(JBossQueue.JMS_QUEUE_ADDRESS_PREFIX, ""));
+//         }
+//      }
+//      return availableQueues;
+//   }
+//
+//   public Set<String> listAllTopics()
+//   {
+//      Set<String> availableAddresses = messagingServerManagement.listAvailableAddresses();
+//      Set<String> availableTopics = new HashSet<String>();
+//      for (String address : availableAddresses)
+//      {
+//         if (address.startsWith(JBossTopic.JMS_TOPIC_ADDRESS_PREFIX))
+//         {
+//            availableTopics.add(address.replace(JBossTopic.JMS_TOPIC_ADDRESS_PREFIX, ""));
+//         }
+//      }
+//      return availableTopics;
+//   }
+//
+//   public Set<String> listTemporaryDestinations()
+//   {
+//      Set<String> availableAddresses = messagingServerManagement.listAvailableAddresses();
+//      Set<String> tempDests = new HashSet<String>();
+//      for (String address : availableAddresses)
+//      {
+//         if (address.startsWith(JBossTemporaryTopic.JMS_TOPIC_ADDRESS_PREFIX) || address.startsWith(JBossTemporaryQueue.JMS_QUEUE_ADDRESS_PREFIX))
+//         {
+//            tempDests.add(address.replace(JBossTopic.JMS_TOPIC_ADDRESS_PREFIX, ""));
+//         }
+//      }
+//      return tempDests;
+//   }
 
-   public Set<String> listAllTopics()
-   {
-      Set<String> availableAddresses = messagingServerManagement.listAvailableAddresses();
-      Set<String> availableTopics = new HashSet<String>();
-      for (String address : availableAddresses)
-      {
-         if (address.startsWith(JBossTopic.JMS_TOPIC_ADDRESS_PREFIX))
-         {
-            availableTopics.add(address.replace(JBossTopic.JMS_TOPIC_ADDRESS_PREFIX, ""));
-         }
-      }
-      return availableTopics;
-   }
-
-   public Set<String> listTemporaryDestinations()
-   {
-      Set<String> availableAddresses = messagingServerManagement.listAvailableAddresses();
-      Set<String> tempDests = new HashSet<String>();
-      for (String address : availableAddresses)
-      {
-         if (address.startsWith(JBossTemporaryTopic.JMS_TOPIC_ADDRESS_PREFIX) || address.startsWith(JBossTemporaryQueue.JMS_QUEUE_ADDRESS_PREFIX))
-         {
-            tempDests.add(address.replace(JBossTopic.JMS_TOPIC_ADDRESS_PREFIX, ""));
-         }
-      }
-      return tempDests;
-   }
-
    public boolean createConnectionFactory(String name, String clientID,
    		int dupsOKBatchSize, boolean strictTck, int consumerWindowSize, int consumerMaxRate,
    		int producerWindowSize, int producerMaxRate, String jndiBinding) throws Exception
@@ -313,35 +300,35 @@
    }
 
 
-   public List<Message> listMessagesForQueue(String queue) throws Exception
-   {
-      return listMessagesForQueue(queue, ListType.ALL);
-   }
-
-   public List<Message> listMessagesForQueue(String queue, ListType listType) throws Exception
-   {
-      return listMessages(new JBossQueue(queue).getAddress(), listType);
-   }
-
-   public List<Message> listMessagesForSubscription(String subscription) throws Exception
-   {
-      return listMessagesForSubscription(subscription, ListType.ALL);
-   }
-
-   public List<Message> listMessagesForSubscription(String subscription, ListType listType) throws Exception
-   {
-      return listMessages(subscription, listType);
-   }
-
-//   public void removeMessageFromQueue(String queueName, String messageId) throws Exception
+//   public List<Message> listMessagesForQueue(String queue) throws Exception
 //   {
-//      messagingServerManagement.removeMessageForBinding(new JBossQueue(queueName).getAddress(), new FilterImpl("JMSMessageID='" + messageId + "'"));
+//      return listMessagesForQueue(queue, ListType.ALL);
 //   }
 //
-//   public void removeMessageFromTopic(String topicName, String messageId) throws Exception
+//   public List<Message> listMessagesForQueue(String queue, ListType listType) throws Exception
 //   {
-//      messagingServerManagement.removeMessageForAddress(new JBossTopic(topicName).getAddress(), new FilterImpl("JMSMessageID='" + messageId + "'"));
+//      return listMessages(new JBossQueue(queue).getAddress(), listType);
 //   }
+//
+//   public List<Message> listMessagesForSubscription(String subscription) throws Exception
+//   {
+//      return listMessagesForSubscription(subscription, ListType.ALL);
+//   }
+//
+//   public List<Message> listMessagesForSubscription(String subscription, ListType listType) throws Exception
+//   {
+//      return listMessages(subscription, listType);
+//   }
+//
+////   public void removeMessageFromQueue(String queueName, String messageId) throws Exception
+////   {
+////      messagingServerManagement.removeMessageForBinding(new JBossQueue(queueName).getAddress(), new FilterImpl("JMSMessageID='" + messageId + "'"));
+////   }
+////
+////   public void removeMessageFromTopic(String topicName, String messageId) throws Exception
+////   {
+////      messagingServerManagement.removeMessageForAddress(new JBossTopic(topicName).getAddress(), new FilterImpl("JMSMessageID='" + messageId + "'"));
+////   }
 
    public void removeAllMessagesForQueue(String queueName) throws Exception
    {
@@ -354,25 +341,25 @@
       JBossTopic jBossTopic = new JBossTopic(topicName);
       removeAllMessages(jBossTopic);
    }
-
-//   public void moveMessage(String fromQueue, String toQueue, String messageId) throws Exception
+//
+////   public void moveMessage(String fromQueue, String toQueue, String messageId) throws Exception
+////   {
+////      messagingServerManagement.moveMessages(new JBossQueue(fromQueue).getAddress(), new JBossQueue(toQueue).getAddress(),
+////              "JMSMessageID='" + messageId + "'");
+////   }
+//
+//   public void expireMessage(String queue, String messageId) throws Exception
 //   {
-//      messagingServerManagement.moveMessages(new JBossQueue(fromQueue).getAddress(), new JBossQueue(toQueue).getAddress(),
+//      messagingServerManagement.expireMessages(new JBossQueue(queue).getAddress(),
 //              "JMSMessageID='" + messageId + "'");
 //   }
-
-   public void expireMessage(String queue, String messageId) throws Exception
-   {
-      messagingServerManagement.expireMessages(new JBossQueue(queue).getAddress(),
-              "JMSMessageID='" + messageId + "'");
-   }
-
-//   public void changeMessagePriority(String queue, String messageId, int priority) throws Exception
-//   {
-//      messagingServerManagement.changeMessagePriority(new JBossQueue(queue).getAddress(),
-//              "JMSMessageID='" + messageId + "'", priority);
-//   }
-
+//
+////   public void changeMessagePriority(String queue, String messageId, int priority) throws Exception
+////   {
+////      messagingServerManagement.changeMessagePriority(new JBossQueue(queue).getAddress(),
+////              "JMSMessageID='" + messageId + "'", priority);
+////   }
+//
    public int getMessageCountForQueue(String queue) throws Exception
    {
       return getMessageCount(new JBossQueue(queue));
@@ -382,191 +369,191 @@
    {
       return listSubscriptions(new JBossTopic(topicName));
    }
-
-   public List<SubscriptionInfo> listSubscriptions(String topic, ListType type) throws Exception
-   {
-      return listSubscriptions(new JBossTopic(topic), type);
-   }
-
-   public int getSubscriptionsCountForTopic(String topicName) throws Exception
-   {
-      return getSubscriptionsCount(new JBossTopic(topicName));
-   }
-
-   public int getSubscriptionsCountForTopic(String topicName, ListType listType) throws Exception
-   {
-      return getSubscriptionsCount(new JBossTopic(topicName), listType);
-   }
-
-   public void dropSubscription(String subscription) throws Exception
-   {
-      messagingServerManagement.destroyQueue(subscription);
-   }
-
-   public int getConsumerCountForQueue(String queue) throws Exception
-   {
-      return getConsumerCount(new JBossQueue(queue));
-   }
-
-   public List<ConnectionInfo> getConnections() throws Exception
-   {
-      return getConnectionsForUser(null);
-   }
-
-   public List<ConnectionInfo> getConnectionsForUser(String user) throws Exception
-   {
-      List<ConnectionInfo> connectionInfos = new ArrayList<ConnectionInfo>();
-      List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
-      for (ServerConnection endpoint : endpoints)
-      {
-         if (user == null || user.equals(endpoint.getUsername()))
-         {
-            connectionInfos.add(new ConnectionInfo(endpoint.getID(),
-                    endpoint.getUsername(),
-                    endpoint.getClientAddress(),
-                    endpoint.isStarted(),
-                    endpoint.getCreated()));
-         }
-      }
-      return connectionInfos;
-   }
-
-   public void dropConnection(long clientId) throws Exception
-   {
-      List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
-      for (ServerConnection endpoint : endpoints)
-      {
-         if (endpoint.getID() == clientId)
-         {
-            endpoint.close();
-            break;
-         }
-      }
-   }
-
-   public void dropConnectionsForUser(String user) throws Exception
-   {
-      List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
-      List<ConnectionInfo> connectionInfos = getConnectionsForUser(user);
-      for (ConnectionInfo connectionInfo : connectionInfos)
-      {
-         for (ServerConnection endpoint : endpoints)
-         {
-            if (endpoint.getID() == connectionInfo.getId())
-            {
-               endpoint.close();
-               break;
-            }
-         }
-      }
-   }
-
-//   public List<SessionInfo> getSessions() throws Exception
+//
+//   public List<SubscriptionInfo> listSubscriptions(String topic, ListType type) throws Exception
 //   {
-//      return getSessionsForConnection(null);
+//      return listSubscriptions(new JBossTopic(topic), type);
 //   }
 //
-//   public List<SessionInfo> getSessionsForConnection(long id) throws Exception
+//   public int getSubscriptionsCountForTopic(String topicName) throws Exception
 //   {
-//      List<SessionInfo> sessionInfos = new ArrayList<SessionInfo>();
+//      return getSubscriptionsCount(new JBossTopic(topicName));
+//   }
+//
+//   public int getSubscriptionsCountForTopic(String topicName, ListType listType) throws Exception
+//   {
+//      return getSubscriptionsCount(new JBossTopic(topicName), listType);
+//   }
+//
+//   public void dropSubscription(String subscription) throws Exception
+//   {
+//      messagingServerManagement.destroyQueue(subscription);
+//   }
+//
+//   public int getConsumerCountForQueue(String queue) throws Exception
+//   {
+//      return getConsumerCount(new JBossQueue(queue));
+//   }
+//
+//   public List<ConnectionInfo> getConnections() throws Exception
+//   {
+//      return getConnectionsForUser(null);
+//   }
+//
+//   public List<ConnectionInfo> getConnectionsForUser(String user) throws Exception
+//   {
+//      List<ConnectionInfo> connectionInfos = new ArrayList<ConnectionInfo>();
 //      List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
 //      for (ServerConnection endpoint : endpoints)
 //      {
-//         if (id == endpoint.getID())
+//         if (user == null || user.equals(endpoint.getUsername()))
 //         {
-//            Collection<ServerSession> serverSessionEndpoints = endpoint.getSessions();
-//            for (ServerSession serverSessionEndpoint : serverSessionEndpoints)
-//            {
-//               sessionInfos.add(new SessionInfo(serverSessionEndpoint.getID(),
-//                       endpoint.getID()));
-//            }
+//            connectionInfos.add(new ConnectionInfo(endpoint.getID(),
+//                    endpoint.getUsername(),
+//                    endpoint.getClientAddress(),
+//                    endpoint.isStarted(),
+//                    endpoint.getCreated()));
 //         }
 //      }
-//      return sessionInfos;
+//      return connectionInfos;
 //   }
-
-//   public List<SessionInfo> getSessionsForUser(String user) throws Exception
+//
+//   public void dropConnection(long clientId) throws Exception
 //   {
-//      List<SessionInfo> sessionInfos = new ArrayList<SessionInfo>();
 //      List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
 //      for (ServerConnection endpoint : endpoints)
 //      {
-//         if (user == null || user.equals(endpoint.getUsername()))
+//         if (endpoint.getID() == clientId)
 //         {
-//            sessionInfos.addAll(getSessionsForConnection(endpoint.getID()));
+//            endpoint.close();
+//            break;
 //         }
 //      }
-//      return sessionInfos;
 //   }
-
-   public void startGatheringStatistics() throws Exception
-   {
-      Set<String> availableAddresses = messagingServerManagement.listAvailableAddresses();
-      for (String address : availableAddresses)
-      {
-         if (address.startsWith(JBossQueue.JMS_QUEUE_ADDRESS_PREFIX))
-         {
-            messagingServerManagement.startMessageCounter(address, 0);
-         }
-      }
-   }
-
-   public void startGatheringStatisticsForQueue(String queue) throws Exception
-   {
-      JBossQueue jBossQueue = new JBossQueue(queue);
-      messagingServerManagement.startMessageCounter(jBossQueue.getAddress(), 0);
-   }
-
-   public List<MessageStatistics> stopGatheringStatistics() throws Exception
-   {
-      List<MessageStatistics> messageStatisticses = createStats(messagingServerManagement.stopAllMessageCounters());
-      messagingServerManagement.unregisterAllMessageCounters();
-      return messageStatisticses;
-   }
-
-   public MessageStatistics stopGatheringStatisticsForQueue(String queue) throws Exception
-   {
-      JBossQueue queue1 = new JBossQueue(queue);
-      MessageCounter counter = messagingServerManagement.stopMessageCounter(queue1.getAddress());
-
-      MessageStatistics stats = new MessageStatistics();
-      stats.setName(counter.getDestinationName());
-      stats.setDurable(counter.getDestinationDurable());
-      stats.setCount(counter.getMessageCount());
-      stats.setTotalMessageCount(counter.getTotalMessages());
-      stats.setCurrentMessageCount(counter.getCurrentMessageCount());
-      stats.setTimeLastUpdate(counter.getLastUpdate());
-      messagingServerManagement.unregisterMessageCounter(queue1.getAddress());
-      return stats;
-   }
-
-   public List<MessageStatistics> getStatistics() throws Exception
-   {
-      Collection<MessageCounter> counters = messagingServerManagement.getMessageCounters();
-      return createStats(counters);
-   }
-
-   private List<MessageStatistics> createStats(Collection<MessageCounter> counters)
-   {
-      List<MessageStatistics> list = new ArrayList<MessageStatistics>(counters.size());
-      for (Object counter1 : counters)
-      {
-         MessageCounter counter = (MessageCounter) counter1;
-
-         MessageStatistics stats = new MessageStatistics();
-         stats.setName(counter.getDestinationName());
-         stats.setDurable(counter.getDestinationDurable());
-         stats.setCount(counter.getMessageCount());
-         stats.setTotalMessageCount(counter.getTotalMessages());
-         stats.setCurrentMessageCount(counter.getCurrentMessageCount());
-         stats.setTimeLastUpdate(counter.getLastUpdate());
-
-         list.add(stats);
-      }
-      return list;
-   }
-   //private
-
+//
+//   public void dropConnectionsForUser(String user) throws Exception
+//   {
+//      List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
+//      List<ConnectionInfo> connectionInfos = getConnectionsForUser(user);
+//      for (ConnectionInfo connectionInfo : connectionInfos)
+//      {
+//         for (ServerConnection endpoint : endpoints)
+//         {
+//            if (endpoint.getID() == connectionInfo.getId())
+//            {
+//               endpoint.close();
+//               break;
+//            }
+//         }
+//      }
+//   }
+//
+////   public List<SessionInfo> getSessions() throws Exception
+////   {
+////      return getSessionsForConnection(null);
+////   }
+////
+////   public List<SessionInfo> getSessionsForConnection(long id) throws Exception
+////   {
+////      List<SessionInfo> sessionInfos = new ArrayList<SessionInfo>();
+////      List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
+////      for (ServerConnection endpoint : endpoints)
+////      {
+////         if (id == endpoint.getID())
+////         {
+////            Collection<ServerSession> serverSessionEndpoints = endpoint.getSessions();
+////            for (ServerSession serverSessionEndpoint : serverSessionEndpoints)
+////            {
+////               sessionInfos.add(new SessionInfo(serverSessionEndpoint.getID(),
+////                       endpoint.getID()));
+////            }
+////         }
+////      }
+////      return sessionInfos;
+////   }
+//
+////   public List<SessionInfo> getSessionsForUser(String user) throws Exception
+////   {
+////      List<SessionInfo> sessionInfos = new ArrayList<SessionInfo>();
+////      List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
+////      for (ServerConnection endpoint : endpoints)
+////      {
+////         if (user == null || user.equals(endpoint.getUsername()))
+////         {
+////            sessionInfos.addAll(getSessionsForConnection(endpoint.getID()));
+////         }
+////      }
+////      return sessionInfos;
+////   }
+//
+//   public void startGatheringStatistics() throws Exception
+//   {
+//      Set<String> availableAddresses = messagingServerManagement.listAvailableAddresses();
+//      for (String address : availableAddresses)
+//      {
+//         if (address.startsWith(JBossQueue.JMS_QUEUE_ADDRESS_PREFIX))
+//         {
+//            messagingServerManagement.startMessageCounter(address, 0);
+//         }
+//      }
+//   }
+//
+//   public void startGatheringStatisticsForQueue(String queue) throws Exception
+//   {
+//      JBossQueue jBossQueue = new JBossQueue(queue);
+//      messagingServerManagement.startMessageCounter(jBossQueue.getAddress(), 0);
+//   }
+//
+//   public List<MessageStatistics> stopGatheringStatistics() throws Exception
+//   {
+//      List<MessageStatistics> messageStatisticses = createStats(messagingServerManagement.stopAllMessageCounters());
+//      messagingServerManagement.unregisterAllMessageCounters();
+//      return messageStatisticses;
+//   }
+//
+//   public MessageStatistics stopGatheringStatisticsForQueue(String queue) throws Exception
+//   {
+//      JBossQueue queue1 = new JBossQueue(queue);
+//      MessageCounter counter = messagingServerManagement.stopMessageCounter(queue1.getAddress());
+//
+//      MessageStatistics stats = new MessageStatistics();
+//      stats.setName(counter.getDestinationName());
+//      stats.setDurable(counter.getDestinationDurable());
+//      stats.setCount(counter.getMessageCount());
+//      stats.setTotalMessageCount(counter.getTotalMessages());
+//      stats.setCurrentMessageCount(counter.getCurrentMessageCount());
+//      stats.setTimeLastUpdate(counter.getLastUpdate());
+//      messagingServerManagement.unregisterMessageCounter(queue1.getAddress());
+//      return stats;
+//   }
+//
+//   public List<MessageStatistics> getStatistics() throws Exception
+//   {
+//      Collection<MessageCounter> counters = messagingServerManagement.getMessageCounters();
+//      return createStats(counters);
+//   }
+//
+//   private List<MessageStatistics> createStats(Collection<MessageCounter> counters)
+//   {
+//      List<MessageStatistics> list = new ArrayList<MessageStatistics>(counters.size());
+//      for (Object counter1 : counters)
+//      {
+//         MessageCounter counter = (MessageCounter) counter1;
+//
+//         MessageStatistics stats = new MessageStatistics();
+//         stats.setName(counter.getDestinationName());
+//         stats.setDurable(counter.getDestinationDurable());
+//         stats.setCount(counter.getMessageCount());
+//         stats.setTotalMessageCount(counter.getTotalMessages());
+//         stats.setCurrentMessageCount(counter.getCurrentMessageCount());
+//         stats.setTimeLastUpdate(counter.getLastUpdate());
+//
+//         list.add(stats);
+//      }
+//      return list;
+//   }
+//   //private
+//
    private void addToDestinationBindings(String destination, String jndiBinding)
    {
       if (destinations.get(destination) == null)
@@ -575,50 +562,50 @@
       }
       destinations.get(destination).add(jndiBinding);
    }
-
-
-   private List<Message> listMessages(String queue, ListType listType) throws Exception
-   {
-      List<Message> messages = new ArrayList<Message>();
-      Filter filter = null;
-      switch (listType)
-      {
-         case DURABLE:
-            filter = new FilterImpl("JBMDurable='DURABLE'");
-            break;
-         case NON_DURABLE:
-            filter = new FilterImpl("JBMDurable='NON_DURABLE'");
-            break;
-      }
-      List<org.jboss.messaging.core.message.Message> messageList = messagingServerManagement.listMessages(queue, filter);
-      for (org.jboss.messaging.core.message.Message message : messageList)
-      {
-         messages.add(JBossMessage.createMessage(message, null));
-      }
-      return messages;
-   }
-
-
+//
+//
+//   private List<Message> listMessages(String queue, ListType listType) throws Exception
+//   {
+//      List<Message> messages = new ArrayList<Message>();
+//      Filter filter = null;
+//      switch (listType)
+//      {
+//         case DURABLE:
+//            filter = new FilterImpl("JBMDurable='DURABLE'");
+//            break;
+//         case NON_DURABLE:
+//            filter = new FilterImpl("JBMDurable='NON_DURABLE'");
+//            break;
+//      }
+//      List<org.jboss.messaging.core.message.Message> messageList = messagingServerManagement.listMessages(queue, filter);
+//      for (org.jboss.messaging.core.message.Message message : messageList)
+//      {
+//         messages.add(JBossMessage.createMessage(message, null));
+//      }
+//      return messages;
+//   }
+//
+//
    private void removeAllMessages(JBossQueue queue) throws Exception
    {
-      messagingServerManagement.removeAllMessagesForAddress(queue.getAddress());
+      messagingServerManagement.removeAllMessagesForAddress(queue.getSimpleAddress());
    }
 
    private void removeAllMessages(JBossTopic topic) throws Exception
    {
-      messagingServerManagement.removeAllMessagesForAddress(topic.getAddress());
+      messagingServerManagement.removeAllMessagesForAddress(topic.getSimpleAddress());
    }
 
    private int getMessageCount(JBossQueue queue) throws Exception
    {
-      return messagingServerManagement.getMessageCountForQueue(queue.getAddress());
+      return messagingServerManagement.getMessageCountForQueue(queue.getSimpleAddress());
    }
-
-   private int getMessageCount(JBossTopic topic) throws Exception
-   {
-      return 0;  //To change body of implemented methods use File | Settings | File Templates.
-   }
-
+//
+//   private int getMessageCount(JBossTopic topic) throws Exception
+//   {
+//      return 0;  //To change body of implemented methods use File | Settings | File Templates.
+//   }
+//
    private List<SubscriptionInfo> listSubscriptions(JBossTopic topic) throws Exception
    {
       return listSubscriptions(topic, ListType.ALL);
@@ -628,7 +615,7 @@
    {
       List<SubscriptionInfo> subs = new ArrayList<SubscriptionInfo>();
 
-      List<Queue> queues = messagingServerManagement.getQueuesForAddress(topic.getAddress());
+      List<Queue> queues = messagingServerManagement.getQueuesForAddress(topic.getSimpleAddress());
 
       for (Queue queue : queues)
       {
@@ -639,13 +626,13 @@
 
             if (queue.isDurable())
             {
-               Pair<String, String> pair = JBossTopic.decomposeQueueNameForDurableSubscription(queue.getName());
+               Pair<String, String> pair = JBossTopic.decomposeQueueNameForDurableSubscription(queue.getName().toString());
                clientID = pair.a;
                subName = pair.b;
             }
 
-            SubscriptionInfo info = new SubscriptionInfo(queue.getName(), queue.isDurable(), subName, clientID,
-                    queue.getFilter() == null ? null : queue.getFilter().getFilterString(), queue.getMessageCount(), queue.getMaxSize());
+            SubscriptionInfo info = new SubscriptionInfo(queue.getName().toString(), queue.isDurable(), subName, clientID,
+                    queue.getFilter() == null ? null : queue.getFilter().getFilterString().toString(), queue.getMessageCount(), queue.getMaxSize());
 
             subs.add(info);
          }
@@ -653,22 +640,22 @@
 
       return subs;
    }
+//
+//   private int getSubscriptionsCount(JBossTopic topic) throws Exception
+//   {
+//      return getSubscriptionsCount(topic, ListType.ALL);
+//   }
+//
+//   private int getSubscriptionsCount(JBossTopic topic, ListType listType) throws Exception
+//   {
+//      return listSubscriptions(topic, listType).size();
+//   }
+//
+//   private int getConsumerCount(JBossQueue queue) throws Exception
+//   {
+//      return messagingServerManagement.getConsumerCountForQueue(queue.getAddress());
+//   }
 
-   private int getSubscriptionsCount(JBossTopic topic) throws Exception
-   {
-      return getSubscriptionsCount(topic, ListType.ALL);
-   }
-
-   private int getSubscriptionsCount(JBossTopic topic, ListType listType) throws Exception
-   {
-      return listSubscriptions(topic, listType).size();
-   }
-
-   private int getConsumerCount(JBossQueue queue) throws Exception
-   {
-      return messagingServerManagement.getConsumerCountForQueue(queue.getAddress());
-   }
-
    public void setInitialContext(InitialContext initialContext)
    {
       this.initialContext = initialContext;

Modified: trunk/src/main/org/jboss/messaging/util/SimpleString.java
===================================================================
--- trunk/src/main/org/jboss/messaging/util/SimpleString.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/util/SimpleString.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -1,20 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
 package org.jboss.messaging.util;
 
+import static org.jboss.messaging.util.DataConstants.SIZE_BYTE;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
+
+import java.io.Serializable;
+
+
 /**
  * 
  * A SimpleString
  * 
- * A simple String class that can store all characters byte characters, and stores as simple byte[],
+ * A simple String class that can store all characters, and stores as simple byte[],
  * this minimises expensive copying between String objects
  * 
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  *
  */
-public class SimpleString
+public class SimpleString implements CharSequence, Serializable
 {
+   private static final long serialVersionUID = 4204223851422244307L;
+
+   // Attributes
+	// ------------------------------------------------------------------------
 	private final byte[] data;
 	
-	public SimpleString(final String string) throws Exception
+	private transient int hash;
+	
+	//Cache the string
+	private transient String str;
+	
+	// Constructors
+	// ----------------------------------------------------------------------
+		
+	public SimpleString(final String string)
 	{
 		int len = string.length();
 		
@@ -30,6 +54,8 @@
 			
 			data[j++] = (byte)(c >> 8 & 0xFF);  // high byte
 		}
+		
+		str = string;
 	}
 	
 	public SimpleString(final byte[] data)
@@ -37,24 +63,140 @@
 		this.data = data;
 	}
 	
-	public byte[] getData()
+	// CharSequence implementation
+	// ---------------------------------------------------------------------------
+	
+	public int length()
 	{
-		return data;
+		return data.length >> 1;
 	}
 	
-	public String asString() throws Exception
+	public char charAt(int pos)
 	{
+		if (pos < 0 || pos >= data.length >> 1)
+		{
+			throw new IndexOutOfBoundsException();
+		}
+		pos <<= 1;
+		
+		return (char)(data[pos] | data[pos + 1] << 8);
+	}
+	
+	public CharSequence subSequence(final int start, final int end)
+	{
 		int len = data.length >> 1;
+
+		if (end < start || start < 0 || end > len)
+		{
+			throw new IndexOutOfBoundsException();
+		}
+		else
+		{
+			int newlen = (end - start) << 1;
+			byte[] bytes = new byte[newlen];
+			
+			System.arraycopy(data, start << 1, bytes, 0, newlen);
+			
+			return new SimpleString(bytes);
+		}
+	}
+	
+	// Public
+	// ---------------------------------------------------------------------------
+	
+	public byte[] getData()
+	{
+		return data;
+	}
 		
-		char[] chars = new char[len];
+	public boolean startsWith(final SimpleString other)
+	{
+		byte[] otherdata = other.data;
 		
-		int j = 0;
+		if (otherdata.length > this.data.length)
+		{
+			return false;
+		}
 		
-		for (int i = 0; i < len; i++)
+		for (int i = 0; i < otherdata.length; i++)
 		{
-			chars[i] = (char)(data[j++] | data[j++] << 8);
+			if (this.data[i] != otherdata[i])
+			{
+				return false;
+			}
 		}
 		
-		return new String(chars);
+		return true;
 	}
+		
+	public String toString()
+	{
+		if (str == null)
+		{
+   		int len = data.length >> 1;
+   		
+   		char[] chars = new char[len];
+   		
+   		int j = 0;
+   		
+   		for (int i = 0; i < len; i++)
+   		{
+   			chars[i] = (char)(data[j++] | data[j++] << 8);
+   		}
+   		
+   		str =  new String(chars);
+		}
+		
+		return str;
+	}
+	
+	public boolean equals(Object other)
+	{		
+		if (other instanceof SimpleString)
+		{
+   		SimpleString s = (SimpleString)other;
+   		
+   		if (data.length != s.data.length)
+   		{
+   			return false;
+   		}
+   		
+   		for (int i = 0; i < data.length; i++)
+   		{
+   			if (data[i] != s.data[i])
+   			{
+   				return false;
+   			}
+   		}
+   		
+   		return true;
+		}
+		else
+		{
+			return false;
+		}
+	}
+	
+	public int hashCode()
+	{
+		if (hash == 0)
+		{
+			for (int i = 0; i < data.length; i++)
+			{
+            hash = 31 * hash + data[i];
+        }
+		}
+		
+		return hash;
+	}
+	
+	public static int sizeofNullableString(final SimpleString str)
+	{
+		return str == null ? SIZE_BYTE : SIZE_BYTE + SIZE_INT + str.data.length;
+	}
+	
+	public static int sizeofString(final SimpleString str)
+	{
+		return SIZE_INT + str.data.length;
+	}
 }
\ No newline at end of file

Modified: trunk/src/main/org/jboss/messaging/util/StreamUtils.java
===================================================================
--- trunk/src/main/org/jboss/messaging/util/StreamUtils.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/src/main/org/jboss/messaging/util/StreamUtils.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -36,6 +36,8 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.jboss.messaging.core.logging.Logger;
+
 /**
  * A StreamUtils
  *
@@ -49,6 +51,9 @@
  */
 public class StreamUtils
 {
+   public static final Logger log = Logger.getLogger(StreamUtils.class);
+
+   
    private static final int BUFFER_SIZE = 4096;
    
    public static final byte NULL = 0;
@@ -76,6 +81,8 @@
    public static final byte LIST = 11;
    
    public static final byte SERIALIZABLE = 12;
+   
+   public static final byte SIMPLE_STRING = 13;
             
    public static Object readObject(DataInputStream in, boolean longStrings)
       throws IOException, ClassNotFoundException
@@ -101,6 +108,11 @@
             value = in.readUTF();
          }
          break;      
+         case SIMPLE_STRING:
+            byte[] data = new byte[in.readInt()];
+            in.read(data);
+            value = new SimpleString(data);
+            break;
          case MAP:
          {
             value = readMap(in, false);
@@ -175,6 +187,14 @@
             out.writeUTF((String)object);
          }
       }
+      else if (object instanceof SimpleString)
+      {
+         //TODO - this will disappear in next refactoring
+         out.writeByte(SIMPLE_STRING);
+         SimpleString ss = (SimpleString)object;
+         out.writeInt(ss.getData().length);
+         out.write(ss.getData());
+      }
       else if (containerTypes && object instanceof Map)
       {
          out.writeByte(MAP);

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/CoreClientTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/CoreClientTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/CoreClientTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -15,12 +15,13 @@
 import org.jboss.messaging.core.message.impl.MessageImpl;
 import org.jboss.messaging.core.server.impl.MessagingServerImpl;
 import org.jboss.messaging.jms.client.JBossTextMessage;
+import org.jboss.messaging.util.SimpleString;
 
 public class CoreClientTest extends TestCase
 {
    // Constants -----------------------------------------------------
 
-   private final String QUEUE = "CoreClientTestQueue";
+   private final SimpleString QUEUE = new SimpleString("CoreClientTestQueue");
    // Attributes ----------------------------------------------------
 
    private ConfigurationImpl conf;

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/ClientCrashTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/ClientCrashTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/ClientCrashTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -41,6 +41,7 @@
 import org.jboss.messaging.jms.client.JBossTextMessage;
 import org.jboss.messaging.tests.unit.core.remoting.impl.ConfigurationHelper;
 import org.jboss.messaging.tests.unit.core.util.SpawnedVMSupport;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * A test that makes sure that a Messaging server cleans up the associated
@@ -56,7 +57,7 @@
 {
    // Constants -----------------------------------------------------
 
-   public static final String QUEUE = "ClientCrashTestQueue";
+   public static final SimpleString QUEUE = new SimpleString("ClientCrashTestQueue");
    public static final String MESSAGE_TEXT_FROM_SERVER = "ClientCrashTest from server";
    public static final String MESSAGE_TEXT_FROM_CLIENT = "ClientCrashTest from client";
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/ClientExitTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/ClientExitTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/ClientExitTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -37,6 +37,7 @@
 import org.jboss.messaging.core.server.impl.MessagingServerImpl;
 import org.jboss.messaging.tests.unit.core.remoting.impl.ConfigurationHelper;
 import org.jboss.messaging.tests.unit.core.util.SpawnedVMSupport;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * A test that makes sure that a Messaging client gracefully exists after the last connection is
@@ -56,7 +57,7 @@
 
    public static final String MESSAGE_TEXT = "kolowalu";
 
-   public static final String QUEUE = "ClientExitTestQueue";
+   public static final SimpleString QUEUE = new SimpleString("ClientExitTestQueue");
       
    // Static ---------------------------------------------------------------------------------------
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/PacketFilterTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/PacketFilterTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/PacketFilterTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -26,12 +26,15 @@
 import org.jboss.messaging.core.message.impl.MessageImpl;
 import org.jboss.messaging.core.server.impl.MessagingServerImpl;
 import org.jboss.messaging.jms.client.JBossTextMessage;
+import org.jboss.messaging.util.SimpleString;
 
 public class PacketFilterTest  extends TestCase
 {
    Logger log = Logger.getLogger(PacketFilterTest.class);
 
    private MessagingServerImpl server;
+   
+   private static final SimpleString QUEUE1 = new SimpleString("queue1");
 
 
    public PacketFilterTest(String name)
@@ -163,7 +166,7 @@
          
          interceptor = new DummyInterceptor();
          server.getRemotingService().addInterceptor(interceptor);
-         server.getPostOffice().addBinding("queue1", "queue1", null, false, false);
+         server.getPostOffice().addBinding(QUEUE1, QUEUE1, null, false, false);
          
          interceptor.sendException=false;
 
@@ -172,7 +175,7 @@
          conn = cf.createConnection();
          conn.start();
          ClientSession session = conn.createClientSession(false, true, true, -1, false, false);
-         ClientProducer producer = session.createProducer("queue1");
+         ClientProducer producer = session.createProducer(QUEUE1);
          String msg = "msg " + UUID.randomUUID().toString();
          
          interceptor.changeMessage = true;
@@ -180,7 +183,7 @@
          message.setPayload(msg.getBytes());
          producer.send(message);
          
-         ClientConsumer consumer = session.createConsumer("queue1", null, false, false, true);
+         ClientConsumer consumer = session.createConsumer(QUEUE1, null, false, false, true);
          Message jmsMsg = consumer.receive(100000);
          assertEquals(jmsMsg.getHeader("DummyInterceptor"), "was here");
          

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/ssl/CoreClientOverSSLTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/ssl/CoreClientOverSSLTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/ssl/CoreClientOverSSLTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -36,6 +36,7 @@
 import org.jboss.messaging.core.server.impl.MessagingServerImpl;
 import org.jboss.messaging.tests.unit.core.remoting.impl.ConfigurationHelper;
 import org.jboss.messaging.tests.unit.core.util.SpawnedVMSupport;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -48,7 +49,7 @@
    // Constants -----------------------------------------------------
 
    public static final String MESSAGE_TEXT_FROM_CLIENT = "CoreClientOverSSLTest from client";
-   public static final String QUEUE = "QueueOverSSL";
+   public static final SimpleString QUEUE = new SimpleString("QueueOverSSL");
    public static final int SSL_PORT = 5402;
 
    // Static --------------------------------------------------------

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/impl/JMSServerManagerimplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/impl/JMSServerManagerimplTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/impl/JMSServerManagerimplTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -200,38 +200,38 @@
       }
    }
 
-   public void testListAllQueues() throws Exception
-   {
-      ArrayList queuesAdded = new ArrayList();
-      for(int i = 0; i < 100; i++)
-      {
-         jmsServerManager.createQueue("aq" + i, "/aq"+ i);
-         queuesAdded.add("aq" + i);
-      }
-      Set<String> queueNames = jmsServerManager.listAllQueues();
-      for (Object o : queuesAdded)
-      {
-         assertTrue(queueNames.remove(o));
-      }
-      assertTrue(queueNames.isEmpty());
-   }
+//   public void testListAllQueues() throws Exception
+//   {
+//      ArrayList queuesAdded = new ArrayList();
+//      for(int i = 0; i < 100; i++)
+//      {
+//         jmsServerManager.createQueue("aq" + i, "/aq"+ i);
+//         queuesAdded.add("aq" + i);
+//      }
+//      Set<String> queueNames = jmsServerManager.listAllQueues();
+//      for (Object o : queuesAdded)
+//      {
+//         assertTrue(queueNames.remove(o));
+//      }
+//      assertTrue(queueNames.isEmpty());
+//   }
+//
+//   public void testListAllTopics() throws Exception
+//   {
+//      ArrayList topicsAdded = new ArrayList();
+//      for(int i = 0; i < 100; i++)
+//      {
+//         jmsServerManager.createTopic("at" + i, "/at"+ i);
+//         topicsAdded.add("at" + i);
+//      }
+//      Set<String> topicNames = jmsServerManager.listAllTopics();
+//      for (Object o : topicsAdded)
+//      {
+//         assertTrue(topicNames.remove(o));
+//      }
+//      assertTrue(topicNames.isEmpty());
+//   }
 
-   public void testListAllTopics() throws Exception
-   {
-      ArrayList topicsAdded = new ArrayList();
-      for(int i = 0; i < 100; i++)
-      {
-         jmsServerManager.createTopic("at" + i, "/at"+ i);
-         topicsAdded.add("at" + i);
-      }
-      Set<String> topicNames = jmsServerManager.listAllTopics();
-      for (Object o : topicsAdded)
-      {
-         assertTrue(topicNames.remove(o));
-      }
-      assertTrue(topicNames.isEmpty());
-   }
-
    public void testCreateAndDestroyConnectionFactory() throws Exception
    {
       jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, "newtestcf");
@@ -279,285 +279,285 @@
       }
    }
 
-   public void testGetConnections() throws Exception
-   {
-      ArrayList<String> bindings = new ArrayList<String>();
-      bindings.add("cf");
-      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
-      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
+//   public void testGetConnections() throws Exception
+//   {
+//      ArrayList<String> bindings = new ArrayList<String>();
+//      bindings.add("cf");
+//      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
+//      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
+//
+//      Connection conn = connectionFactory.createConnection("guest", "guest");
+//      List<ConnectionInfo> connectionInfos = jmsServerManager.getConnections();
+//      assertNotNull(connectionInfos);
+//      assertEquals(1, connectionInfos.size());
+//      ConnectionInfo connectionInfo = connectionInfos.get(0);
+//      assertEquals("guest", connectionInfo.getUser());
+//      assertEquals(ConnectionInfo.status.STOPPED, connectionInfo.getStatus());
+//      conn.start();
+//      // starting a connection is a remoting async operation
+//      // wait a little before querying clients infos from the server
+//      //sleepIfRemoting(250);
+//      connectionInfos = jmsServerManager.getConnections();
+//      assertNotNull(connectionInfos);
+//      assertEquals(1, connectionInfos.size());
+//      connectionInfo = connectionInfos.get(0);
+//      assertEquals(ConnectionInfo.status.STARTED, connectionInfo.getStatus());
+//      connectionInfo.getAddress();
+//      connectionInfo.getTimeCreated();
+//      connectionInfo.getAliveTime();
+//      conn.close();
+//      connectionInfos = jmsServerManager.getConnections();
+//      assertNotNull(connectionInfos);
+//      assertEquals(0, connectionInfos.size());
+//      Connection conn2 = connectionFactory.createConnection("guest", "guest");
+//      Connection conn3 = connectionFactory.createConnection("guest", "guest");
+//      connectionInfos = jmsServerManager.getConnections();
+//      assertNotNull(connectionInfos);
+//      assertEquals(2, connectionInfos.size());
+//      conn2.close();
+//      connectionInfos = jmsServerManager.getConnections();
+//      assertNotNull(connectionInfos);
+//      assertEquals(1, connectionInfos.size());
+//      conn3.close();
+//      connectionInfos = jmsServerManager.getConnections();
+//      assertNotNull(connectionInfos);
+//      assertEquals(0, connectionInfos.size());
+//   }
+//
+//   public void testGetConnectionsForUser() throws Exception
+//   {
+//      ArrayList<String> bindings = new ArrayList<String>();
+//      bindings.add("cf");
+//      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
+//      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
+//
+//      Connection conn = connectionFactory.createConnection("guest", "guest");
+//      Connection conn2 = connectionFactory.createConnection();
+//      Connection conn3 = connectionFactory.createConnection();
+//      Connection conn4 = connectionFactory.createConnection("guest", "guest");
+//      Connection conn5 = connectionFactory.createConnection("guest", "guest");
+//
+//      try
+//      {
+//         List<ConnectionInfo> connectionInfos = jmsServerManager.getConnectionsForUser("guest");
+//         assertNotNull(connectionInfos);
+//         assertEquals(connectionInfos.size(), 3);
+//         for (ConnectionInfo connectionInfo : connectionInfos)
+//         {
+//            assertEquals(connectionInfo.getUser(), "guest");
+//         }
+//      }
+//      finally
+//      {
+//         if (conn != null)
+//         {
+//            conn.close();
+//         }
+//         if (conn2 != null)
+//         {
+//            conn2.close();
+//         }
+//         if (conn3 != null)
+//         {
+//            conn3.close();
+//         }
+//         if (conn4 != null)
+//         {
+//            conn4.close();
+//         }
+//         if (conn5 != null)
+//         {
+//            conn5.close();
+//         }
+//      }
+//
+//   }
+//
+//   public void testDropConnectionForId() throws Exception
+//   {
+//      JBMUpdateableSecurityManager securityManager = (JBMUpdateableSecurityManager) messagingServer.getSecurityManager();
+//      securityManager.addUser("john", "needle");
+//      ArrayList<String> bindings = new ArrayList<String>();
+//      bindings.add("cf");
+//      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
+//      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
+//
+//      Connection conn = connectionFactory.createConnection("guest", "guest");
+//      Connection conn2 = connectionFactory.createConnection();
+//      Connection conn3 = connectionFactory.createConnection();
+//      Connection conn4 = connectionFactory.createConnection("john", "needle");
+//      Connection conn5 = connectionFactory.createConnection("guest", "guest");
+//      String id = conn4.getClientID();
+//      try
+//      {
+//
+//         List<ConnectionInfo> connectionInfos = jmsServerManager.getConnectionsForUser("john");
+//         assertEquals(connectionInfos.size(), 1);
+//         jmsServerManager.dropConnection(connectionInfos.get(0).getId());
+//         connectionInfos = jmsServerManager.getConnections();
+//         assertNotNull(connectionInfos);
+//         assertEquals(connectionInfos.size(), 4);
+//         for (ConnectionInfo connectionInfo : connectionInfos)
+//         {
+//            assertNotSame(connectionInfo.getUser(), "john");
+//         }
+//         try
+//         {
+//            conn4.createSession(false, Session.AUTO_ACKNOWLEDGE);
+//            fail("Should throw exception");
+//         }
+//         catch (JMSException e)
+//         {
+//            //pass
+//         }
+//      }
+//      finally
+//      {
+//         if (conn != null)
+//         {
+//            conn.close();
+//         }
+//         if (conn2 != null)
+//         {
+//            conn2.close();
+//         }
+//         if (conn3 != null)
+//         {
+//            conn3.close();
+//         }
+//         if (conn5 != null)
+//         {
+//            conn5.close();
+//         }
+//      }
+//
+//   }
+//
+//   public void testDropConnectionForUser() throws Exception
+//   {
+//      JBMUpdateableSecurityManager securityManager = (JBMUpdateableSecurityManager) messagingServer.getSecurityManager();
+//      securityManager.addUser("john", "needle");
+//      ArrayList<String> bindings = new ArrayList<String>();
+//      bindings.add("cf");
+//      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
+//      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
+//
+//      Connection conn = connectionFactory.createConnection("guest", "guest");
+//      Connection conn2 = connectionFactory.createConnection();
+//      Connection conn3 = connectionFactory.createConnection();
+//      Connection conn4 = connectionFactory.createConnection("john", "needle");
+//      Connection conn5 = connectionFactory.createConnection("guest", "guest");
+//      String id = conn4.getClientID();
+//      try
+//      {
+//         jmsServerManager.dropConnectionsForUser("guest");
+//         List<ConnectionInfo> connectionInfos = jmsServerManager.getConnections();
+//         assertNotNull(connectionInfos);
+//         assertEquals(connectionInfos.size(), 3);
+//         for (ConnectionInfo connectionInfo : connectionInfos)
+//         {
+//            assertNotSame(connectionInfo.getUser(), "guest");
+//         }
+//         try
+//         {
+//            conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+//            fail("Should throw exception");
+//         }
+//         catch (JMSException e)
+//         {
+//            //pass
+//         }
+//         try
+//         {
+//            conn5.createSession(false, Session.AUTO_ACKNOWLEDGE);
+//            fail("Should throw exception");
+//         }
+//         catch (JMSException e)
+//         {
+//            //pass
+//         }
+//      }
+//      finally
+//      {
+//         if (conn2 != null)
+//         {
+//            conn2.close();
+//         }
+//         if (conn3 != null)
+//         {
+//            conn3.close();
+//         }
+//         if (conn4 != null)
+//         {
+//            conn4.close();
+//         }
+//      }
+//
+//   }
+//
+//   public void testListMessagesForQueue() throws Exception
+//   {
+//      ArrayList<String> bindings = new ArrayList<String>();
+//      bindings.add("cf");
+//      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
+//      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
+//      jmsServerManager.createQueue("Queue1", "/queue1");
+//      Queue queue1 = (Queue) initialContext.lookup("/queue1");
+//      Connection conn = connectionFactory.createConnection("guest", "guest");
+//      try
+//      {
+//         Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+//         MessageProducer producer = sess.createProducer(queue1);
+//         producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+//         for (int i = 0; i < 10; i++)
+//         {
+//            TextMessage message = sess.createTextMessage();
+//            message.setIntProperty("count", i);
+//            producer.send(message);
+//         }
+//         producer.setDeliveryMode(DeliveryMode.PERSISTENT);
+//         for (int i = 10; i < 20; i++)
+//         {
+//            TextMessage message = sess.createTextMessage();
+//            message.setIntProperty("count", i);
+//            producer.send(message);
+//         }
+//         List<Message> messageList = jmsServerManager.listMessagesForQueue("Queue1");
+//         assertEquals(messageList.size(), 20);
+//         for (int i = 0; i < messageList.size(); i++)
+//         {
+//            Message message = messageList.get(i);
+//            assertEquals(message.getIntProperty("count"), i);
+//            assertTrue(message instanceof TextMessage);
+//         }
+//         messageList = jmsServerManager.listMessagesForQueue("Queue1", JMSServerManager.ListType.NON_DURABLE);
+//         assertEquals(messageList.size(), 10);
+//         for (int i = 0; i < messageList.size(); i++)
+//         {
+//            Message message = messageList.get(i);
+//            assertEquals(message.getIntProperty("count"), i);
+//            assertTrue(message instanceof TextMessage);
+//            assertTrue(message.getJMSDeliveryMode() == DeliveryMode.NON_PERSISTENT);
+//         }
+//         messageList = jmsServerManager.listMessagesForQueue("Queue1", JMSServerManager.ListType.DURABLE);
+//         assertEquals(messageList.size(), 10);
+//         for (int i = 10; i < messageList.size() + 10; i++)
+//         {
+//            Message message = messageList.get(i - 10);
+//            assertEquals(message.getIntProperty("count"), i);
+//            assertTrue(message instanceof TextMessage);
+//            assertTrue(message.getJMSDeliveryMode() == DeliveryMode.PERSISTENT);
+//         }
+//      }
+//      finally
+//      {
+//         if (conn != null)
+//         {
+//            conn.close();
+//         }
+//      }
+//   }
 
-      Connection conn = connectionFactory.createConnection("guest", "guest");
-      List<ConnectionInfo> connectionInfos = jmsServerManager.getConnections();
-      assertNotNull(connectionInfos);
-      assertEquals(1, connectionInfos.size());
-      ConnectionInfo connectionInfo = connectionInfos.get(0);
-      assertEquals("guest", connectionInfo.getUser());
-      assertEquals(ConnectionInfo.status.STOPPED, connectionInfo.getStatus());
-      conn.start();
-      // starting a connection is a remoting async operation
-      // wait a little before querying clients infos from the server
-      //sleepIfRemoting(250);
-      connectionInfos = jmsServerManager.getConnections();
-      assertNotNull(connectionInfos);
-      assertEquals(1, connectionInfos.size());
-      connectionInfo = connectionInfos.get(0);
-      assertEquals(ConnectionInfo.status.STARTED, connectionInfo.getStatus());
-      connectionInfo.getAddress();
-      connectionInfo.getTimeCreated();
-      connectionInfo.getAliveTime();
-      conn.close();
-      connectionInfos = jmsServerManager.getConnections();
-      assertNotNull(connectionInfos);
-      assertEquals(0, connectionInfos.size());
-      Connection conn2 = connectionFactory.createConnection("guest", "guest");
-      Connection conn3 = connectionFactory.createConnection("guest", "guest");
-      connectionInfos = jmsServerManager.getConnections();
-      assertNotNull(connectionInfos);
-      assertEquals(2, connectionInfos.size());
-      conn2.close();
-      connectionInfos = jmsServerManager.getConnections();
-      assertNotNull(connectionInfos);
-      assertEquals(1, connectionInfos.size());
-      conn3.close();
-      connectionInfos = jmsServerManager.getConnections();
-      assertNotNull(connectionInfos);
-      assertEquals(0, connectionInfos.size());
-   }
-
-   public void testGetConnectionsForUser() throws Exception
-   {
-      ArrayList<String> bindings = new ArrayList<String>();
-      bindings.add("cf");
-      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
-      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
-
-      Connection conn = connectionFactory.createConnection("guest", "guest");
-      Connection conn2 = connectionFactory.createConnection();
-      Connection conn3 = connectionFactory.createConnection();
-      Connection conn4 = connectionFactory.createConnection("guest", "guest");
-      Connection conn5 = connectionFactory.createConnection("guest", "guest");
-
-      try
-      {
-         List<ConnectionInfo> connectionInfos = jmsServerManager.getConnectionsForUser("guest");
-         assertNotNull(connectionInfos);
-         assertEquals(connectionInfos.size(), 3);
-         for (ConnectionInfo connectionInfo : connectionInfos)
-         {
-            assertEquals(connectionInfo.getUser(), "guest");
-         }
-      }
-      finally
-      {
-         if (conn != null)
-         {
-            conn.close();
-         }
-         if (conn2 != null)
-         {
-            conn2.close();
-         }
-         if (conn3 != null)
-         {
-            conn3.close();
-         }
-         if (conn4 != null)
-         {
-            conn4.close();
-         }
-         if (conn5 != null)
-         {
-            conn5.close();
-         }
-      }
-
-   }
-
-   public void testDropConnectionForId() throws Exception
-   {
-      JBMUpdateableSecurityManager securityManager = (JBMUpdateableSecurityManager) messagingServer.getSecurityManager();
-      securityManager.addUser("john", "needle");
-      ArrayList<String> bindings = new ArrayList<String>();
-      bindings.add("cf");
-      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
-      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
-
-      Connection conn = connectionFactory.createConnection("guest", "guest");
-      Connection conn2 = connectionFactory.createConnection();
-      Connection conn3 = connectionFactory.createConnection();
-      Connection conn4 = connectionFactory.createConnection("john", "needle");
-      Connection conn5 = connectionFactory.createConnection("guest", "guest");
-      String id = conn4.getClientID();
-      try
-      {
-
-         List<ConnectionInfo> connectionInfos = jmsServerManager.getConnectionsForUser("john");
-         assertEquals(connectionInfos.size(), 1);
-         jmsServerManager.dropConnection(connectionInfos.get(0).getId());
-         connectionInfos = jmsServerManager.getConnections();
-         assertNotNull(connectionInfos);
-         assertEquals(connectionInfos.size(), 4);
-         for (ConnectionInfo connectionInfo : connectionInfos)
-         {
-            assertNotSame(connectionInfo.getUser(), "john");
-         }
-         try
-         {
-            conn4.createSession(false, Session.AUTO_ACKNOWLEDGE);
-            fail("Should throw exception");
-         }
-         catch (JMSException e)
-         {
-            //pass
-         }
-      }
-      finally
-      {
-         if (conn != null)
-         {
-            conn.close();
-         }
-         if (conn2 != null)
-         {
-            conn2.close();
-         }
-         if (conn3 != null)
-         {
-            conn3.close();
-         }
-         if (conn5 != null)
-         {
-            conn5.close();
-         }
-      }
-
-   }
-
-   public void testDropConnectionForUser() throws Exception
-   {
-      JBMUpdateableSecurityManager securityManager = (JBMUpdateableSecurityManager) messagingServer.getSecurityManager();
-      securityManager.addUser("john", "needle");
-      ArrayList<String> bindings = new ArrayList<String>();
-      bindings.add("cf");
-      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
-      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
-
-      Connection conn = connectionFactory.createConnection("guest", "guest");
-      Connection conn2 = connectionFactory.createConnection();
-      Connection conn3 = connectionFactory.createConnection();
-      Connection conn4 = connectionFactory.createConnection("john", "needle");
-      Connection conn5 = connectionFactory.createConnection("guest", "guest");
-      String id = conn4.getClientID();
-      try
-      {
-         jmsServerManager.dropConnectionsForUser("guest");
-         List<ConnectionInfo> connectionInfos = jmsServerManager.getConnections();
-         assertNotNull(connectionInfos);
-         assertEquals(connectionInfos.size(), 3);
-         for (ConnectionInfo connectionInfo : connectionInfos)
-         {
-            assertNotSame(connectionInfo.getUser(), "guest");
-         }
-         try
-         {
-            conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-            fail("Should throw exception");
-         }
-         catch (JMSException e)
-         {
-            //pass
-         }
-         try
-         {
-            conn5.createSession(false, Session.AUTO_ACKNOWLEDGE);
-            fail("Should throw exception");
-         }
-         catch (JMSException e)
-         {
-            //pass
-         }
-      }
-      finally
-      {
-         if (conn2 != null)
-         {
-            conn2.close();
-         }
-         if (conn3 != null)
-         {
-            conn3.close();
-         }
-         if (conn4 != null)
-         {
-            conn4.close();
-         }
-      }
-
-   }
-
-   public void testListMessagesForQueue() throws Exception
-   {
-      ArrayList<String> bindings = new ArrayList<String>();
-      bindings.add("cf");
-      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
-      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
-      jmsServerManager.createQueue("Queue1", "/queue1");
-      Queue queue1 = (Queue) initialContext.lookup("/queue1");
-      Connection conn = connectionFactory.createConnection("guest", "guest");
-      try
-      {
-         Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-         MessageProducer producer = sess.createProducer(queue1);
-         producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-         for (int i = 0; i < 10; i++)
-         {
-            TextMessage message = sess.createTextMessage();
-            message.setIntProperty("count", i);
-            producer.send(message);
-         }
-         producer.setDeliveryMode(DeliveryMode.PERSISTENT);
-         for (int i = 10; i < 20; i++)
-         {
-            TextMessage message = sess.createTextMessage();
-            message.setIntProperty("count", i);
-            producer.send(message);
-         }
-         List<Message> messageList = jmsServerManager.listMessagesForQueue("Queue1");
-         assertEquals(messageList.size(), 20);
-         for (int i = 0; i < messageList.size(); i++)
-         {
-            Message message = messageList.get(i);
-            assertEquals(message.getIntProperty("count"), i);
-            assertTrue(message instanceof TextMessage);
-         }
-         messageList = jmsServerManager.listMessagesForQueue("Queue1", JMSServerManager.ListType.NON_DURABLE);
-         assertEquals(messageList.size(), 10);
-         for (int i = 0; i < messageList.size(); i++)
-         {
-            Message message = messageList.get(i);
-            assertEquals(message.getIntProperty("count"), i);
-            assertTrue(message instanceof TextMessage);
-            assertTrue(message.getJMSDeliveryMode() == DeliveryMode.NON_PERSISTENT);
-         }
-         messageList = jmsServerManager.listMessagesForQueue("Queue1", JMSServerManager.ListType.DURABLE);
-         assertEquals(messageList.size(), 10);
-         for (int i = 10; i < messageList.size() + 10; i++)
-         {
-            Message message = messageList.get(i - 10);
-            assertEquals(message.getIntProperty("count"), i);
-            assertTrue(message instanceof TextMessage);
-            assertTrue(message.getJMSDeliveryMode() == DeliveryMode.PERSISTENT);
-         }
-      }
-      finally
-      {
-         if (conn != null)
-         {
-            conn.close();
-         }
-      }
-   }
-
    //   public void testRemoveMessageFromQueue() throws Exception
 //   {
 //      Connection conn = getConnectionFactory().createConnection("guest", "guest");
@@ -677,55 +677,55 @@
 //         }
 //      }
 //   }
+//
+//   public void testListMessagesForSubscription() throws Exception
+//   {
+//      ArrayList<String> bindings = new ArrayList<String>();
+//      bindings.add("cf");
+//      jmsServerManager.createConnectionFactory("newtestcf", null, 100, true, 1000, -1, 1000, -1, bindings );
+//      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
+//      jmsServerManager.createTopic("topic1", "/topic1");
+//      Topic topic1 = (Topic) initialContext.lookup("/topic1");
+//      Connection conn = connectionFactory.createConnection("guest", "guest");
+//      try
+//      {
+//         String cid = "myclientid";
+//         String id = "mysubid";
+//         conn.setClientID(cid);
+//         Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+//         TopicSubscriber subscriber = sess.createDurableSubscriber(topic1, id);
+//         MessageProducer producer = sess.createProducer(topic1);
+//
+//         producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+//         for (int i = 0; i < 10; i++)
+//         {
+//            TextMessage message = sess.createTextMessage();
+//            message.setIntProperty("count", i);
+//            producer.send(message);
+//         }
+//         producer.setDeliveryMode(DeliveryMode.PERSISTENT);
+//         for (int i = 10; i < 20; i++)
+//         {
+//            TextMessage message = sess.createTextMessage();
+//            message.setIntProperty("count", i);
+//            producer.send(message);
+//         }
+//
+//         assertEquals(20, jmsServerManager.listMessagesForSubscription(cid + "." + id).size());
+//         assertEquals(10, jmsServerManager.listMessagesForSubscription(cid + "." + id, JMSServerManager.ListType.DURABLE).size());
+//         assertEquals(10, jmsServerManager.listMessagesForSubscription(cid + "." + id, JMSServerManager.ListType.NON_DURABLE).size());
+//         subscriber.close();
+//         sess.unsubscribe(id);
+//      }
+//      finally
+//      {
+//         if (conn != null)
+//         {
+//            conn.close();
+//         }
+//      }
+//   }
 
-   public void testListMessagesForSubscription() throws Exception
-   {
-      ArrayList<String> bindings = new ArrayList<String>();
-      bindings.add("cf");
-      jmsServerManager.createConnectionFactory("newtestcf", null, 100, true, 1000, -1, 1000, -1, bindings );
-      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
-      jmsServerManager.createTopic("topic1", "/topic1");
-      Topic topic1 = (Topic) initialContext.lookup("/topic1");
-      Connection conn = connectionFactory.createConnection("guest", "guest");
-      try
-      {
-         String cid = "myclientid";
-         String id = "mysubid";
-         conn.setClientID(cid);
-         Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-         TopicSubscriber subscriber = sess.createDurableSubscriber(topic1, id);
-         MessageProducer producer = sess.createProducer(topic1);
-
-         producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-         for (int i = 0; i < 10; i++)
-         {
-            TextMessage message = sess.createTextMessage();
-            message.setIntProperty("count", i);
-            producer.send(message);
-         }
-         producer.setDeliveryMode(DeliveryMode.PERSISTENT);
-         for (int i = 10; i < 20; i++)
-         {
-            TextMessage message = sess.createTextMessage();
-            message.setIntProperty("count", i);
-            producer.send(message);
-         }
-
-         assertEquals(20, jmsServerManager.listMessagesForSubscription(cid + "." + id).size());
-         assertEquals(10, jmsServerManager.listMessagesForSubscription(cid + "." + id, JMSServerManager.ListType.DURABLE).size());
-         assertEquals(10, jmsServerManager.listMessagesForSubscription(cid + "." + id, JMSServerManager.ListType.NON_DURABLE).size());
-         subscriber.close();
-         sess.unsubscribe(id);
-      }
-      finally
-      {
-         if (conn != null)
-         {
-            conn.close();
-         }
-      }
-   }
-
 //   public void testMoveMessage() throws Exception
 //   {
 //      Connection conn = getConnectionFactory().createConnection("guest", "guest");
@@ -766,49 +766,49 @@
 //
 //   }
 
+//
+//   public void testRemoveAllMessagesFromTopic() throws Exception
+//   {
+//      ArrayList<String> bindings = new ArrayList<String>();
+//      bindings.add("cf");
+//      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
+//      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
+//      Connection conn = connectionFactory.createConnection("guest", "guest");
+//      jmsServerManager.createTopic("topic1", "/topic1");
+//      Topic topic1 = (Topic) initialContext.lookup("/topic1");
+//      try
+//      {
+//         Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+//         MessageProducer producer = sess.createProducer(topic1);
+//         MessageConsumer consumer = sess.createConsumer(topic1);
+//         MessageConsumer consumer2 = sess.createConsumer(topic1);
+//         Message messageToDelete = null;
+//         for (int i = 0; i < 10; i++)
+//         {
+//            TextMessage message = sess.createTextMessage();
+//            producer.send(message);
+//            if (i == 5)
+//            {
+//               messageToDelete = message;
+//            }
+//         }
+//         jmsServerManager.removeAllMessagesForTopic("Topic1");
+//         List<SubscriptionInfo> subscriptionInfos = jmsServerManager.listSubscriptions("Topic1");
+//         for (SubscriptionInfo subscriptionInfo : subscriptionInfos)
+//         {
+//            assertEquals(0, jmsServerManager.listMessagesForSubscription(subscriptionInfo.getId()).size());
+//         }
+//      }
+//      finally
+//      {
+//         if (conn != null)
+//         {
+//            conn.close();
+//         }
+//      }
+//
+//   }
 
-   public void testRemoveAllMessagesFromTopic() throws Exception
-   {
-      ArrayList<String> bindings = new ArrayList<String>();
-      bindings.add("cf");
-      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
-      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
-      Connection conn = connectionFactory.createConnection("guest", "guest");
-      jmsServerManager.createTopic("topic1", "/topic1");
-      Topic topic1 = (Topic) initialContext.lookup("/topic1");
-      try
-      {
-         Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-         MessageProducer producer = sess.createProducer(topic1);
-         MessageConsumer consumer = sess.createConsumer(topic1);
-         MessageConsumer consumer2 = sess.createConsumer(topic1);
-         Message messageToDelete = null;
-         for (int i = 0; i < 10; i++)
-         {
-            TextMessage message = sess.createTextMessage();
-            producer.send(message);
-            if (i == 5)
-            {
-               messageToDelete = message;
-            }
-         }
-         jmsServerManager.removeAllMessagesForTopic("Topic1");
-         List<SubscriptionInfo> subscriptionInfos = jmsServerManager.listSubscriptions("Topic1");
-         for (SubscriptionInfo subscriptionInfo : subscriptionInfos)
-         {
-            assertEquals(0, jmsServerManager.listMessagesForSubscription(subscriptionInfo.getId()).size());
-         }
-      }
-      finally
-      {
-         if (conn != null)
-         {
-            conn.close();
-         }
-      }
-
-   }
-
 //   public void testChangeMessagePriority() throws Exception
 //   {
 //      Connection conn = getConnectionFactory().createConnection("guest", "guest");
@@ -855,127 +855,127 @@
 //
 //   }
 
-   
-   public void testExpireMessage() throws Exception
-   {
-      ArrayList<String> bindings = new ArrayList<String>();
-      bindings.add("cf");
-      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
-      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
-      Connection conn = connectionFactory.createConnection("guest", "guest");
-      jmsServerManager.createQueue("QueueWithOwnDLQAndExpiryQueue", "/queue/QueueWithOwnDLQAndExpiryQueue");
-      jmsServerManager.createQueue("PrivateExpiryQueue", "/queue/PrivateExpiryQueue");
-      
-      try
-      {
-         Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-         Queue q = (Queue) initialContext.lookup("/queue/QueueWithOwnDLQAndExpiryQueue");
-         MessageProducer producer = sess.createProducer(q);
-         Message messageToMove = null;
-         for (int i = 0; i < 10; i++)
-         {
-            TextMessage message = sess.createTextMessage();
-            producer.send(message);
-            if (i == 5)
-            {
-               messageToMove = message;
-            }
-         }
-         jmsServerManager.expireMessage("QueueWithOwnDLQAndExpiryQueue", messageToMove.getJMSMessageID());
-         MessageConsumer consumer = sess.createConsumer(q);
-         conn.start();
-         for (int i = 0; i < 9; i++)
-         {
-            Message message = consumer.receive();
-            assertNotSame(messageToMove.getJMSMessageID(), message.getJMSMessageID());
-         }
-         consumer.close();
-         Queue expQueue = (Queue) initialContext.lookup("/queue/PrivateExpiryQueue");
-         consumer = sess.createConsumer(expQueue);
-         Message message = consumer.receive();
-         assertEquals(messageToMove.getJMSMessageID(), message.getJMSMessageID());
-      }
-      finally
-      {
-         if (conn != null)
-         {
-            conn.close();
-         }
-      }
-
-   }
-
-   public void testMessageStatistics() throws Exception
-   {
-      ArrayList<String> bindings = new ArrayList<String>();
-      bindings.add("cf");
-      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
-      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
-      Connection conn = connectionFactory.createConnection("guest", "guest");
-      try
-      {
-         jmsServerManager.createQueue("CountQueue", "/queue/CountQueue");
-         Queue queue1 = (Queue) initialContext.lookup("/queue/CountQueue");
-         Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-         MessageProducer producer = sess.createProducer(queue1);
-
-         TextMessage message = sess.createTextMessage();
-         for(int i = 0; i < 100; i++)
-         {
-            producer.send(message);
-         }
-         jmsServerManager.startGatheringStatisticsForQueue("CountQueue");
-         for(int i = 0; i < 100; i++)
-         {
-            producer.send(message);
-         }
-         List<MessageStatistics> messageStatistics = jmsServerManager.getStatistics();
-         assertTrue(messageStatistics != null && messageStatistics.size() ==1);
-         assertEquals(messageStatistics.get(0).getCount(), 100);
-         assertEquals(messageStatistics.get(0).getTotalMessageCount(), 200);
-         assertEquals(messageStatistics.get(0).getCurrentMessageCount(), 200);
-         MessageConsumer consumer = sess.createConsumer(queue1);
-         conn.start();
-         for(int i = 0; i < 50; i++)
-         {
-            consumer.receive();
-         }
-         messageStatistics = jmsServerManager.getStatistics();
-         assertEquals(messageStatistics.get(0).getCount(), 100);
-         assertEquals(messageStatistics.get(0).getTotalMessageCount(), 200);
-         assertEquals(messageStatistics.get(0).getCurrentMessageCount(), 150);
-         consumer.close();
-         for(int i = 0; i < 50; i++)
-         {
-            producer.send(message);
-         }
-         messageStatistics = jmsServerManager.getStatistics();
-         assertEquals(messageStatistics.get(0).getCount(), 150);
-         assertEquals(messageStatistics.get(0).getTotalMessageCount(), 250);
-         assertEquals(messageStatistics.get(0).getCurrentMessageCount(), 200);
-
-         consumer = sess.createConsumer(queue1);
-         conn.start();
-         for(int i = 0; i < 200; i++)
-         {
-            consumer.receive();
-         }
-         messageStatistics = jmsServerManager.getStatistics();
-         assertEquals(messageStatistics.get(0).getCount(), 150);
-         assertEquals(messageStatistics.get(0).getTotalMessageCount(), 250);
-         assertEquals(messageStatistics.get(0).getCurrentMessageCount(), 0);
-         consumer.close();
-         jmsServerManager.stopGatheringStatisticsForQueue("CountQueue");
-         messageStatistics = jmsServerManager.getStatistics();
-         assertTrue(messageStatistics != null && messageStatistics.size() == 0);
-      }
-      finally
-      {
-         if (conn != null)
-         {
-            conn.close();
-         }
-      }
-
-   }
+//   
+//   public void testExpireMessage() throws Exception
+//   {
+//      ArrayList<String> bindings = new ArrayList<String>();
+//      bindings.add("cf");
+//      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
+//      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
+//      Connection conn = connectionFactory.createConnection("guest", "guest");
+//      jmsServerManager.createQueue("QueueWithOwnDLQAndExpiryQueue", "/queue/QueueWithOwnDLQAndExpiryQueue");
+//      jmsServerManager.createQueue("PrivateExpiryQueue", "/queue/PrivateExpiryQueue");
+//      
+//      try
+//      {
+//         Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+//         Queue q = (Queue) initialContext.lookup("/queue/QueueWithOwnDLQAndExpiryQueue");
+//         MessageProducer producer = sess.createProducer(q);
+//         Message messageToMove = null;
+//         for (int i = 0; i < 10; i++)
+//         {
+//            TextMessage message = sess.createTextMessage();
+//            producer.send(message);
+//            if (i == 5)
+//            {
+//               messageToMove = message;
+//            }
+//         }
+//         jmsServerManager.expireMessage("QueueWithOwnDLQAndExpiryQueue", messageToMove.getJMSMessageID());
+//         MessageConsumer consumer = sess.createConsumer(q);
+//         conn.start();
+//         for (int i = 0; i < 9; i++)
+//         {
+//            Message message = consumer.receive();
+//            assertNotSame(messageToMove.getJMSMessageID(), message.getJMSMessageID());
+//         }
+//         consumer.close();
+//         Queue expQueue = (Queue) initialContext.lookup("/queue/PrivateExpiryQueue");
+//         consumer = sess.createConsumer(expQueue);
+//         Message message = consumer.receive();
+//         assertEquals(messageToMove.getJMSMessageID(), message.getJMSMessageID());
+//      }
+//      finally
+//      {
+//         if (conn != null)
+//         {
+//            conn.close();
+//         }
+//      }
+//
+//   }
+//
+//   public void testMessageStatistics() throws Exception
+//   {
+//      ArrayList<String> bindings = new ArrayList<String>();
+//      bindings.add("cf");
+//      jmsServerManager.createConnectionFactory("newtestcf", "anid", 100, true, 1000, -1, 1000, -1, bindings );
+//      JBossConnectionFactory connectionFactory = (JBossConnectionFactory) initialContext.lookup("cf");
+//      Connection conn = connectionFactory.createConnection("guest", "guest");
+//      try
+//      {
+//         jmsServerManager.createQueue("CountQueue", "/queue/CountQueue");
+//         Queue queue1 = (Queue) initialContext.lookup("/queue/CountQueue");
+//         Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+//         MessageProducer producer = sess.createProducer(queue1);
+//
+//         TextMessage message = sess.createTextMessage();
+//         for(int i = 0; i < 100; i++)
+//         {
+//            producer.send(message);
+//         }
+//         jmsServerManager.startGatheringStatisticsForQueue("CountQueue");
+//         for(int i = 0; i < 100; i++)
+//         {
+//            producer.send(message);
+//         }
+//         List<MessageStatistics> messageStatistics = jmsServerManager.getStatistics();
+//         assertTrue(messageStatistics != null && messageStatistics.size() ==1);
+//         assertEquals(messageStatistics.get(0).getCount(), 100);
+//         assertEquals(messageStatistics.get(0).getTotalMessageCount(), 200);
+//         assertEquals(messageStatistics.get(0).getCurrentMessageCount(), 200);
+//         MessageConsumer consumer = sess.createConsumer(queue1);
+//         conn.start();
+//         for(int i = 0; i < 50; i++)
+//         {
+//            consumer.receive();
+//         }
+//         messageStatistics = jmsServerManager.getStatistics();
+//         assertEquals(messageStatistics.get(0).getCount(), 100);
+//         assertEquals(messageStatistics.get(0).getTotalMessageCount(), 200);
+//         assertEquals(messageStatistics.get(0).getCurrentMessageCount(), 150);
+//         consumer.close();
+//         for(int i = 0; i < 50; i++)
+//         {
+//            producer.send(message);
+//         }
+//         messageStatistics = jmsServerManager.getStatistics();
+//         assertEquals(messageStatistics.get(0).getCount(), 150);
+//         assertEquals(messageStatistics.get(0).getTotalMessageCount(), 250);
+//         assertEquals(messageStatistics.get(0).getCurrentMessageCount(), 200);
+//
+//         consumer = sess.createConsumer(queue1);
+//         conn.start();
+//         for(int i = 0; i < 200; i++)
+//         {
+//            consumer.receive();
+//         }
+//         messageStatistics = jmsServerManager.getStatistics();
+//         assertEquals(messageStatistics.get(0).getCount(), 150);
+//         assertEquals(messageStatistics.get(0).getTotalMessageCount(), 250);
+//         assertEquals(messageStatistics.get(0).getCurrentMessageCount(), 0);
+//         consumer.close();
+//         jmsServerManager.stopGatheringStatisticsForQueue("CountQueue");
+//         messageStatistics = jmsServerManager.getStatistics();
+//         assertTrue(messageStatistics != null && messageStatistics.size() == 0);
+//      }
+//      finally
+//      {
+//         if (conn != null)
+//         {
+//            conn.close();
+//         }
+//      }
+//
+//   }
 }

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/QueueSettingsDeployerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/QueueSettingsDeployerTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/QueueSettingsDeployerTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -31,6 +31,7 @@
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.settings.HierarchicalRepository;
 import org.jboss.messaging.core.settings.impl.QueueSettings;
+import org.jboss.messaging.util.SimpleString;
 import org.jboss.messaging.util.XMLUtil;
 
 /**
@@ -40,7 +41,7 @@
 {
    private String conf = "<queue-settings match=\"queues.*\">\n" +
            "      <clustered>false</clustered>\n" +
-           "      <dlq>DLQtest</dlq>\n" +
+           "      <dlq>DLQTest</dlq>\n" +
            "      <expiry-queue>ExpiryQueueTest</expiry-queue>\n" +
            "      <redelivery-delay>100</redelivery-delay>\n" +
            "      <max-size>-100</max-size>\n" +
@@ -72,12 +73,14 @@
       queueSettings.setMessageCounterHistoryDayLimit(1000);
       Queue mockDLQ = EasyMock.createMock(Queue.class);
       queueSettings.setDLQ(mockDLQ);
-      EasyMock.expect(postOffice.getBinding("DLQtest")).andReturn(new BindingImpl("DLQtest", mockDLQ));
-      EasyMock.expect(postOffice.getBinding("DLQtest")).andReturn(new BindingImpl("DLQtest", mockDLQ));
+      SimpleString dlqTest = new SimpleString("DLQTest");
+      EasyMock.expect(postOffice.getBinding(dlqTest)).andReturn(new BindingImpl(dlqTest, mockDLQ));
+      EasyMock.expect(postOffice.getBinding(dlqTest)).andReturn(new BindingImpl(dlqTest, mockDLQ));
       Queue mockQ = EasyMock.createMock(Queue.class);
       queueSettings.setExpiryQueue(mockQ);
-      EasyMock.expect(postOffice.getBinding("ExpiryQueueTest")).andReturn(new BindingImpl("ExpiryQueueTest", mockQ));
-      EasyMock.expect(postOffice.getBinding("ExpiryQueueTest")).andReturn(new BindingImpl("ExpiryQueueTest", mockQ));
+      SimpleString expiryQueueTest = new SimpleString("ExpiryQueueTest");
+      EasyMock.expect(postOffice.getBinding(expiryQueueTest)).andReturn(new BindingImpl(expiryQueueTest, mockQ));
+      EasyMock.expect(postOffice.getBinding(expiryQueueTest)).andReturn(new BindingImpl(expiryQueueTest, mockQ));
 
       EasyMock.replay(postOffice);
 

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/filter/impl/FilterTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/filter/impl/FilterTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/filter/impl/FilterTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -21,18 +21,18 @@
   */
 package org.jboss.messaging.tests.unit.core.filter.impl;
 
+import junit.framework.TestCase;
+
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.filter.Filter;
 import org.jboss.messaging.core.filter.impl.FilterImpl;
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.message.impl.MessageImpl;
-import junit.framework.TestCase;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * Tests the compliance with the JBoss Messaging Filter syntax.
  *
- * <p>Needs a lot of work...
- *
  * @author <a href="mailto:jason at planet57.com">Jason Dillon</a>
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * @version $Revision: 3514 $
@@ -54,7 +54,7 @@
       
       message = new MessageImpl();
    }
-   
+     
    public void testInvalidString() throws Exception
    {
       testInvalidFilter("invalid");
@@ -68,9 +68,8 @@
    
    public void testJBMDurable() throws Exception
    {
-      filter = new FilterImpl("JBMDurable='DURABLE'");
+      filter = new FilterImpl(new SimpleString("JBMDurable='DURABLE'"));
       
-      Message message = new MessageImpl();
       message.setDurable(true);
       
       assertTrue(filter.match(message));
@@ -79,7 +78,7 @@
       
       assertFalse(filter.match(message));
       
-      filter = new FilterImpl("JBMDurable='NON_DURABLE'");
+      filter = new FilterImpl(new SimpleString("JBMDurable='NON_DURABLE'"));
       
       message = new MessageImpl();
       message.setDurable(true);
@@ -94,10 +93,8 @@
 
    public void testJBMPriority() throws Exception
    {
-      filter = new FilterImpl("JBMPriority=3");
+      filter = new FilterImpl(new SimpleString("JBMPriority=3"));
       
-      Message message = new MessageImpl();
-      
       for (int i = 0; i < 10; i++)
       {         
          message.setPriority((byte)i);
@@ -115,10 +112,8 @@
    
    public void testJBMMessageID() throws Exception
    {
-      filter = new FilterImpl("JBMMessageID=11223344");
+      filter = new FilterImpl(new SimpleString("JBMMessageID=11223344"));
       
-      Message message = new MessageImpl();
-      
       message.setMessageID(78676);
       
       assertFalse(filter.match(message));
@@ -130,10 +125,8 @@
    
    public void testJBMTimestamp() throws Exception
    {
-      filter = new FilterImpl("JBMTimestamp=12345678");
+      filter = new FilterImpl(new SimpleString("JBMTimestamp=12345678"));
       
-      Message message = new MessageImpl();
-      
       message.setTimestamp(87654321);
       
       assertFalse(filter.match(message));
@@ -145,14 +138,14 @@
          
    public void testBooleanTrue() throws Exception
    {
-      filter = new FilterImpl("MyBoolean=true");
+      filter = new FilterImpl(new SimpleString("MyBoolean=true"));
       
       testBoolean("MyBoolean", true);
    }
    
    public void testBooleanFalse() throws Exception
    {
-      filter = new FilterImpl("MyBoolean=false");
+      filter = new FilterImpl(new SimpleString("MyBoolean=false"));
       testBoolean("MyBoolean", false);
    }
    
@@ -168,33 +161,33 @@
    public void testStringEquals() throws Exception
    {
       // First, simple test of string equality and inequality
-      filter = new FilterImpl("MyString='astring'");
+      filter = new FilterImpl(new SimpleString("MyString='astring'"));
       
-      message.putHeader("MyString", "astring");
+      doPutStringProperty("MyString", "astring");
       assertTrue(filter.match(message));
       
-      message.putHeader("MyString", "NOTastring");
+      doPutStringProperty("MyString", "NOTastring");
       assertTrue(!filter.match(message));
       
       // test empty string
-      filter = new FilterImpl("MyString=''");
+      filter = new FilterImpl(new SimpleString("MyString=''"));
       
-      message.putHeader("MyString", "");
+      doPutStringProperty("MyString", "");
       assertTrue("test 1", filter.match(message));
       
-      message.putHeader("MyString", "NOTastring");
+      doPutStringProperty("MyString", "NOTastring");
       assertTrue("test 2", !filter.match(message));
       
       // test literal apostrophes (which are escaped using two apostrophes
       // in selectors)
-      filter = new FilterImpl("MyString='test JBoss''s filter'");
+      filter = new FilterImpl(new SimpleString("MyString='test JBoss''s filter'"));
       
       // note: apostrophes are not escaped in string properties
-      message.putHeader("MyString", "test JBoss's filter");
+      doPutStringProperty("MyString", "test JBoss's filter");
       // this test fails -- bug 530120
       //assertTrue("test 3", filter.match(message));
       
-      message.putHeader("MyString", "NOTastring");
+      doPutStringProperty("MyString", "NOTastring");
       assertTrue("test 4", !filter.match(message));
       
    }
@@ -202,47 +195,47 @@
    public void testStringLike() throws Exception
    {
       // test LIKE operator with no wildcards
-      filter = new FilterImpl("MyString LIKE 'astring'");
+      filter = new FilterImpl(new SimpleString("MyString LIKE 'astring'"));
       
       // test where LIKE operand matches
-      message.putHeader("MyString", "astring");
+      doPutStringProperty("MyString", "astring");
       assertTrue(filter.match(message));
       
       // test one character string
-      filter = new FilterImpl("MyString LIKE 'a'");
-      message.putHeader("MyString","a");
+      filter = new FilterImpl(new SimpleString("MyString LIKE 'a'"));
+      doPutStringProperty("MyString","a");
       assertTrue(filter.match(message));
       
       // test empty string
-      filter = new FilterImpl("MyString LIKE ''");
-      message.putHeader("MyString", "");
+      filter = new FilterImpl(new SimpleString("MyString LIKE ''"));
+      doPutStringProperty("MyString", "");
       assertTrue(filter.match(message));
       
       // tests where operand does not match
-      filter = new FilterImpl("MyString LIKE 'astring'");
+      filter = new FilterImpl(new SimpleString("MyString LIKE 'astring'"));
       
       // test with extra characters at beginning
-      message.putHeader("MyString", "NOTastring");
+      doPutStringProperty("MyString", "NOTastring");
       assertTrue(!filter.match(message));
       
       // test with extra characters at end
-      message.putHeader("MyString", "astringNOT");
+      doPutStringProperty("MyString", "astringNOT");
       assertTrue(!filter.match(message));
       
       // test with extra characters in the middle
-      message.putHeader("MyString", "astNOTring");
+      doPutStringProperty("MyString", "astNOTring");
       assertTrue(!filter.match(message));
       
       // test where operand is entirely different
-      message.putHeader("MyString", "totally different");
+      doPutStringProperty("MyString", "totally different");
       assertTrue(!filter.match(message));
       
       // test case sensitivity
-      message.putHeader("MyString", "ASTRING");
+      doPutStringProperty("MyString", "ASTRING");
       assertTrue(!filter.match(message));
       
       // test empty string
-      message.putHeader("MyString", "");
+      doPutStringProperty("MyString", "");
       assertTrue(!filter.match(message));
       
       
@@ -255,126 +248,126 @@
       // matches any single character
       
       // first, some tests with the wildcard by itself
-      filter = new FilterImpl("MyString LIKE '_'");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '_'"));
       
       // test match against single character
-      message.putHeader("MyString", "a");
+      doPutStringProperty("MyString", "a");
       assertTrue(filter.match(message));
       
       // test match failure against multiple characters
-      message.putHeader("MyString", "aaaaa");
+      doPutStringProperty("MyString", "aaaaa");
       assertTrue(!filter.match(message));
       
       // test match failure against the empty string
-      message.putHeader("MyString", "");
+      doPutStringProperty("MyString", "");
       assertTrue(!filter.match(message));
       
       
       // next, tests with wildcard at the beginning of the string
-      filter = new FilterImpl("MyString LIKE '_bcdf'");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '_bcdf'"));
       
       // test match at beginning of string
-      message.putHeader("MyString", "abcdf");
+      doPutStringProperty("MyString", "abcdf");
       assertTrue(filter.match(message));
       
       // match failure in first character after wildcard
-      message.putHeader("MyString", "aXcdf");
+      doPutStringProperty("MyString", "aXcdf");
       assertTrue(!filter.match(message));
       
       // match failure in middle character
-      message.putHeader("MyString", "abXdf");
+      doPutStringProperty("MyString", "abXdf");
       assertTrue(!filter.match(message));
       
       // match failure in last character
-      message.putHeader("MyString", "abcdX");
+      doPutStringProperty("MyString", "abcdX");
       assertTrue(!filter.match(message));
       
       // match failure with empty string
-      message.putHeader("MyString", "");
+      doPutStringProperty("MyString", "");
       assertTrue(!filter.match(message));
       
       // match failure due to extra characters at beginning
-      message.putHeader("MyString", "XXXabcdf");
+      doPutStringProperty("MyString", "XXXabcdf");
       assertTrue(!filter.match(message));
       
       // match failure due to extra characters at the end
-      message.putHeader("MyString", "abcdfXXX");
+      doPutStringProperty("MyString", "abcdfXXX");
       assertTrue(!filter.match(message));
       
       // test that the _ wildcard does not match the 'empty' character
-      message.putHeader("MyString", "bcdf");
+      doPutStringProperty("MyString", "bcdf");
       assertTrue(!filter.match(message));
       
       // next, tests with wildcard at the end of the string
-      filter = new FilterImpl("MyString LIKE 'abcd_'");
+      filter = new FilterImpl(new SimpleString("MyString LIKE 'abcd_'"));
       
       // test match at end of string
-      message.putHeader("MyString", "abcdf");
+      doPutStringProperty("MyString", "abcdf");
       assertTrue(filter.match(message));
       
       // match failure in first character before wildcard
-      message.putHeader("MyString", "abcXf");
+      doPutStringProperty("MyString", "abcXf");
       assertTrue(!filter.match(message));
       
       // match failure in middle character
-      message.putHeader("MyString", "abXdf");
+      doPutStringProperty("MyString", "abXdf");
       assertTrue(!filter.match(message));
       
       // match failure in first character
-      message.putHeader("MyString", "Xbcdf");
+      doPutStringProperty("MyString", "Xbcdf");
       assertTrue(!filter.match(message));
       
       // match failure with empty string
-      message.putHeader("MyString", "");
+      doPutStringProperty("MyString", "");
       assertTrue(!filter.match(message));
       
       // match failure due to extra characters at beginning
-      message.putHeader("MyString", "XXXabcdf");
+      doPutStringProperty("MyString", "XXXabcdf");
       assertTrue(!filter.match(message));
       
       // match failure due to extra characters at the end
-      message.putHeader("MyString", "abcdfXXX");
+      doPutStringProperty("MyString", "abcdfXXX");
       assertTrue(!filter.match(message));
       
       // test that the _ wildcard does not match the 'empty' character
-      message.putHeader("MyString", "abcd");
+      doPutStringProperty("MyString", "abcd");
       assertTrue(!filter.match(message));
       
       // test match in middle of string
       
       // next, tests with wildcard in the middle of the string
-      filter = new FilterImpl("MyString LIKE 'ab_df'");
+      filter = new FilterImpl(new SimpleString("MyString LIKE 'ab_df'"));
       
       // test match in the middle of string
-      message.putHeader("MyString", "abcdf");
+      doPutStringProperty("MyString", "abcdf");
       assertTrue(filter.match(message));
       
       // match failure in first character before wildcard
-      message.putHeader("MyString", "aXcdf");
+      doPutStringProperty("MyString", "aXcdf");
       assertTrue(!filter.match(message));
       
       // match failure in first character after wildcard
-      message.putHeader("MyString", "abcXf");
+      doPutStringProperty("MyString", "abcXf");
       assertTrue(!filter.match(message));
       
       // match failure in last character
-      message.putHeader("MyString", "abcdX");
+      doPutStringProperty("MyString", "abcdX");
       assertTrue(!filter.match(message));
       
       // match failure with empty string
-      message.putHeader("MyString", "");
+      doPutStringProperty("MyString", "");
       assertTrue(!filter.match(message));
       
       // match failure due to extra characters at beginning
-      message.putHeader("MyString", "XXXabcdf");
+      doPutStringProperty("MyString", "XXXabcdf");
       assertTrue(!filter.match(message));
       
       // match failure due to extra characters at the end
-      message.putHeader("MyString", "abcdfXXX");
+      doPutStringProperty("MyString", "abcdfXXX");
       assertTrue(!filter.match(message));
       
       // test that the _ wildcard does not match the 'empty' character
-      message.putHeader("MyString", "abdf");
+      doPutStringProperty("MyString", "abdf");
       assertTrue(!filter.match(message));
       
       // test match failures
@@ -388,127 +381,127 @@
       
       
       // first, some tests with the wildcard by itself
-      filter = new FilterImpl("MyString LIKE '%'");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '%'"));
       
       // test match against single character
-      message.putHeader("MyString", "a");
+      doPutStringProperty("MyString", "a");
       assertTrue(filter.match(message));
       
       // test match against multiple characters
-      message.putHeader("MyString", "aaaaa");
+      doPutStringProperty("MyString", "aaaaa");
       assertTrue(filter.match(message));
       
-      message.putHeader("MyString", "abcdf");
+      doPutStringProperty("MyString", "abcdf");
       assertTrue(filter.match(message));
       
       // test match against the empty string
-      message.putHeader("MyString", "");
+      doPutStringProperty("MyString", "");
       assertTrue(filter.match(message));
       
       
       // next, tests with wildcard at the beginning of the string
-      filter = new FilterImpl("MyString LIKE '%bcdf'");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '%bcdf'"));
       
       // test match with single character at beginning of string
-      message.putHeader("MyString", "Xbcdf");
+      doPutStringProperty("MyString", "Xbcdf");
       assertTrue(filter.match(message));
       
       // match with multiple characters at beginning
-      message.putHeader("MyString", "XXbcdf");
+      doPutStringProperty("MyString", "XXbcdf");
       assertTrue(filter.match(message));
       
       // match failure in middle character
-      message.putHeader("MyString", "abXdf");
+      doPutStringProperty("MyString", "abXdf");
       assertTrue(!filter.match(message));
       
       // match failure in last character
-      message.putHeader("MyString", "abcdX");
+      doPutStringProperty("MyString", "abcdX");
       assertTrue(!filter.match(message));
       
       // match failure with empty string
-      message.putHeader("MyString", "");
+      doPutStringProperty("MyString", "");
       assertTrue(!filter.match(message));
       
       // match failure due to extra characters at the end
-      message.putHeader("MyString", "abcdfXXX");
+      doPutStringProperty("MyString", "abcdfXXX");
       assertTrue(!filter.match(message));
       
       // test that the % wildcard matches the empty string
-      message.putHeader("MyString", "bcdf");
+      doPutStringProperty("MyString", "bcdf");
       assertTrue(filter.match(message));
       
       // next, tests with wildcard at the end of the string
-      filter = new FilterImpl("MyString LIKE 'abcd%'");
+      filter = new FilterImpl(new SimpleString("MyString LIKE 'abcd%'"));
       
       // test match of single character at end of string
-      message.putHeader("MyString", "abcdf");
+      doPutStringProperty("MyString", "abcdf");
       assertTrue(filter.match(message));
       
       // test match of multiple characters at end of string
-      message.putHeader("MyString", "abcdfgh");
+      doPutStringProperty("MyString", "abcdfgh");
       assertTrue(filter.match(message));
       
       // match failure in first character before wildcard
-      message.putHeader("MyString", "abcXf");
+      doPutStringProperty("MyString", "abcXf");
       assertTrue(!filter.match(message));
       
       // match failure in middle character
-      message.putHeader("MyString", "abXdf");
+      doPutStringProperty("MyString", "abXdf");
       assertTrue(!filter.match(message));
       
       // match failure in first character
-      message.putHeader("MyString", "Xbcdf");
+      doPutStringProperty("MyString", "Xbcdf");
       assertTrue(!filter.match(message));
       
       // match failure with empty string
-      message.putHeader("MyString", "");
+      doPutStringProperty("MyString", "");
       assertTrue(!filter.match(message));
       
       // match failure due to extra characters at beginning
-      message.putHeader("MyString", "XXXabcdf");
+      doPutStringProperty("MyString", "XXXabcdf");
       assertTrue(!filter.match(message));
       
       // test that the % wildcard matches the empty string
-      message.putHeader("MyString", "abcd");
+      doPutStringProperty("MyString", "abcd");
       assertTrue(filter.match(message));
       
       // next, tests with wildcard in the middle of the string
-      filter = new FilterImpl("MyString LIKE 'ab%df'");
+      filter = new FilterImpl(new SimpleString("MyString LIKE 'ab%df'"));
       
       // test match with single character in the middle of string
-      message.putHeader("MyString", "abXdf");
+      doPutStringProperty("MyString", "abXdf");
       assertTrue(filter.match(message));
       
       // test match with multiple characters in the middle of string
-      message.putHeader("MyString", "abXXXdf");
+      doPutStringProperty("MyString", "abXXXdf");
       assertTrue(filter.match(message));
       
       // match failure in first character before wildcard
-      message.putHeader("MyString", "aXcdf");
+      doPutStringProperty("MyString", "aXcdf");
       assertTrue(!filter.match(message));
       
       // match failure in first character after wildcard
-      message.putHeader("MyString", "abcXf");
+      doPutStringProperty("MyString", "abcXf");
       assertTrue(!filter.match(message));
       
       // match failure in last character
-      message.putHeader("MyString", "abcdX");
+      doPutStringProperty("MyString", "abcdX");
       assertTrue(!filter.match(message));
       
       // match failure with empty string
-      message.putHeader("MyString", "");
+      doPutStringProperty("MyString", "");
       assertTrue(!filter.match(message));
       
       // match failure due to extra characters at beginning
-      message.putHeader("MyString", "XXXabcdf");
+      doPutStringProperty("MyString", "XXXabcdf");
       assertTrue(!filter.match(message));
       
       // match failure due to extra characters at the end
-      message.putHeader("MyString", "abcdfXXX");
+      doPutStringProperty("MyString", "abcdfXXX");
       assertTrue(!filter.match(message));
       
       // test that the % wildcard matches the empty string
-      message.putHeader("MyString", "abdf");
+      doPutStringProperty("MyString", "abdf");
       assertTrue(filter.match(message));
       
    }
@@ -525,84 +518,97 @@
       // wildcards of the current underlying RE engine,
       // GNU regexp.
       
-      filter = new FilterImpl("MyString LIKE 'a^$b'");
-      message.putHeader("MyString", "a^$b");
+      filter = new FilterImpl(new SimpleString("MyString LIKE 'a^$b'"));
+      doPutStringProperty("MyString", "a^$b");
       assertTrue(filter.match(message));
       
       // this one has a double backslash since backslash
       // is interpreted specially by Java
-      filter = new FilterImpl("MyString LIKE 'a\\dc'");
-      message.putHeader("MyString", "a\\dc");
+      filter = new FilterImpl(new SimpleString("MyString LIKE 'a\\dc'"));
+      doPutStringProperty("MyString", "a\\dc");
       assertTrue(filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE 'a.c'");
-      message.putHeader("MyString", "abc");
+      filter = new FilterImpl(new SimpleString("MyString LIKE 'a.c'"));
+      doPutStringProperty("MyString", "abc");
       assertTrue(!filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE '[abc]'");
-      message.putHeader("MyString", "[abc]");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '[abc]'"));
+      doPutStringProperty("MyString", "[abc]");
       assertTrue(filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE '[^abc]'");
-      message.putHeader("MyString", "[^abc]");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '[^abc]'"));
+      doPutStringProperty("MyString", "[^abc]");
       assertTrue(filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE '[a-c]'");
-      message.putHeader("MyString", "[a-c]");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '[a-c]'"));
+      doPutStringProperty("MyString", "[a-c]");
       assertTrue(filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE '[:alpha]'");
-      message.putHeader("MyString", "[:alpha]");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '[:alpha]'"));
+      doPutStringProperty("MyString", "[:alpha]");
       assertTrue(filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE '(abc)'");
-      message.putHeader("MyString", "(abc)");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '(abc)'"));
+      doPutStringProperty("MyString", "(abc)");
       assertTrue(filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE 'a|bc'");
-      message.putHeader("MyString", "a|bc");
+      filter = new FilterImpl(new SimpleString("MyString LIKE 'a|bc'"));
+      doPutStringProperty("MyString", "a|bc");
       assertTrue(filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE '(abc)?'");
-      message.putHeader("MyString", "(abc)?");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '(abc)?'"));
+      doPutStringProperty("MyString", "(abc)?");
       assertTrue(filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE '(abc)*'");
-      message.putHeader("MyString", "(abc)*");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '(abc)*'"));
+      doPutStringProperty("MyString", "(abc)*");
       assertTrue(filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE '(abc)+'");
-      message.putHeader("MyString", "(abc)+");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '(abc)+'"));
+      doPutStringProperty("MyString", "(abc)+");
       assertTrue(filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE '(abc){3}'");
-      message.putHeader("MyString", "(abc){3}");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '(abc){3}'"));
+      doPutStringProperty("MyString", "(abc){3}");
       assertTrue(filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE '(abc){3,5}'");
-      message.putHeader("MyString", "(abc){3,5}");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '(abc){3,5}'"));
+      doPutStringProperty("MyString", "(abc){3,5}");
       assertTrue(filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE '(abc){3,}'");
-      message.putHeader("MyString", "(abc){3,}");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '(abc){3,}'"));
+      doPutStringProperty("MyString", "(abc){3,}");
       assertTrue(filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE '(?=abc)'");
-      message.putHeader("MyString", "(?=abc)");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '(?=abc)'"));
+      doPutStringProperty("MyString", "(?=abc)");
       assertTrue(filter.match(message));
       
-      filter = new FilterImpl("MyString LIKE '(?!abc)'");
-      message.putHeader("MyString", "(?!abc)");
+      filter = new FilterImpl(new SimpleString("MyString LIKE '(?!abc)'"));
+      doPutStringProperty("MyString", "(?!abc)");
       assertTrue(filter.match(message));
    }
    
    // Private -----------------------------------------------------------------------------------
    
+   private void doPutStringProperty(String key, String value)
+   {
+   	message.putHeader(key, value);
+   }
+   
+   
    private void testInvalidFilter(String filterString) throws Exception
    {
       try
       {
-         filter = new FilterImpl(filterString);
+      	if (filterString != null)
+      	{
+      		filter = new FilterImpl(new SimpleString(filterString));
+      	}
+      	else
+      	{
+      		filter = new FilterImpl(null);
+      	}
          
          fail("Should throw exception");
       }

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/message/impl/MessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/message/impl/MessageTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/message/impl/MessageTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -32,6 +32,7 @@
 import org.jboss.messaging.core.server.QueueFactory;
 import org.jboss.messaging.tests.unit.core.server.impl.fakes.FakeQueueFactory;
 import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.SimpleString;
 import org.jboss.messaging.util.StreamUtils;
 
 /**
@@ -284,8 +285,12 @@
    {
       Message message = new MessageImpl();
       
-      Queue queue1 = queueFactory.createQueue(1, "queue1", null, false, true);
-      Queue queue2 = queueFactory.createQueue(2, "queue2", null, false, true);
+      SimpleString squeue1 = new SimpleString("queue1");
+      SimpleString squeue2 = new SimpleString("queue2");
+      SimpleString squeue3 = new SimpleString("queue3");
+      
+      Queue queue1 = queueFactory.createQueue(1, squeue1, null, false, true);
+      Queue queue2 = queueFactory.createQueue(2, squeue2, null, false, true);
    
       MessageReference ref1 = message.createReference(queue1);
       MessageReference ref2 = message.createReference(queue2);
@@ -305,7 +310,7 @@
       ref1.setScheduledDeliveryTime(scheduledDeliveryTime);
       assertEquals(scheduledDeliveryTime, ref1.getScheduledDeliveryTime());
       
-      Queue queue3 = queueFactory.createQueue(3, "queue3", null, false, true);
+      Queue queue3 = queueFactory.createQueue(3, squeue3, null, false, true);
       MessageReference ref5 = ref1.copy(queue3);
       
       assertEquals(deliveryCount, ref5.getDeliveryCount());
@@ -321,12 +326,15 @@
       
       Message messageNonDurable = new MessageImpl();
       messageNonDurable.setDurable(false);
+      
+      SimpleString squeue1 = new SimpleString("queue1");
+      SimpleString squeue2 = new SimpleString("queue2");
         
       //Durable queue
-      Queue queue1 = queueFactory.createQueue(1, "queue1", null, true, false);
+      Queue queue1 = queueFactory.createQueue(1, squeue1, null, true, false);
       
       //Non durable queue
-      Queue queue2 = queueFactory.createQueue(2, "queue2", null, false, false);
+      Queue queue2 = queueFactory.createQueue(2, squeue2, null, false, false);
       
       assertEquals(0, messageDurable.getDurableRefCount());
       

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/PostOfficeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/PostOfficeTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/PostOfficeTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -36,6 +36,7 @@
 import org.jboss.messaging.core.server.QueueFactory;
 import org.jboss.messaging.tests.unit.core.server.impl.fakes.FakeQueueFactory;
 import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -57,7 +58,7 @@
       PostOffice po = new PostOfficeImpl(pm, qf, false);
       
       final long id = 324;
-      final String name = "wibb22";
+      final SimpleString name = new SimpleString("wibb22");
       final Filter filter = new FakeFilter();
       final boolean durable = true;
       final boolean temporary = true;
@@ -66,7 +67,7 @@
       
       EasyMock.expect(qf.createQueue(-1, name, filter, durable, temporary)).andReturn(queue);
             
-      final String condition = "queue.wibble";
+      final SimpleString condition = new SimpleString("queue.wibble");
 
       Binding expected = new BindingImpl(condition, queue);
       
@@ -106,7 +107,7 @@
       PostOffice po = new PostOfficeImpl(pm, qf, false);
       
       final long id = 324;
-      final String name = "wibb22";
+      final SimpleString name = new SimpleString("wibb22");
       final Filter filter = new FakeFilter();
       final boolean durable = true;
       final boolean temporary = true;
@@ -115,7 +116,7 @@
       
       EasyMock.expect(qf.createQueue(-1, name, filter, durable, temporary)).andReturn(queue);
             
-      final String condition = "queue.wibble";
+      final SimpleString condition = new SimpleString("queue.wibble");
  
       Binding expected = new BindingImpl(condition, queue);
       
@@ -166,17 +167,24 @@
       
       PostOffice po = new PostOfficeImpl(pm, qf, false);
       
-      final String condition1 = "queue.wibble";      
+      final SimpleString condition1 = new SimpleString("queue.wibble");      
                 
-      po.addBinding(condition1, "queue1", null, false, false);      
-      Map<String, List<Binding>> mappings = po.getMappings();      
+      SimpleString squeue1 = new SimpleString("queue1");
+      SimpleString squeue2 = new SimpleString("queue2");
+      SimpleString squeue3 = new SimpleString("queue3");
+      SimpleString squeue4 = new SimpleString("queue4");
+      SimpleString squeue5 = new SimpleString("queue5");
+      SimpleString squeue6 = new SimpleString("queue6");
+      
+      po.addBinding(condition1, squeue1, null, false, false);      
+      Map<SimpleString, List<Binding>> mappings = po.getMappings();      
       assertEquals(1, mappings.size());
       
-      po.addBinding(condition1, "queue2", null, false, false);     
+      po.addBinding(condition1, squeue2, null, false, false);     
       mappings = po.getMappings();      
       assertEquals(1, mappings.size());
       
-      po.addBinding(condition1, "queue3", null, false, false); 
+      po.addBinding(condition1, squeue3, null, false, false); 
       mappings = po.getMappings();      
       assertEquals(1, mappings.size());
       
@@ -186,53 +194,53 @@
       
       Binding binding1 = bindings.get(0);
       Queue queue1 = binding1.getQueue();
-      assertEquals("queue1", queue1.getName());
+      assertEquals(squeue1, queue1.getName());
             
       Binding binding2 = bindings.get(1);
       Queue queue2 = binding2.getQueue();
-      assertEquals("queue2", queue2.getName());
+      assertEquals(squeue2, queue2.getName());
       
       Binding binding3 = bindings.get(2);
       Queue queue3 = binding3.getQueue();
-      assertEquals("queue3", queue3.getName());
+      assertEquals(squeue3, queue3.getName());
       
-      final String condition2 = "queue.wibble2"; 
+      final SimpleString condition2 = new SimpleString("queue.wibble2"); 
       
-      po.addBinding(condition2, "queue4", null, false, false);       
+      po.addBinding(condition2, squeue4, null, false, false);       
       mappings = po.getMappings();      
       assertEquals(2, mappings.size());
       
-      po.addBinding(condition2, "queue5", null, false, false); 
+      po.addBinding(condition2, squeue5, null, false, false); 
       mappings = po.getMappings();      
       assertEquals(2, mappings.size());
       
-      final String condition3 = "topic.wibblexyz"; 
+      final SimpleString condition3 = new SimpleString("topic.wibblexyz"); 
       
-      po.addBinding(condition3, "queue6", null, false, false);       
+      po.addBinding(condition3, squeue6, null, false, false);       
       mappings = po.getMappings();      
       assertEquals(3, mappings.size());
       
-      po.removeBinding("queue6");
+      po.removeBinding(squeue6);
       mappings = po.getMappings();      
       assertEquals(2, mappings.size());
       
-      po.removeBinding("queue4");
+      po.removeBinding(squeue4);
       mappings = po.getMappings();      
       assertEquals(2, mappings.size());
       
-      po.removeBinding("queue5");
+      po.removeBinding(squeue5);
       mappings = po.getMappings();      
       assertEquals(1, mappings.size());
       
-      po.removeBinding("queue1");
+      po.removeBinding(squeue1);
       mappings = po.getMappings();      
       assertEquals(1, mappings.size());
       
-      po.removeBinding("queue2");
+      po.removeBinding(squeue2);
       mappings = po.getMappings();      
       assertEquals(1, mappings.size());
       
-      po.removeBinding("queue3");
+      po.removeBinding(squeue3);
       mappings = po.getMappings();      
       assertEquals(0, mappings.size());      
    }
@@ -242,9 +250,9 @@
    
    class FakeFilter implements Filter
    {
-		public String getFilterString()
+		public SimpleString getFilterString()
 		{
-			return "aardvark";
+			return new SimpleString("aardvark");
 		}
 
 		public boolean match(Message message)

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -6,10 +6,7 @@
  */
 package org.jboss.messaging.tests.unit.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec.FALSE;
 import static org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec.HEADER_LENGTH;
-import static org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec.LONG_LENGTH;
-import static org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec.TRUE;
 import static org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec.encodeXid;
 import static org.jboss.messaging.core.remoting.impl.mina.PacketCodecFactory.createCodecForEmptyPacket;
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.BYTES;
@@ -73,6 +70,9 @@
 import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
 import static org.jboss.messaging.tests.util.RandomUtil.randomString;
 import static org.jboss.messaging.tests.util.RandomUtil.randomXid;
+import static org.jboss.messaging.util.DataConstants.FALSE;
+import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
+import static org.jboss.messaging.util.DataConstants.TRUE;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -185,6 +185,7 @@
 import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
 import org.jboss.messaging.core.version.impl.VersionImpl;
 import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.SimpleString;
 import org.jboss.messaging.util.StreamUtils;
 
 /**
@@ -226,6 +227,10 @@
             buffer.putFloat(((Float) arg).floatValue());
          else if (arg instanceof String)
             buffer.putNullableString((String) arg);
+         else if (arg instanceof SimpleString)
+            buffer.putSimpleString((SimpleString)arg);
+         else if (arg instanceof NullableStringHolder)
+            buffer.putNullableSimpleString(((NullableStringHolder)arg).str);
          else if (arg == null)
             buffer.putNullableString(null);
          else if (arg instanceof byte[])
@@ -246,8 +251,8 @@
             buffer.putInt(argsInList.size());
             for (Object argInList : argsInList)
             {
-               if (argInList instanceof String)
-                  buffer.putNullableString((String) argInList);
+               if (argInList instanceof SimpleString)
+                  buffer.putSimpleString((SimpleString) argInList);
                else if (argInList instanceof Xid)
                   encodeXid((Xid)argInList, buffer);
                else
@@ -379,7 +384,7 @@
    public void testPing() throws Exception
    {
       Ping ping = new Ping(randomLong());
-      int bodyLength = LONG_LENGTH;
+      int bodyLength = SIZE_LONG;
       AbstractPacketCodec<Ping> codec = new PingCodec();
 
       Packet decodedPacket = encodeAndCheckBytesAndDecode(ping, codec, ping
@@ -523,13 +528,13 @@
 
    public void testProducerSendMessage() throws Exception
    {
-      ProducerSendMessage packet = new ProducerSendMessage(randomString(),
+      ProducerSendMessage packet = new ProducerSendMessage(new SimpleString(randomString()),
             new MessageImpl());
       byte[] messageBytes = StreamUtils.toBytes(packet.getMessage());
       AbstractPacketCodec codec = new ProducerSendMessageCodec();
 
-      Packet decodedPacket = encodeAndCheckBytesAndDecode(packet, codec, packet
-            .getAddress(), StreamUtils.toBytes(packet.getMessage()));
+      Packet decodedPacket = encodeAndCheckBytesAndDecode(packet, codec, new NullableStringHolder(packet
+            .getAddress()), StreamUtils.toBytes(packet.getMessage()));
 
       assertTrue(decodedPacket instanceof ProducerSendMessage);
       ProducerSendMessage decodedMessage = (ProducerSendMessage) decodedPacket;
@@ -541,14 +546,14 @@
 
    public void testSessionCreateConsumerMessage() throws Exception
    {
-      String destination = "queue.SessionCreateConsumerMessage";
+      SimpleString destination = new SimpleString("queue.SessionCreateConsumerMessage");
       SessionCreateConsumerMessage request = new SessionCreateConsumerMessage(
-            destination, "color = 'red'", false, false, randomInt(),
+            destination, new SimpleString("color = 'red'"), false, false, randomInt(),
             randomInt());
       AbstractPacketCodec codec = new SessionCreateConsumerMessageCodec();
 
       Packet decodedPacket = encodeAndCheckBytesAndDecode(request, codec,
-            request.getQueueName(), request.getFilterString(), request
+            request.getQueueName(), new NullableStringHolder(request.getFilterString()), request
                   .isNoLocal(), request.isAutoDeleteQueue(), request
                   .getWindowSize(), request.getMaxRate());
 
@@ -563,6 +568,8 @@
       assertEquals(request.getWindowSize(), decodedRequest.getWindowSize());
       assertEquals(request.getMaxRate(), decodedRequest.getMaxRate());
    }
+   
+  
 
    public void testSessionCreateConsumerResponseMessage() throws Exception
    {
@@ -584,7 +591,7 @@
 
    public void testSessionCreateProducerMessage() throws Exception
    {
-      String destination = "queue.testSessionCreateProducerMessage";
+      SimpleString destination = new SimpleString("queue.testSessionCreateProducerMessage");
       int windowSize = randomInt();
       int maxRate = randomInt();
       SessionCreateProducerMessage request = new SessionCreateProducerMessage(
@@ -769,13 +776,13 @@
 
    public void testSessionCreateBrowserMessage() throws Exception
    {
-      String destination = "queue.testCreateBrowserRequest";
+      SimpleString destination = new SimpleString("queue.testCreateBrowserRequest");
       SessionCreateBrowserMessage request = new SessionCreateBrowserMessage(
-            destination, "color = 'red'");
+            destination, new SimpleString("color = 'red'"));
       AbstractPacketCodec codec = new SessionCreateBrowserMessageCodec();
 
       Packet decodedPacket = encodeAndCheckBytesAndDecode(request, codec,
-            request.getQueueName(), request.getFilterString());
+            request.getQueueName(), new NullableStringHolder(request.getFilterString()));
 
       assertTrue(decodedPacket instanceof SessionCreateBrowserMessage);
       SessionCreateBrowserMessage decodedRequest = (SessionCreateBrowserMessage) decodedPacket;
@@ -1137,7 +1144,7 @@
    public void testSessionRemoveDestinationMessage() throws Exception
    {
       SessionRemoveDestinationMessage message = new SessionRemoveDestinationMessage(
-            randomString(), randomBoolean());
+            new SimpleString(randomString()), randomBoolean());
       AbstractPacketCodec codec = new SessionRemoveDestinationMessageCodec();
 
       Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
@@ -1153,13 +1160,13 @@
    public void testSessionCreateQueueMessage() throws Exception
    {
       SessionCreateQueueMessage message = new SessionCreateQueueMessage(
-            randomString(), randomString(), randomString(), randomBoolean(),
+            new SimpleString(randomString()), new SimpleString(randomString()),
+            new SimpleString(randomString()), randomBoolean(),
             randomBoolean());
       AbstractPacketCodec codec = new SessionCreateQueueMessageCodec();
 
       Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
-            message.getAddress(), message.getQueueName(), message
-                  .getFilterString(), message.isDurable(), message
+            message.getAddress(), message.getQueueName(), new NullableStringHolder(message.getFilterString()), message.isDurable(), message
                   .isTemporary());
 
       assertTrue(decodedPacket instanceof SessionCreateQueueMessage);
@@ -1177,7 +1184,7 @@
    public void testSessionQueueQueryMessage() throws Exception
    {
       SessionQueueQueryMessage message = new SessionQueueQueryMessage(
-            randomString());
+            new SimpleString(randomString()));
       AbstractPacketCodec codec = new SessionQueueQueryMessageCodec();
 
       Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
@@ -1193,14 +1200,14 @@
    {
       SessionQueueQueryResponseMessage message = new SessionQueueQueryResponseMessage(
             randomBoolean(), randomBoolean(), randomInt(), randomInt(),
-            randomInt(), randomString(), randomString());
+            randomInt(), new SimpleString(randomString()), new SimpleString(randomString()));
       AbstractPacketCodec codec = new SessionQueueQueryResponseMessageCodec();
 
       Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
             message.isExists(), message.isDurable(), message.isTemporary(),
             message.getMaxSize(), message.getConsumerCount(), message
-                  .getMessageCount(), message.getFilterString(), message
-                  .getAddress());
+                  .getMessageCount(), new NullableStringHolder(message.getFilterString()),
+                  new NullableStringHolder(message.getAddress()));
 
       assertTrue(decodedPacket instanceof SessionQueueQueryResponseMessage);
       SessionQueueQueryResponseMessage decodedMessage = (SessionQueueQueryResponseMessage) decodedPacket;
@@ -1219,7 +1226,7 @@
    public void testSessionAddAddressMessage() throws Exception
    {
       SessionAddDestinationMessage message = new SessionAddDestinationMessage(
-            randomString(), randomBoolean());
+            new SimpleString(randomString()), randomBoolean());
       AbstractPacketCodec<SessionAddDestinationMessage> codec = new SessionAddDestinationMessageCodec();
 
       Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
@@ -1235,7 +1242,7 @@
    public void testSessionBindingQueryMessage() throws Exception
    {
       SessionBindingQueryMessage message = new SessionBindingQueryMessage(
-            randomString());
+            new SimpleString(randomString()));
       AbstractPacketCodec codec = new SessionBindingQueryMessageCodec();
 
       Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
@@ -1251,10 +1258,10 @@
    public void testSessionBindingQueryResponseMessage() throws Exception
    {
       boolean exists = true;
-      List<String> queueNames = new ArrayList<String>();
-      queueNames.add(randomString());
-      queueNames.add(randomString());
-      queueNames.add(randomString());
+      List<SimpleString> queueNames = new ArrayList<SimpleString>();
+      queueNames.add(new SimpleString(randomString()));
+      queueNames.add(new SimpleString(randomString()));
+      queueNames.add(new SimpleString(randomString()));
       SessionBindingQueryResponseMessage message = new SessionBindingQueryResponseMessage(
             exists, queueNames);
       AbstractPacketCodec codec = new SessionBindingQueryResponseMessageCodec();
@@ -1267,7 +1274,7 @@
       assertEquals(SESS_BINDINGQUERY_RESP, decodedMessage.getType());
       assertEquals(message.isExists(), decodedMessage.isExists());
 
-      List<String> decodedNames = decodedMessage.getQueueNames();
+      List<SimpleString> decodedNames = decodedMessage.getQueueNames();
       assertEquals(queueNames.size(), decodedNames.size());
       for (int i = 0; i < queueNames.size(); i++)
       {
@@ -1278,7 +1285,7 @@
    public void testDeleteQueueRequest() throws Exception
    {
       SessionDeleteQueueMessage message = new SessionDeleteQueueMessage(
-            randomString());
+            new SimpleString(randomString()));
       AbstractPacketCodec codec = new SessionDeleteQueueMessageCodec();
 
       Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
@@ -1342,4 +1349,13 @@
       }
 
    }
+   
+   private class NullableStringHolder
+   {
+      public SimpleString str;
+      NullableStringHolder(SimpleString str)
+      {
+         this.str = str;
+      }
+   }
 }

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/QueueTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/QueueTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/QueueTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -40,6 +40,7 @@
 import org.jboss.messaging.tests.unit.core.server.impl.fakes.FakeConsumer;
 import org.jboss.messaging.tests.unit.core.server.impl.fakes.FakeFilter;
 import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -54,11 +55,13 @@
 	
 	private final ScheduledExecutorService scheduledExecutor = Executors.newSingleThreadScheduledExecutor();
 
+	private static final SimpleString queue1 = new SimpleString("queue1");
+	
    public void testID()
    {
       final long id = 123;
       
-      Queue queue = new QueueImpl(id, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(id, queue1, null, false, true, false, -1, scheduledExecutor);
       
       assertEquals(id, queue.getPersistenceID());
       
@@ -71,7 +74,7 @@
    
    public void testName()
    {
-      final String name = "oobblle";
+      final SimpleString name = new SimpleString("oobblle");
       
       Queue queue = new QueueImpl(1, name, null, false, true, false, -1, scheduledExecutor);
       
@@ -80,33 +83,33 @@
    
    public void testClustered()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       assertFalse(queue.isClustered());
       
-      queue = new QueueImpl(1, "queue1", null, true, true, false, -1, scheduledExecutor);
+      queue = new QueueImpl(1, queue1, null, true, true, false, -1, scheduledExecutor);
       
       assertTrue(queue.isClustered());
    }
    
    public void testDurable()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, false, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, false, false, -1, scheduledExecutor);
       
       assertFalse(queue.isDurable());
       
-      queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       assertTrue(queue.isDurable());
    }
    
    public void testTemporary()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, false, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, false, false, -1, scheduledExecutor);
       
       assertFalse(queue.isTemporary());
       
-      queue = new QueueImpl(1, "queue1", null, false, false, true, -1, scheduledExecutor);
+      queue = new QueueImpl(1, queue1, null, false, false, true, -1, scheduledExecutor);
       
       assertTrue(queue.isTemporary());
    }
@@ -117,7 +120,7 @@
       
       final int id = 123;
       
-      Queue queue = new QueueImpl(id, "queue1", null, false, true, false, maxSize, scheduledExecutor);
+      Queue queue = new QueueImpl(id, queue1, null, false, true, false, maxSize, scheduledExecutor);
       
       assertEquals(id, queue.getPersistenceID());
       
@@ -138,7 +141,7 @@
       
       Consumer cons3 = new FakeConsumer();
       
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       assertEquals(0, queue.getConsumerCount());
       
@@ -179,7 +182,7 @@
    
    public void testGetSetDistributionPolicy()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       assertNotNull(queue.getDistributionPolicy());
       
@@ -194,7 +197,7 @@
    
    public void testGetSetFilter()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       assertNull(queue.getFilter());
       
@@ -204,21 +207,21 @@
       
       assertEquals(filter, queue.getFilter());
       
-      queue = new QueueImpl(1, "queue1", filter, false, true, false, -1, scheduledExecutor);
+      queue = new QueueImpl(1, queue1, filter, false, true, false, -1, scheduledExecutor);
       
       assertEquals(filter, queue.getFilter());
    }
    
    public void testDefaultMaxSize()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       assertEquals(-1, queue.getMaxSize());        
    }
    
    public void testSimpleAddLast()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       final int numMessages = 10;
       
@@ -237,7 +240,7 @@
    
    public void testSimpleDirectDelivery()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       FakeConsumer consumer = new FakeConsumer();
       
@@ -265,7 +268,7 @@
    
    public void testSimpleNonDirectDelivery()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       final int numMessages = 10;
       
@@ -303,7 +306,7 @@
    
    public void testBusyConsumer()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       FakeConsumer consumer = new FakeConsumer();
       
@@ -347,7 +350,7 @@
    
    public void testBusyConsumerThenAddMoreMessages()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       FakeConsumer consumer = new FakeConsumer();
       
@@ -414,7 +417,7 @@
          
    public void testAddFirstAddLast()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       final int numMessages = 10;
       
@@ -469,7 +472,7 @@
    
    public void testChangeConsumersAndDeliver() throws Exception
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
                   
       final int numMessages = 10;
       
@@ -620,7 +623,7 @@
    
    public void testConsumerReturningNull()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       class NullConsumer implements Consumer
       {
@@ -648,7 +651,7 @@
    
    public void testRoundRobinWithQueueing()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       assertTrue(queue.getDistributionPolicy() instanceof RoundRobinDistributionPolicy);
                   
@@ -693,7 +696,7 @@
    
    public void testRoundRobinDirect()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       assertTrue(queue.getDistributionPolicy() instanceof RoundRobinDistributionPolicy);
                   
@@ -736,7 +739,7 @@
    
    public void testDeleteAllReferences() throws Exception
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       StorageManager storageManager = EasyMock.createStrictMock(StorageManager.class);
       
@@ -822,7 +825,7 @@
    {
       final int maxSize = 20;
       
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, maxSize, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, maxSize, scheduledExecutor);
       
       List<MessageReference> refs = new ArrayList<MessageReference>();
       
@@ -896,7 +899,7 @@
    
    public void testWithPriorities()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       final int numMessages = 10;
       
@@ -963,7 +966,7 @@
    
    public void testConsumerWithFilterAddAndRemove()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       Filter filter = new FakeFilter("fruit", "orange");
       
@@ -972,7 +975,7 @@
    
    public void testList()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       final int numMessages = 20;
       
@@ -996,7 +999,7 @@
    
    public void testListWithFilter()
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       final int numMessages = 20;
       
@@ -1062,7 +1065,7 @@
    
    public void testConsumeWithFiltersAddAndRemoveConsumer() throws Exception
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       Filter filter = new FakeFilter("fruit", "orange");
       
@@ -1135,7 +1138,7 @@
    
    private void testConsumerWithFilters(boolean direct) throws Exception
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
       
       Filter filter = new FakeFilter("fruit", "orange");
       

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/concurrent/QueueTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/concurrent/QueueTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/concurrent/QueueTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -32,6 +32,7 @@
 import org.jboss.messaging.tests.unit.core.server.impl.fakes.FakeConsumer;
 import org.jboss.messaging.tests.unit.core.server.impl.fakes.FakeQueueFactory;
 import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -51,7 +52,7 @@
     */
    public void testConcurrentAddsDeliver() throws Exception
    {
-      Queue queue = queueFactory.createQueue(1, "queue1", null, false, true);
+      Queue queue = queueFactory.createQueue(1, new SimpleString("queue1"), null, false, true);
       
       FakeConsumer consumer = new FakeConsumer();
       

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/fakes/FakeFilter.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/fakes/FakeFilter.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/fakes/FakeFilter.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -23,6 +23,7 @@
 
 import org.jboss.messaging.core.filter.Filter;
 import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -65,7 +66,7 @@
       return true;
    }
 
-   public String getFilterString()
+   public SimpleString getFilterString()
    {
       return null;
    }      

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/fakes/FakeQueueFactory.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/fakes/FakeQueueFactory.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/fakes/FakeQueueFactory.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -28,6 +28,7 @@
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.QueueFactory;
 import org.jboss.messaging.core.server.impl.QueueImpl;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -40,7 +41,7 @@
 {
 	private final ScheduledExecutorService scheduledExecutor = Executors.newSingleThreadScheduledExecutor();
 
-	public Queue createQueue(long persistenceID, String name, Filter filter,
+	public Queue createQueue(long persistenceID, SimpleString name, Filter filter,
 			                   boolean durable, boolean temporary)
 	{
 		return new QueueImpl(persistenceID, name, filter, false, durable, temporary, -1, scheduledExecutor);

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/timing/QueueTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/timing/QueueTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/timing/QueueTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -34,6 +34,7 @@
 import org.jboss.messaging.core.server.impl.QueueImpl;
 import org.jboss.messaging.tests.unit.core.server.impl.fakes.FakeConsumer;
 import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -80,7 +81,7 @@
    
    public void testScheduledNoConsumer() throws Exception
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, new SimpleString("queue1"), null, false, true, false, -1, scheduledExecutor);
            
       //Send one scheduled
       
@@ -146,7 +147,7 @@
    
    private void testScheduled(boolean direct)
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, new SimpleString("queue1"), null, false, true, false, -1, scheduledExecutor);
       
       FakeConsumer consumer = null;
       
@@ -243,7 +244,7 @@
    
    public void testDeleteAllReferences() throws Exception
    {
-      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue = new QueueImpl(1, new SimpleString("queue1"), null, false, true, false, -1, scheduledExecutor);
       
       StorageManager storageManager = EasyMock.createStrictMock(StorageManager.class);
       

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/settings/impl/QueueSettingsTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/settings/impl/QueueSettingsTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/settings/impl/QueueSettingsTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -22,10 +22,11 @@
 package org.jboss.messaging.tests.unit.core.settings.impl;
 
 import junit.framework.TestCase;
+
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.impl.QueueImpl;
-import org.jboss.messaging.core.server.impl.RoundRobinDistributionPolicy;
 import org.jboss.messaging.core.settings.impl.QueueSettings;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * @author <a href="ataylor at redhat.com">Andy Taylor</a>
@@ -52,8 +53,8 @@
       QueueSettings queueSettings = new QueueSettings();
       QueueSettings queueSettingsToMerge = new QueueSettings();
       queueSettingsToMerge.setClustered(true);
-      Queue DLQ = new QueueImpl(0,"testDLQ", null, false, false, false, 0, null);
-      Queue exp = new QueueImpl(0,"testExpiryQueue", null, false, false, false, 0, null);
+      Queue DLQ = new QueueImpl(0,new SimpleString("testDLQ"), null, false, false, false, 0, null);
+      Queue exp = new QueueImpl(0,new SimpleString("testExpiryQueue"), null, false, false, false, 0, null);
       queueSettingsToMerge.setDLQ(DLQ);
       queueSettingsToMerge.setExpiryQueue(exp);
       queueSettingsToMerge.setMaxDeliveryAttempts(1000);
@@ -77,8 +78,8 @@
       QueueSettings queueSettings = new  QueueSettings();
       QueueSettings queueSettingsToMerge = new QueueSettings();
       queueSettingsToMerge.setClustered(true);
-       Queue DLQ = new QueueImpl(0,"testDLQ", null, false, false, false, 0, null);
-      Queue exp = new QueueImpl(0,"testExpiryQueue", null, false, false, false, 0, null);
+       Queue DLQ = new QueueImpl(0,new SimpleString("testDLQ"), null, false, false, false, 0, null);
+      Queue exp = new QueueImpl(0,new SimpleString("testExpiryQueue"), null, false, false, false, 0, null);
       queueSettingsToMerge.setDLQ(DLQ);
       queueSettingsToMerge.setExpiryQueue(exp);
       queueSettingsToMerge.setMaxDeliveryAttempts(1000);
@@ -89,7 +90,7 @@
 
       QueueSettings queueSettingsToMerge2 = new QueueSettings();
       queueSettingsToMerge2.setClustered(true);
-      Queue exp2 = new QueueImpl(0,"testExpiryQueue2", null, false, false, false, 0, null);
+      Queue exp2 = new QueueImpl(0,new SimpleString("testExpiryQueue2"), null, false, false, false, 0, null);
       queueSettingsToMerge2.setExpiryQueue(exp2);
       queueSettingsToMerge2.setMaxSize(2001);
       queueSettingsToMerge2.setRedeliveryDelay((long)2003);
@@ -111,8 +112,8 @@
       QueueSettings queueSettings = new  QueueSettings();
       QueueSettings queueSettingsToMerge = new QueueSettings();
       queueSettingsToMerge.setClustered(true);
-       Queue DLQ = new QueueImpl(0,"testDLQ", null, false, false, false, 0, null);
-      Queue exp = new QueueImpl(0,"testExpiryQueue", null, false, false, false, 0, null);
+       Queue DLQ = new QueueImpl(0,new SimpleString("testDLQ"), null, false, false, false, 0, null);
+      Queue exp = new QueueImpl(0,new SimpleString("testExpiryQueue"), null, false, false, false, 0, null);
       queueSettingsToMerge.setDLQ(DLQ);
       queueSettingsToMerge.setExpiryQueue(exp);
       queueSettingsToMerge.setMaxDeliveryAttempts(1000);
@@ -123,8 +124,8 @@
 
       QueueSettings queueSettingsToMerge2 = new QueueSettings();
       queueSettingsToMerge2.setClustered(false);
-      Queue exp2 = new QueueImpl(0,"testExpiryQueue2", null, false, false, false, 0, null);
-      Queue DLQ2 = new QueueImpl(0,"testDlq2", null, false, false, false, 0, null);
+      Queue exp2 = new QueueImpl(0,new SimpleString("testExpiryQueue2"), null, false, false, false, 0, null);
+      Queue DLQ2 = new QueueImpl(0,new SimpleString("testDlq2"), null, false, false, false, 0, null);
       queueSettingsToMerge2.setExpiryQueue(exp2);
       queueSettingsToMerge2.setDLQ(DLQ2);
       queueSettingsToMerge2.setMaxDeliveryAttempts(2000);

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/transaction/impl/TransactionTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/transaction/impl/TransactionTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/transaction/impl/TransactionTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -22,6 +22,7 @@
 import org.jboss.messaging.core.transaction.Transaction;
 import org.jboss.messaging.core.transaction.impl.TransactionImpl;
 import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * 
@@ -380,13 +381,13 @@
    public void testSendCommit() throws Exception
    {
       //Durable queue
-      Queue queue1 = new QueueImpl(12, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue1 = new QueueImpl(12, new SimpleString("queue1"), null, false, true, false, -1, scheduledExecutor);
       
       //Durable queue
-      Queue queue2 = new QueueImpl(34, "queue2", null, false, true, false, -1, scheduledExecutor);
+      Queue queue2 = new QueueImpl(34, new SimpleString("queue2"), null, false, true, false, -1, scheduledExecutor);
       
       //Non durable queue
-      Queue queue3 = new QueueImpl(65, "queue3", null, false, false, false, -1, scheduledExecutor);
+      Queue queue3 = new QueueImpl(65, new SimpleString("queue3"), null, false, false, false, -1, scheduledExecutor);
       
       //Durable message to send
       
@@ -418,7 +419,7 @@
       
       EasyMock.reset(sm);
       
-      final String address1 = "topic1";
+      final SimpleString address1 = new SimpleString("topic1");
       
       //Expect:
       
@@ -453,7 +454,7 @@
                        
       //Expect:
       
-      final String address2 = "queue3";
+      final SimpleString address2 = new SimpleString("queue3");
       
       MessageReference ref7 = message2.createReference(queue3);
       List<MessageReference> message2Refs = new ArrayList<MessageReference>();
@@ -493,13 +494,13 @@
    public void testAckCommit() throws Exception
    {
       //Durable queue
-      Queue queue1 = new QueueImpl(12, "queue1", null, false, true, false, -1, scheduledExecutor);
+      Queue queue1 = new QueueImpl(12, new SimpleString("queue1"), null, false, true, false, -1, scheduledExecutor);
       
       //Durable queue
-      Queue queue2 = new QueueImpl(34, "queue2", null, false, true, false, -1, scheduledExecutor);
+      Queue queue2 = new QueueImpl(34, new SimpleString("queue2"), null, false, true, false, -1, scheduledExecutor);
       
       //Non durable queue
-      Queue queue3 = new QueueImpl(65, "queue3", null, false, false, false, -1, scheduledExecutor);
+      Queue queue3 = new QueueImpl(65, new SimpleString("queue3"), null, false, false, false, -1, scheduledExecutor);
       
       //Some refs to ack
       

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/util/SimpleStringTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/util/SimpleStringTest.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/util/SimpleStringTest.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -40,7 +40,7 @@
 		
 		SimpleString s = new SimpleString(str);
 		
-		assertEquals(str, s.asString());
+		assertEquals(str, s.toString());
 		
 		assertEquals(2 * str.length(), s.getData().length);
 		
@@ -48,9 +48,150 @@
 		
 		SimpleString s2 = new SimpleString(data);
 		
-		assertEquals(str, s2.asString());
+		assertEquals(str, s2.toString());
 	}
 	
+	public void testStartsWith() throws Exception
+	{
+		SimpleString s1 = new SimpleString("abcdefghi");
+		
+		assertTrue(s1.startsWith(new SimpleString("abc")));
+		
+		assertTrue(s1.startsWith(new SimpleString("abcdef")));
+		
+		assertTrue(s1.startsWith(new SimpleString("abcdefghi")));
+		
+		assertFalse(s1.startsWith(new SimpleString("abcdefghijklmn")));
+		
+		assertFalse(s1.startsWith(new SimpleString("aardvark")));
+		
+		assertFalse(s1.startsWith(new SimpleString("z")));
+	}
+	
+	public void testCharSequence() throws Exception
+	{
+		String s = "abcdefghijkl";
+		SimpleString s1 = new SimpleString(s);
+		
+		assertEquals('a', s1.charAt(0));
+		assertEquals('b', s1.charAt(1));
+		assertEquals('c', s1.charAt(2));
+		assertEquals('k', s1.charAt(10));
+		assertEquals('l', s1.charAt(11));
+		
+		try
+		{
+			s1.charAt(-1);
+			fail("Should throw exception");
+		}
+		catch (IndexOutOfBoundsException e)
+		{
+			//OK
+		}
+		
+		try
+		{
+			s1.charAt(-2);
+			fail("Should throw exception");
+		}
+		catch (IndexOutOfBoundsException e)
+		{
+			//OK
+		}
+		
+		try
+		{
+			s1.charAt(s.length());
+			fail("Should throw exception");
+		}
+		catch (IndexOutOfBoundsException e)
+		{
+			//OK
+		}
+		
+		try
+		{
+			s1.charAt(s.length() + 1);
+			fail("Should throw exception");
+		}
+		catch (IndexOutOfBoundsException e)
+		{
+			//OK
+		}
+		
+		assertEquals(s.length(), s1.length());
+		
+		CharSequence ss = s1.subSequence(0, s1.length());
+		
+		assertEquals(ss, s1);
+		
+		ss = s1.subSequence(1, 4);
+		assertEquals(ss, new SimpleString("bcd"));
+		
+		ss = s1.subSequence(5, 10);
+		assertEquals(ss, new SimpleString("fghij"));
+		
+		ss = s1.subSequence(5, 12);
+		assertEquals(ss, new SimpleString("fghijkl"));
+		
+		try
+		{
+			s1.subSequence(-1, 2);
+			fail("Should throw exception");
+		}
+		catch (IndexOutOfBoundsException e)
+		{
+			//OK
+		}
+		
+		try
+		{
+			s1.subSequence(-4, -2);
+			fail("Should throw exception");
+		}
+		catch (IndexOutOfBoundsException e)
+		{
+			//OK
+		}
+		
+		try
+		{
+			s1.subSequence(0, s1.length() + 1);
+			fail("Should throw exception");
+		}
+		catch (IndexOutOfBoundsException e)
+		{
+			//OK
+		}
+		
+		try
+		{
+			s1.subSequence(0, s1.length() + 2);
+			fail("Should throw exception");
+		}
+		catch (IndexOutOfBoundsException e)
+		{
+			//OK
+		}
+		
+		try
+		{
+			s1.subSequence(5, 1);
+			fail("Should throw exception");
+		}
+		catch (IndexOutOfBoundsException e)
+		{
+			//OK
+		}
+	}
+	
+	public void testEquals() throws Exception
+	{
+		assertEquals(new SimpleString("abcdef"), new SimpleString("abcdef"));
+		
+		assertFalse(new SimpleString("abcdef").equals(new SimpleString("abggcdef")));
+	}
+	
 //	public void testPerf() throws Exception
 //	{
 //		StringBuffer buff = new StringBuffer();

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/util/SpawnedVMSupport.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/util/SpawnedVMSupport.java	2008-05-06 01:21:12 UTC (rev 4145)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/util/SpawnedVMSupport.java	2008-05-06 11:50:27 UTC (rev 4146)
@@ -68,11 +68,11 @@
 
       String commandLine = sb.toString();
 
-      log.trace("command line: " + commandLine);
+      log.info("command line: " + commandLine);
 
       Process process = Runtime.getRuntime().exec(commandLine);
 
-      log.trace("process: " + process);
+      log.info("process: " + process);
 
       ProcessLogger outputLogger = new ProcessLogger(process.getInputStream(),
             className);
@@ -142,7 +142,7 @@
             BufferedReader br = new BufferedReader(isr);
             String line = null;
             while ((line = br.readLine()) != null)
-               processLogger.debug(line);
+               processLogger.info(line);
          } catch (IOException ioe)
          {
             ioe.printStackTrace();




More information about the jboss-cvs-commits mailing list