[jboss-cvs] JBoss Messaging SVN: r5948 - in trunk: examples/messaging/src/org/jboss/messaging/example and 54 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Feb 27 15:23:48 EST 2009


Author: clebert.suconic at jboss.com
Date: 2009-02-27 15:23:47 -0500 (Fri, 27 Feb 2009)
New Revision: 5948

Added:
   trunk/src/main/org/jboss/messaging/core/buffers/
   trunk/src/main/org/jboss/messaging/core/buffers/AbstractChannelBuffer.java
   trunk/src/main/org/jboss/messaging/core/buffers/ByteBufferBackedChannelBuffer.java
   trunk/src/main/org/jboss/messaging/core/buffers/ChannelBuffer.java
   trunk/src/main/org/jboss/messaging/core/buffers/ChannelBuffers.java
   trunk/src/main/org/jboss/messaging/core/buffers/DynamicChannelBuffer.java
   trunk/src/main/org/jboss/messaging/core/buffers/HeapChannelBuffer.java
   trunk/src/main/org/jboss/messaging/core/buffers/package.html
   trunk/tests/src/org/jboss/messaging/tests/integration/basic/SelfExpandingBufferTest.java
Removed:
   trunk/src/main/org/jboss/messaging/core/remoting/impl/ByteBufferWrapper.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/ExpandingMessagingBuffer.java
   trunk/src/main/org/jboss/messaging/integration/transports/mina/
   trunk/tests/src/org/jboss/messaging/tests/integration/remoting/MinaNetworkAddressTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/security/MinaSecurityClientTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/ExpandingMessagingBufferTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/
Modified:
   trunk/.classpath
   trunk/build-messaging.xml
   trunk/build-thirdparty.xml
   trunk/examples/messaging/src/org/jboss/messaging/example/HttpClient.java
   trunk/examples/messaging/src/org/jboss/messaging/example/ManagementClient.java
   trunk/examples/messaging/src/org/jboss/messaging/example/SSLClient.java
   trunk/examples/messaging/src/org/jboss/messaging/example/ScheduledMessageExample.java
   trunk/examples/messaging/src/org/jboss/messaging/example/SimpleClient.java
   trunk/examples/messaging/src/org/jboss/messaging/example/SimpleExample.java
   trunk/examples/messaging/src/org/jboss/messaging/example/WildCardClient.java
   trunk/src/config/jbm-cluster-configuration.xml
   trunk/src/config/jbm-configuration.xml
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientFileMessageImpl.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/client/impl/ClientSessionInternal.java
   trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java
   trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java
   trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java
   trunk/src/main/org/jboss/messaging/core/paging/impl/PageImpl.java
   trunk/src/main/org/jboss/messaging/core/paging/impl/PageTransactionInfoImpl.java
   trunk/src/main/org/jboss/messaging/core/paging/impl/PagedMessageImpl.java
   trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalLargeServerMessage.java
   trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java
   trunk/src/main/org/jboss/messaging/core/persistence/impl/nullpm/NullStorageLargeServerMessage.java
   trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/AbstractBufferHandler.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnection.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateSessionMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateSessionResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/MessagingExceptionMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketsConfirmedMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReattachSessionMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReattachSessionResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReplicateCreateSessionMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/RollbackMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAcknowledgeMessage.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/SessionConsumerCloseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionConsumerFlowCreditMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionContinuationMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerMessage.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/SessionExpiredMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionFailoverCompleteMessage.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/SessionReceiveContinuationMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionReceiveMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionRemoveDestinationMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionReplicateDeliveryMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionSendContinuationMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionSendMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXACommitMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAEndMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetInDoubtXidsResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetTimeoutResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/XidCodecSupport.java
   trunk/src/main/org/jboss/messaging/core/remoting/spi/MessagingBuffer.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java
   trunk/src/main/org/jboss/messaging/integration/transports/netty/ChannelBufferWrapper.java
   trunk/src/main/org/jboss/messaging/integration/transports/netty/NettyConnection.java
   trunk/src/main/org/jboss/messaging/jms/client/JBossBytesMessage.java
   trunk/src/main/org/jboss/messaging/jms/client/JBossMapMessage.java
   trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java
   trunk/src/main/org/jboss/messaging/jms/client/JBossObjectMessage.java
   trunk/src/main/org/jboss/messaging/jms/client/JBossStreamMessage.java
   trunk/src/main/org/jboss/messaging/jms/client/JBossTextMessage.java
   trunk/src/main/org/jboss/messaging/utils/TypedProperties.java
   trunk/src/main/org/jboss/messaging/utils/UTF8Util.java
   trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/message/MessageHeaderTest.java
   trunk/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java
   trunk/tests/src/org/jboss/messaging/tests/integration/basic/AutoGroupClientTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/basic/CoreClientTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/chunkmessage/ChunkTestBase.java
   trunk/tests/src/org/jboss/messaging/tests/integration/chunkmessage/MessageChunkTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientCrashTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientExitTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/CrashClient.java
   trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/GracefulClient.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeReconnectTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/SimpleTransformer.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/ActivationTimeoutTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/AutomaticFailoverWithDiscoveryTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailBackupServerTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverExpiredMessageTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverManagementTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverNoSessionsFailoverTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverPreAcknowledgeTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverScheduledMessageTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailureOnCreateConnectionTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/JustReplicationTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/LargeMessageMultiThreadFailoverTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/MultiThreadRandomFailoverTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/MultiThreadRandomFailoverTestBase.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/PagingFailoverTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/RandomFailoverTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/ReconnectTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/ReconnectWithBackupTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/SimpleAutomaticFailoverTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/SimpleManualFailoverTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/SplitBrainTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/consumer/ConsumerTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/http/CoreClientOverHttpTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/http/NettyHttpTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/jms/management/JMSServerControlTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/ManagementServiceImplTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/paging/PageCrashTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingManagerIntegrationTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingServiceIntegrationTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/queue/DeadLetterAddressTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/queue/ExpiryAddressTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/queue/ExpiryRunnerTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/queue/MessageGroupingTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/queue/SoloQueueRecoveryTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/queue/SoloQueueTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/scheduling/ScheduledMessageTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/security/SimpleClient.java
   trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSL.java
   trunk/tests/src/org/jboss/messaging/tests/integration/wildcard/WildCardRoutingTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/xa/BasicXaRecoveryTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/xa/BasicXaTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/xa/XaTimeoutTest.java
   trunk/tests/src/org/jboss/messaging/tests/performance/paging/MeasurePagingMultiThreadTest.java
   trunk/tests/src/org/jboss/messaging/tests/performance/persistence/StorageManagerTimingTest.java
   trunk/tests/src/org/jboss/messaging/tests/timing/util/UTF8Test.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientMessageImplTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/fakes/SimpleEncoding.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/message/impl/MessageImplTestBase.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PageImplTestBase.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PageTransactionImplTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreImplTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreTestBase.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/persistence/impl/journal/JournalStorageManagerTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/MessagingBufferTestBase.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/ByteBufferWrapperTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/ChannelBufferWrapper2Test.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyAcceptorFactoryTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyConnectionTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerMessageImplTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossBytesMessageTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageConsumerTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageProducerTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossObjectMessageTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossTextMessageTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/util/TypedPropertiesTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/util/UTF8Test.java
   trunk/tests/src/org/jboss/messaging/tests/util/ServiceTestBase.java
   trunk/tests/src/org/jboss/messaging/tests/util/UnitTestCase.java
Log:
JBMESSAGING-1394 - MessagingBuffer refactoring, Good bye Mina, and few tweaks

Modified: trunk/.classpath
===================================================================
--- trunk/.classpath	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/.classpath	2009-02-27 20:23:47 UTC (rev 5948)
@@ -63,8 +63,5 @@
 	<classpathentry kind="lib" path="thirdparty/easymock-classextension/lib/easymockclassextension.jar"/>
 	<classpathentry kind="lib" path="thirdparty/cglib/lib/cglib.jar"/>
 	<classpathentry kind="lib" path="tests/tmpfiles"/>
-	<classpathentry kind="lib" path="thirdparty/apache-mina/lib/mina-core-2.0.0-M4.jar"/>
-	<classpathentry kind="lib" path="thirdparty/slf4j/log4j/lib/slf4j-log4j12-1.5.2.jar"/>
-	<classpathentry kind="lib" path="thirdparty/slf4j/api/lib/slf4j-api-1.5.2.jar"/>
 	<classpathentry kind="output" path="eclipse-output"/>
 </classpath>

Modified: trunk/build-messaging.xml
===================================================================
--- trunk/build-messaging.xml	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/build-messaging.xml	2009-02-27 20:23:47 UTC (rev 5948)
@@ -113,7 +113,6 @@
 
    <!--default clustering server settings-->   
    <property name="jbm.remoting.netty.port" value="5445"/>
-   <property name="jbm.remoting.mina.port" value="5600"/>
    <property name="jnp.port" value="1099"/>
    <property name="jnp.rmiPort" value="1098"/>
    <property name="jbm.data.dir" value="data1"/>
@@ -211,7 +210,6 @@
    <path id="transports.compilation.classpath">
       <path location="${build.core.classes.dir}"/>
       <path refid="jboss.jboss.javaee.classpath"/>
-      <path refid="apache.mina.classpath"/>
       <path refid="netty.netty.classpath"/>
    </path>
 
@@ -292,8 +290,6 @@
      <path refid="jboss.test14.classpath"/>
      <path refid="jboss.jboss.retro.classpath"/>-->
       <path refid="easymock.easymock.classpath"/>
-      <path refid="slf4j.api.classpath"/>
-      <path refid="slf4j.log4j.classpath"/>
       <path refid="jboss.jbossxb.classpath"/>
    </path>
 
@@ -305,8 +301,6 @@
       <pathelement location="${src.schemas.dir}"/>
       <path refid="test.compilation.classpath"/>
       <path refid="oswego.concurrent.classpath"/>
-      <path refid="slf4j.api.classpath"/>
-      <path refid="slf4j.log4j.classpath"/>
       <path refid="apache.log4j.classpath"/>
       <path refid="cglib.classpath"/>
       <path refid="jboss.common.core.classpath"/>
@@ -326,8 +320,6 @@
       <path location="${build.jars.dir}/${transports.jar.name}"/>
       <path refid="jms.test.compilation.classpath"/>
       <path refid="oswego.concurrent.classpath"/>
-      <path refid="slf4j.api.classpath"/>
-      <path refid="slf4j.log4j.classpath"/>
       <path refid="apache.log4j.classpath"/>
       <path refid="cglib.classpath"/>
       <path refid="jboss.common.core.classpath"/>
@@ -778,10 +770,6 @@
          <fileset dir="${build.jars.dir}">
             <include name="*.jar"/>
          </fileset>
-         <fileset dir="${apache.mina.lib}">
-            <include name="*.jar"/>
-            <exclude name="*sources.jar"/>
-         </fileset>
          <fileset dir="${netty.netty.lib}">
             <include name="*.jar"/>
             <exclude name="*sources.jar"/>
@@ -890,18 +878,9 @@
          <fileset dir="${jboss.jnpserver.lib}">
             <include name="jnpserver.jar"/>
          </fileset>
-         <fileset dir="${apache.mina.lib}">
-            <include name="mina-core-2.0.0-M3-20080730.120633-1.jar"/>
-         </fileset>
          <fileset dir="${netty.netty.lib}">
             <include name="netty-3.1.0.ALPHA2.jar"/>
          </fileset>
-         <fileset dir="${slf4j.api.lib}">
-            <include name="slf4j-api-1.4.3.jar"/>
-         </fileset>
-         <fileset dir="${slf4j.log4j.lib}">
-            <include name="slf4j-log4j12.jar"/>
-         </fileset>
       </copy>
 
       <copy todir="${build.distro.config.dir}">
@@ -1496,7 +1475,6 @@
          <jvmarg value="-Djava.naming.factory.initial=org.jnp.interfaces.NamingContextFactory"/>
          <jvmarg value="-Djava.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces"/>
          <jvmarg value="-Djbm.remoting.netty.port=${jbm.remoting.netty.port}"/>
-         <jvmarg value="-Djbm.remoting.mina.port=${jbm.remoting.mina.port}"/>
          <jvmarg value="-Djnp.port=${jnp.port}"/>
          <jvmarg value="-Djnp.rmiPort=${jnp.rmiPort}"/>
          <jvmarg value="-Djbm.data.dir=${jbm.data.dir}"/>

Modified: trunk/build-thirdparty.xml
===================================================================
--- trunk/build-thirdparty.xml	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/build-thirdparty.xml	2009-02-27 20:23:47 UTC (rev 5948)
@@ -86,7 +86,6 @@
       -->
 
       <componentref name="netty" version="3.1.0.ALPHA4"/>
-      <componentref name="apache-mina" version="2.0.0-M4"/>
 
       <!--
            Dependencies needed to build the security.jar
@@ -135,7 +134,6 @@
       <componentref name="jboss/jbossxb" version="2.0.0.CR4"/>
       <componentref name="apache-xerces" version="2.7.1-brew"/>
       <componentref name="jboss/profiler/jvmti" version="1.0.0.CR5-brew"/>
-      <componentref name="slf4j/log4j" version="1.5.2"/>
 
       <!--
           Dependencies required to run the jms tests

Modified: trunk/examples/messaging/src/org/jboss/messaging/example/HttpClient.java
===================================================================
--- trunk/examples/messaging/src/org/jboss/messaging/example/HttpClient.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/examples/messaging/src/org/jboss/messaging/example/HttpClient.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -53,12 +53,12 @@
          SimpleString queue = new SimpleString("queuejms.testQueue");
          ClientProducer clientProducer = clientSession.createProducer(queue);
          ClientMessage message = clientSession.createClientMessage(false);
-         message.getBody().putString("Hello!");
+         message.getBody().writeString("Hello!");
          clientProducer.send(message);
          ClientConsumer clientConsumer = clientSession.createConsumer(queue);
          clientSession.start();
          ClientMessage msg = clientConsumer.receive(5000);
-         System.out.println("msg.getPayload() = " + msg.getBody().getString());
+         System.out.println("msg.getPayload() = " + msg.getBody().readString());
          msg.acknowledge();
       }
       catch(Exception e)

Modified: trunk/examples/messaging/src/org/jboss/messaging/example/ManagementClient.java
===================================================================
--- trunk/examples/messaging/src/org/jboss/messaging/example/ManagementClient.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/examples/messaging/src/org/jboss/messaging/example/ManagementClient.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -192,7 +192,7 @@
    {
       ClientProducer clientProducer = clientSession.createProducer(queue);
       ClientMessage message = clientSession.createClientMessage(false);
-      message.getBody().putString("Hello, World!");
+      message.getBody().writeString("Hello, World!");
       clientProducer.send(message);
       clientProducer.send(message);
       clientProducer.send(message);

Modified: trunk/examples/messaging/src/org/jboss/messaging/example/SSLClient.java
===================================================================
--- trunk/examples/messaging/src/org/jboss/messaging/example/SSLClient.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/examples/messaging/src/org/jboss/messaging/example/SSLClient.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -51,13 +51,13 @@
          SimpleString queue = new SimpleString("queuejms.testQueue");
          ClientProducer clientProducer = clientSession.createProducer(queue);
          ClientMessage message = clientSession.createClientMessage(false);
-         message.getBody().putString("Hello!");
+         message.getBody().writeString("Hello!");
          clientProducer.send(message);
          ClientConsumer clientConsumer = clientSession.createConsumer(queue);
          clientSession.start();
          ClientMessage msg = clientConsumer.receive(5000);
          msg.acknowledge();
-         System.out.println("msg.getPayload() = " + msg.getBody().getString());
+         System.out.println("msg.getPayload() = " + msg.getBody().readString());
       }
       catch(Exception e)
       {

Modified: trunk/examples/messaging/src/org/jboss/messaging/example/ScheduledMessageExample.java
===================================================================
--- trunk/examples/messaging/src/org/jboss/messaging/example/ScheduledMessageExample.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/examples/messaging/src/org/jboss/messaging/example/ScheduledMessageExample.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -55,7 +55,7 @@
          SimpleString queue = new SimpleString("queuejms.testQueue");
          ClientProducer clientProducer = clientSession.createProducer(queue);
          ClientMessage message = clientSession.createClientMessage(false);
-         message.getBody().putString("Hello!");
+         message.getBody().writeString("Hello!");
          Calendar cal = Calendar.getInstance();
          log.info("current time " + df.format(cal.getTime()));
          cal.add(Calendar.SECOND, 5);

Modified: trunk/examples/messaging/src/org/jboss/messaging/example/SimpleClient.java
===================================================================
--- trunk/examples/messaging/src/org/jboss/messaging/example/SimpleClient.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/examples/messaging/src/org/jboss/messaging/example/SimpleClient.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -50,12 +50,12 @@
          SimpleString queue = new SimpleString("queuejms.testQueue");
          ClientProducer clientProducer = clientSession.createProducer(queue);
          ClientMessage message = clientSession.createClientMessage(JBossTextMessage.TYPE, false);
-         message.getBody().putString("Hello!");
+         message.getBody().writeString("Hello!");
          clientProducer.send(message);
          ClientConsumer clientConsumer = clientSession.createConsumer(queue);
          clientSession.start();
          ClientMessage msg = clientConsumer.receive(5000);
-         System.out.println("msg.getPayload() = " + msg.getBody().getString());
+         System.out.println("msg.getPayload() = " + msg.getBody().readString());
          msg.acknowledge();
       }
       catch(Exception e)

Modified: trunk/examples/messaging/src/org/jboss/messaging/example/SimpleExample.java
===================================================================
--- trunk/examples/messaging/src/org/jboss/messaging/example/SimpleExample.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/examples/messaging/src/org/jboss/messaging/example/SimpleExample.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -63,13 +63,13 @@
          clientSession.createQueue(atestq, atestq, null, false, true);
          ClientProducer clientProducer = clientSession.createProducer(atestq);
          ClientMessage message = clientSession.createClientMessage(false);
-         message.getBody().putString("Hello!");
+         message.getBody().writeString("Hello!");
          clientProducer.send(message);
          ClientConsumer clientConsumer = clientSession.createConsumer(atestq);
          clientSession.start();
          ClientMessage msg = clientConsumer.receive(5000);
          msg.acknowledge();
-         System.out.println("msg.getPayload() = " + msg.getBody().getString());
+         System.out.println("msg.getPayload() = " + msg.getBody().readString());
       }
       catch (Exception e)
       {

Modified: trunk/examples/messaging/src/org/jboss/messaging/example/WildCardClient.java
===================================================================
--- trunk/examples/messaging/src/org/jboss/messaging/example/WildCardClient.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/examples/messaging/src/org/jboss/messaging/example/WildCardClient.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -55,9 +55,9 @@
          ClientProducer clientProducer = clientSession.createProducer(queue);
          ClientProducer clientProducer2 = clientSession.createProducer(queue2);
          ClientMessage message = clientSession.createClientMessage(false);
-         message.getBody().putString("This is a message from queue " + queue);
+         message.getBody().writeString("This is a message from queue " + queue);
          ClientMessage message2 = clientSession.createClientMessage(false);
-         message2.getBody().putString("This is a message from queue " + queue2);
+         message2.getBody().writeString("This is a message from queue " + queue2);
 
          clientSession.createQueue(wildCardQ, wildCardQ, null, false, true);
          clientConsumer = clientSession.createConsumer(wildCardQ);
@@ -68,10 +68,10 @@
          clientSession.start();
          ClientMessage msg = clientConsumer.receive(5000);
          msg.acknowledge();
-         log.info("message received: " + msg.getBody().getString());
+         log.info("message received: " + msg.getBody().readString());
          ClientMessage msg2 = clientConsumer.receive(5000);
          msg2.acknowledge();
-         log.info("message received: " + msg2.getBody().getString());
+         log.info("message received: " + msg2.getBody().readString());
       }
       catch (Exception e)
       {

Modified: trunk/src/config/jbm-cluster-configuration.xml
===================================================================
--- trunk/src/config/jbm-cluster-configuration.xml	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/config/jbm-cluster-configuration.xml	2009-02-27 20:23:47 UTC (rev 5948)
@@ -114,13 +114,6 @@
          <param key="jbm.remoting.netty.httpserverscanperiod" value="5000" type="Long"/>
       </acceptor>-->
 
-      <!-- Mina Acceptor -->
-      <acceptor name="mina">
-         <factory-class>org.jboss.messaging.integration.transports.mina.MinaAcceptorFactory</factory-class>           	            
-         <param key="jbm.remoting.mina.host" value="localhost" type="String"/>
-         <param key="jbm.remoting.mina.port" value="${jbm.remoting.mina.port}" type="Integer"/>	                     
-      </acceptor>
-      
             <!-- Clustering configuration -->
       
       <broadcast-group name="bg-group1">

Modified: trunk/src/config/jbm-configuration.xml
===================================================================
--- trunk/src/config/jbm-configuration.xml	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/config/jbm-configuration.xml	2009-02-27 20:23:47 UTC (rev 5948)
@@ -115,13 +115,6 @@
          <param key="jbm.remoting.netty.httpserverscanperiod" value="5000" type="Long"/>
       </acceptor>-->
 
-      <!-- Mina Acceptor -->
-      <acceptor name="mina">
-         <factory-class>org.jboss.messaging.integration.transports.mina.MinaAcceptorFactory</factory-class>           	            
-         <param key="jbm.remoting.mina.host" value="localhost" type="String"/>
-         <param key="jbm.remoting.mina.port" value="5600" type="Integer"/>	                     
-      </acceptor>
-      
       <!-- Clustering configuration -->
       
       <broadcast-group name="bg-group1">


Property changes on: trunk/src/main/org/jboss/messaging/core/buffers
___________________________________________________________________
Name: svn:mergeinfo
   + 

Added: trunk/src/main/org/jboss/messaging/core/buffers/AbstractChannelBuffer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/buffers/AbstractChannelBuffer.java	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/buffers/AbstractChannelBuffer.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -0,0 +1,779 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.messaging.core.buffers;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.ByteBuffer;
+import java.nio.channels.GatheringByteChannel;
+import java.nio.channels.ScatteringByteChannel;
+
+import org.jboss.messaging.utils.DataConstants;
+import org.jboss.messaging.utils.SimpleString;
+import org.jboss.messaging.utils.UTF8Util;
+
+/**
+ * A skeletal implementation of a buffer.
+ *
+ * @author The Netty Project (netty-dev at lists.jboss.org)
+ * @author Trustin Lee (tlee at redhat.com)
+ *
+ * @version $Rev: 303 $, $Date: 2008-09-24 18:48:32 +0900 (Wed, 24 Sep 2008) $
+ */
+public abstract class AbstractChannelBuffer implements ChannelBuffer
+{
+
+   private int readerIndex;
+
+   private int writerIndex;
+
+   private int markedReaderIndex;
+
+   private int markedWriterIndex;
+
+   public int readerIndex()
+   {
+      return readerIndex;
+   }
+
+   public void readerIndex(final int readerIndex)
+   {
+      if (readerIndex < 0 || readerIndex > writerIndex)
+      {
+         throw new IndexOutOfBoundsException();
+      }
+      this.readerIndex = readerIndex;
+   }
+
+   public int writerIndex()
+   {
+      return writerIndex;
+   }
+
+   public void writerIndex(final int writerIndex)
+   {
+      if (writerIndex < readerIndex || writerIndex > capacity())
+      {
+         throw new IndexOutOfBoundsException();
+      }
+      this.writerIndex = writerIndex;
+   }
+
+   public void setIndex(final int readerIndex, final int writerIndex)
+   {
+      if (readerIndex < 0 || readerIndex > writerIndex || writerIndex > capacity())
+      {
+         throw new IndexOutOfBoundsException();
+      }
+      this.readerIndex = readerIndex;
+      this.writerIndex = writerIndex;
+   }
+
+   public void clear()
+   {
+      readerIndex = writerIndex = 0;
+   }
+
+   public boolean readable()
+   {
+      return readableBytes() > 0;
+   }
+
+   public boolean writable()
+   {
+      return writableBytes() > 0;
+   }
+
+   public int readableBytes()
+   {
+      return writerIndex - readerIndex;
+   }
+
+   public int writableBytes()
+   {
+      return capacity() - writerIndex;
+   }
+
+   public void markReaderIndex()
+   {
+      markedReaderIndex = readerIndex;
+   }
+
+   public void resetReaderIndex()
+   {
+      readerIndex(markedReaderIndex);
+   }
+
+   public void markWriterIndex()
+   {
+      markedWriterIndex = writerIndex;
+   }
+
+   public void resetWriterIndex()
+   {
+      writerIndex = markedWriterIndex;
+   }
+
+   public void discardReadBytes()
+   {
+      if (readerIndex == 0)
+      {
+         return;
+      }
+      setBytes(0, this, readerIndex, writerIndex - readerIndex);
+      writerIndex -= readerIndex;
+      markedReaderIndex = Math.max(markedReaderIndex - readerIndex, 0);
+      markedWriterIndex = Math.max(markedWriterIndex - readerIndex, 0);
+      readerIndex = 0;
+   }
+
+   public short getUnsignedByte(final int index)
+   {
+      return (short)(getByte(index) & 0xFF);
+   }
+
+   public int getUnsignedShort(final int index)
+   {
+      return getShort(index) & 0xFFFF;
+   }
+
+   public int getMedium(final int index)
+   {
+      int value = getUnsignedMedium(index);
+      if ((value & 0x800000) != 0)
+      {
+         value |= 0xff000000;
+      }
+      return value;
+   }
+
+   public long getUnsignedInt(final int index)
+   {
+      return getInt(index) & 0xFFFFFFFFL;
+   }
+
+   public void getBytes(final int index, final byte[] dst)
+   {
+      getBytes(index, dst, 0, dst.length);
+   }
+
+   public void getBytes(final int index, final ChannelBuffer dst)
+   {
+      getBytes(index, dst, dst.writableBytes());
+   }
+
+   public void getBytes(final int index, final ChannelBuffer dst, final int length)
+   {
+      if (length > dst.writableBytes())
+      {
+         throw new IndexOutOfBoundsException();
+      }
+      getBytes(index, dst, dst.writerIndex(), length);
+      dst.writerIndex(dst.writerIndex() + length);
+   }
+
+   public void setBytes(final int index, final byte[] src)
+   {
+      setBytes(index, src, 0, src.length);
+   }
+
+   public void setBytes(final int index, final ChannelBuffer src)
+   {
+      setBytes(index, src, src.readableBytes());
+   }
+
+   public void setBytes(final int index, final ChannelBuffer src, final int length)
+   {
+      if (length > src.readableBytes())
+      {
+         throw new IndexOutOfBoundsException();
+      }
+      setBytes(index, src, src.readerIndex(), length);
+      src.readerIndex(src.readerIndex() + length);
+   }
+
+   public void setZero(int index, final int length)
+   {
+      if (length == 0)
+      {
+         return;
+      }
+      if (length < 0)
+      {
+         throw new IllegalArgumentException("length must be 0 or greater than 0.");
+      }
+
+      int nLong = length >>> 3;
+      int nBytes = length & 7;
+      for (int i = nLong; i > 0; i--)
+      {
+         setLong(index, 0);
+         index += 8;
+      }
+      if (nBytes == 4)
+      {
+         setInt(index, 0);
+      }
+      else if (nBytes < 4)
+      {
+         for (int i = nBytes; i > 0; i--)
+         {
+            setByte(index, (byte)0);
+            index++;
+         }
+      }
+      else
+      {
+         setInt(index, 0);
+         index += 4;
+         for (int i = nBytes - 4; i > 0; i--)
+         {
+            setByte(index, (byte)0);
+            index++;
+         }
+      }
+   }
+
+   public byte readByte()
+   {
+      if (readerIndex == writerIndex)
+      {
+         throw new IndexOutOfBoundsException();
+      }
+      return getByte(readerIndex++);
+   }
+
+   public short readUnsignedByte()
+   {
+      return (short)(readByte() & 0xFF);
+   }
+
+   public short readShort()
+   {
+      checkReadableBytes(2);
+      short v = getShort(readerIndex);
+      readerIndex += 2;
+      return v;
+   }
+
+   public int readUnsignedShort()
+   {
+      return readShort() & 0xFFFF;
+   }
+
+   public int readMedium()
+   {
+      int value = readUnsignedMedium();
+      if ((value & 0x800000) != 0)
+      {
+         value |= 0xff000000;
+      }
+      return value;
+   }
+
+   public int readUnsignedMedium()
+   {
+      checkReadableBytes(3);
+      int v = getUnsignedMedium(readerIndex);
+      readerIndex += 3;
+      return v;
+   }
+
+   public int readInt()
+   {
+      checkReadableBytes(4);
+      int v = getInt(readerIndex);
+      readerIndex += 4;
+      return v;
+   }
+
+   public long readUnsignedInt()
+   {
+      return readInt() & 0xFFFFFFFFL;
+   }
+
+   public long readLong()
+   {
+      checkReadableBytes(8);
+      long v = getLong(readerIndex);
+      readerIndex += 8;
+      return v;
+   }
+
+   public void readBytes(final byte[] dst, final int dstIndex, final int length)
+   {
+      checkReadableBytes(length);
+      getBytes(readerIndex, dst, dstIndex, length);
+      readerIndex += length;
+   }
+
+   public void readBytes(final byte[] dst)
+   {
+      readBytes(dst, 0, dst.length);
+   }
+
+   public void readBytes(final ChannelBuffer dst)
+   {
+      readBytes(dst, dst.writableBytes());
+   }
+
+   public void readBytes(final ChannelBuffer dst, final int length)
+   {
+      if (length > dst.writableBytes())
+      {
+         throw new IndexOutOfBoundsException();
+      }
+      readBytes(dst, dst.writerIndex(), length);
+      dst.writerIndex(dst.writerIndex() + length);
+   }
+
+   public void readBytes(final ChannelBuffer dst, final int dstIndex, final int length)
+   {
+      checkReadableBytes(length);
+      getBytes(readerIndex, dst, dstIndex, length);
+      readerIndex += length;
+   }
+
+   public void readBytes(final ByteBuffer dst)
+   {
+      int length = dst.remaining();
+      checkReadableBytes(length);
+      getBytes(readerIndex, dst);
+      readerIndex += length;
+   }
+
+   public int readBytes(final GatheringByteChannel out, final int length) throws IOException
+   {
+      checkReadableBytes(length);
+      int readBytes = getBytes(readerIndex, out, length);
+      readerIndex += readBytes;
+      return readBytes;
+   }
+
+   public void readBytes(final OutputStream out, final int length) throws IOException
+   {
+      checkReadableBytes(length);
+      getBytes(readerIndex, out, length);
+      readerIndex += length;
+   }
+
+   public void skipBytes(final int length)
+   {
+      int newReaderIndex = readerIndex + length;
+      if (newReaderIndex > writerIndex)
+      {
+         throw new IndexOutOfBoundsException();
+      }
+      readerIndex = newReaderIndex;
+   }
+
+   public void writeByte(final byte value)
+   {
+      setByte(writerIndex++, value);
+   }
+
+   public void writeShort(final short value)
+   {
+      setShort(writerIndex, value);
+      writerIndex += 2;
+   }
+
+   public void writeMedium(final int value)
+   {
+      setMedium(writerIndex, value);
+      writerIndex += 3;
+   }
+
+   public void writeInt(final int value)
+   {
+      setInt(writerIndex, value);
+      writerIndex += 4;
+   }
+
+   public void writeLong(final long value)
+   {
+      setLong(writerIndex, value);
+      writerIndex += 8;
+   }
+
+   public void writeBytes(final byte[] src, final int srcIndex, final int length)
+   {
+      setBytes(writerIndex, src, srcIndex, length);
+      writerIndex += length;
+   }
+
+   public void writeBytes(final byte[] src)
+   {
+      writeBytes(src, 0, src.length);
+   }
+
+   public void writeBytes(final ChannelBuffer src)
+   {
+      writeBytes(src, src.readableBytes());
+   }
+
+   public void writeBytes(final ChannelBuffer src, final int length)
+   {
+      if (length > src.readableBytes())
+      {
+         throw new IndexOutOfBoundsException();
+      }
+      writeBytes(src, src.readerIndex(), length);
+      src.readerIndex(src.readerIndex() + length);
+   }
+
+   public void writeBytes(final ChannelBuffer src, final int srcIndex, final int length)
+   {
+      setBytes(writerIndex, src, srcIndex, length);
+      writerIndex += length;
+   }
+
+   public void writeBytes(final ByteBuffer src)
+   {
+      int length = src.remaining();
+      setBytes(writerIndex, src);
+      writerIndex += length;
+   }
+
+   public void writeBytes(final InputStream in, final int length) throws IOException
+   {
+      setBytes(writerIndex, in, length);
+      writerIndex += length;
+   }
+
+   public int writeBytes(final ScatteringByteChannel in, final int length) throws IOException
+   {
+      int writtenBytes = setBytes(writerIndex, in, length);
+      if (writtenBytes > 0)
+      {
+         writerIndex += writtenBytes;
+      }
+      return writtenBytes;
+   }
+
+   public void writeZero(final int length)
+   {
+      if (length == 0)
+      {
+         return;
+      }
+      if (length < 0)
+      {
+         throw new IllegalArgumentException("length must be 0 or greater than 0.");
+      }
+      int nLong = length >>> 3;
+      int nBytes = length & 7;
+      for (int i = nLong; i > 0; i--)
+      {
+         writeLong(0);
+      }
+      if (nBytes == 4)
+      {
+         writeInt(0);
+      }
+      else if (nBytes < 4)
+      {
+         for (int i = nBytes; i > 0; i--)
+         {
+            writeByte((byte)0);
+         }
+      }
+      else
+      {
+         writeInt(0);
+         for (int i = nBytes - 4; i > 0; i--)
+         {
+            writeByte((byte)0);
+         }
+      }
+   }
+
+   public ByteBuffer toByteBuffer()
+   {
+      return toByteBuffer(readerIndex, readableBytes());
+   }
+
+   public ByteBuffer[] toByteBuffers()
+   {
+      return toByteBuffers(readerIndex, readableBytes());
+   }
+
+   public ByteBuffer[] toByteBuffers(final int index, final int length)
+   {
+      return new ByteBuffer[] { toByteBuffer(index, length) };
+   }
+
+   public String toString(final String charsetName)
+   {
+      return toString(readerIndex, readableBytes(), charsetName);
+   }
+
+   @Override
+   public int hashCode()
+   {
+      return ChannelBuffers.hashCode(this);
+   }
+
+   @Override
+   public boolean equals(final Object o)
+   {
+      if (!(o instanceof ChannelBuffer))
+      {
+         return false;
+      }
+      return ChannelBuffers.equals(this, (ChannelBuffer)o);
+   }
+
+   public int compareTo(final ChannelBuffer that)
+   {
+      return ChannelBuffers.compare(this, that);
+   }
+
+   @Override
+   public String toString()
+   {
+      return getClass().getSimpleName() + '(' +
+             "ridx=" +
+             readerIndex +
+             ", " +
+             "widx=" +
+             writerIndex +
+             ", " +
+             "cap=" +
+             capacity() +
+             ')';
+   }
+
+   /**
+    * Throws an {@link IndexOutOfBoundsException} if the current
+    * {@linkplain #readableBytes() readable bytes} of this buffer is less
+    * than the specified value.
+    */
+   protected void checkReadableBytes(final int minimumReadableBytes)
+   {
+      if (readableBytes() < minimumReadableBytes)
+      {
+         throw new IndexOutOfBoundsException();
+      }
+   }
+
+   public Object getUnderlyingBuffer()
+   {
+      return this;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readBoolean()
+    */
+   public boolean readBoolean()
+   {
+      return readByte() != 0;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readChar()
+    */
+   public char readChar()
+   {
+      return (char)readShort();
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readDouble()
+    */
+   public double readDouble()
+   {
+      return Double.longBitsToDouble(readLong());
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readFloat()
+    */
+   public float readFloat()
+   {
+      return Float.intBitsToFloat(readInt());
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readNullableSimpleString()
+    */
+   public SimpleString readNullableSimpleString()
+   {
+      int b = readByte();
+      if (b == DataConstants.NULL)
+      {
+         return null;
+      }
+      else
+      {
+         return readSimpleString();
+      }
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readNullableString()
+    */
+   public String readNullableString()
+   {
+      int b = readByte();
+      if (b == DataConstants.NULL)
+      {
+         return null;
+      }
+      else
+      {
+         return readString();
+      }
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readSimpleString()
+    */
+   public SimpleString readSimpleString()
+   {
+      int len = readInt();
+      byte[] data = new byte[len];
+      readBytes(data);
+      return new SimpleString(data);
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readString()
+    */
+   public String readString()
+   {
+      int len = readInt();
+      char[] chars = new char[len];
+      for (int i = 0; i < len; i++)
+      {
+         chars[i] = readChar();
+      }
+      return new String(chars);
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readUTF()
+    */
+   public String readUTF() throws Exception
+   {
+      return UTF8Util.readUTF(this);
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeBoolean(boolean)
+    */
+   public void writeBoolean(final boolean val)
+   {
+      writeByte((byte)(val ? -1 : 0));
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeChar(char)
+    */
+   public void writeChar(final char val)
+   {
+      writeShort((short)val);
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeDouble(double)
+    */
+   public void writeDouble(final double val)
+   {
+      writeLong(Double.doubleToLongBits(val));
+
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeFloat(float)
+    */
+   public void writeFloat(final float val)
+   {
+      writeInt(Float.floatToIntBits(val));
+
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeNullableSimpleString(org.jboss.messaging.util.SimpleString)
+    */
+   public void writeNullableSimpleString(final SimpleString val)
+   {
+      if (val == null)
+      {
+         writeByte(DataConstants.NULL);
+      }
+      else
+      {
+         writeByte(DataConstants.NOT_NULL);
+         writeSimpleString(val);
+      }
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeNullableString(java.lang.String)
+    */
+   public void writeNullableString(final String val)
+   {
+      if (val == null)
+      {
+         writeByte(DataConstants.NULL);
+      }
+      else
+      {
+         writeByte(DataConstants.NOT_NULL);
+         writeString(val);
+      }
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeSimpleString(org.jboss.messaging.util.SimpleString)
+    */
+   public void writeSimpleString(final SimpleString val)
+   {
+      byte[] data = val.getData();
+      writeInt(data.length);
+      writeBytes(data);
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeString(java.lang.String)
+    */
+   public void writeString(final String val)
+   {
+      writeInt(val.length());
+      for (int i = 0; i < val.length(); i++)
+      {
+         writeShort((short)val.charAt(i));
+      }
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeUTF(java.lang.String)
+    */
+   public void writeUTF(final String utf) throws Exception
+   {
+      UTF8Util.saveUTF(this, utf);
+   }
+
+}

Added: trunk/src/main/org/jboss/messaging/core/buffers/ByteBufferBackedChannelBuffer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/buffers/ByteBufferBackedChannelBuffer.java	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/buffers/ByteBufferBackedChannelBuffer.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -0,0 +1,383 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.messaging.core.buffers;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.GatheringByteChannel;
+import java.nio.channels.ScatteringByteChannel;
+import java.nio.charset.UnsupportedCharsetException;
+
+/**
+ * A NIO {@link ByteBuffer} based buffer.  It is recommended to use {@link ChannelBuffers#directBuffer(int)}
+ * and {@link ChannelBuffers#wrappedBuffer(ByteBuffer)} instead of calling the
+ * constructor explicitly.
+ *
+ * @author The Netty Project (netty-dev at lists.jboss.org)
+ * @author Trustin Lee (tlee at redhat.com)
+ *
+ * @version $Rev: 486 $, $Date: 2008-11-16 22:52:47 +0900 (Sun, 16 Nov 2008) $
+ *
+ */
+public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer
+{
+
+   private final ByteBuffer buffer;
+
+   private final int capacity;
+
+   /**
+    * Creates a new buffer which wraps the specified buffer's slice.
+    */
+   ByteBufferBackedChannelBuffer(final ByteBuffer buffer)
+   {
+      if (buffer == null)
+      {
+         throw new NullPointerException("buffer");
+      }
+
+      this.buffer = buffer.slice();
+      capacity = buffer.remaining();
+   }
+
+   public int capacity()
+   {
+      return capacity;
+   }
+
+   public byte getByte(final int index)
+   {
+      return buffer.get(index);
+   }
+
+   public short getShort(final int index)
+   {
+      return buffer.getShort(index);
+   }
+
+   public int getUnsignedMedium(final int index)
+   {
+      return (getByte(index) & 0xff) << 16 | (getByte(index + 1) & 0xff) << 8 | (getByte(index + 2) & 0xff) << 0;
+   }
+
+   public int getInt(final int index)
+   {
+      return buffer.getInt(index);
+   }
+
+   public long getLong(final int index)
+   {
+      return buffer.getLong(index);
+   }
+
+   public void getBytes(final int index, final ChannelBuffer dst, final int dstIndex, final int length)
+   {
+      if (dst instanceof ByteBufferBackedChannelBuffer)
+      {
+         ByteBufferBackedChannelBuffer bbdst = (ByteBufferBackedChannelBuffer)dst;
+         ByteBuffer data = bbdst.buffer.duplicate();
+
+         data.limit(dstIndex + length).position(dstIndex);
+         getBytes(index, data);
+      }
+      else if (buffer.hasArray())
+      {
+         dst.setBytes(dstIndex, buffer.array(), index + buffer.arrayOffset(), length);
+      }
+      else
+      {
+         dst.setBytes(dstIndex, this, index, length);
+      }
+   }
+
+   public void getBytes(final int index, final byte[] dst, final int dstIndex, final int length)
+   {
+      ByteBuffer data = buffer.duplicate();
+      try
+      {
+         data.limit(index + length).position(index);
+      }
+      catch (IllegalArgumentException e)
+      {
+         throw new IndexOutOfBoundsException();
+      }
+      data.get(dst, dstIndex, length);
+   }
+
+   public void getBytes(final int index, final ByteBuffer dst)
+   {
+      ByteBuffer data = buffer.duplicate();
+      int bytesToCopy = Math.min(capacity() - index, dst.remaining());
+      try
+      {
+         data.limit(index + bytesToCopy).position(index);
+      }
+      catch (IllegalArgumentException e)
+      {
+         throw new IndexOutOfBoundsException();
+      }
+      dst.put(data);
+   }
+
+   public void setByte(final int index, final byte value)
+   {
+      buffer.put(index, value);
+   }
+
+   public void setShort(final int index, final short value)
+   {
+      buffer.putShort(index, value);
+   }
+
+   public void setMedium(final int index, final int value)
+   {
+      setByte(index, (byte)(value >>> 16));
+      setByte(index + 1, (byte)(value >>> 8));
+      setByte(index + 2, (byte)(value >>> 0));
+   }
+
+   public void setInt(final int index, final int value)
+   {
+      buffer.putInt(index, value);
+   }
+
+   public void setLong(final int index, final long value)
+   {
+      buffer.putLong(index, value);
+   }
+
+   public void setBytes(final int index, final ChannelBuffer src, final int srcIndex, final int length)
+   {
+      if (src instanceof ByteBufferBackedChannelBuffer)
+      {
+         ByteBufferBackedChannelBuffer bbsrc = (ByteBufferBackedChannelBuffer)src;
+         ByteBuffer data = bbsrc.buffer.duplicate();
+
+         data.limit(srcIndex + length).position(srcIndex);
+         setBytes(index, data);
+      }
+      else if (buffer.hasArray())
+      {
+         src.getBytes(srcIndex, buffer.array(), index + buffer.arrayOffset(), length);
+      }
+      else
+      {
+         src.getBytes(srcIndex, this, index, length);
+      }
+   }
+
+   public void setBytes(final int index, final byte[] src, final int srcIndex, final int length)
+   {
+      ByteBuffer data = buffer.duplicate();
+      data.limit(index + length).position(index);
+      data.put(src, srcIndex, length);
+   }
+
+   public void setBytes(final int index, final ByteBuffer src)
+   {
+      ByteBuffer data = buffer.duplicate();
+      data.limit(index + src.remaining()).position(index);
+      data.put(src);
+   }
+
+   public void getBytes(final int index, final OutputStream out, final int length) throws IOException
+   {
+      if (length == 0)
+      {
+         return;
+      }
+
+      if (!buffer.isReadOnly() && buffer.hasArray())
+      {
+         out.write(buffer.array(), index + buffer.arrayOffset(), length);
+      }
+      else
+      {
+         byte[] tmp = new byte[length];
+         ((ByteBuffer)buffer.duplicate().position(index)).get(tmp);
+         out.write(tmp);
+      }
+   }
+
+   public int getBytes(final int index, final GatheringByteChannel out, final int length) throws IOException
+   {
+      if (length == 0)
+      {
+         return 0;
+      }
+
+      return out.write((ByteBuffer)buffer.duplicate().position(index).limit(index + length));
+   }
+
+   public int setBytes(int index, final InputStream in, int length) throws IOException
+   {
+
+      int readBytes = 0;
+
+      if (!buffer.isReadOnly() && buffer.hasArray())
+      {
+         index += buffer.arrayOffset();
+         do
+         {
+            int localReadBytes = in.read(buffer.array(), index, length);
+            if (localReadBytes < 0)
+            {
+               if (readBytes == 0)
+               {
+                  return -1;
+               }
+               else
+               {
+                  break;
+               }
+            }
+            readBytes += localReadBytes;
+            index += localReadBytes;
+            length -= localReadBytes;
+         }
+         while (length > 0);
+      }
+      else
+      {
+         byte[] tmp = new byte[length];
+         int i = 0;
+         do
+         {
+            int localReadBytes = in.read(tmp, i, tmp.length - i);
+            if (localReadBytes < 0)
+            {
+               if (readBytes == 0)
+               {
+                  return -1;
+               }
+               else
+               {
+                  break;
+               }
+            }
+            readBytes += localReadBytes;
+            i += readBytes;
+         }
+         while (i < tmp.length);
+         ((ByteBuffer)buffer.duplicate().position(index)).put(tmp);
+      }
+
+      return readBytes;
+   }
+
+   public int setBytes(final int index, final ScatteringByteChannel in, final int length) throws IOException
+   {
+
+      ByteBuffer slice = (ByteBuffer)buffer.duplicate().limit(index + length).position(index);
+      int readBytes = 0;
+
+      while (readBytes < length)
+      {
+         int localReadBytes;
+         try
+         {
+            localReadBytes = in.read(slice);
+         }
+         catch (ClosedChannelException e)
+         {
+            localReadBytes = -1;
+         }
+         if (localReadBytes < 0)
+         {
+            if (readBytes == 0)
+            {
+               return -1;
+            }
+            else
+            {
+               return readBytes;
+            }
+         }
+         else if (localReadBytes == 0)
+         {
+            break;
+         }
+         readBytes += localReadBytes;
+      }
+
+      return readBytes;
+   }
+
+   public ByteBuffer toByteBuffer(final int index, final int length)
+   {
+      if (index == 0 && length == capacity())
+      {
+         return buffer.duplicate();
+      }
+      else
+      {
+         return ((ByteBuffer)buffer.duplicate().position(index).limit(index + length)).slice();
+      }
+   }
+
+   @Override
+   public ByteBuffer toByteBuffer()
+   {
+      return buffer;
+   }
+
+   public String toString(final int index, final int length, final String charsetName)
+   {
+      if (!buffer.isReadOnly() && buffer.hasArray())
+      {
+         try
+         {
+            return new String(buffer.array(), index + buffer.arrayOffset(), length, charsetName);
+         }
+         catch (UnsupportedEncodingException e)
+         {
+            throw new UnsupportedCharsetException(charsetName);
+         }
+      }
+      else
+      {
+         byte[] tmp = new byte[length];
+         ((ByteBuffer)buffer.duplicate().position(index)).get(tmp);
+         try
+         {
+            return new String(tmp, charsetName);
+         }
+         catch (UnsupportedEncodingException e)
+         {
+            throw new UnsupportedCharsetException(charsetName);
+         }
+      }
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.buffers.ChannelBuffer#array()
+    */
+   public byte[] array()
+   {
+      return buffer.array();
+   }
+}

Added: trunk/src/main/org/jboss/messaging/core/buffers/ChannelBuffer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/buffers/ChannelBuffer.java	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/buffers/ChannelBuffer.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -0,0 +1,1265 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.messaging.core.buffers;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.ByteBuffer;
+import java.nio.channels.GatheringByteChannel;
+import java.nio.channels.ScatteringByteChannel;
+import java.nio.charset.UnsupportedCharsetException;
+
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
+
+/**
+ * A random and sequential accessible sequence of zero or more bytes (octets).
+ * This interface provides an abstract view for one or more primitive byte
+ * arrays ({@code byte[]}) and {@linkplain ByteBuffer NIO buffers}.
+ *
+ * <h3>Creation of a buffer</h3>
+ *
+ * It is recommended to create a new buffer using the helper methods in
+ * {@link ChannelBuffers} rather than calling an individual implementation's
+ * constructor.
+ *
+ * <h3>Random Access Indexing</h3>
+ *
+ * Just like an ordinary primitive byte array, {@link ChannelBuffer} uses
+ * <a href="http://en.wikipedia.org/wiki/Index_(information_technology)#Array_element_identifier">zero-based indexing</a>.
+ * It means the index of the first byte is always {@code 0} and the index of
+ * the last byte is always {@link #capacity() capacity - 1}.  For example, to
+ * iterate all bytes of a buffer, you can do the following, regardless of
+ * its internal implementation:
+ *
+ * <pre>
+ * ChannelBuffer buffer = ...;
+ * for (int i = 0; i &lt; buffer.capacity(); i ++</strong>) {
+ *     byte b = array.getByte(i);
+ *     System.out.println((char) b);
+ * }
+ * </pre>
+ *
+ * <h3>Sequential Access Indexing</h3>
+ *
+ * {@link ChannelBuffer} provides two pointer variables to support sequential
+ * read and write operations - {@link #readerIndex() readerIndex} for a read
+ * operation and {@link #writerIndex() writerIndex} for a write operation
+ * respectively.  The following diagram shows how a buffer is segmented into
+ * three areas by the two pointers:
+ *
+ * <pre>
+ *      +-------------------+------------------+------------------+
+ *      | discardable bytes |  readable bytes  |  writable bytes  |
+ *      |                   |     (CONTENT)    |                  |
+ *      +-------------------+------------------+------------------+
+ *      |                   |                  |                  |
+ *      0      <=      readerIndex   <=   writerIndex    <=    capacity
+ * </pre>
+ *
+ * <h4>Readable bytes (the actual content)</h4>
+ *
+ * This segment is where the actual data is stored.  Any operation whose name
+ * starts with {@code read} or {@code skip} will get or skip the data at the
+ * current {@link #readerIndex() readerIndex} and increase it by the number of
+ * read bytes.  If the argument of the read operation is also a
+ * {@link ChannelBuffer} and no start index is specified, the specified
+ * buffer's {@link #readerIndex() readerIndex} is increased together.
+ * <p>
+ * If there's not enough content left, {@link IndexOutOfBoundsException} is
+ * raised.  The default value of newly allocated, wrapped or copied buffer's
+ * {@link #readerIndex() readerIndex} is {@code 0}.
+ *
+ * <pre>
+ * // Iterates the readable bytes of a buffer.
+ * ChannelBuffer buffer = ...;
+ * while (buffer.readable()) {
+ *     System.out.println(buffer.readByte());
+ * }
+ * </pre>
+ *
+ * <h4>Writable bytes</h4>
+ *
+ * This segment is a undefined space which needs to be filled.  Any operation
+ * whose name ends with {@code write} will write the data at the current
+ * {@link #writerIndex() writerIndex} and increase it by the number of written
+ * bytes.  If the argument of the write operation is also a {@link ChannelBuffer},
+ * and no start index is specified, the specified buffer's
+ * {@link #readerIndex() readerIndex} is increased together.
+ * <p>
+ * If there's not enough writable bytes left, {@link IndexOutOfBoundsException}
+ * is raised.  The default value of newly allocated buffer's
+ * {@link #writerIndex() writerIndex} is {@code 0}.  The default value of
+ * wrapped or copied buffer's {@link #writerIndex() writerIndex} is the
+ * {@link #capacity() capacity} of the buffer.
+ *
+ * <pre>
+ * // Fills the writable bytes of a buffer with random integers.
+ * ChannelBuffer buffer = ...;
+ * while (buffer.writableBytes() >= 4) {
+ *     buffer.writeInt(random.nextInt());
+ * }
+ * </pre>
+ *
+ * <h4>Discardable bytes</h4>
+ *
+ * This segment contains the bytes which were read already by a read operation.
+ * Initially, the size of this segment is {@code 0}, but its size increases up
+ * to the {@link #writerIndex() writerIndex} as read operations are executed.
+ * The read bytes can be discarded by calling {@link #discardReadBytes()} to
+ * reclaim unused area as depicted by the following diagram:
+ *
+ * <pre>
+ *  BEFORE discardReadBytes()
+ *
+ *      +-------------------+------------------+------------------+
+ *      | discardable bytes |  readable bytes  |  writable bytes  |
+ *      +-------------------+------------------+------------------+
+ *      |                   |                  |                  |
+ *      0      <=      readerIndex   <=   writerIndex    <=    capacity
+ *
+ *
+ *  AFTER discardReadBytes()
+ *
+ *      +------------------+--------------------------------------+
+ *      |  readable bytes  |    writable bytes (got more space)   |
+ *      +------------------+--------------------------------------+
+ *      |                  |                                      |
+ * readerIndex (0) <= writerIndex (decreased)        <=        capacity
+ * </pre>
+ *
+ * <h4>Clearing the buffer indexes</h4>
+ *
+ * You can set both {@link #readerIndex() readerIndex} and
+ * {@link #writerIndex() writerIndex} to {@code 0} by calling {@link #clear()}.
+ * It does not clear the buffer content (e.g. filling with {@code 0}) but just
+ * clears the two pointers.  Please also note that the semantic of this
+ * operation is different from {@link ByteBuffer#clear()}.
+ *
+ * <pre>
+ *  BEFORE clear()
+ *
+ *      +-------------------+------------------+------------------+
+ *      | discardable bytes |  readable bytes  |  writable bytes  |
+ *      +-------------------+------------------+------------------+
+ *      |                   |                  |                  |
+ *      0      <=      readerIndex   <=   writerIndex    <=    capacity
+ *
+ *
+ *  AFTER clear()
+ *
+ *      +---------------------------------------------------------+
+ *      |             writable bytes (got more space)             |
+ *      +---------------------------------------------------------+
+ *      |                                                         |
+ *      0 = readerIndex = writerIndex            <=            capacity
+ * </pre>
+ *
+ * <h3>Search operations</h3>
+ *
+ * Various {@code indexOf()} methods help you locate an index of a value which
+ * meets a certain criteria.  Complicated dynamic sequential search can be done
+ * with {@link ChannelBufferIndexFinder} as well as simple static single byte
+ * search.
+ *
+ * <h3>Mark and reset</h3>
+ *
+ * There are two marker indexes in every buffer. One is for storing
+ * {@link #readerIndex() readerIndex} and the other is for storing
+ * {@link #writerIndex() writerIndex}.  You can always reposition one of the
+ * two indexes by calling a reset method.  It works in a similar fashion to
+ * the mark and reset methods in {@link InputStream} except that there's no
+ * {@code readlimit}.
+ *
+ * <h3>Derived buffers</h3>
+ *
+ * You can create a view of an existing buffer by calling either
+ * {@link #duplicate()}, {@link #slice()} or {@link #slice(int, int)}.
+ * A derived buffer will have an independent {@link #readerIndex() readerIndex},
+ * {@link #writerIndex() writerIndex} and marker indexes, while it shares
+ * other internal data representation, just like a NIO buffer does.
+ * <p>
+ * In case a completely fresh copy of an existing buffer is required, please
+ * call {@link #copy()} method instead.
+ *
+ * <h3>Conversion to existing JDK types</h3>
+ *
+ * <h4>NIO Buffers</h4>
+ *
+ * Various {@link #toByteBuffer()} and {@link #toByteBuffers()} methods convert
+ * a {@link ChannelBuffer} into one or more NIO buffers.  These methods avoid
+ * buffer allocation and memory copy whenever possible, but there's no
+ * guarantee that memory copy will not be involved or that an explicit memory
+ * copy will be involved.
+ *
+ * <h4>Strings</h4>
+ *
+ * Various {@link #toString(String)} methods convert a {@link ChannelBuffer}
+ * into a {@link String}.  Plesae note that {@link #toString()} is not a
+ * conversion method.
+ *
+ * <h4>I/O Streams</h4>
+ *
+ * Please refer to {@link ChannelBufferInputStream} and
+ * {@link ChannelBufferOutputStream}.
+ *
+ * @author The Netty Project (netty-dev at lists.jboss.org)
+ * @author Trustin Lee (tlee at redhat.com)
+ *
+ * @version $Rev: 472 $, $Date: 2008-11-14 16:45:53 +0900 (Fri, 14 Nov 2008) $
+ *
+ * @apiviz.landmark
+ */
+public interface ChannelBuffer extends Comparable<ChannelBuffer>, MessagingBuffer
+{
+
+   /**
+    * Returns the number of bytes (octets) this buffer can contain.
+    */
+   int capacity();
+
+   byte[] array();
+
+   /**
+    * Returns the {@code readerIndex} of this buffer.
+    */
+   int readerIndex();
+
+   /**
+    * Sets the {@code readerIndex} of this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code readerIndex} is
+    *            less than {@code 0} or
+    *            greater than {@code this.writerIndex}
+    */
+   void readerIndex(int readerIndex);
+
+   /**
+    * Returns the {@code writerIndex} of this buffer.
+    */
+   int writerIndex();
+
+   /**
+    * Sets the {@code writerIndex} of this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code writerIndex} is
+    *            less than {@code this.readerIndex} or
+    *            greater than {@code this.capacity}
+    */
+   void writerIndex(int writerIndex);
+
+   /**
+    * Sets the {@code readerIndex} and {@code writerIndex} of this buffer
+    * in one shot.  This method is useful when you have to worry about the
+    * invocation order of {@link #readerIndex(int)} and {@link #writerIndex(int)}
+    * methods.  For example, the following code will fail:
+    *
+    * <pre>
+    * // Create a buffer whose readerIndex, writerIndex and capacity are
+    * // 0, 0 and 8 respectively.
+    * ChannelBuffer buf = ChannelBuffers.buffer(8);
+    *
+    * // IndexOutOfBoundsException is thrown because the specified
+    * // readerIndex (2) cannot be greater than the current writerIndex (0).
+    * buf.readerIndex(2);
+    * buf.writerIndex(4);
+    * </pre>
+    *
+    * The following code will also fail:
+    *
+    * <pre>
+    * // Create a buffer whose readerIndex, writerIndex and capacity are
+    * // 0, 8 and 8 respectively.
+    * ChannelBuffer buf = ChannelBuffers.wrappedBuffer(new byte[8]);
+    *
+    * // readerIndex becomes 8.
+    * buf.readLong();
+    *
+    * // IndexOutOfBoundsException is thrown because the specified
+    * // writerIndex (4) cannot be less than the current readerIndex (8).
+    * buf.writerIndex(4);
+    * buf.readerIndex(2);
+    * </pre>
+    *
+    * By contrast, {@link #setIndex(int, int)} guarantees that it never
+    * throws an {@link IndexOutOfBoundsException} as long as the specified
+    * indexes meet basic constraints, regardless what the current index
+    * values of the buffer are:
+    *
+    * <pre>
+    * // No matter what the current state of the buffer is, the following
+    * // call always succeeds as long as the capacity of the buffer is not
+    * // less than 4.
+    * buf.setIndex(2, 4);
+    * </pre>
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code readerIndex} is less than 0,
+    *         if the specified {@code writerIndex} is less than the specified
+    *         {@code readerIndex} or if the specified {@code writerIndex} is
+    *         greater than {@code this.capacity}
+    */
+   void setIndex(int readerIndex, int writerIndex);
+
+   /**
+    * Returns the number of readable bytes which is equal to
+    * {@code (this.writerIndex - this.readerIndex)}.
+    */
+   int readableBytes();
+
+   /**
+    * Returns the number of writable bytes which is equal to
+    * {@code (this.capacity - this.writerIndex)}.
+    */
+   int writableBytes();
+
+   /**
+    * Returns {@code true}
+    * if and only if {@code (this.writerIndex - this.readerIndex)} is greater
+    * than {@code 0}.
+    */
+   boolean readable();
+
+   /**
+    * Returns {@code true}
+    * if and only if {@code (this.capacity - this.writerIndex)} is greater
+    * than {@code 0}.
+    */
+   boolean writable();
+
+   /**
+    * Sets the {@code readerIndex} and {@code writerIndex} of this buffer to
+    * {@code 0}.
+    * This method is identical to {@link #setIndex(int, int) setIndex(0, 0)}.
+    * <p>
+    * Please note that the behavior of this method is different
+    * from that of NIO buffer, which sets the {@code limit} to
+    * the {@code capacity} of the buffer.
+    */
+   void clear();
+
+   /**
+    * Marks the current {@code readerIndex} in this buffer.  You can
+    * reposition the current {@code readerIndex} to the marked
+    * {@code readerIndex} by calling {@link #resetReaderIndex()}.
+    * The initial value of the marked {@code readerIndex} is {@code 0}.
+    */
+   void markReaderIndex();
+
+   /**
+    * Repositions the current {@code readerIndex} to the marked
+    * {@code readerIndex} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the current {@code writerIndex} is less than the marked
+    *         {@code readerIndex}
+    */
+   void resetReaderIndex();
+
+   /**
+    * Marks the current {@code writerIndex} in this buffer.  You can
+    * reposition the current {@code writerIndex} to the marked
+    * {@code writerIndex} by calling {@link #resetWriterIndex()}.
+    * The initial value of the marked {@code writerIndex} is {@code 0}.
+    */
+   void markWriterIndex();
+
+   /**
+    * Repositions the current {@code writerIndex} to the marked
+    * {@code writerIndex} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the current {@code readerIndex} is greater than the marked
+    *         {@code writerIndex}
+    */
+   void resetWriterIndex();
+
+   /**
+    * Discards the bytes between the 0th index and {@code readerIndex}.
+    * It moves the bytes between {@code readerIndex} and {@code writerIndex}
+    * to the 0th index, and sets {@code readerIndex} and {@code writerIndex}
+    * to {@code 0} and {@code oldWriterIndex - oldReaderIndex} respectively.
+    * <p>
+    * Please refer to the class documentation for more detailed explanation.
+    */
+   void discardReadBytes();
+
+   /**
+    * Gets a byte at the specified absolute {@code index} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         {@code index + 1} is greater than {@code this.capacity}
+    */
+   byte getByte(int index);
+
+   /**
+    * Gets an unsigned byte at the specified absolute {@code index} in this
+    * buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         {@code index + 1} is greater than {@code this.capacity}
+    */
+   short getUnsignedByte(int index);
+
+   /**
+    * Gets a 16-bit short integer at the specified absolute {@code index} in
+    * this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         {@code index + 2} is greater than {@code this.capacity}
+    */
+   short getShort(int index);
+
+   /**
+    * Gets an unsigned 16-bit short integer at the specified absolute
+    * {@code index} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         {@code index + 2} is greater than {@code this.capacity}
+    */
+   int getUnsignedShort(int index);
+
+   /**
+    * Gets a 24-bit medium integer at the specified absolute {@code index} in
+    * this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         {@code index + 3} is greater than {@code this.capacity}
+    */
+   int getMedium(int index);
+
+   /**
+    * Gets an unsigned 24-bit medium integer at the specified absolute
+    * {@code index} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         {@code index + 3} is greater than {@code this.capacity}
+    */
+   int getUnsignedMedium(int index);
+
+   /**
+    * Gets a 32-bit integer at the specified absolute {@code index} in
+    * this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         {@code index + 4} is greater than {@code this.capacity}
+    */
+   int getInt(int index);
+
+   /**
+    * Gets an unsigned 32-bit integer at the specified absolute {@code index}
+    * in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         {@code index + 4} is greater than {@code this.capacity}
+    */
+   long getUnsignedInt(int index);
+
+   /**
+    * Gets a 64-bit long integer at the specified absolute {@code index} in
+    * this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         {@code index + 8} is greater than {@code this.capacity}
+    */
+   long getLong(int index);
+
+   /**
+    * Transfers this buffer's data to the specified destination starting at
+    * the specified absolute {@code index} until the destination becomes
+    * non-writable.  This method is basically same with
+    * {@link #getBytes(int, ChannelBuffer, int, int)}, except that this
+    * method increases the {@code writerIndex} of the destination by the
+    * number of the transferred bytes while
+    * {@link #getBytes(int, ChannelBuffer, int, int)} does not.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         if {@code index + dst.writableBytes} is greater than
+    *            {@code this.capacity}
+    */
+   void getBytes(int index, ChannelBuffer dst);
+
+   /**
+    * Transfers this buffer's data to the specified destination starting at
+    * the specified absolute {@code index}.  This method is basically same
+    * with {@link #getBytes(int, ChannelBuffer, int, int)}, except that this
+    * method increases the {@code writerIndex} of the destination by the
+    * number of the transferred bytes while
+    * {@link #getBytes(int, ChannelBuffer, int, int)} does not.
+    *
+    * @param length the number of bytes to transfer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0},
+    *         if {@code index + length} is greater than
+    *            {@code this.capacity}, or
+    *         if {@code length} is greater than {@code dst.writableBytes}
+    */
+   void getBytes(int index, ChannelBuffer dst, int length);
+
+   /**
+    * Transfers this buffer's data to the specified destination starting at
+    * the specified absolute {@code index}.
+    *
+    * @param dstIndex the first index of the destination
+    * @param length   the number of bytes to transfer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0},
+    *         if the specified {@code dstIndex} is less than {@code 0},
+    *         if {@code index + length} is greater than
+    *            {@code this.capacity}, or
+    *         if {@code dstIndex + length} is greater than
+    *            {@code dst.capacity}
+    */
+   void getBytes(int index, ChannelBuffer dst, int dstIndex, int length);
+
+   /**
+    * Transfers this buffer's data to the specified destination starting at
+    * the specified absolute {@code index}.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         if {@code index + dst.length} is greater than
+    *            {@code this.capacity}
+    */
+   void getBytes(int index, byte[] dst);
+
+   /**
+    * Transfers this buffer's data to the specified destination starting at
+    * the specified absolute {@code index}.
+    *
+    * @param dstIndex the first index of the destination
+    * @param length   the number of bytes to transfer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0},
+    *         if the specified {@code dstIndex} is less than {@code 0},
+    *         if {@code index + length} is greater than
+    *            {@code this.capacity}, or
+    *         if {@code dstIndex + length} is greater than
+    *            {@code dst.length}
+    */
+   void getBytes(int index, byte[] dst, int dstIndex, int length);
+
+   /**
+    * Transfers this buffer's data to the specified destination starting at
+    * the specified absolute {@code index} until the destination's position
+    * reaches its limit.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         if {@code index + dst.remaining()} is greater than
+    *            {@code this.capacity}
+    */
+   void getBytes(int index, ByteBuffer dst);
+
+   /**
+    * Transfers this buffer's data to the specified stream starting at the
+    * specified absolute {@code index}.
+    *
+    * @param length the number of bytes to transfer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         if {@code index + length} is greater than
+    *            {@code this.capacity}
+    * @throws IOException
+    *         if the specified stream threw an exception during I/O
+    */
+   void getBytes(int index, OutputStream out, int length) throws IOException;
+
+   /**
+    * Transfers this buffer's data to the specified channel starting at the
+    * specified absolute {@code index}.
+    *
+    * @param length the maximum number of bytes to transfer
+    *
+    * @return the actual number of bytes written out to the specified channel
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         if {@code index + length} is greater than
+    *            {@code this.capacity}
+    * @throws IOException
+    *         if the specified channel threw an exception during I/O
+    */
+   int getBytes(int index, GatheringByteChannel out, int length) throws IOException;
+
+   /**
+    * Sets the specified byte at the specified absolute {@code index} in this
+    * buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         {@code index + 1} is greater than {@code this.capacity}
+    */
+   void setByte(int index, byte value);
+
+   /**
+    * Sets the specified 16-bit short integer at the specified absolute
+    * {@code index} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         {@code index + 2} is greater than {@code this.capacity}
+    */
+   void setShort(int index, short value);
+
+   /**
+    * Sets the specified 24-bit medium integer at the specified absolute
+    * {@code index} in this buffer.  Please note that the most significant
+    * byte is ignored in the specified value.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         {@code index + 3} is greater than {@code this.capacity}
+    */
+   void setMedium(int index, int value);
+
+   /**
+    * Sets the specified 32-bit integer at the specified absolute
+    * {@code index} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         {@code index + 4} is greater than {@code this.capacity}
+    */
+   void setInt(int index, int value);
+
+   /**
+    * Sets the specified 64-bit long integer at the specified absolute
+    * {@code index} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         {@code index + 8} is greater than {@code this.capacity}
+    */
+   void setLong(int index, long value);
+
+   /**
+    * Transfers the specified source buffer's data to this buffer starting at
+    * the specified absolute {@code index} until the destination becomes
+    * unreadable.  This method is basically same with
+    * {@link #setBytes(int, ChannelBuffer, int, int)}, except that this
+    * method increases the {@code readerIndex} of the source buffer by
+    * the number of the transferred bytes while
+    * {@link #getBytes(int, ChannelBuffer, int, int)} does not.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         if {@code index + src.readableBytes} is greater than
+    *            {@code this.capacity}
+    */
+   void setBytes(int index, ChannelBuffer src);
+
+   /**
+    * Transfers the specified source buffer's data to this buffer starting at
+    * the specified absolute {@code index}.  This method is basically same
+    * with {@link #setBytes(int, ChannelBuffer, int, int)}, except that this
+    * method increases the {@code readerIndex} of the source buffer by
+    * the number of the transferred bytes while
+    * {@link #getBytes(int, ChannelBuffer, int, int)} does not.
+    *
+    * @param length the number of bytes to transfer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0},
+    *         if {@code index + length} is greater than
+    *            {@code this.capacity}, or
+    *         if {@code length} is greater than {@code src.readableBytes}
+    */
+   void setBytes(int index, ChannelBuffer src, int length);
+
+   /**
+    * Transfers the specified source buffer's data to this buffer starting at
+    * the specified absolute {@code index}.
+    *
+    * @param srcIndex the first index of the source
+    * @param length   the number of bytes to transfer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0},
+    *         if the specified {@code srcIndex} is less than {@code 0},
+    *         if {@code index + length} is greater than
+    *            {@code this.capacity}, or
+    *         if {@code srcIndex + length} is greater than
+    *            {@code src.capacity}
+    */
+   void setBytes(int index, ChannelBuffer src, int srcIndex, int length);
+
+   /**
+    * Transfers the specified source array's data to this buffer starting at
+    * the specified absolute {@code index}.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         if {@code index + src.length} is greater than
+    *            {@code this.capacity}
+    */
+   void setBytes(int index, byte[] src);
+
+   /**
+    * Transfers the specified source array's data to this buffer starting at
+    * the specified absolute {@code index}.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0},
+    *         if the specified {@code srcIndex} is less than {@code 0},
+    *         if {@code index + length} is greater than
+    *            {@code this.capacity}, or
+    *         if {@code srcIndex + length} is greater than {@code src.length}
+    */
+   void setBytes(int index, byte[] src, int srcIndex, int length);
+
+   /**
+    * Transfers the specified source buffer's data to this buffer starting at
+    * the specified absolute {@code index} until the source buffer's position
+    * reaches its limit.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         if {@code index + src.remaining()} is greater than
+    *            {@code this.capacity}
+    */
+   void setBytes(int index, ByteBuffer src);
+
+   /**
+    * Transfers the content of the specified source stream to this buffer
+    * starting at the specified absolute {@code index}.
+    *
+    * @param length the number of bytes to transfer
+    *
+    * @return the actual number of bytes read in from the specified channel.
+    *         {@code -1} if the specified channel is closed.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         if {@code index + length} is greater than {@code this.capacity}
+    * @throws IOException
+    *         if the specified stream threw an exception during I/O
+    */
+   int setBytes(int index, InputStream in, int length) throws IOException;
+
+   /**
+    * Transfers the content of the specified source channel to this buffer
+    * starting at the specified absolute {@code index}.
+    *
+    * @param length the maximum number of bytes to transfer
+    *
+    * @return the actual number of bytes read in from the specified channel.
+    *         {@code -1} if the specified channel is closed.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         if {@code index + length} is greater than {@code this.capacity}
+    * @throws IOException
+    *         if the specified channel threw an exception during I/O
+    */
+   int setBytes(int index, ScatteringByteChannel in, int length) throws IOException;
+
+   /**
+    * Fills this buffer with <tt>NUL (0x00)</tt> starting at the specified
+    * absolute {@code index}.
+    *
+    * @param length the number of <tt>NUL</tt>s to write to the buffer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code index} is less than {@code 0} or
+    *         if {@code index + length} is greater than {@code this.capacity}
+    */
+   void setZero(int index, int length);
+
+   /**
+    * Gets a byte at the current {@code readerIndex} and increases
+    * the {@code readerIndex} by {@code 1} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code this.readableBytes} is less than {@code 1}
+    */
+   byte readByte();
+
+   /**
+    * Gets an unsigned byte at the current {@code readerIndex} and increases
+    * the {@code readerIndex} by {@code 1} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code this.readableBytes} is less than {@code 1}
+    */
+   short readUnsignedByte();
+
+   /**
+    * Gets a 16-bit short integer at the current {@code readerIndex}
+    * and increases the {@code readerIndex} by {@code 2} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code this.readableBytes} is less than {@code 2}
+    */
+   short readShort();
+
+   /**
+    * Gets an unsigned 16-bit short integer at the current {@code readerIndex}
+    * and increases the {@code readerIndex} by {@code 2} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code this.readableBytes} is less than {@code 2}
+    */
+   int readUnsignedShort();
+
+   /**
+    * Gets a 24-bit medium integer at the current {@code readerIndex}
+    * and increases the {@code readerIndex} by {@code 3} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code this.readableBytes} is less than {@code 3}
+    */
+   int readMedium();
+
+   /**
+    * Gets an unsigned 24-bit medium integer at the current {@code readerIndex}
+    * and increases the {@code readerIndex} by {@code 3} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code this.readableBytes} is less than {@code 3}
+    */
+   int readUnsignedMedium();
+
+   /**
+    * Gets a 32-bit integer at the current {@code readerIndex}
+    * and increases the {@code readerIndex} by {@code 4} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code this.readableBytes} is less than {@code 4}
+    */
+   int readInt();
+
+   /**
+    * Gets an unsigned 32-bit integer at the current {@code readerIndex}
+    * and increases the {@code readerIndex} by {@code 4} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code this.readableBytes} is less than {@code 4}
+    */
+   long readUnsignedInt();
+
+   /**
+    * Gets a 64-bit integer at the current {@code readerIndex}
+    * and increases the {@code readerIndex} by {@code 8} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code this.readableBytes} is less than {@code 8}
+    */
+   long readLong();
+
+   /**
+    * Transfers this buffer's data to the specified destination starting at
+    * the current {@code readerIndex} until the destination becomes
+    * non-writable, and increases the {@code readerIndex} by the number of the
+    * transferred bytes.  This method is basically same with
+    * {@link #readBytes(ChannelBuffer, int, int)}, except that this method
+    * increases the {@code writerIndex} of the destination by the number of
+    * the transferred bytes while {@link #readBytes(ChannelBuffer, int, int)}
+    * does not.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code dst.writableBytes} is greater than
+    *            {@code this.readableBytes}
+    */
+   void readBytes(ChannelBuffer dst);
+
+   /**
+    * Transfers this buffer's data to the specified destination starting at
+    * the current {@code readerIndex} and increases the {@code readerIndex}
+    * by the number of the transferred bytes (= {@code length}).  This method
+    * is basically same with {@link #readBytes(ChannelBuffer, int, int)},
+    * except that this method increases the {@code writerIndex} of the
+    * destination by the number of the transferred bytes (= {@code length})
+    * while {@link #readBytes(ChannelBuffer, int, int)} does not.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code length} is greater than {@code this.readableBytes} or
+    *         if {@code length} is greater than {@code dst.writableBytes}
+    */
+   void readBytes(ChannelBuffer dst, int length);
+
+   /**
+    * Transfers this buffer's data to the specified destination starting at
+    * the current {@code readerIndex} and increases the {@code readerIndex}
+    * by the number of the transferred bytes (= {@code length}).
+    *
+    * @param dstIndex the first index of the destination
+    * @param length   the number of bytes to transfer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code dstIndex} is less than {@code 0},
+    *         if {@code length} is greater than {@code this.readableBytes}, or
+    *         if {@code dstIndex + length} is greater than
+    *            {@code dst.capacity}
+    */
+   void readBytes(ChannelBuffer dst, int dstIndex, int length);
+
+   /**
+    * Transfers this buffer's data to the specified destination starting at
+    * the current {@code readerIndex} and increases the {@code readerIndex}
+    * by the number of the transferred bytes (= {@code dst.length}).
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code dst.length} is greater than {@code this.readableBytes}
+    */
+   void readBytes(byte[] dst);
+
+   /**
+    * Transfers this buffer's data to the specified destination starting at
+    * the current {@code readerIndex} and increases the {@code readerIndex}
+    * by the number of the transferred bytes (= {@code length}).
+    *
+    * @param dstIndex the first index of the destination
+    * @param length   the number of bytes to transfer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code dstIndex} is less than {@code 0},
+    *         if {@code length} is greater than {@code this.readableBytes}, or
+    *         if {@code dstIndex + length} is greater than {@code dst.length}
+    */
+   void readBytes(byte[] dst, int dstIndex, int length);
+
+   /**
+    * Transfers this buffer's data to the specified destination starting at
+    * the current {@code readerIndex} until the destination's position
+    * reaches its limit, and increases the {@code readerIndex} by the
+    * number of the transferred bytes.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code dst.remaining()} is greater than
+    *            {@code this.readableBytes}
+    */
+   void readBytes(ByteBuffer dst);
+
+   /**
+    * Transfers this buffer's data to the specified stream starting at the
+    * current {@code readerIndex}.
+    *
+    * @param length the number of bytes to transfer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code length} is greater than {@code this.readableBytes}
+    * @throws IOException
+    *         if the specified stream threw an exception during I/O
+    */
+   void readBytes(OutputStream out, int length) throws IOException;
+
+   /**
+    * Transfers this buffer's data to the specified stream starting at the
+    * current {@code readerIndex}.
+    *
+    * @param length the maximum number of bytes to transfer
+    *
+    * @return the actual number of bytes written out to the specified channel
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code length} is greater than {@code this.readableBytes}
+    * @throws IOException
+    *         if the specified channel threw an exception during I/O
+    */
+   int readBytes(GatheringByteChannel out, int length) throws IOException;
+
+   /**
+    * Increases the current {@code readerIndex} by the specified
+    * {@code length} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code length} is greater than {@code this.readableBytes}
+    */
+   void skipBytes(int length);
+
+   /**
+    * Sets the specified byte at the current {@code writerIndex}
+    * and increases the {@code writerIndex} by {@code 1} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code this.writableBytes} is less than {@code 1}
+    */
+   void writeByte(byte value);
+
+   /**
+    * Sets the specified 16-bit short integer at the current
+    * {@code writerIndex} and increases the {@code writerIndex} by {@code 2}
+    * in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code this.writableBytes} is less than {@code 2}
+    */
+   void writeShort(short value);
+
+   /**
+    * Sets the specified 24-bit medium integer at the current
+    * {@code writerIndex} and increases the {@code writerIndex} by {@code 3}
+    * in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code this.writableBytes} is less than {@code 3}
+    */
+   void writeMedium(int value);
+
+   /**
+    * Sets the specified 32-bit integer at the current {@code writerIndex}
+    * and increases the {@code writerIndex} by {@code 4} in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code this.writableBytes} is less than {@code 4}
+    */
+   void writeInt(int value);
+
+   /**
+    * Sets the specified 64-bit long integer at the current
+    * {@code writerIndex} and increases the {@code writerIndex} by {@code 8}
+    * in this buffer.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code this.writableBytes} is less than {@code 8}
+    */
+   void writeLong(long value);
+
+   /**
+    * Transfers the specified source buffer's data to this buffer starting at
+    * the current {@code writerIndex} until the source buffer becomes
+    * unreadable, and increases the {@code writerIndex} by the number of
+    * the transferred bytes.  This method is basically same with
+    * {@link #writeBytes(ChannelBuffer, int, int)}, except that this method
+    * increases the {@code readerIndex} of the source buffer by the number of
+    * the transferred bytes while {@link #writeBytes(ChannelBuffer, int, int)}
+    * does not.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code src.readableBytes} is greater than
+    *            {@code this.writableBytes}
+    *
+    */
+   void writeBytes(ChannelBuffer src);
+
+   /**
+    * Transfers the specified source buffer's data to this buffer starting at
+    * the current {@code writerIndex} and increases the {@code writerIndex}
+    * by the number of the transferred bytes (= {@code length}).  This method
+    * is basically same with {@link #writeBytes(ChannelBuffer, int, int)},
+    * except that this method increases the {@code readerIndex} of the source
+    * buffer by the number of the transferred bytes (= {@code length}) while
+    * {@link #writeBytes(ChannelBuffer, int, int)} does not.
+    *
+    * @param length the number of bytes to transfer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code length} is greater than {@code this.writableBytes} or
+    *         if {@code length} is greater then {@code src.readableBytes}
+    */
+   void writeBytes(ChannelBuffer src, int length);
+
+   /**
+    * Transfers the specified source buffer's data to this buffer starting at
+    * the current {@code writerIndex} and increases the {@code writerIndex}
+    * by the number of the transferred bytes (= {@code length}).
+    *
+    * @param srcIndex the first index of the source
+    * @param length   the number of bytes to transfer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code srcIndex} is less than {@code 0},
+    *         if {@code srcIndex + length} is greater than
+    *            {@code src.capacity}, or
+    *         if {@code length} is greater than {@code this.writableBytes}
+    */
+   void writeBytes(ChannelBuffer src, int srcIndex, int length);
+
+   /**
+    * Transfers the specified source array's data to this buffer starting at
+    * the current {@code writerIndex} and increases the {@code writerIndex}
+    * by the number of the transferred bytes (= {@code src.length}).
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code src.length} is greater than {@code this.writableBytes}
+    */
+   void writeBytes(byte[] src);
+
+   /**
+    * Transfers the specified source array's data to this buffer starting at
+    * the current {@code writerIndex} and increases the {@code writerIndex}
+    * by the number of the transferred bytes (= {@code length}).
+    *
+    * @param srcIndex the first index of the source
+    * @param length   the number of bytes to transfer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if the specified {@code srcIndex} is less than {@code 0},
+    *         if {@code srcIndex + length} is greater than
+    *            {@code src.length}, or
+    *         if {@code length} is greater than {@code this.writableBytes}
+    */
+   void writeBytes(byte[] src, int srcIndex, int length);
+
+   /**
+    * Transfers the specified source buffer's data to this buffer starting at
+    * the current {@code writerIndex} until the source buffer's position
+    * reaches its limit, and increases the {@code writerIndex} by the
+    * number of the transferred bytes.
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code src.remaining()} is greater than
+    *            {@code this.writableBytes}
+    */
+   void writeBytes(ByteBuffer src);
+
+   /**
+    * Transfers the content of the specified stream to this buffer
+    * starting at the current {@code writerIndex} and increases the
+    * {@code writerIndex} by the number of the transferred bytes.
+    *
+    * @param length the number of bytes to transfer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code length} is greater than {@code this.writableBytes}
+    * @throws IOException
+    *         if the specified stream threw an exception during I/O
+    */
+   void writeBytes(InputStream in, int length) throws IOException;
+
+   /**
+    * Transfers the content of the specified channel to this buffer
+    * starting at the current {@code writerIndex} and increases the
+    * {@code writerIndex} by the number of the transferred bytes.
+    *
+    * @param length the maximum number of bytes to transfer
+    *
+    * @return the actual number of bytes read in from the specified channel
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code length} is greater than {@code this.writableBytes}
+    * @throws IOException
+    *         if the specified channel threw an exception during I/O
+    */
+   int writeBytes(ScatteringByteChannel in, int length) throws IOException;
+
+   /**
+    * Fills this buffer with <tt>NUL (0x00)</tt> starting at the current
+    * {@code writerIndex} and increases the {@code writerIndex} by the
+    * specified {@code length}.
+    *
+    * @param length the number of <tt>NUL</tt>s to write to the buffer
+    *
+    * @throws IndexOutOfBoundsException
+    *         if {@code length} is greater than {@code this.writableBytes}
+    */
+   void writeZero(int length);
+
+   /**
+    * Converts this buffer's readable bytes into a NIO buffer.  The returned
+    * buffer might or might not share the content with this buffer, while
+    * they have separate indexes and marks.  This method is identical to
+    * {@code buf.toByteBuffer(buf.readerIndex(), buf.readableBytes())}.
+    */
+   ByteBuffer toByteBuffer();
+
+   /**
+    * Converts this buffer's sub-region into a NIO buffer.  The returned
+    * buffer might or might not share the content with this buffer, while
+    * they have separate indexes and marks.
+    */
+   ByteBuffer toByteBuffer(int index, int length);
+
+   /**
+    * Converts this buffer's sub-region into an array of NIO buffers.
+    * The returned buffers might or might not share the content with this
+    * buffer, while they have separate indexes and marks.
+    */
+   ByteBuffer[] toByteBuffers(int index, int length);
+
+   /**
+    * Decodes this buffer's readable bytes into a string with the specified
+    * character set name.  This method is identical to
+    * {@code buf.toString(buf.readerIndex(), buf.readableBytes(), charsetName)}.
+    *
+    * @throws UnsupportedCharsetException
+    *         if the specified character set name is not supported by the
+    *         current VM
+    */
+   String toString(String charsetName);
+
+   /**
+    * Decodes this buffer's sub-region into a string with the specified
+    * character set name.
+    *
+    * @throws UnsupportedCharsetException
+    *         if the specified character set name is not supported by the
+    *         current VM
+    */
+   String toString(int index, int length, String charsetName);
+
+   /**
+    * Returns a hash code which was calculated from the content of this
+    * buffer.  If there's a byte array which is
+    * {@linkplain #equals(Object) equal to} this array, both arrays should
+    * return the same value.
+    */
+   int hashCode();
+
+   /**
+    * Determines if the content of the specified buffer is identical to the
+    * content of this array.  'Identical' here means:
+    * <ul>
+    * <li>the size of the contents of the two buffers are same and</li>
+    * <li>every single byte of the content of the two buffers are same.</li>
+    * </ul>
+    * Please note that it does not compare {@link #readerIndex()} nor
+    * {@link #writerIndex()}.  This method also returns {@code false} for
+    * {@code null} and an object which is not an instance of
+    * {@link ChannelBuffer} type.
+    */
+   boolean equals(Object obj);
+
+   /**
+    * Compares the content of the specified buffer to the content of this
+    * buffer.  Comparison is performed in the same manner with the string
+    * comparison functions of various languages such as {@code strcmp},
+    * {@code memcmp} and {@link String#compareTo(String)}.
+    */
+   int compareTo(ChannelBuffer buffer);
+
+   /**
+    * Returns the string representation of this buffer.  This method does not
+    * necessarily return the whole content of the buffer but returns
+    * the values of the key properties such as {@link #readerIndex()},
+    * {@link #writerIndex()} and {@link #capacity()}.
+    */
+   String toString();
+}

Added: trunk/src/main/org/jboss/messaging/core/buffers/ChannelBuffers.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/buffers/ChannelBuffers.java	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/buffers/ChannelBuffers.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -0,0 +1,479 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.messaging.core.buffers;
+
+import java.nio.ByteBuffer;
+
+/**
+ * Creates a new {@link ChannelBuffer} by allocating new space or by wrapping
+ * or copying existing byte arrays, byte buffers and a string.
+ *
+ * <h3>Use static import</h3>
+ * This classes is intended to be used with Java 5 static import statement:
+ *
+ * <pre>
+ * import static org.jboss.netty.buffer.ChannelBuffers.*;
+ *
+ * ChannelBuffer heapBuffer = buffer(128);
+ * ChannelBuffer directBuffer = directBuffer(256);
+ * ChannelBuffer dynamicBuffer = dynamicBuffer(512);
+ * ChannelBuffer wrappedBuffer = wrappedBuffer(new byte[128], new byte[256]);
+ * ChannelBuffer copiedBuffer = copiedBuffer(ByteBuffer.allocate(128));
+ * </pre>
+ *
+ * <h3>Allocating a new buffer</h3>
+ *
+ * Three buffer types are provided out of the box.
+ *
+ * <ul>
+ * <li>{@link #buffer(int)} allocates a new fixed-capacity heap buffer.</li>
+ * <li>{@link #directBuffer(int)} allocates a new fixed-capacity direct buffer.</li>
+ * <li>{@link #dynamicBuffer(int)} allocates a new dynamic-capacity heap
+ *     buffer, whose capacity increases automatically as needed by a write
+ *     operation.</li>
+ * </ul>
+ *
+ * <h3>Creating a wrapped buffer</h3>
+ *
+ * Wrapped buffer is a buffer which is a view of one or more existing
+ * byte arrays and byte buffers.  Any changes in the content of the original
+ * array or buffer will be reflected in the wrapped buffer.  Various wrapper
+ * methods are provided and their name is all {@code wrappedBuffer()}.
+ * You might want to take a look at this method closely if you want to create
+ * a buffer which is composed of more than one array to reduce the number of
+ * memory copy.
+ *
+ * <h3>Creating a copied buffer</h3>
+ *
+ * Copied buffer is a deep copy of one or more existing byte arrays, byte
+ * buffers or a string.  Unlike a wrapped buffer, there's no shared data
+ * between the original data and the copied buffer.  Various copy methods are
+ * provided and their name is all {@code copiedBuffer()}.  It is also convenient
+ * to use this operation to merge multiple buffers into one buffer.
+ *
+ * <h3>Miscellaneous utility methods</h3>
+ *
+ * This class also provides various utility methods to help implementation
+ * of a new buffer type, generation of hex dump and swapping an integer's
+ * byte order.
+ *
+ * @author The Netty Project (netty-dev at lists.jboss.org)
+ * @author Trustin Lee (tlee at redhat.com)
+ *
+ * @version $Rev: 472 $, $Date: 2008-11-14 16:45:53 +0900 (Fri, 14 Nov 2008) $
+ *
+ * @apiviz.landmark
+ * @apiviz.has org.jboss.netty.buffer.ChannelBuffer oneway - - creates
+ */
+public class ChannelBuffers
+{
+
+   /**
+    * A buffer whose capacity is {@code 0}.
+    */
+   public static final HeapChannelBuffer EMPTY_BUFFER = new HeapChannelBuffer(0);
+
+   private static final char[] HEXDUMP_TABLE = new char[65536 * 4];
+
+   static
+   {
+      final char[] DIGITS = "0123456789abcdef".toCharArray();
+      for (int i = 0; i < 65536; i++)
+      {
+         HEXDUMP_TABLE[(i << 2) + 0] = DIGITS[i >>> 12 & 0x0F];
+         HEXDUMP_TABLE[(i << 2) + 1] = DIGITS[i >>> 8 & 0x0F];
+         HEXDUMP_TABLE[(i << 2) + 2] = DIGITS[i >>> 4 & 0x0F];
+         HEXDUMP_TABLE[(i << 2) + 3] = DIGITS[i >>> 0 & 0x0F];
+      }
+   }
+
+   /**
+    * Creates a new Java heap buffer with the specified {@code endianness}
+    * and {@code capacity}.  The new buffer's {@code readerIndex} and
+    * {@code writerIndex} are {@code 0}.
+    */
+   public static ChannelBuffer buffer(final int capacity)
+   {
+      if (capacity == 0)
+      {
+         return EMPTY_BUFFER;
+      }
+      else
+      {
+         return new HeapChannelBuffer(capacity);
+      }
+   }
+   
+   /**
+    * Reuses the initialBuffer on the creation of the DynamicBuffer.
+    * This avoids a copy, but you should only call this method if the buffer is not being modified after the call of this method.
+    * 
+    * @author Clebert
+    */
+   public static ChannelBuffer dynamicBuffer(final byte[] initialBuffer)
+   {
+      return new DynamicChannelBuffer(initialBuffer);
+   }
+
+   /**
+    * Creates a new dynamic buffer with the specified endianness and
+    * the specified estimated data length.  More accurate estimation yields
+    * less unexpected reallocation overhead.  The new buffer's
+    * {@code readerIndex} and {@code writerIndex} are {@code 0}.
+    */
+   public static ChannelBuffer dynamicBuffer(final int estimatedLength)
+   {
+      return new DynamicChannelBuffer(estimatedLength);
+   }
+
+   /**
+    * Creates a new buffer which wraps the specified {@code array} with the
+    * specified {@code endianness}.  A modification on the specified array's
+    * content will be visible to the returned buffer.
+    */
+   public static ChannelBuffer wrappedBuffer(final byte[] array)
+   {
+      return new HeapChannelBuffer(array);
+   }
+   
+   /**
+    * Creates a new buffer which wraps the specified NIO buffer's current
+    * slice.  A modification on the specified buffer's content and endianness
+    * will be visible to the returned buffer.
+    * The new buffer's {@code readerIndex}
+    * and {@code writerIndex} are {@code 0} and {@code buffer.remaining}
+    * respectively.
+    * 
+    * Note: This method differs from the Original Netty version.
+    * 
+    * @author Clebert
+    */
+   public static ChannelBuffer wrappedBuffer(final ByteBuffer buffer)
+   {
+      
+      ChannelBuffer newbuffer = new ByteBufferBackedChannelBuffer(buffer);
+      newbuffer.clear();
+      return newbuffer;
+   }
+
+   /**
+    * Creates a new buffer with the specified {@code endianness} whose
+    * content is a copy of the specified {@code array}.  The new buffer's
+    * {@code readerIndex} and {@code writerIndex} are {@code 0} and
+    * {@code array.length} respectively.
+    */
+   public static ChannelBuffer copiedBuffer(final byte[] array)
+   {
+      if (array.length == 0)
+      {
+         return EMPTY_BUFFER;
+      }
+      else
+      {
+         return new HeapChannelBuffer(array.clone());
+      }
+   }
+
+   /**
+    * Creates a new buffer whose content is a copy of the specified
+    * {@code buffer}'s current slice.  The new buffer's {@code readerIndex}
+    * and {@code writerIndex} are {@code 0} and {@code buffer.remaining}
+    * respectively.
+    */
+   public static ChannelBuffer copiedBuffer(final ByteBuffer buffer)
+   {
+      int length = buffer.remaining();
+      if (length == 0)
+      {
+         return EMPTY_BUFFER;
+      }
+      byte[] copy = new byte[length];
+      int position = buffer.position();
+      try
+      {
+         buffer.get(copy);
+      }
+      finally
+      {
+         buffer.position(position);
+      }
+      return wrappedBuffer(copy);
+   }
+
+   /**
+    * Returns a <a href="http://en.wikipedia.org/wiki/Hex_dump">hex dump</a>
+    * of the specified buffer's readable bytes.
+    */
+   public static String hexDump(final ChannelBuffer buffer)
+   {
+      return hexDump(buffer, buffer.readerIndex(), buffer.readableBytes());
+   }
+
+   /**
+    * Returns a <a href="http://en.wikipedia.org/wiki/Hex_dump">hex dump</a>
+    * of the specified buffer's sub-region.
+    */
+   public static String hexDump(final ChannelBuffer buffer, final int fromIndex, final int length)
+   {
+      if (length < 0)
+      {
+         throw new IllegalArgumentException("length: " + length);
+      }
+      if (length == 0)
+      {
+         return "";
+      }
+
+      int endIndex = fromIndex + (length >>> 1 << 1);
+      boolean oddLength = length % 2 != 0;
+      char[] buf = new char[length << 1];
+
+      int srcIdx = fromIndex;
+      int dstIdx = 0;
+      for (; srcIdx < endIndex; srcIdx += 2, dstIdx += 4)
+      {
+         System.arraycopy(HEXDUMP_TABLE, buffer.getUnsignedShort(srcIdx) << 2, buf, dstIdx, 4);
+      }
+
+      if (oddLength)
+      {
+         System.arraycopy(HEXDUMP_TABLE, (buffer.getUnsignedByte(srcIdx) << 2) + 2, buf, dstIdx, 2);
+      }
+
+      return new String(buf);
+   }
+
+   /**
+    * Calculates the hash code of the specified buffer.  This method is
+    * useful when implementing a new buffer type.
+    */
+   public static int hashCode(final ChannelBuffer buffer)
+   {
+      final int aLen = buffer.readableBytes();
+      final int intCount = aLen >>> 2;
+      final int byteCount = aLen & 3;
+
+      int hashCode = 1;
+      int arrayIndex = buffer.readerIndex();
+      for (int i = intCount; i > 0; i--)
+      {
+         hashCode = 31 * hashCode + buffer.getInt(arrayIndex);
+         arrayIndex += 4;
+      }
+
+      for (int i = byteCount; i > 0; i--)
+      {
+         hashCode = 31 * hashCode + buffer.getByte(arrayIndex++);
+      }
+
+      if (hashCode == 0)
+      {
+         hashCode = 1;
+      }
+
+      return hashCode;
+   }
+
+   /**
+    * Returns {@code true} if and only if the two specified buffers are
+    * identical to each other as described in {@code ChannelBuffer#equals(Object)}.
+    * This method is useful when implementing a new buffer type.
+    */
+   public static boolean equals(final ChannelBuffer bufferA, final ChannelBuffer bufferB)
+   {
+      final int aLen = bufferA.readableBytes();
+      if (aLen != bufferB.readableBytes())
+      {
+         return false;
+      }
+
+      final int longCount = aLen >>> 3;
+      final int byteCount = aLen & 7;
+
+      int aIndex = bufferA.readerIndex();
+      int bIndex = bufferB.readerIndex();
+
+      for (int i = longCount; i > 0; i--)
+      {
+         if (bufferA.getLong(aIndex) != bufferB.getLong(bIndex))
+         {
+            return false;
+         }
+         aIndex += 8;
+         bIndex += 8;
+      }
+
+      for (int i = byteCount; i > 0; i--)
+      {
+         if (bufferA.getByte(aIndex) != bufferB.getByte(bIndex))
+         {
+            return false;
+         }
+         aIndex++;
+         bIndex++;
+      }
+
+      return true;
+   }
+
+   /**
+    * Compares the two specified buffers as described in {@link ChannelBuffer#compareTo(ChannelBuffer)}.
+    * This method is useful when implementing a new buffer type.
+    */
+   public static int compare(final ChannelBuffer bufferA, final ChannelBuffer bufferB)
+   {
+      final int aLen = bufferA.readableBytes();
+      final int bLen = bufferB.readableBytes();
+      final int minLength = Math.min(aLen, bLen);
+      final int uintCount = minLength >>> 2;
+      final int byteCount = minLength & 3;
+
+      int aIndex = bufferA.readerIndex();
+      int bIndex = bufferB.readerIndex();
+
+      for (int i = uintCount; i > 0; i--)
+      {
+         long va = bufferA.getUnsignedInt(aIndex);
+         long vb = bufferB.getUnsignedInt(bIndex);
+         if (va > vb)
+         {
+            return 1;
+         }
+         else if (va < vb)
+         {
+            return -1;
+         }
+         aIndex += 4;
+         bIndex += 4;
+      }
+
+      for (int i = byteCount; i > 0; i--)
+      {
+         byte va = bufferA.getByte(aIndex);
+         byte vb = bufferB.getByte(bIndex);
+         if (va > vb)
+         {
+            return 1;
+         }
+         else if (va < vb)
+         {
+            return -1;
+         }
+         aIndex++;
+         bIndex++;
+      }
+
+      return aLen - bLen;
+   }
+
+   /**
+    * The default implementation of {@link ChannelBuffer#indexOf(int, int, byte)}.
+    * This method is useful when implementing a new buffer type.
+    */
+   public static int indexOf(final ChannelBuffer buffer, final int fromIndex, final int toIndex, final byte value)
+   {
+      if (fromIndex <= toIndex)
+      {
+         return firstIndexOf(buffer, fromIndex, toIndex, value);
+      }
+      else
+      {
+         return lastIndexOf(buffer, fromIndex, toIndex, value);
+      }
+   }
+
+   /**
+    * Toggles the endianness of the specified 16-bit short integer.
+    */
+   public static short swapShort(final short value)
+   {
+      return (short)(value << 8 | value >>> 8 & 0xff);
+   }
+
+   /**
+    * Toggles the endianness of the specified 24-bit medium integer.
+    */
+   public static int swapMedium(final int value)
+   {
+      return value << 16 & 0xff0000 | value & 0xff00 | value >>> 16 & 0xff;
+   }
+
+   /**
+    * Toggles the endianness of the specified 32-bit integer.
+    */
+   public static int swapInt(final int value)
+   {
+      return swapShort((short)value) << 16 | swapShort((short)(value >>> 16)) & 0xffff;
+   }
+
+   /**
+    * Toggles the endianness of the specified 64-bit long integer.
+    */
+   public static long swapLong(final long value)
+   {
+      return (long)swapInt((int)value) << 32 | swapInt((int)(value >>> 32)) & 0xffffffffL;
+   }
+
+   private static int firstIndexOf(final ChannelBuffer buffer, int fromIndex, final int toIndex, final byte value)
+   {
+      fromIndex = Math.max(fromIndex, 0);
+      if (fromIndex >= toIndex || buffer.capacity() == 0)
+      {
+         return -1;
+      }
+
+      for (int i = fromIndex; i < toIndex; i++)
+      {
+         if (buffer.getByte(i) == value)
+         {
+            return i;
+         }
+      }
+
+      return -1;
+   }
+
+   private static int lastIndexOf(final ChannelBuffer buffer, int fromIndex, final int toIndex, final byte value)
+   {
+      fromIndex = Math.min(fromIndex, buffer.capacity());
+      if (fromIndex < 0 || buffer.capacity() == 0)
+      {
+         return -1;
+      }
+
+      for (int i = fromIndex - 1; i >= toIndex; i--)
+      {
+         if (buffer.getByte(i) == value)
+         {
+            return i;
+         }
+      }
+
+      return -1;
+   }
+
+   private ChannelBuffers()
+   {
+      // Unused
+   }
+}

Added: trunk/src/main/org/jboss/messaging/core/buffers/DynamicChannelBuffer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/buffers/DynamicChannelBuffer.java	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/buffers/DynamicChannelBuffer.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -0,0 +1,284 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.messaging.core.buffers;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.ByteBuffer;
+import java.nio.channels.GatheringByteChannel;
+import java.nio.channels.ScatteringByteChannel;
+
+/**
+ * A dynamic capacity buffer which increases its capacity as needed.  It is
+ * recommended to use {@link ChannelBuffers#dynamicBuffer(int)} instead of
+ * calling the constructor explicitly.
+ *
+ * @author The Netty Project (netty-dev at lists.jboss.org)
+ * @author Trustin Lee (tlee at redhat.com)
+ *
+ * @version $Rev: 237 $, $Date: 2008-09-04 20:53:44 +0900 (Thu, 04 Sep 2008) $
+ *
+ */
+public class DynamicChannelBuffer extends AbstractChannelBuffer
+{
+
+   private final int initialCapacity;
+
+   private ChannelBuffer buffer = ChannelBuffers.EMPTY_BUFFER;
+
+   DynamicChannelBuffer(final int estimatedLength)
+   {
+      if (estimatedLength < 0)
+      {
+         throw new IllegalArgumentException("estimatedLength: " + estimatedLength);
+      }
+      initialCapacity = estimatedLength;
+   }
+
+   DynamicChannelBuffer(final byte[] initialBuffer)
+   {
+      initialCapacity = initialBuffer.length;
+
+      buffer = new HeapChannelBuffer(initialBuffer);
+
+      writerIndex(initialBuffer.length);
+   }
+
+   public int capacity()
+   {
+      return buffer.capacity();
+   }
+
+   public byte getByte(final int index)
+   {
+      return buffer.getByte(index);
+   }
+
+   public short getShort(final int index)
+   {
+      return buffer.getShort(index);
+   }
+
+   public int getUnsignedMedium(final int index)
+   {
+      return buffer.getUnsignedMedium(index);
+   }
+
+   public int getInt(final int index)
+   {
+      return buffer.getInt(index);
+   }
+
+   public long getLong(final int index)
+   {
+      return buffer.getLong(index);
+   }
+
+   public void getBytes(final int index, final byte[] dst, final int dstIndex, final int length)
+   {
+      buffer.getBytes(index, dst, dstIndex, length);
+   }
+
+   public void getBytes(final int index, final ChannelBuffer dst, final int dstIndex, final int length)
+   {
+      buffer.getBytes(index, dst, dstIndex, length);
+   }
+
+   public void getBytes(final int index, final ByteBuffer dst)
+   {
+      buffer.getBytes(index, dst);
+   }
+
+   public int getBytes(final int index, final GatheringByteChannel out, final int length) throws IOException
+   {
+      return buffer.getBytes(index, out, length);
+   }
+
+   public void getBytes(final int index, final OutputStream out, final int length) throws IOException
+   {
+      buffer.getBytes(index, out, length);
+   }
+
+   public void setByte(final int index, final byte value)
+   {
+      buffer.setByte(index, value);
+   }
+
+   public void setShort(final int index, final short value)
+   {
+      buffer.setShort(index, value);
+   }
+
+   public void setMedium(final int index, final int value)
+   {
+      buffer.setMedium(index, value);
+   }
+
+   public void setInt(final int index, final int value)
+   {
+      buffer.setInt(index, value);
+   }
+
+   public void setLong(final int index, final long value)
+   {
+      buffer.setLong(index, value);
+   }
+
+   public void setBytes(final int index, final byte[] src, final int srcIndex, final int length)
+   {
+      buffer.setBytes(index, src, srcIndex, length);
+   }
+
+   public void setBytes(final int index, final ChannelBuffer src, final int srcIndex, final int length)
+   {
+      buffer.setBytes(index, src, srcIndex, length);
+   }
+
+   public void setBytes(final int index, final ByteBuffer src)
+   {
+      buffer.setBytes(index, src);
+   }
+
+   public int setBytes(final int index, final InputStream in, final int length) throws IOException
+   {
+      return buffer.setBytes(index, in, length);
+   }
+
+   public int setBytes(final int index, final ScatteringByteChannel in, final int length) throws IOException
+   {
+      return buffer.setBytes(index, in, length);
+   }
+
+   @Override
+   public void writeByte(final byte value)
+   {
+      ensureWritableBytes(1);
+      super.writeByte(value);
+   }
+
+   @Override
+   public void writeShort(final short value)
+   {
+      ensureWritableBytes(2);
+      super.writeShort(value);
+   }
+
+   @Override
+   public void writeMedium(final int value)
+   {
+      ensureWritableBytes(3);
+      super.writeMedium(value);
+   }
+
+   @Override
+   public void writeInt(final int value)
+   {
+      ensureWritableBytes(4);
+      super.writeInt(value);
+   }
+
+   @Override
+   public void writeLong(final long value)
+   {
+      ensureWritableBytes(8);
+      super.writeLong(value);
+   }
+
+   @Override
+   public void writeBytes(final byte[] src, final int srcIndex, final int length)
+   {
+      ensureWritableBytes(length);
+      super.writeBytes(src, srcIndex, length);
+   }
+
+   @Override
+   public void writeBytes(final ChannelBuffer src, final int srcIndex, final int length)
+   {
+      ensureWritableBytes(length);
+      super.writeBytes(src, srcIndex, length);
+   }
+
+   @Override
+   public void writeBytes(final ByteBuffer src)
+   {
+      ensureWritableBytes(src.remaining());
+      super.writeBytes(src);
+   }
+
+   @Override
+   public void writeZero(final int length)
+   {
+      ensureWritableBytes(length);
+      super.writeZero(length);
+   }
+
+   public ByteBuffer toByteBuffer(final int index, final int length)
+   {
+      return buffer.toByteBuffer(index, length);
+   }
+
+   public String toString(final int index, final int length, final String charsetName)
+   {
+      return buffer.toString(index, length, charsetName);
+   }
+
+   private void ensureWritableBytes(final int requestedBytes)
+   {
+      if (requestedBytes <= writableBytes())
+      {
+         return;
+      }
+
+      int newCapacity;
+      if (capacity() == 0)
+      {
+         newCapacity = initialCapacity;
+         if (newCapacity == 0)
+         {
+            newCapacity = 1;
+         }
+      }
+      else
+      {
+         newCapacity = capacity();
+      }
+      int minNewCapacity = writerIndex() + requestedBytes;
+      while (newCapacity < minNewCapacity)
+      {
+         newCapacity <<= 1;
+      }
+
+      ChannelBuffer newBuffer = ChannelBuffers.buffer(newCapacity);
+      newBuffer.writeBytes(buffer, 0, writerIndex());
+      buffer = newBuffer;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.buffers.AbstractChannelBuffer#array()
+    */
+   public byte[] array()
+   {
+      return buffer.array();
+   }
+}

Added: trunk/src/main/org/jboss/messaging/core/buffers/HeapChannelBuffer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/buffers/HeapChannelBuffer.java	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/buffers/HeapChannelBuffer.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -0,0 +1,324 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.messaging.core.buffers;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.GatheringByteChannel;
+import java.nio.channels.ScatteringByteChannel;
+import java.nio.charset.UnsupportedCharsetException;
+
+/**
+ * A skeletal implementation for Java heap buffers.
+ *
+ * @author The Netty Project (netty-dev at lists.jboss.org)
+ * @author Trustin Lee (tlee at redhat.com)
+ *
+ * @version $Rev: 486 $, $Date: 2008-11-16 22:52:47 +0900 (Sun, 16 Nov 2008) $
+ */
+public class HeapChannelBuffer extends AbstractChannelBuffer
+{
+
+   /**
+    * The underlying heap byte array that this buffer is wrapping.
+    */
+   protected final byte[] array;
+
+   /**
+    * Creates a new heap buffer with a newly allocated byte array.
+    *
+    * @param length the length of the new byte array
+    */
+   HeapChannelBuffer(final int length)
+   {
+      this(new byte[length], 0, 0);
+   }
+
+   /**
+    * Creates a new heap buffer with an existing byte array.
+    *
+    * @param array the byte array to wrap
+    */
+   HeapChannelBuffer(final byte[] array)
+   {
+      this(array, 0, array.length);
+   }
+
+   /**
+    * Creates a new heap buffer with an existing byte array.
+    *
+    * @param array        the byte array to wrap
+    * @param readerIndex  the initial reader index of this buffer
+    * @param writerIndex  the initial writer index of this buffer
+    */
+   protected HeapChannelBuffer(final byte[] array, final int readerIndex, final int writerIndex)
+   {
+      if (array == null)
+      {
+         throw new NullPointerException("array");
+      }
+      this.array = array;
+      setIndex(readerIndex, writerIndex);
+   }
+
+   public int capacity()
+   {
+      return array.length;
+   }
+
+   public byte getByte(final int index)
+   {
+      return array[index];
+   }
+
+   public void getBytes(final int index, final ChannelBuffer dst, final int dstIndex, final int length)
+   {
+      if (dst instanceof HeapChannelBuffer)
+      {
+         getBytes(index, ((HeapChannelBuffer)dst).array, dstIndex, length);
+      }
+      else
+      {
+         dst.setBytes(dstIndex, array, index, length);
+      }
+   }
+
+   public void getBytes(final int index, final byte[] dst, final int dstIndex, final int length)
+   {
+      System.arraycopy(array, index, dst, dstIndex, length);
+   }
+
+   public void getBytes(final int index, final ByteBuffer dst)
+   {
+      dst.put(array, index, Math.min(capacity() - index, dst.remaining()));
+   }
+
+   public void getBytes(final int index, final OutputStream out, final int length) throws IOException
+   {
+      out.write(array, index, length);
+   }
+
+   public int getBytes(final int index, final GatheringByteChannel out, final int length) throws IOException
+   {
+      return out.write(ByteBuffer.wrap(array, index, length));
+   }
+
+   public void setByte(final int index, final byte value)
+   {
+      array[index] = value;
+   }
+
+   public void setBytes(final int index, final ChannelBuffer src, final int srcIndex, final int length)
+   {
+      if (src instanceof HeapChannelBuffer)
+      {
+         setBytes(index, ((HeapChannelBuffer)src).array, srcIndex, length);
+      }
+      else
+      {
+         src.getBytes(srcIndex, array, index, length);
+      }
+   }
+
+   public void setBytes(final int index, final byte[] src, final int srcIndex, final int length)
+   {
+      System.arraycopy(src, srcIndex, array, index, length);
+   }
+
+   public void setBytes(final int index, final ByteBuffer src)
+   {
+      src.get(array, index, src.remaining());
+   }
+
+   public int setBytes(int index, final InputStream in, int length) throws IOException
+   {
+      int readBytes = 0;
+      do
+      {
+         int localReadBytes = in.read(array, index, length);
+         if (localReadBytes < 0)
+         {
+            if (readBytes == 0)
+            {
+               return -1;
+            }
+            else
+            {
+               break;
+            }
+         }
+         readBytes += localReadBytes;
+         index += localReadBytes;
+         length -= localReadBytes;
+      }
+      while (length > 0);
+
+      return readBytes;
+   }
+
+   public int setBytes(final int index, final ScatteringByteChannel in, final int length) throws IOException
+   {
+      ByteBuffer buf = ByteBuffer.wrap(array, index, length);
+      int readBytes = 0;
+
+      do
+      {
+         int localReadBytes;
+         try
+         {
+            localReadBytes = in.read(buf);
+         }
+         catch (ClosedChannelException e)
+         {
+            localReadBytes = -1;
+         }
+         if (localReadBytes < 0)
+         {
+            if (readBytes == 0)
+            {
+               return -1;
+            }
+            else
+            {
+               break;
+            }
+         }
+         else if (localReadBytes == 0)
+         {
+            break;
+         }
+         readBytes += localReadBytes;
+      }
+      while (readBytes < length);
+
+      return readBytes;
+   }
+
+   public short getShort(final int index)
+   {
+      return (short)(array[index] << 8 | array[index + 1] & 0xFF);
+   }
+
+   public int getUnsignedMedium(final int index)
+   {
+      return (array[index] & 0xff) << 16 | (array[index + 1] & 0xff) << 8 | (array[index + 2] & 0xff) << 0;
+   }
+
+   public int getInt(final int index)
+   {
+      return (array[index] & 0xff) << 24 | (array[index + 1] & 0xff) << 16 |
+             (array[index + 2] & 0xff) << 8 |
+             (array[index + 3] & 0xff) << 0;
+   }
+
+   public long getLong(final int index)
+   {
+      return ((long)array[index] & 0xff) << 56 | ((long)array[index + 1] & 0xff) << 48 |
+             ((long)array[index + 2] & 0xff) << 40 |
+             ((long)array[index + 3] & 0xff) << 32 |
+             ((long)array[index + 4] & 0xff) << 24 |
+             ((long)array[index + 5] & 0xff) << 16 |
+             ((long)array[index + 6] & 0xff) << 8 |
+             ((long)array[index + 7] & 0xff) << 0;
+   }
+
+   public void setShort(final int index, final short value)
+   {
+      array[index] = (byte)(value >>> 8);
+      array[index + 1] = (byte)(value >>> 0);
+   }
+
+   public void setMedium(final int index, final int value)
+   {
+      array[index] = (byte)(value >>> 16);
+      array[index + 1] = (byte)(value >>> 8);
+      array[index + 2] = (byte)(value >>> 0);
+   }
+
+   public void setInt(final int index, final int value)
+   {
+      array[index] = (byte)(value >>> 24);
+      array[index + 1] = (byte)(value >>> 16);
+      array[index + 2] = (byte)(value >>> 8);
+      array[index + 3] = (byte)(value >>> 0);
+   }
+
+   public void setLong(final int index, final long value)
+   {
+      array[index] = (byte)(value >>> 56);
+      array[index + 1] = (byte)(value >>> 48);
+      array[index + 2] = (byte)(value >>> 40);
+      array[index + 3] = (byte)(value >>> 32);
+      array[index + 4] = (byte)(value >>> 24);
+      array[index + 5] = (byte)(value >>> 16);
+      array[index + 6] = (byte)(value >>> 8);
+      array[index + 7] = (byte)(value >>> 0);
+   }
+
+   public ChannelBuffer copy(final int index, final int length)
+   {
+      if (index < 0 || length < 0 || index + length > array.length)
+      {
+         throw new IndexOutOfBoundsException();
+      }
+
+      byte[] copiedArray = new byte[length];
+      System.arraycopy(array, index, copiedArray, 0, length);
+      return new HeapChannelBuffer(copiedArray);
+   }
+
+   public ChannelBuffer duplicate()
+   {
+      return new HeapChannelBuffer(array, readerIndex(), writerIndex());
+   }
+
+   public ByteBuffer toByteBuffer(final int index, final int length)
+   {
+      return ByteBuffer.wrap(array, index, length);
+   }
+
+   public String toString(final int index, final int length, final String charsetName)
+   {
+      try
+      {
+         return new String(array, index, length, charsetName);
+      }
+      catch (UnsupportedEncodingException e)
+      {
+         throw new UnsupportedCharsetException(charsetName);
+      }
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#array()
+    */
+   public byte[] array()
+   {
+      return array;
+   }
+
+}

Added: trunk/src/main/org/jboss/messaging/core/buffers/package.html
===================================================================
--- trunk/src/main/org/jboss/messaging/core/buffers/package.html	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/buffers/package.html	2009-02-27 20:23:47 UTC (rev 5948)
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+  <head>
+    <!--
+
+    JBoss: The OpenSource J2EE WebOS 
+
+    Distributable under LGPL license.
+    See terms of license at gnu.org.
+
+    -->
+  </head>
+  <body>
+  
+<h2>JBoss Messaging Buffering</h2>
+
+
+<p>This package is a stripped down version of org.jboss.netty.buffer, and we kept only what we needed for JBossMessaging buffers.</p>
+
+<p>ChannelBuffer differs from java.nio.ByteBuffer in two ways:</p>
+
+<p>- It's possible to interface almost directly with byte arrays, what is faster</p>
+
+<p>- There are two positions, one for reading, and one for writing. Hence you will find methods for read, and methods for writing</p>
+
+<h2>Usage</h2>
+
+<p> Always use the static methods declared at org.jboss.messaging.core.buffers.ChannelBuffers to create the buffers you need: </p>
+
+
+<p> buffer(int capacity) - This method will create a fixed size MessagingBuffer </p>
+
+<p> dynamicBuffer(final int estimatedLength) - This method will create a SelfExpandable MessagingBuffer </p>
+
+<p> dynamicBuffer(final byte[] initialBuffer) - This method will create a SelfExpandable MessagingBuffer, but reusing the initialBuffer. Be careful though, the reference will be directly used on the createdBuffer. If your buffer will be used by other operations, you should instead create a new buffer and perform a write. </p> 
+
+<p> buffer(final int capacity) - This method will create a fixed size MessagingBuffer </p>
+
+<p> wrappedBuffer(final byte[] array) - It will create a Buffer, with writePosition at the end, and readPosition at 0 </p>
+
+<p> wrappedBuffer(final ByteBuffer buffer) - It will wrap a Bytebuffer on a MessagingBuffer. The position on this buffer won't affect the position on the inner buffer </p>
+
+
+
+  </body>
+</html>
\ No newline at end of file

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -20,13 +20,13 @@
 import java.util.Queue;
 import java.util.concurrent.Executor;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientFileMessage;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.MessageHandler;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.remoting.Channel;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionConsumerCloseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionConsumerFlowCreditMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionReceiveContinuationMessage;
@@ -356,8 +356,6 @@
          return;
       }
 
-      ByteBuffer body = ByteBuffer.wrap(chunk.getBody());
-
       if (chunk.isContinues())
       {
          flowControl(chunk.getPacketSize(), true);
@@ -370,20 +368,14 @@
       }
       else
       {
-         MessagingBuffer currentBody = currentChunkMessage.getBody();
-
-         final int currentBodySize = currentBody == null ? 0 : currentBody.limit();
-
-         MessagingBuffer newBody = new ByteBufferWrapper(ByteBuffer.allocate(currentBodySize + body.limit()));
-
-         if (currentBody != null)
+         if (currentChunkMessage.getBody() == null)
          {
-            newBody.putBytes(currentBody.array());
+            currentChunkMessage.setBody(ChannelBuffers.dynamicBuffer(chunk.getBody()));
          }
-
-         newBody.putBytes(body.array());
-
-         currentChunkMessage.setBody(newBody);
+         else
+         {
+            currentChunkMessage.getBody().writeBytes(chunk.getBody());
+         }
       }
 
       if (!chunk.isContinues())
@@ -671,7 +663,7 @@
       {
          int propertiesSize = message.getPropertiesEncodeSize();
 
-         MessagingBuffer bufferProperties = message.getBody().createNewBuffer(propertiesSize);
+         MessagingBuffer bufferProperties = session.createBuffer(propertiesSize); 
 
          // FIXME: Find a better way to clone this ClientMessageImpl as ClientFileMessageImpl without using the
          // MessagingBuffer.
@@ -679,7 +671,7 @@
          // abstraction
          message.encodeProperties(bufferProperties);
 
-         bufferProperties.rewind();
+         bufferProperties.resetReaderIndex();
 
          ClientFileMessageImpl cloneMessage = new ClientFileMessageImpl();
 
@@ -708,7 +700,7 @@
    private ClientMessageInternal createFileMessage(final byte[] header) throws Exception
    {
 
-      MessagingBuffer headerBuffer = new ByteBufferWrapper(ByteBuffer.wrap(header));
+      MessagingBuffer headerBuffer = ChannelBuffers.wrappedBuffer(header); 
 
       if (isFileConsumer())
       {

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientFileMessageImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientFileMessageImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientFileMessageImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -133,7 +133,7 @@
          channel.position(0);
          channel.read(fileBuffer);
 
-         buffer.putBytes(fileBuffer.array(), 0, fileBuffer.limit());
+         buffer.writeBytes(fileBuffer.array(), 0, fileBuffer.limit());
       }
       catch (Exception e)
       {
@@ -167,7 +167,7 @@
          channel.position(start);
          channel.read(bufferRead);
 
-         buffer.putBytes(bufferRead.array());
+         buffer.writeBytes(bufferRead.array());
       }
       catch (Exception e)
       {

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -24,14 +24,12 @@
 
 import static org.jboss.messaging.utils.SimpleString.toSimpleString;
 
-import java.nio.ByteBuffer;
-
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.message.impl.MessageImpl;
 import org.jboss.messaging.core.remoting.Channel;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionSendContinuationMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionSendMessage;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
@@ -250,7 +248,7 @@
                                       "Header size (" + headerSize + ") is too big, use the messageBody for large data, or increase minLargeMessageSize");
       }
 
-      MessagingBuffer headerBuffer = new ByteBufferWrapper(ByteBuffer.allocate(headerSize));
+      MessagingBuffer headerBuffer = ChannelBuffers.buffer(headerSize); 
       msg.encodeProperties(headerBuffer);
 
       final int bodySize = msg.getBodySize();
@@ -265,7 +263,7 @@
                   
          final int chunkLength = Math.min(bodySize - pos, minLargeMessageSize); 
          
-         final MessagingBuffer bodyBuffer = new ByteBufferWrapper(ByteBuffer.allocate(chunkLength));
+         final MessagingBuffer bodyBuffer = ChannelBuffers.buffer(chunkLength); 
 
          msg.encodeBody(bodyBuffer, pos, chunkLength);
 

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -36,6 +36,7 @@
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientConsumer;
 import org.jboss.messaging.core.client.ClientFileMessage;
 import org.jboss.messaging.core.client.ClientMessage;
@@ -574,7 +575,7 @@
                                             final long timestamp,
                                             final byte priority)
    {
-      MessagingBuffer body = remotingConnection.createBuffer(INITIAL_MESSAGE_BODY_SIZE);
+      MessagingBuffer body = createBuffer(INITIAL_MESSAGE_BODY_SIZE);
 
       return new ClientMessageImpl(type, durable, expiration, timestamp, priority, body);
    }
@@ -588,11 +589,20 @@
 
    public ClientMessage createClientMessage(final boolean durable)
    {
-      MessagingBuffer body = remotingConnection.createBuffer(INITIAL_MESSAGE_BODY_SIZE);
+      MessagingBuffer body = createBuffer(INITIAL_MESSAGE_BODY_SIZE);
 
       return new ClientMessageImpl(durable, body);
    }
+   
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.client.impl.ClientSessionInternal#createBuffer(int)
+    */
+   public MessagingBuffer createBuffer(int size)
+   {
+      return ChannelBuffers.dynamicBuffer(size); 
+   }
 
+
    public ClientFileMessage createFileMessage(final boolean durable)
    {
       return new ClientFileMessageImpl(durable);

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionInternal.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionInternal.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionInternal.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -17,6 +17,7 @@
 import org.jboss.messaging.core.remoting.RemotingConnection;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionReceiveContinuationMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionReceiveMessage;
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 
 /**
  * A ClientSessionInternal
@@ -28,6 +29,8 @@
    String getName();
 
    void acknowledge(long consumerID, long messageID) throws MessagingException;
+   
+   MessagingBuffer createBuffer(int size);
 
    void expire(long consumerID, long messageID) throws MessagingException;
 

Modified: trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -49,6 +49,8 @@
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
+import org.jboss.messaging.core.buffers.ChannelBuffer;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.journal.BufferCallback;
 import org.jboss.messaging.core.journal.EncodingSupport;
@@ -60,7 +62,6 @@
 import org.jboss.messaging.core.journal.SequentialFileFactory;
 import org.jboss.messaging.core.journal.TestableJournal;
 import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.utils.Pair;
 import org.jboss.messaging.utils.VariableLatch;
@@ -305,19 +306,19 @@
 
       int size = SIZE_ADD_RECORD + recordLength;
 
-      ByteBufferWrapper bb = new ByteBufferWrapper(newBuffer(size));
+      ChannelBuffer bb = ChannelBuffers.wrappedBuffer(newBuffer(size)); 
 
-      bb.putByte(ADD_RECORD);
-      bb.putInt(-1); // skip ID part
-      bb.putLong(id);
-      bb.putInt(recordLength);
-      bb.putByte(recordType);
+      bb.writeByte(ADD_RECORD);
+      bb.writeInt(-1); // skip ID part
+      bb.writeLong(id);
+      bb.writeInt(recordLength);
+      bb.writeByte(recordType);
       record.encode(bb);
-      bb.putInt(size);
+      bb.writeInt(size);
 
       try
       {
-         JournalFile usedFile = appendRecord(bb.getBuffer(), sync, null);
+         JournalFile usedFile = appendRecord(bb.toByteBuffer(), sync, null);
 
          posFilesMap.put(id, new PosFiles(usedFile));
       }
@@ -355,19 +356,19 @@
 
       int size = SIZE_UPDATE_RECORD + record.getEncodeSize();
 
-      ByteBufferWrapper bb = new ByteBufferWrapper(newBuffer(size));
+      ChannelBuffer bb = ChannelBuffers.wrappedBuffer(newBuffer(size)); 
 
-      bb.putByte(UPDATE_RECORD);
-      bb.putInt(-1); // skip ID part
-      bb.putLong(id);
-      bb.putInt(record.getEncodeSize());
-      bb.putByte(recordType);
+      bb.writeByte(UPDATE_RECORD);
+      bb.writeInt(-1); // skip ID part
+      bb.writeLong(id);
+      bb.writeInt(record.getEncodeSize());
+      bb.writeByte(recordType);
       record.encode(bb);
-      bb.putInt(size);
+      bb.writeInt(size);
 
       try
       {
-         JournalFile usedFile = appendRecord(bb.getBuffer(), syncNonTransactional, null);
+         JournalFile usedFile = appendRecord(bb.toByteBuffer(), syncNonTransactional, null);
 
          posFiles.addUpdateFile(usedFile);
       }
@@ -446,20 +447,20 @@
 
       int size = SIZE_ADD_RECORD_TX + recordLength;
 
-      ByteBufferWrapper bb = new ByteBufferWrapper(newBuffer(size));
+      ChannelBuffer bb = ChannelBuffers.wrappedBuffer(newBuffer(size)); 
 
-      bb.putByte(ADD_RECORD_TX);
-      bb.putInt(-1); // skip ID part
-      bb.putLong(txID);
-      bb.putLong(id);
-      bb.putInt(recordLength);
-      bb.putByte(recordType);
+      bb.writeByte(ADD_RECORD_TX);
+      bb.writeInt(-1); // skip ID part
+      bb.writeLong(txID);
+      bb.writeLong(id);
+      bb.writeInt(recordLength);
+      bb.writeByte(recordType);
       record.encode(bb);
-      bb.putInt(size);
+      bb.writeInt(size);
 
       try
       {
-         JournalFile usedFile = appendRecord(bb.getBuffer(), false, getTransactionCallback(txID));
+         JournalFile usedFile = appendRecord(bb.toByteBuffer(), false, getTransactionCallback(txID));
 
          JournalTransaction tx = getTransactionInfo(txID);
 
@@ -498,20 +499,20 @@
 
       int size = SIZE_UPDATE_RECORD_TX + record.getEncodeSize();
 
-      ByteBufferWrapper bb = new ByteBufferWrapper(newBuffer(size));
+      ChannelBuffer bb = ChannelBuffers.wrappedBuffer(newBuffer(size)); 
 
-      bb.putByte(UPDATE_RECORD_TX);
-      bb.putInt(-1); // skip ID part
-      bb.putLong(txID);
-      bb.putLong(id);
-      bb.putInt(record.getEncodeSize());
-      bb.putByte(recordType);
+      bb.writeByte(UPDATE_RECORD_TX);
+      bb.writeInt(-1); // skip ID part
+      bb.writeLong(txID);
+      bb.writeLong(id);
+      bb.writeInt(record.getEncodeSize());
+      bb.writeByte(recordType);
       record.encode(bb);
-      bb.putInt(size);
+      bb.writeInt(size);
 
       try
       {
-         JournalFile usedFile = appendRecord(bb.getBuffer(), false, getTransactionCallback(txID));
+         JournalFile usedFile = appendRecord(bb.toByteBuffer(), false, getTransactionCallback(txID));
 
          JournalTransaction tx = getTransactionInfo(txID);
 
@@ -544,22 +545,22 @@
 
       int size = SIZE_DELETE_RECORD_TX + (record != null ? record.getEncodeSize() : 0);
 
-      ByteBufferWrapper bb = new ByteBufferWrapper(newBuffer(size));
+      ChannelBuffer bb = ChannelBuffers.wrappedBuffer(newBuffer(size)); 
 
-      bb.putByte(DELETE_RECORD_TX);
-      bb.putInt(-1); // skip ID part
-      bb.putLong(txID);
-      bb.putLong(id);
-      bb.putInt(record != null ? record.getEncodeSize() : 0);
+      bb.writeByte(DELETE_RECORD_TX);
+      bb.writeInt(-1); // skip ID part
+      bb.writeLong(txID);
+      bb.writeLong(id);
+      bb.writeInt(record != null ? record.getEncodeSize() : 0);
       if (record != null)
       {
          record.encode(bb);
       }
-      bb.putInt(size);
+      bb.writeInt(size);
 
       try
       {
-         JournalFile usedFile = appendRecord(bb.getBuffer(), false, getTransactionCallback(txID));
+         JournalFile usedFile = appendRecord(bb.toByteBuffer(), false, getTransactionCallback(txID));
 
          JournalTransaction tx = getTransactionInfo(txID);
 
@@ -587,18 +588,18 @@
 
       int size = SIZE_DELETE_RECORD_TX;
 
-      ByteBufferWrapper bb = new ByteBufferWrapper(newBuffer(size));
+      ChannelBuffer bb = ChannelBuffers.wrappedBuffer(newBuffer(size)); 
 
-      bb.putByte(DELETE_RECORD_TX);
-      bb.putInt(-1); // skip ID part
-      bb.putLong(txID);
-      bb.putLong(id);
-      bb.putInt(0);
-      bb.putInt(size);
+      bb.writeByte(DELETE_RECORD_TX);
+      bb.writeInt(-1); // skip ID part
+      bb.writeLong(txID);
+      bb.writeLong(id);
+      bb.writeInt(0);
+      bb.writeInt(size);
 
       try
       {
-         JournalFile usedFile = appendRecord(bb.getBuffer(), false, getTransactionCallback(txID));
+         JournalFile usedFile = appendRecord(bb.toByteBuffer(), false, getTransactionCallback(txID));
 
          JournalTransaction tx = getTransactionInfo(txID);
 
@@ -1843,33 +1844,33 @@
                  2 +
                  (transactionData != null ? transactionData.getEncodeSize() + SIZE_INT : 0);
 
-      ByteBuffer bb = newBuffer(size);
+      ChannelBuffer bb = ChannelBuffers.wrappedBuffer(newBuffer(size)); 
+      
+      bb.writeByte(recordType);
+      bb.writeInt(-1); // skip ID part
+      bb.writeLong(txID);
 
-      bb.put(recordType);
-      bb.putInt(-1); // skip ID part
-      bb.putLong(txID);
-
       if (transactionData != null)
       {
-         bb.putInt(transactionData.getEncodeSize());
+         bb.writeInt(transactionData.getEncodeSize());
       }
 
-      bb.putInt(tx.getElementsSummary().size());
+      bb.writeInt(tx.getElementsSummary().size());
 
       if (transactionData != null)
       {
-         transactionData.encode(new ByteBufferWrapper(bb));
+         transactionData.encode(bb);
       }
 
       for (Map.Entry<Integer, AtomicInteger> entry : tx.getElementsSummary().entrySet())
       {
-         bb.putInt(entry.getKey());
-         bb.putInt(entry.getValue().get());
+         bb.writeInt(entry.getKey());
+         bb.writeInt(entry.getValue().get());
       }
 
-      bb.putInt(size);
+      bb.writeInt(size);
 
-      return bb;
+      return bb.toByteBuffer();
    }
 
    private boolean isTransaction(final byte recordType)
@@ -2641,7 +2642,7 @@
 
       public void encode(final MessagingBuffer buffer)
       {
-         buffer.putBytes(data);
+         buffer.writeBytes(data);
       }
 
       public int getEncodeSize()

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -26,7 +26,6 @@
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -39,6 +38,7 @@
 import javax.management.ObjectName;
 import javax.management.StandardMBean;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.management.impl.ManagementHelper;
 import org.jboss.messaging.core.cluster.DiscoveryGroup;
 import org.jboss.messaging.core.config.Configuration;
@@ -68,7 +68,6 @@
 import org.jboss.messaging.core.messagecounter.impl.MessageCounterManagerImpl;
 import org.jboss.messaging.core.persistence.StorageManager;
 import org.jboss.messaging.core.postoffice.PostOffice;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.server.RemotingService;
 import org.jboss.messaging.core.remoting.spi.Acceptor;
 import org.jboss.messaging.core.security.Role;
@@ -554,7 +553,7 @@
             // Now send message
 
             ServerMessage notificationMessage = new ServerMessageImpl(storageManager.generateUniqueID());
-            notificationMessage.setBody(new ByteBufferWrapper(ByteBuffer.allocate(0)));
+            notificationMessage.setBody(ChannelBuffers.EMPTY_BUFFER);
             // Notification messages are always durable so the user can choose whether to add a durable queue to consume
             // them in
             notificationMessage.setDurable(true);

Modified: trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -26,13 +26,14 @@
 import static org.jboss.messaging.utils.DataConstants.SIZE_BYTE;
 import static org.jboss.messaging.utils.DataConstants.SIZE_INT;
 import static org.jboss.messaging.utils.DataConstants.SIZE_LONG;
-import org.jboss.messaging.utils.SimpleString;
 
 import java.util.Set;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
+import org.jboss.messaging.utils.SimpleString;
 import org.jboss.messaging.utils.TypedProperties;
 
 /**
@@ -156,7 +157,7 @@
    public void encode(final MessagingBuffer buffer)
    {
       encodeProperties(buffer);
-      buffer.putInt(getBodySize());
+      buffer.writeInt(getBodySize());
       encodeBody(buffer);
    }
    
@@ -178,31 +179,31 @@
 
    public int getBodySize()
    {
-      return /* BodySize and Body */body.limit();
+      return body.writerIndex();
    }
 
    public void encodeProperties(MessagingBuffer buffer)
    {
-      buffer.putLong(messageID);
-      buffer.putSimpleString(destination);
-      buffer.putByte(type);
-      buffer.putBoolean(durable);
-      buffer.putLong(expiration);
-      buffer.putLong(timestamp);
-      buffer.putByte(priority);
+      buffer.writeLong(messageID);
+      buffer.writeSimpleString(destination);
+      buffer.writeByte(type);
+      buffer.writeBoolean(durable);
+      buffer.writeLong(expiration);
+      buffer.writeLong(timestamp);
+      buffer.writeByte(priority);
       properties.encode(buffer);
    }
 
    public void encodeBody(MessagingBuffer buffer)
    {
       MessagingBuffer localBody = getBody();
-      buffer.putBytes(localBody.array(), 0, localBody.limit());
+      buffer.writeBytes(localBody.array(), 0, localBody.writerIndex());
    }
 
    // Used on Message chunk
    public void encodeBody(MessagingBuffer buffer, long start, int size)
    {
-      buffer.putBytes(body.array(), (int)start, size);
+      buffer.writeBytes(body.array(), (int)start, size);
    }
 
    public void decode(final MessagingBuffer buffer)
@@ -214,24 +215,24 @@
 
    public void decodeProperties(final MessagingBuffer buffer)
    {
-      messageID = buffer.getLong();
-      destination = buffer.getSimpleString();
-      type = buffer.getByte();
-      durable = buffer.getBoolean();
-      expiration = buffer.getLong();
-      timestamp = buffer.getLong();
-      priority = buffer.getByte();
+      messageID = buffer.readLong();
+      destination = buffer.readSimpleString();
+      type = buffer.readByte();
+      durable = buffer.readBoolean();
+      expiration = buffer.readLong();
+      timestamp = buffer.readLong();
+      priority = buffer.readByte();
       properties.decode(buffer);
    }
 
    public void decodeBody(final MessagingBuffer buffer)
    {
-      int len = buffer.getInt();
-      // TODO - this can be optimised
+      int len = buffer.readInt();
       byte[] bytes = new byte[len];
-      buffer.getBytes(bytes);
-      body = buffer.createNewBuffer(len);
-      body.putBytes(bytes);
+      buffer.readBytes(bytes);
+
+      // Reuse the same body on the initial body created
+      body = ChannelBuffers.dynamicBuffer(bytes); 
    }
 
    public long getMessageID()

Modified: trunk/src/main/org/jboss/messaging/core/paging/impl/PageImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/paging/impl/PageImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/paging/impl/PageImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -30,12 +30,13 @@
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.jboss.messaging.core.buffers.ChannelBuffer;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.journal.SequentialFile;
 import org.jboss.messaging.core.journal.SequentialFileFactory;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.paging.Page;
 import org.jboss.messaging.core.paging.PagedMessage;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 
 /**
  * 
@@ -92,29 +93,32 @@
    {
       ArrayList<PagedMessage> messages = new ArrayList<PagedMessage>();
 
-      ByteBuffer buffer = fileFactory.newBuffer((int)file.size());
+      ByteBuffer buffer2 = fileFactory.newBuffer((int)file.size());
       file.position(0);
-      file.read(buffer);
+      file.read(buffer2);
+      
+      buffer2.rewind();
 
-      ByteBufferWrapper messageBuffer = new ByteBufferWrapper(buffer);
+      ChannelBuffer fileBuffer = ChannelBuffers.wrappedBuffer(buffer2); 
+      fileBuffer.writerIndex(fileBuffer.capacity());
 
-      while (buffer.hasRemaining())
+      while (fileBuffer.readable())
       {
-         final int position = buffer.position();
+         final int position = fileBuffer.readerIndex();
 
-         byte byteRead = buffer.get();
+         byte byteRead = fileBuffer.readByte();
 
          if (byteRead == START_BYTE)
          {
-            if (buffer.position() + SIZE_INT < buffer.limit())
+            if (fileBuffer.readerIndex() + SIZE_INT < fileBuffer.capacity())
             {
-               int messageSize = buffer.getInt();
-               int oldPos = buffer.position();
-               if (buffer.position() + messageSize < buffer.limit() && buffer.get(oldPos + messageSize) == END_BYTE)
+               int messageSize = fileBuffer.readInt();
+               int oldPos = fileBuffer.readerIndex();
+               if (fileBuffer.readerIndex() + messageSize < fileBuffer.capacity() && fileBuffer.getByte(oldPos + messageSize) == END_BYTE)
                {
                   PagedMessage msg = new PagedMessageImpl();
-                  msg.decode(messageBuffer);
-                  if (buffer.get() != END_BYTE)
+                  msg.decode(fileBuffer);
+                  if (fileBuffer.readByte() != END_BYTE)
                   {
                      // Sanity Check: This would only happen if there is a bug on decode or any internal code, as this
                      // constraint was already checked
@@ -144,10 +148,14 @@
    public void write(final PagedMessage message) throws Exception
    {
       ByteBuffer buffer = fileFactory.newBuffer(message.getEncodeSize() + SIZE_RECORD);
-      buffer.put(START_BYTE);
-      buffer.putInt(message.getEncodeSize());
-      message.encode(new ByteBufferWrapper(buffer));
-      buffer.put(END_BYTE);
+      
+      ChannelBuffer wrap = ChannelBuffers.wrappedBuffer(buffer);
+      
+      wrap.writeByte(START_BYTE);
+      wrap.writeInt(message.getEncodeSize());
+      message.encode(wrap);
+      wrap.writeByte(END_BYTE);
+
       buffer.rewind();
 
       file.write(buffer, false);

Modified: trunk/src/main/org/jboss/messaging/core/paging/impl/PageTransactionInfoImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/paging/impl/PageTransactionInfoImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/paging/impl/PageTransactionInfoImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -111,8 +111,8 @@
 
    public synchronized void decode(final MessagingBuffer buffer)
    {
-      transactionID = buffer.getLong();
-      numberOfMessages.set(buffer.getInt());
+      transactionID = buffer.readLong();
+      numberOfMessages.set(buffer.readInt());
       countDownCompleted = null; // if it is being readed, probably it was
       // committed
       committed = true; // Unless it is a incomplete prepare, which is marked by
@@ -121,8 +121,8 @@
 
    public synchronized void encode(final MessagingBuffer buffer)
    {
-      buffer.putLong(transactionID);
-      buffer.putInt(numberOfMessages.get());
+      buffer.writeLong(transactionID);
+      buffer.writeInt(numberOfMessages.get());
    }
 
    public synchronized int getEncodeSize()

Modified: trunk/src/main/org/jboss/messaging/core/paging/impl/PagedMessageImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/paging/impl/PagedMessageImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/paging/impl/PagedMessageImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -26,11 +26,9 @@
 import static org.jboss.messaging.utils.DataConstants.SIZE_INT;
 import static org.jboss.messaging.utils.DataConstants.SIZE_LONG;
 
-import java.nio.ByteBuffer;
-
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.paging.PagedMessage;
 import org.jboss.messaging.core.persistence.StorageManager;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.server.LargeServerMessage;
 import org.jboss.messaging.core.server.ServerMessage;
@@ -84,7 +82,7 @@
       if (largeMessageLazyData != null)
       {
          message = storage.createLargeMessage();
-         MessagingBuffer buffer = new ByteBufferWrapper(ByteBuffer.wrap(largeMessageLazyData));
+         MessagingBuffer buffer = ChannelBuffers.dynamicBuffer(largeMessageLazyData); 
          message.decode(buffer);
          largeMessageLazyData = null;
       }
@@ -100,21 +98,21 @@
 
    public void decode(final MessagingBuffer buffer)
    {
-      transactionID = buffer.getLong();
+      transactionID = buffer.readLong();
 
-      boolean isLargeMessage = buffer.getBoolean();
+      boolean isLargeMessage = buffer.readBoolean();
 
       if (isLargeMessage)
       {
-         int largeMessageHeaderSize = buffer.getInt();
+         int largeMessageHeaderSize = buffer.readInt();
 
          largeMessageLazyData = new byte[largeMessageHeaderSize];
 
-         buffer.getBytes(largeMessageLazyData);
+         buffer.readBytes(largeMessageLazyData);
       }
       else
       {
-         buffer.getInt(); // This value is only used on LargeMessages for now
+         buffer.readInt(); // This value is only used on LargeMessages for now
          
          message = new ServerMessageImpl();
          
@@ -125,11 +123,11 @@
 
    public void encode(final MessagingBuffer buffer)
    {
-      buffer.putLong(transactionID);
+      buffer.writeLong(transactionID);
       
-      buffer.putBoolean(message instanceof LargeServerMessage);
+      buffer.writeBoolean(message instanceof LargeServerMessage);
       
-      buffer.putInt(message.getEncodeSize());
+      buffer.writeInt(message.getEncodeSize());
       
       message.encode(buffer);
    }

Modified: trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalLargeServerMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalLargeServerMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalLargeServerMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -132,7 +132,7 @@
 
          if (bytesRead > 0)
          {
-            bufferOut.putBytes(bufferRead.array(), 0, bytesRead);
+            bufferOut.writeBytes(bufferRead.array(), 0, bytesRead);
          }
 
       }

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	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -27,7 +27,6 @@
 import static org.jboss.messaging.utils.DataConstants.SIZE_LONG;
 
 import java.io.File;
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
@@ -41,6 +40,7 @@
 
 import javax.transaction.xa.Xid;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.filter.Filter;
@@ -62,7 +62,6 @@
 import org.jboss.messaging.core.persistence.StorageManager;
 import org.jboss.messaging.core.postoffice.Binding;
 import org.jboss.messaging.core.postoffice.PostOffice;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.impl.wireformat.XidCodecSupport;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.server.JournalType;
@@ -468,10 +467,8 @@
       {
          byte[] data = record.data;
 
-         ByteBuffer bb = ByteBuffer.wrap(data);
+         MessagingBuffer buff = ChannelBuffers.wrappedBuffer(data);
 
-         MessagingBuffer buff = new ByteBufferWrapper(bb);
-
          byte recordType = record.getUserRecordType();
 
          switch (recordType)
@@ -710,10 +707,8 @@
          {
             byte[] data = record.data;
 
-            ByteBuffer bb = ByteBuffer.wrap(data);
+            MessagingBuffer buff = ChannelBuffers.wrappedBuffer(data); 
 
-            MessagingBuffer buff = new ByteBufferWrapper(bb);
-
             byte recordType = record.getUserRecordType();
 
             switch (recordType)
@@ -837,10 +832,8 @@
          {
             byte[] data = record.data;
 
-            ByteBuffer bb = ByteBuffer.wrap(data);
+            MessagingBuffer buff = ChannelBuffers.wrappedBuffer(data); 
 
-            MessagingBuffer buff = new ByteBufferWrapper(bb);
-
             long messageID = record.id;
 
             DeleteEncoding encoding = new DeleteEncoding();
@@ -946,7 +939,7 @@
       {
          long id = record.id;
 
-         MessagingBuffer buffer = new ByteBufferWrapper(ByteBuffer.wrap(record.data));
+         MessagingBuffer buffer = ChannelBuffers.wrappedBuffer(record.data);
 
          byte rec = record.getUserRecordType();
 
@@ -1148,7 +1141,7 @@
 
       XidEncoding(final byte[] data)
       {
-         xid = XidCodecSupport.decodeXid(new ByteBufferWrapper(ByteBuffer.wrap(data)));
+         xid = XidCodecSupport.decodeXid(ChannelBuffers.wrappedBuffer(data));
       }
 
       public void decode(final MessagingBuffer buffer)
@@ -1217,16 +1210,16 @@
 
       public void decode(final MessagingBuffer buffer)
       {
-         name = buffer.getSimpleString();
-         address = buffer.getSimpleString();
-         filterString = buffer.getNullableSimpleString();
+         name = buffer.readSimpleString();
+         address = buffer.readSimpleString();
+         filterString = buffer.readNullableSimpleString();
       }
 
       public void encode(final MessagingBuffer buffer)
       {
-         buffer.putSimpleString(name);
-         buffer.putSimpleString(address);
-         buffer.putNullableSimpleString(filterString);
+         buffer.writeSimpleString(name);
+         buffer.writeSimpleString(address);
+         buffer.writeNullableSimpleString(filterString);
       }
 
       public int getEncodeSize()
@@ -1251,12 +1244,12 @@
 
       public void decode(final MessagingBuffer buffer)
       {
-         destination = buffer.getSimpleString();
+         destination = buffer.readSimpleString();
       }
 
       public void encode(final MessagingBuffer buffer)
       {
-         buffer.putSimpleString(destination);
+         buffer.writeSimpleString(destination);
       }
 
       public int getEncodeSize()
@@ -1283,14 +1276,14 @@
       {
          byte[] bytes = new byte[16];
          
-         buffer.getBytes(bytes);
+         buffer.readBytes(bytes);
          
          uuid = new UUID(UUID.TYPE_TIME_BASED, bytes);
       }
 
       public void encode(final MessagingBuffer buffer)
       {
-         buffer.putBytes(uuid.asBytes());
+         buffer.writeBytes(uuid.asBytes());
       }
 
       public int getEncodeSize()
@@ -1355,14 +1348,14 @@
 
       public void decode(final MessagingBuffer buffer)
       {
-         queueID = buffer.getLong();
-         count = buffer.getInt();
+         queueID = buffer.readLong();
+         count = buffer.readInt();
       }
 
       public void encode(final MessagingBuffer buffer)
       {
-         buffer.putLong(queueID);
-         buffer.putInt(count);
+         buffer.writeLong(queueID);
+         buffer.writeInt(count);
       }
 
       public int getEncodeSize()
@@ -1388,12 +1381,12 @@
 
       public void decode(final MessagingBuffer buffer)
       {
-         queueID = buffer.getLong();
+         queueID = buffer.readLong();
       }
 
       public void encode(final MessagingBuffer buffer)
       {
-         buffer.putLong(queueID);
+         buffer.writeLong(queueID);
       }
 
       public int getEncodeSize()
@@ -1451,13 +1444,13 @@
       public void encode(MessagingBuffer buffer)
       {
          super.encode(buffer);
-         buffer.putLong(scheduledDeliveryTime);
+         buffer.writeLong(scheduledDeliveryTime);
       }
 
       public void decode(MessagingBuffer buffer)
       {
          super.decode(buffer);
-         scheduledDeliveryTime = buffer.getLong();
+         scheduledDeliveryTime = buffer.readLong();
       }
    }
 
@@ -1480,22 +1473,22 @@
 
       public void decode(final MessagingBuffer buffer)
       {
-         address = buffer.getSimpleString();
+         address = buffer.readSimpleString();
 
-         int size = buffer.getInt();
+         int size = buffer.readInt();
 
          duplID = new byte[size];
 
-         buffer.getBytes(duplID);
+         buffer.readBytes(duplID);
       }
 
       public void encode(final MessagingBuffer buffer)
       {
-         buffer.putSimpleString(address);
+         buffer.writeSimpleString(address);
 
-         buffer.putInt(duplID.length);
+         buffer.writeInt(duplID.length);
 
-         buffer.putBytes(duplID);
+         buffer.writeBytes(duplID);
       }
 
       public int getEncodeSize()

Modified: trunk/src/main/org/jboss/messaging/core/persistence/impl/nullpm/NullStorageLargeServerMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/persistence/impl/nullpm/NullStorageLargeServerMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/persistence/impl/nullpm/NullStorageLargeServerMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -22,9 +22,7 @@
 
 package org.jboss.messaging.core.persistence.impl.nullpm;
 
-import java.nio.ByteBuffer;
-
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.server.LargeServerMessage;
 import org.jboss.messaging.core.server.impl.ServerMessageImpl;
@@ -72,18 +70,14 @@
 
       if (buffer != null)
       {
-         ByteBuffer newBuffer = ByteBuffer.allocate(buffer.limit() + bytes.length);
-         newBuffer.put(buffer.array());
-         buffer = new ByteBufferWrapper(newBuffer);
-         setBody(buffer);
+         // expand the buffer
+         buffer.writeBytes(bytes);
       }
       else
       {
-         buffer = new ByteBufferWrapper(ByteBuffer.allocate(bytes.length));
-         setBody(buffer);
+         // Reuse the initial byte array on the buffer construction
+         setBody(ChannelBuffers.dynamicBuffer(bytes));
       }
-
-      buffer.putBytes(bytes);
    }
 
    /* (non-Javadoc)

Modified: trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -22,7 +22,6 @@
 
 package org.jboss.messaging.core.postoffice.impl;
 
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -34,6 +33,7 @@
 import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.management.impl.ManagementHelper;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.filter.Filter;
@@ -54,7 +54,6 @@
 import org.jboss.messaging.core.postoffice.DuplicateIDCache;
 import org.jboss.messaging.core.postoffice.PostOffice;
 import org.jboss.messaging.core.postoffice.QueueInfo;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.QueueFactory;
 import org.jboss.messaging.core.server.SendLock;
@@ -769,7 +768,7 @@
          // First send a reset message
 
          ServerMessage message = new ServerMessageImpl(storageManager.generateUniqueID());
-         message.setBody(new ByteBufferWrapper(ByteBuffer.allocate(0)));
+         message.setBody(ChannelBuffers.EMPTY_BUFFER);
          message.setDestination(queueName);
          message.putBooleanProperty(HDR_RESET_QUEUE_DATA, true);
          queue.preroute(message, null);
@@ -839,7 +838,7 @@
    private ServerMessage createQueueInfoMessage(final NotificationType type, final SimpleString queueName)
    {
       ServerMessage message = new ServerMessageImpl(storageManager.generateUniqueID());
-      message.setBody(new ByteBufferWrapper(ByteBuffer.allocate(0)));
+      message.setBody(ChannelBuffers.EMPTY_BUFFER);
 
       message.setDestination(queueName);
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/AbstractBufferHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/AbstractBufferHandler.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/AbstractBufferHandler.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -21,10 +21,9 @@
   */
 package org.jboss.messaging.core.remoting.impl;
 
-import static org.jboss.messaging.utils.DataConstants.SIZE_INT;
-
 import org.jboss.messaging.core.remoting.spi.BufferHandler;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
+import org.jboss.messaging.utils.DataConstants;
 
 /**
  * A AbstractBufferHandler
@@ -36,14 +35,14 @@
 {
    public int isReadyToHandle(final MessagingBuffer buffer)
    {
-      if (buffer.remaining() <= SIZE_INT)
+      if (buffer.readableBytes() < DataConstants.SIZE_INT)
       {
          return -1;
       }
 
-      int length = buffer.getInt();
+      int length = buffer.readInt();
 
-      if (buffer.remaining() < length)
+      if (buffer.readableBytes() < length)
       {
          return -1;
       }

Deleted: trunk/src/main/org/jboss/messaging/core/remoting/impl/ByteBufferWrapper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/ByteBufferWrapper.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/ByteBufferWrapper.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -1,361 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */ 
-
-package org.jboss.messaging.core.remoting.impl;
-
-import static org.jboss.messaging.utils.DataConstants.FALSE;
-import static org.jboss.messaging.utils.DataConstants.NOT_NULL;
-import static org.jboss.messaging.utils.DataConstants.NULL;
-import static org.jboss.messaging.utils.DataConstants.TRUE;
-import org.jboss.messaging.utils.SimpleString;
-
-import java.nio.ByteBuffer;
-import java.nio.charset.Charset;
-
-import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
-import org.jboss.messaging.utils.UTF8Util;
-
-/**
- * 
- * A ByteBufferWrapper
- * 
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @author <a href="mailto:ataylor at redhat.com">Andy Taylor</a>
- *
- */
-public class ByteBufferWrapper implements MessagingBuffer
-{
-   private static final Charset utf8 = Charset.forName("UTF-8");
-   	
-	private ByteBuffer buffer;
-	
-	public ByteBufferWrapper(final ByteBuffer buffer)
-	{
-		this.buffer = buffer;
-	}
-	
-	public ByteBuffer getBuffer()
-	{
-	   return buffer;
-	}
-	
-	public byte[] array()
-   {
-      if(buffer.hasArray())
-      {
-         return buffer.array();
-      }
-      else
-      {
-         byte[] b = new byte[buffer.limit()];
-         buffer.get(b);
-         return b;
-      }
-   }
-    
-	public int position()
-	{
-		return buffer.position();
-	}
-	
-	public void position(final int position)
-   {
-   	buffer.position(position);
-   }
-
-	public int capacity()
-	{
-		return buffer.capacity();
-	}
-
-	public void flip()
-	{
-		buffer.flip();
-	}
-	
-	public MessagingBuffer slice()
-   {
-   	return new ByteBufferWrapper(buffer.slice());
-   }
-
-   public MessagingBuffer createNewBuffer(int len)
-   {
-      return new ByteBufferWrapper(ByteBuffer.allocate(len));
-   }
-
-   public void rewind()
-	{
-		buffer.rewind();
-	}
-
-	public boolean getBoolean()
-	{
-		byte b = buffer.get();
-      return (b == TRUE);
-	}
-
-	public byte getByte()
-	{
-		return buffer.get();
-	}
-	
-	public short getUnsignedByte()
-	{
-	   return (short)(buffer.get() & 0xFF);
-	}
-
-	public void getBytes(byte[] bytes)
-	{
-		buffer.get(bytes);
-	}
-	
-	public void getBytes(byte[] bytes, int offset, int length)
-	{
-		buffer.get(bytes, offset, length);
-	}
-
-	public double getDouble()
-	{
-		return buffer.getDouble();
-	}
-
-	public float getFloat()
-	{
-		return buffer.getFloat();
-	}
-
-	public int getInt()
-	{
-		return buffer.getInt();
-	}
-	
-	public long getLong()
-	{
-		return buffer.getLong();
-	}
-
-	public void putNullableString(final String nullableString)
-	{
-		if (nullableString == null)
-		{
-			buffer.put(NULL);
-		}
-		else
-		{
-			buffer.put(NOT_NULL);
-
-			putString(nullableString);
-		}
-	}
-
-	public String getNullableString()
-	{
-		byte check = buffer.get();
-
-		if (check == NULL)
-		{
-			return null;
-		}
-		else
-		{
-			return getString();
-		}
-	}
-
-	public void putString(final String nullableString)
-	{
-		//We don't encode
-
-		buffer.putInt(nullableString.length());
-
-		for (int i = 0; i < nullableString.length(); i++)
-		{
-			buffer.putChar(nullableString.charAt(i));
-		}      
-	}
-	
-	public void putUTF(final String str) throws Exception
-   {
-	   UTF8Util.saveUTF(this, str);
-   }
-
-	public short getShort()
-	{
-		return buffer.getShort();
-	}
-	
-	public int getUnsignedShort()
-	{
-	   return buffer.getShort() & 0xFFFF;
-	}
-	
-	public char getChar()
-	{
-		return buffer.getChar();
-	}
-
-	public String getString()
-   {
-      int len = buffer.getInt();
-      	
-   	char[] chars = new char[len];
-   	
-      for (int i = 0; i < len; i++)
-      {
-      	chars[i] = buffer.getChar();
-      }
-      
-      return new String(chars);               
-   }
-	
-   public void putSimpleString(final SimpleString string)
-   {
-   	byte[] data = string.getData();
-   	
-   	buffer.putInt(data.length);
-   	buffer.put(data);
-   }
-   
-   public SimpleString getNullableSimpleString()
-   {
-   	int b = buffer.get();
-   	if (b == NULL)
-   	{
-   	   return null;
-   	}
-   	else
-   	{
-         return getSimpleString();
-   	}
-   }
-   
-   public void putNullableSimpleString(final SimpleString string)
-   {
-   	if (string == null)
-   	{
-   		buffer.put(NULL);
-   	}
-   	else
-   	{
-   	   buffer.put(NOT_NULL);
-   		putSimpleString(string);
-   	}
-   }
-   
-   public SimpleString getSimpleString()
-   {
-   	int len = buffer.getInt();
-   	
-   	byte[] data = new byte[len];
-   	buffer.get(data);
-   	
-   	return new SimpleString(data);
-   }
-   
-   public String getUTF() throws Exception
-   {
-      return UTF8Util.readUTF(this);
-   }
-
-	public int limit()
-	{
-		return buffer.limit();
-	}
-	
-	public void limit(final int limit)
-   {
-   	buffer.limit(limit);
-   }
-
-	public void putBoolean(boolean val)
-	{
-		if (val)
-      {
-         buffer.put(TRUE);
-      }
-		else
-      {
-         buffer.put(FALSE);
-      }
-	}
-
-	public void putByte(byte val)
-	{
-		buffer.put(val);
-	}
-
-	public void putBytes(byte[] bytes)
-	{
-		buffer.put(bytes);
-	}
-	
-	public void putBytes(byte[] bytes, int offset, int len)
-	{
-		buffer.put(bytes, offset, len);
-	}
-
-	public void putDouble(double val)
-	{
-		buffer.putDouble(val);
-	}
-
-	public void putFloat(float val)
-	{
-		buffer.putFloat(val);
-	}
-
-	public void putInt(int val)
-	{
-		buffer.putInt(val);
-	}
-	
-	public void putInt(int pos, int val)
-   {
-      buffer.putInt(pos, val);
-   }
-
-	public void putLong(long val)
-	{
-		buffer.putLong(val);
-	}
-
-	public void putShort(short val)
-	{
-		buffer.putShort(val);
-	}
-	
-	public void putChar(char chr)
-	{
-		buffer.putChar(chr);
-	}
-	
-	public int remaining()
-	{
-		return buffer.remaining();
-	}
-
-	public Object getUnderlyingBuffer()
-	{
-	   return buffer;
-	}
-
-}

Deleted: trunk/src/main/org/jboss/messaging/core/remoting/impl/ExpandingMessagingBuffer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/ExpandingMessagingBuffer.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/ExpandingMessagingBuffer.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -1,380 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.messaging.core.remoting.impl;
-
-import static org.jboss.messaging.utils.DataConstants.NOT_NULL;
-import static org.jboss.messaging.utils.DataConstants.NULL;
-import org.jboss.messaging.utils.SimpleString;
-
-import java.nio.ByteBuffer;
-
-import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
-import org.jboss.messaging.utils.UTF8Util;
-
-/**
- * A {@link MessagingBuffer} which increases its capacity and length by itself
- * when there's not enough space for a {@code put} operation.
- *
- * @author <a href="mailto:tlee at redhat.com">Trustin Lee</a>
- * @version $Rev$, $Date$
- */
-public class ExpandingMessagingBuffer implements MessagingBuffer
-{
-   private ByteBuffer buf;
-
-   public ExpandingMessagingBuffer(ByteBuffer buf) {
-      this.buf = buf;
-   }
-
-   public ExpandingMessagingBuffer(int size) {
-      this(ByteBuffer.allocate(size));
-   }
-
-   public byte[] array()
-   {
-      if(buf.hasArray() && buf.arrayOffset() == 0 && buf.capacity() == buf.array().length)
-      {
-         return buf.array();
-      }
-      else
-      {
-         byte[] b = new byte[remaining()];
-         getBytes(b);
-         return b;
-      }
-   }
-
-   public int capacity()
-   {
-      return buf.capacity();
-   }
-
-   public MessagingBuffer createNewBuffer(int len)
-   {
-      return new ExpandingMessagingBuffer(len);
-   }
-
-   public void flip()
-   {
-      buf.flip();
-   }
-
-   public boolean getBoolean()
-   {
-      return getByte() != 0;
-   }
-
-   public byte getByte()
-   {
-      return buf.get();
-   }
-
-   public void getBytes(byte[] bytes)
-   {
-      buf.get(bytes);
-   }
-
-   public void getBytes(byte[] bytes, int offset, int length)
-   {
-      buf.get(bytes, offset, length);
-   }
-
-   public char getChar()
-   {
-      return buf.getChar();
-   }
-
-   public double getDouble()
-   {
-      return buf.getDouble();
-   }
-
-   public float getFloat()
-   {
-      return buf.getFloat();
-   }
-
-   public int getInt()
-   {
-      return buf.getInt();
-   }
-
-   public long getLong()
-   {
-      return buf.getLong();
-   }
-
-   public SimpleString getNullableSimpleString()
-   {
-      if (getByte() == NULL)
-      {
-         return null;
-      }
-      else
-      {
-         return getSimpleString();
-      }
-   }
-
-   public String getNullableString()
-   {
-      if (getByte() == NULL)
-      {
-         return null;
-      }
-      else
-      {
-         return getString();
-      }
-   }
-
-   public short getShort()
-   {
-      return buf.getShort();
-   }
-
-   public SimpleString getSimpleString()
-   {
-      int len = getInt();
-      byte[] data = new byte[len];
-      getBytes(data);
-      return new SimpleString(data);
-   }
-
-   public String getString()
-   {
-      int len = getInt();
-      char[] chars = new char[len];
-      for (int i = 0; i < len; i++)
-      {
-         chars[i] = getChar();
-      }
-      return new String(chars);
-   }
-
-   public String getUTF() throws Exception
-   {
-      return UTF8Util.readUTF(this);
-   }
-
-   public short getUnsignedByte()
-   {
-      return (short) (getByte() & 0xFF);
-   }
-
-   public int getUnsignedShort()
-   {
-      return getShort() & 0xFFFF;
-   }
-
-   public int limit()
-   {
-      return buf.limit();
-   }
-
-   public void limit(int limit)
-   {
-      buf.limit(limit);
-   }
-
-   public void position(int position)
-   {
-      buf.position(position);
-   }
-
-   public int position()
-   {
-      return buf.position();
-   }
-
-   public void putBoolean(boolean val)
-   {
-      putByte((byte) (val ? -1 : 0));
-   }
-
-   public void putByte(byte val)
-   {
-      ensureRemaining(1).put(val);
-   }
-
-   public void putBytes(byte[] bytes)
-   {
-      ensureRemaining(bytes.length).put(bytes);
-   }
-
-   public void putBytes(byte[] bytes, int offset, int length)
-   {
-      ensureRemaining(length).put(bytes, offset, length);
-   }
-
-   public void putChar(char val)
-   {
-      ensureRemaining(2).putChar(val);
-   }
-
-   public void putDouble(double val)
-   {
-      ensureRemaining(8).putDouble(val);
-   }
-
-   public void putFloat(float val)
-   {
-      ensureRemaining(4).putFloat(val);
-   }
-
-   public void putInt(int val)
-   {
-      ensureRemaining(4).putInt(val);
-   }
-
-   public void putInt(int pos, int val)
-   {
-      buf.putInt(pos, val);
-   }
-
-   public void putLong(long val)
-   {
-      ensureRemaining(8).putLong(val);
-   }
-
-   public void putNullableSimpleString(SimpleString val)
-   {
-      if (val == null)
-      {
-         ensureRemaining(1).put(NULL);
-      }
-      else
-      {
-         ensureRemaining(5 + (val.length() << 1));
-         buf.put(NOT_NULL);
-         byte[] data = val.getData();
-         ensureRemaining(data.length + 4);
-         buf.putInt(data.length);
-         buf.put(data);
-      }
-   }
-
-   public void putNullableString(String val)
-   {
-      if (val == null)
-      {
-         ensureRemaining(1).put(NULL);
-      }
-      else
-      {
-         ensureRemaining(5 + (val.length() << 1));
-         buf.put(NOT_NULL);
-         buf.putInt(val.length());
-         for (int i = 0; i < val.length(); i++)
-         {
-            buf.putChar(val.charAt(i));
-         }
-      }
-   }
-
-   public void putShort(short val)
-   {
-      ensureRemaining(2).putShort(val);
-   }
-
-   public void putSimpleString(SimpleString val)
-   {
-      byte[] data = val.getData();
-      ensureRemaining(4 + data.length);
-      buf.putInt(data.length);
-      buf.put(data);
-   }
-
-   public void putString(String val)
-   {
-      ensureRemaining(4 + (val.length() << 1));
-      buf.putInt(val.length());
-      for (int i = 0; i < val.length(); i++)
-      {
-         buf.putChar(val.charAt(i));
-      }
-   }
-
-   public void putUTF(String utf) throws Exception
-   {
-      UTF8Util.saveUTF(this, utf);
-   }
-
-   public int remaining()
-   {
-      return buf.remaining();
-   }
-
-   public void rewind()
-   {
-      buf.rewind();
-   }
-
-   public MessagingBuffer slice()
-   {
-      return new ExpandingMessagingBuffer(buf.slice());
-   }
-   
-   public Object getUnderlyingBuffer()
-   {
-      return buf;
-   }
-
-   private ByteBuffer ensureRemaining(int minRemaining)
-   {
-      int remaining = remaining();
-      if (remaining >= minRemaining)
-      {
-         return buf;
-      }
-
-      int capacity = capacity();
-      int limit = limit();
-      if (capacity - limit >= minRemaining - remaining) {
-         buf.limit(limit + minRemaining - remaining);
-         return buf;
-      }
-
-      int position = position();
-      int minCapacityDifference = minRemaining - remaining;
-      int oldCapacity = capacity();
-      int newCapacity = oldCapacity;
-      for (;;)
-      {
-         newCapacity <<= 1;
-         if (newCapacity - oldCapacity >= minCapacityDifference)
-         {
-            break;
-         }
-      }
-
-      ByteBuffer newBuf = ByteBuffer.allocate(newCapacity);
-      buf.clear();
-      newBuf.put(buf);
-      newBuf.limit(position + minRemaining);
-      newBuf.position(position);
-      buf = newBuf;
-
-      return newBuf;
-   }
-}

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -637,7 +637,7 @@
 
    private Packet decode(final MessagingBuffer in)
    {
-      final byte packetType = in.getByte();
+      final byte packetType = in.readByte();
 
       Packet packet;
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnection.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnection.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnection.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -21,13 +21,12 @@
   */
 package org.jboss.messaging.core.remoting.impl.invm;
 
-import java.nio.ByteBuffer;
 import java.util.concurrent.Executor;
 import java.util.concurrent.Executors;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.BufferHandler;
 import org.jboss.messaging.core.remoting.spi.Connection;
 import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
@@ -101,7 +100,7 @@
 
    public MessagingBuffer createBuffer(final int size)
    {
-      return new ByteBufferWrapper(ByteBuffer.allocate(size));
+      return ChannelBuffers.buffer(size); 
    }
 
    public Object getID()
@@ -119,7 +118,7 @@
             {
                if (!closed)
                {
-                  buffer.getInt(); // read and discard
+                  buffer.readInt(); // read and discard
                   handler.bufferReceived(id, buffer);
                }
                else

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateSessionMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateSessionMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateSessionMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -152,32 +152,32 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putString(name);
-      buffer.putLong(sessionChannelID);
-      buffer.putInt(version);
-      buffer.putNullableString(username);
-      buffer.putNullableString(password);
-      buffer.putInt(minLargeMessageSize);
-      buffer.putBoolean(xa);
-      buffer.putBoolean(autoCommitSends);
-      buffer.putBoolean(autoCommitAcks);
-      buffer.putInt(windowSize);
-      buffer.putBoolean(preAcknowledge);
+      buffer.writeString(name);
+      buffer.writeLong(sessionChannelID);
+      buffer.writeInt(version);
+      buffer.writeNullableString(username);
+      buffer.writeNullableString(password);
+      buffer.writeInt(minLargeMessageSize);
+      buffer.writeBoolean(xa);
+      buffer.writeBoolean(autoCommitSends);
+      buffer.writeBoolean(autoCommitAcks);
+      buffer.writeInt(windowSize);
+      buffer.writeBoolean(preAcknowledge);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      name = buffer.getString();
-      sessionChannelID = buffer.getLong();
-      version = buffer.getInt();
-      username = buffer.getNullableString();
-      password = buffer.getNullableString();
-      minLargeMessageSize = buffer.getInt();
-      xa = buffer.getBoolean();
-      autoCommitSends = buffer.getBoolean();
-      autoCommitAcks = buffer.getBoolean();
-      windowSize = buffer.getInt();
-      preAcknowledge = buffer.getBoolean();
+      name = buffer.readString();
+      sessionChannelID = buffer.readLong();
+      version = buffer.readInt();
+      username = buffer.readNullableString();
+      password = buffer.readNullableString();
+      minLargeMessageSize = buffer.readInt();
+      xa = buffer.readBoolean();
+      autoCommitSends = buffer.readBoolean();
+      autoCommitAcks = buffer.readBoolean();
+      windowSize = buffer.readInt();
+      preAcknowledge = buffer.readBoolean();
    }
    
    public boolean equals(Object other)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateSessionResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateSessionResponseMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateSessionResponseMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -68,12 +68,12 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putInt(serverVersion);      
+      buffer.writeInt(serverVersion);      
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      serverVersion = buffer.getInt();
+      serverVersion = buffer.readInt();
    }
 
    public boolean equals(Object other)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/MessagingExceptionMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/MessagingExceptionMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/MessagingExceptionMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -70,14 +70,14 @@
 
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putInt(exception.getCode());
-      buffer.putNullableString(exception.getMessage());
+      buffer.writeInt(exception.getCode());
+      buffer.writeNullableString(exception.getMessage());
    }
 
    public void decodeBody(final MessagingBuffer buffer)
    {
-      int code = buffer.getInt();
-      String msg = buffer.getNullableString();
+      int code = buffer.readInt();
+      String msg = buffer.readNullableString();
       exception = new MessagingException(code, msg);
    }
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -179,31 +179,29 @@
    public int encode(final MessagingBuffer buffer)
    {
       // The standard header fields
-      buffer.putInt(0); // The length gets filled in at the end
-      buffer.putByte(type);
-      buffer.putLong(channelID);
+      buffer.writeInt(0); // The length gets filled in at the end
+      buffer.writeByte(type);
+      buffer.writeLong(channelID);
 
       encodeBody(buffer);
 
-      size = buffer.position();
+      size = buffer.writerIndex();
       
       // The length doesn't include the actual length byte
       int len = size - DataConstants.SIZE_INT;
 
-      buffer.putInt(0, len);
-
-      buffer.flip();
+      buffer.setInt(0, len);
       
       return size;
    }
 
    public void decode(final MessagingBuffer buffer)
    {
-      channelID = buffer.getLong();
+      channelID = buffer.readLong();
 
       decodeBody(buffer);
       
-      size = buffer.position();
+      size = buffer.readerIndex();
    }
    
    public final int getPacketSize()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketsConfirmedMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketsConfirmedMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketsConfirmedMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -64,12 +64,12 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putInt(commandID);
+      buffer.writeInt(commandID);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      commandID = buffer.getInt();
+      commandID = buffer.readInt();
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -64,12 +64,12 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putLong(expirePeriod);
+      buffer.writeLong(expirePeriod);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      expirePeriod = buffer.getLong();
+      expirePeriod = buffer.readLong();
    }
 
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -70,12 +70,12 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putLong(newPeriod);
+      buffer.writeLong(newPeriod);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      newPeriod = buffer.getLong();
+      newPeriod = buffer.readLong();
    }
    
    public boolean isWriteAlways()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReattachSessionMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReattachSessionMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReattachSessionMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -73,14 +73,14 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putString(name);
-      buffer.putInt(lastReceivedCommandID);
+      buffer.writeString(name);
+      buffer.writeInt(lastReceivedCommandID);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      name = buffer.getString();
-      lastReceivedCommandID = buffer.getInt();
+      name = buffer.readString();
+      lastReceivedCommandID = buffer.readInt();
    }
 
    public boolean equals(Object other)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReattachSessionResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReattachSessionResponseMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReattachSessionResponseMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -74,14 +74,14 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    { 
-      buffer.putInt(lastReceivedCommandID);
-      buffer.putBoolean(removed);
+      buffer.writeInt(lastReceivedCommandID);
+      buffer.writeBoolean(removed);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    { 
-      lastReceivedCommandID = buffer.getInt();
-      removed = buffer.getBoolean();
+      lastReceivedCommandID = buffer.readInt();
+      removed = buffer.readBoolean();
    }
    
    public boolean isResponse()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReplicateCreateSessionMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReplicateCreateSessionMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReplicateCreateSessionMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -163,32 +163,32 @@
 
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putString(name);
-      buffer.putLong(sessionChannelID);
-      buffer.putInt(version);
-      buffer.putNullableString(username);
-      buffer.putNullableString(password);
-      buffer.putInt(minLargeMessageSize);
-      buffer.putBoolean(xa);
-      buffer.putBoolean(autoCommitSends);
-      buffer.putBoolean(autoCommitAcks);
-      buffer.putInt(windowSize);
-      buffer.putBoolean(preAcknowledge);
+      buffer.writeString(name);
+      buffer.writeLong(sessionChannelID);
+      buffer.writeInt(version);
+      buffer.writeNullableString(username);
+      buffer.writeNullableString(password);
+      buffer.writeInt(minLargeMessageSize);
+      buffer.writeBoolean(xa);
+      buffer.writeBoolean(autoCommitSends);
+      buffer.writeBoolean(autoCommitAcks);
+      buffer.writeInt(windowSize);
+      buffer.writeBoolean(preAcknowledge);
    }
 
    public void decodeBody(final MessagingBuffer buffer)
    {
-      name = buffer.getString();
-      sessionChannelID = buffer.getLong();
-      version = buffer.getInt();
-      username = buffer.getNullableString();
-      password = buffer.getNullableString();
-      minLargeMessageSize = buffer.getInt();
-      xa = buffer.getBoolean();
-      autoCommitSends = buffer.getBoolean();
-      autoCommitAcks = buffer.getBoolean();
-      windowSize = buffer.getInt();
-      preAcknowledge = buffer.getBoolean();
+      name = buffer.readString();
+      sessionChannelID = buffer.readLong();
+      version = buffer.readInt();
+      username = buffer.readNullableString();
+      password = buffer.readNullableString();
+      minLargeMessageSize = buffer.readInt();
+      xa = buffer.readBoolean();
+      autoCommitSends = buffer.readBoolean();
+      autoCommitAcks = buffer.readBoolean();
+      windowSize = buffer.readInt();
+      preAcknowledge = buffer.readBoolean();
    }
 
    public boolean equals(Object other)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/RollbackMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/RollbackMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/RollbackMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -86,13 +86,13 @@
    @Override
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putBoolean(considerLastMessageAsDelivered);
+      buffer.writeBoolean(considerLastMessageAsDelivered);
    }
 
    @Override
    public void decodeBody(final MessagingBuffer buffer)
    {
-      this.considerLastMessageAsDelivered = buffer.getBoolean();
+      this.considerLastMessageAsDelivered = buffer.readBoolean();
    }
 
    // Static --------------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAcknowledgeMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAcknowledgeMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAcknowledgeMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -69,20 +69,20 @@
 
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putLong(consumerID);
+      buffer.writeLong(consumerID);
 
-      buffer.putLong(messageID);
+      buffer.writeLong(messageID);
 
-      buffer.putBoolean(requiresResponse);
+      buffer.writeBoolean(requiresResponse);
    }
 
    public void decodeBody(final MessagingBuffer buffer)
    {
-      consumerID = buffer.getLong();
+      consumerID = buffer.readLong();
 
-      messageID = buffer.getLong();
+      messageID = buffer.readLong();
 
-      requiresResponse = buffer.getBoolean();
+      requiresResponse = buffer.readBoolean();
    }
 
    public boolean equals(Object other)

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	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAddDestinationMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -84,16 +84,16 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putSimpleString(address);
-      buffer.putBoolean(durable);
-      buffer.putBoolean(temporary);
+      buffer.writeSimpleString(address);
+      buffer.writeBoolean(durable);
+      buffer.writeBoolean(temporary);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      address = buffer.getSimpleString();
-      durable = buffer.getBoolean();
-      temporary = buffer.getBoolean();
+      address = buffer.readSimpleString();
+      durable = buffer.readBoolean();
+      temporary = buffer.readBoolean();
    }
    
    @Override

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	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -56,12 +56,12 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putSimpleString(address);
+      buffer.writeSimpleString(address);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      address = buffer.getSimpleString();
+      address = buffer.readSimpleString();
    }
    
    public boolean equals(Object other)

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	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryResponseMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -75,22 +75,22 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putBoolean(exists);
-      buffer.putInt(queueNames.size());      
+      buffer.writeBoolean(exists);
+      buffer.writeInt(queueNames.size());      
       for (SimpleString queueName: queueNames)
       {
-         buffer.putSimpleString(queueName);
+         buffer.writeSimpleString(queueName);
       }      
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      exists = buffer.getBoolean();      
-      int numQueues = buffer.getInt();      
+      exists = buffer.readBoolean();      
+      int numQueues = buffer.readInt();      
       queueNames = new ArrayList<SimpleString>(numQueues);      
       for (int i = 0; i < numQueues; i++)
       {
-         queueNames.add(buffer.getSimpleString());
+         queueNames.add(buffer.readSimpleString());
       }          
    }
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionConsumerCloseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionConsumerCloseMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionConsumerCloseMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -62,12 +62,12 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putLong(consumerID);
+      buffer.writeLong(consumerID);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      consumerID = buffer.getLong();
+      consumerID = buffer.readLong();
    }
    
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionConsumerFlowCreditMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionConsumerFlowCreditMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionConsumerFlowCreditMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -72,14 +72,14 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putLong(consumerID);
-      buffer.putInt(credits);
+      buffer.writeLong(consumerID);
+      buffer.writeInt(credits);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      consumerID = buffer.getLong();
-      credits = buffer.getInt();
+      consumerID = buffer.readLong();
+      credits = buffer.readInt();
    }
 
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionContinuationMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionContinuationMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionContinuationMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -91,18 +91,18 @@
    @Override
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putInt(body.length);
-      buffer.putBytes(body);
-      buffer.putBoolean(continues);
+      buffer.writeInt(body.length);
+      buffer.writeBytes(body);
+      buffer.writeBoolean(continues);
    }
 
    @Override
    public void decodeBody(final MessagingBuffer buffer)
    {
-      int size = buffer.getInt();
+      int size = buffer.readInt();
       body = new byte[size];
-      buffer.getBytes(body);
-      continues = buffer.getBoolean();
+      buffer.readBytes(body);
+      continues = buffer.readBoolean();
    }
 
    // Package protected ---------------------------------------------

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	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -92,16 +92,16 @@
 
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putSimpleString(queueName);
-      buffer.putNullableSimpleString(filterString);
-      buffer.putBoolean(browseOnly);
+      buffer.writeSimpleString(queueName);
+      buffer.writeNullableSimpleString(filterString);
+      buffer.writeBoolean(browseOnly);
    }
 
    public void decodeBody(final MessagingBuffer buffer)
    {
-      queueName = buffer.getSimpleString();
-      filterString = buffer.getNullableSimpleString();
-      browseOnly = buffer.getBoolean();
+      queueName = buffer.readSimpleString();
+      filterString = buffer.readNullableSimpleString();
+      browseOnly = buffer.readBoolean();
    }
 
    public boolean equals(Object other)

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	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateQueueMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -105,20 +105,20 @@
     
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putSimpleString(address);
-      buffer.putSimpleString(queueName);
-      buffer.putNullableSimpleString(filterString);
-      buffer.putBoolean(durable);
-      buffer.putBoolean(temporary);
+      buffer.writeSimpleString(address);
+      buffer.writeSimpleString(queueName);
+      buffer.writeNullableSimpleString(filterString);
+      buffer.writeBoolean(durable);
+      buffer.writeBoolean(temporary);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      address = buffer.getSimpleString();
-      queueName = buffer.getSimpleString();
-      filterString = buffer.getNullableSimpleString();
-      durable = buffer.getBoolean();
-      temporary = buffer.getBoolean();
+      address = buffer.readSimpleString();
+      queueName = buffer.readSimpleString();
+      filterString = buffer.readNullableSimpleString();
+      durable = buffer.readBoolean();
+      temporary = buffer.readBoolean();
    }
    
    public boolean equals(Object other)

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	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionDeleteQueueMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -72,12 +72,12 @@
       
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putSimpleString(queueName);
+      buffer.writeSimpleString(queueName);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      queueName = buffer.getSimpleString();
+      queueName = buffer.readSimpleString();
    }
 
    public boolean equals(Object other)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionExpiredMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionExpiredMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionExpiredMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -60,16 +60,16 @@
 
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putLong(consumerID);
+      buffer.writeLong(consumerID);
 
-      buffer.putLong(messageID);
+      buffer.writeLong(messageID);
    }
 
    public void decodeBody(final MessagingBuffer buffer)
    {
-      consumerID = buffer.getLong();
+      consumerID = buffer.readLong();
 
-      messageID = buffer.getLong();
+      messageID = buffer.readLong();
    }
 
    public boolean equals(Object other)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionFailoverCompleteMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionFailoverCompleteMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionFailoverCompleteMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -64,12 +64,12 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putString(name);
+      buffer.writeString(name);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      name = buffer.getString();
+      name = buffer.readString();
    }
    
    public boolean isRequiresConfirmations()

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	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -56,12 +56,12 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putSimpleString(queueName);
+      buffer.writeSimpleString(queueName);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      queueName = buffer.getSimpleString();
+      queueName = buffer.readSimpleString();
    }
    
    public boolean equals(Object other)

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	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryResponseMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -119,22 +119,22 @@
 
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putBoolean(exists);
-      buffer.putBoolean(durable);
-      buffer.putInt(consumerCount);
-      buffer.putInt(messageCount);
-      buffer.putNullableSimpleString(filterString);
-      buffer.putNullableSimpleString(address);
+      buffer.writeBoolean(exists);
+      buffer.writeBoolean(durable);
+      buffer.writeInt(consumerCount);
+      buffer.writeInt(messageCount);
+      buffer.writeNullableSimpleString(filterString);
+      buffer.writeNullableSimpleString(address);
    }
 
    public void decodeBody(final MessagingBuffer buffer)
    {
-      exists = buffer.getBoolean();
-      durable = buffer.getBoolean();
-      consumerCount = buffer.getInt();
-      messageCount = buffer.getInt();
-      filterString = buffer.getNullableSimpleString();
-      address = buffer.getNullableSimpleString();
+      exists = buffer.readBoolean();
+      durable = buffer.readBoolean();
+      consumerCount = buffer.readInt();
+      messageCount = buffer.readInt();
+      filterString = buffer.readNullableSimpleString();
+      address = buffer.readNullableSimpleString();
    }
 
    public boolean equals(Object other)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionReceiveContinuationMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionReceiveContinuationMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionReceiveContinuationMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -92,14 +92,14 @@
    public void encodeBody(final MessagingBuffer buffer)
    {
       super.encodeBody(buffer);
-      buffer.putLong(consumerID);
+      buffer.writeLong(consumerID);
    }
 
    @Override
    public void decodeBody(final MessagingBuffer buffer)
    {
       super.decodeBody(buffer);
-      consumerID = buffer.getLong();
+      consumerID = buffer.readLong();
    }
 
    // Package protected ---------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionReceiveMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionReceiveMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionReceiveMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -149,13 +149,13 @@
    }
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putLong(consumerID);
-      buffer.putInt(deliveryCount);
-      buffer.putBoolean(largeMessage);
+      buffer.writeLong(consumerID);
+      buffer.writeInt(deliveryCount);
+      buffer.writeBoolean(largeMessage);
       if (largeMessage)
       {
-         buffer.putInt(largeMessageHeader.length);
-         buffer.putBytes(largeMessageHeader);
+         buffer.writeInt(largeMessageHeader.length);
+         buffer.writeBytes(largeMessageHeader);
       }
       else
       {
@@ -167,23 +167,23 @@
    {
       // TODO can be optimised
 
-      consumerID = buffer.getLong();
+      consumerID = buffer.readLong();
 
-      deliveryCount = buffer.getInt();
+      deliveryCount = buffer.readInt();
 
-      largeMessage = buffer.getBoolean();
+      largeMessage = buffer.readBoolean();
 
       if (largeMessage)
       {
-         int size = buffer.getInt();
+         int size = buffer.readInt();
          largeMessageHeader = new byte[size];
-         buffer.getBytes(largeMessageHeader);
+         buffer.readBytes(largeMessageHeader);
       }
       else
       {
          clientMessage = new ClientMessageImpl(deliveryCount);
          clientMessage.decode(buffer);
-         clientMessage.getBody().flip();
+         clientMessage.getBody().resetReaderIndex();
       }
    }
 

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	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionRemoveDestinationMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -75,14 +75,14 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putSimpleString(address);
-      buffer.putBoolean(durable);
+      buffer.writeSimpleString(address);
+      buffer.writeBoolean(durable);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      address = buffer.getSimpleString();
-      durable = buffer.getBoolean();
+      address = buffer.readSimpleString();
+      durable = buffer.readBoolean();
    }
         
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionReplicateDeliveryMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionReplicateDeliveryMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionReplicateDeliveryMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -60,16 +60,16 @@
 
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putLong(consumerID);
+      buffer.writeLong(consumerID);
 
-      buffer.putLong(messageID);
+      buffer.writeLong(messageID);
    }
 
    public void decodeBody(final MessagingBuffer buffer)
    {
-      consumerID = buffer.getLong();
+      consumerID = buffer.readLong();
 
-      messageID = buffer.getLong();
+      messageID = buffer.readLong();
    }
    
    public boolean isRequiresConfirmations()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionSendContinuationMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionSendContinuationMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionSendContinuationMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -91,14 +91,14 @@
    public void encodeBody(final MessagingBuffer buffer)
    {
       super.encodeBody(buffer);
-      buffer.putBoolean(requiresResponse);
+      buffer.writeBoolean(requiresResponse);
    }
 
    @Override
    public void decodeBody(final MessagingBuffer buffer)
    {
       super.decodeBody(buffer);
-      requiresResponse = buffer.getBoolean();
+      requiresResponse = buffer.readBoolean();
    }
 
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionSendMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionSendMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionSendMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -147,21 +147,21 @@
    @Override
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putBoolean(largeMessage);
+      buffer.writeBoolean(largeMessage);
 
       if (largeMessage)
       {
-         buffer.putInt(largeMessageHeader.length);
-         buffer.putBytes(largeMessageHeader);
+         buffer.writeInt(largeMessageHeader.length);
+         buffer.writeBytes(largeMessageHeader);
          
          if (largeMessageId > 0)
          {
-            buffer.putBoolean(true);
-            buffer.putLong(largeMessageId);
+            buffer.writeBoolean(true);
+            buffer.writeLong(largeMessageId);
          }
          else
          {
-            buffer.putBoolean(false);
+            buffer.writeBoolean(false);
          }
       }
       else if (clientMessage != null)
@@ -174,27 +174,27 @@
          serverMessage.encode(buffer);
       }
 
-      buffer.putBoolean(requiresResponse);
+      buffer.writeBoolean(requiresResponse);
    }
 
    @Override
    public void decodeBody(final MessagingBuffer buffer)
    {
-      largeMessage = buffer.getBoolean();
+      largeMessage = buffer.readBoolean();
 
       if (largeMessage)
       {
-         int largeMessageLength = buffer.getInt();
+         int largeMessageLength = buffer.readInt();
 
          largeMessageHeader = new byte[largeMessageLength];
 
-         buffer.getBytes(largeMessageHeader);
+         buffer.readBytes(largeMessageHeader);
          
-         final boolean largeMessageIDFilled = buffer.getBoolean();
+         final boolean largeMessageIDFilled = buffer.readBoolean();
          
          if (largeMessageIDFilled)
          {
-            this.largeMessageId = buffer.getLong();
+            this.largeMessageId = buffer.readLong();
          }
          else
          {
@@ -211,9 +211,9 @@
 
          serverMessage.decode(buffer);
 
-         serverMessage.getBody().flip();
+         serverMessage.getBody().resetReaderIndex();
 
-         requiresResponse = buffer.getBoolean();
+         requiresResponse = buffer.readBoolean();
       }
    }
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXACommitMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXACommitMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXACommitMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -74,13 +74,13 @@
    public void encodeBody(final MessagingBuffer buffer)
    {
       XidCodecSupport.encodeXid(xid, buffer);
-      buffer.putBoolean(onePhase);
+      buffer.writeBoolean(onePhase);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
       xid = XidCodecSupport.decodeXid(buffer);
-      onePhase = buffer.getBoolean();
+      onePhase = buffer.readBoolean();
    }
 
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAEndMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAEndMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAEndMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -75,13 +75,13 @@
    public void encodeBody(final MessagingBuffer buffer)
    {
       XidCodecSupport.encodeXid(xid, buffer);
-      buffer.putBoolean(failed);
+      buffer.writeBoolean(failed);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
       xid = XidCodecSupport.decodeXid(buffer);
-      failed = buffer.getBoolean();
+      failed = buffer.readBoolean();
    }
 
    @Override

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetInDoubtXidsResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetInDoubtXidsResponseMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetInDoubtXidsResponseMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -73,7 +73,7 @@
 
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putInt(xids.size());
+      buffer.writeInt(xids.size());
 
       for (Xid xid: xids)
       {
@@ -83,7 +83,7 @@
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      int len = buffer.getInt();
+      int len = buffer.readInt();
       xids = new ArrayList<Xid>(len);      
       for (int i = 0; i < len; i++)
       {

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetTimeoutResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetTimeoutResponseMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetTimeoutResponseMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -69,12 +69,12 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putInt(timeoutSeconds);  
+      buffer.writeInt(timeoutSeconds);  
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      timeoutSeconds = buffer.getInt(); 
+      timeoutSeconds = buffer.readInt(); 
    }
    
    public boolean equals(Object other)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAResponseMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAResponseMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -86,16 +86,16 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putBoolean(error);      
-      buffer.putInt(responseCode);      
-      buffer.putNullableString(message);
+      buffer.writeBoolean(error);      
+      buffer.writeInt(responseCode);      
+      buffer.writeNullableString(message);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      error = buffer.getBoolean();      
-      responseCode = buffer.getInt();      
-      message = buffer.getNullableString();
+      error = buffer.readBoolean();      
+      responseCode = buffer.readInt();      
+      message = buffer.readNullableString();
    }
    
    public boolean equals(Object other)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -64,12 +64,12 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putInt(timeoutSeconds);
+      buffer.writeInt(timeoutSeconds);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      timeoutSeconds = buffer.getInt();
+      timeoutSeconds = buffer.readInt();
    }
    
    public boolean equals(Object other)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutResponseMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutResponseMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -68,12 +68,12 @@
    
    public void encodeBody(final MessagingBuffer buffer)
    {
-      buffer.putBoolean(ok);
+      buffer.writeBoolean(ok);
    }
    
    public void decodeBody(final MessagingBuffer buffer)
    {
-      ok = buffer.getBoolean();
+      ok = buffer.readBoolean();
    }
    
    public boolean equals(Object other)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/XidCodecSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/XidCodecSupport.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/XidCodecSupport.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -45,20 +45,20 @@
 
    public static void encodeXid(final Xid xid, final MessagingBuffer out)
    {
-      out.putInt(xid.getFormatId());
-      out.putInt(xid.getBranchQualifier().length);
-      out.putBytes(xid.getBranchQualifier());
-      out.putInt(xid.getGlobalTransactionId().length);
-      out.putBytes(xid.getGlobalTransactionId());
+      out.writeInt(xid.getFormatId());
+      out.writeInt(xid.getBranchQualifier().length);
+      out.writeBytes(xid.getBranchQualifier());
+      out.writeInt(xid.getGlobalTransactionId().length);
+      out.writeBytes(xid.getGlobalTransactionId());
    }
 
    public static Xid decodeXid(final MessagingBuffer in)
    {
-      int formatID = in.getInt();
-      byte[] bq = new byte[in.getInt()];
-      in.getBytes(bq);
-      byte[] gtxid = new byte[in.getInt()];
-      in.getBytes(gtxid);      
+      int formatID = in.readInt();
+      byte[] bq = new byte[in.readInt()];
+      in.readBytes(bq);
+      byte[] gtxid = new byte[in.readInt()];
+      in.readBytes(gtxid);      
       Xid xid = new XidImpl(bq, formatID, gtxid);      
       return xid;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/spi/MessagingBuffer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/spi/MessagingBuffer.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/remoting/spi/MessagingBuffer.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -33,93 +33,99 @@
  */
 public interface MessagingBuffer
 {
-   void putByte(byte val);
+   void writeByte(byte val);
 
-   void putBytes(byte[] bytes);
+   void writeBytes(byte[] bytes);
 
-   void putBytes(byte[] bytes, int offset, int length);
+   void writeBytes(byte[] bytes, int offset, int length);
 
-   void putInt(int val);
+   void writeInt(int val);
 
-   void putInt(int pos, int val);
+   void setInt(int pos, int val);
 
-   void putLong(long val);
+   void writeLong(long val);
 
-   void putShort(short val);
+   void writeShort(short val);
 
-   void putDouble(double val);
+   void writeDouble(double val);
 
-   void putFloat(float val);
+   void writeFloat(float val);
 
-   void putBoolean(boolean val);
+   void writeBoolean(boolean val);
 
-   void putChar(char val);
+   void writeChar(char val);
 
-   void putNullableString(String val);
+   void writeNullableString(String val);
 
-   void putString(String val);
+   void writeString(String val);
 
-   void putSimpleString(SimpleString val);
+   void writeSimpleString(SimpleString val);
 
-   void putNullableSimpleString(SimpleString val);
+   void writeNullableSimpleString(SimpleString val);
 
-   void putUTF(String utf) throws Exception;
+   void writeUTF(String utf) throws Exception;
 
-   byte getByte();
+   byte readByte();
 
-   short getUnsignedByte();
+   short readUnsignedByte();
 
-   void getBytes(byte[] bytes);
+   void readBytes(byte[] bytes);
 
-   void getBytes(byte[] bytes, int offset, int length);
+   void readBytes(byte[] bytes, int offset, int length);
 
-   int getInt();
+   int readInt();
 
-   long getLong();
+   long readLong();
 
-   short getShort();
+   short readShort();
 
-   int getUnsignedShort();
+   int readUnsignedShort();
 
-   double getDouble();
+   double readDouble();
 
-   float getFloat();
+   float readFloat();
 
-   boolean getBoolean();
+   boolean readBoolean();
 
-   char getChar();
+   char readChar();
 
-   String getString();
+   String readString();
 
-   String getNullableString();
+   String readNullableString();
 
-   SimpleString getSimpleString();
+   SimpleString readSimpleString();
 
-   SimpleString getNullableSimpleString();
+   SimpleString readNullableSimpleString();
 
-   String getUTF() throws Exception;
+   String readUTF() throws Exception;
 
    byte[] array();
 
-   int remaining();
-
    int capacity();
 
-   int limit();
+   int readerIndex();
 
-   void limit(int limit);
+   void readerIndex(int readerIndex);
 
-   void flip();
+   int writerIndex();
 
-   void position(int position);
+   void writerIndex(int writerIndex);
 
-   int position();
+   void setIndex(int readerIndex, int writerIndex);
 
-   void rewind();
+   int readableBytes();
 
-   MessagingBuffer slice();
+   int writableBytes();
 
-   MessagingBuffer createNewBuffer(int len);
+   boolean readable();
 
+   boolean writable();
+
+   void clear();
+
+   void resetReaderIndex();
+
+   void resetWriterIndex();
+
    Object getUnderlyingBuffer();
 }

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -22,7 +22,6 @@
 
 package org.jboss.messaging.core.server.impl;
 
-import java.nio.ByteBuffer;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.concurrent.ConcurrentLinkedQueue;
@@ -31,6 +30,7 @@
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.management.impl.ManagementHelper;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.filter.Filter;
@@ -45,7 +45,6 @@
 import org.jboss.messaging.core.postoffice.QueueBinding;
 import org.jboss.messaging.core.remoting.Channel;
 import org.jboss.messaging.core.remoting.Packet;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.NullResponseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionReceiveContinuationMessage;
@@ -833,7 +832,7 @@
             {
                sentFirstMessage = true;
 
-               MessagingBuffer headerBuffer = new ByteBufferWrapper(ByteBuffer.allocate(pendingLargeMessage.getPropertiesEncodeSize()));
+               MessagingBuffer headerBuffer = ChannelBuffers.buffer(pendingLargeMessage.getPropertiesEncodeSize()); 
 
                pendingLargeMessage.encodeProperties(headerBuffer);
 
@@ -983,7 +982,7 @@
 
          localChunkLen = (int)Math.min(sizePendingLargeMessage - positionPendingLargeMessage, minLargeMessageSize);
 
-         MessagingBuffer bodyBuffer = new ByteBufferWrapper(ByteBuffer.allocate(localChunkLen));
+         MessagingBuffer bodyBuffer = ChannelBuffers.buffer(localChunkLen); 
 
          pendingLargeMessage.encodeBody(bodyBuffer, positionPendingLargeMessage, localChunkLen);
 

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -14,7 +14,6 @@
 
 import static org.jboss.messaging.core.management.NotificationType.CONSUMER_CREATED;
 
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
@@ -27,6 +26,7 @@
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.impl.ClientMessageImpl;
 import org.jboss.messaging.core.client.management.impl.ManagementHelper;
 import org.jboss.messaging.core.exception.MessagingException;
@@ -46,7 +46,6 @@
 import org.jboss.messaging.core.remoting.FailureListener;
 import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.RemotingConnection;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.NullResponseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
@@ -2714,7 +2713,7 @@
    {
       LargeServerMessage largeMessage = storageManager.createLargeMessage();
 
-      MessagingBuffer headerBuffer = new ByteBufferWrapper(ByteBuffer.wrap(header));
+      MessagingBuffer headerBuffer = ChannelBuffers.dynamicBuffer(header); 
 
       largeMessage.decodeProperties(headerBuffer);
 

Modified: trunk/src/main/org/jboss/messaging/integration/transports/netty/ChannelBufferWrapper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/integration/transports/netty/ChannelBufferWrapper.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/integration/transports/netty/ChannelBufferWrapper.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -22,17 +22,9 @@
 
 package org.jboss.messaging.integration.transports.netty;
 
-import static org.jboss.messaging.utils.DataConstants.FALSE;
-import static org.jboss.messaging.utils.DataConstants.NOT_NULL;
-import static org.jboss.messaging.utils.DataConstants.NULL;
-import static org.jboss.messaging.utils.DataConstants.TRUE;
-import org.jboss.messaging.utils.SimpleString;
-import static org.jboss.netty.buffer.ChannelBuffers.copiedBuffer;
-import static org.jboss.netty.buffer.ChannelBuffers.dynamicBuffer;
-
-import java.nio.BufferUnderflowException;
-
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
+import org.jboss.messaging.utils.DataConstants;
+import org.jboss.messaging.utils.SimpleString;
 import org.jboss.messaging.utils.UTF8Util;
 import org.jboss.netty.buffer.ChannelBuffer;
 
@@ -46,404 +38,371 @@
  * @author <a href="mailto:tlee at redhat.com">Trustin Lee</a>
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @author <a href="mailto:clebert.suconic at jboss.com">Clebert Suconic</a>
  *
  * @version $Rev$, $Date$
  */
 public class ChannelBufferWrapper implements MessagingBuffer
 {
-   // Constants -----------------------------------------------------
 
-   // Attributes ----------------------------------------------------
-
    private final ChannelBuffer buffer;
 
-   // Static --------------------------------------------------------
+   /**
+    * @param buffer
+    */
+   public ChannelBufferWrapper(final ChannelBuffer buffer)
+   {
+      super();
+      this.buffer = buffer;
+   }
 
-   // Constructors --------------------------------------------------
+   public int capacity()
+   {
+      return buffer.capacity();
+   }
 
-   public ChannelBufferWrapper(final int size)
+   public void clear()
    {
-      buffer = dynamicBuffer(size);
-      buffer.writerIndex(buffer.capacity());
+      buffer.clear();
    }
 
-   public ChannelBufferWrapper(final ChannelBuffer buffer)
+   public boolean readable()
    {
-      this.buffer = buffer;
+      return buffer.readable();
    }
 
-   // Public --------------------------------------------------------
+   public int readableBytes()
+   {
+      return buffer.readableBytes();
+   }
 
-   // MessagingBuffer implementation ----------------------------------------------
+   public byte readByte()
+   {
+      return buffer.readByte();
+   }
 
-   public byte[] array()
+   public void readBytes(final byte[] dst, final int dstIndex, final int length)
    {
-      return buffer.toByteBuffer().array();
+      buffer.readBytes(dst, dstIndex, length);
    }
 
-   public int position()
+   public void readBytes(final byte[] dst)
    {
-      return buffer.readerIndex();
+      buffer.readBytes(dst);
    }
 
-   public void position(final int position)
+   public int readerIndex()
    {
-      buffer.readerIndex(position);
+      return buffer.readerIndex();
    }
 
-   public int limit()
+   public void readerIndex(final int readerIndex)
    {
-      return buffer.writerIndex();
+      buffer.readerIndex(readerIndex);
    }
 
-   public void limit(final int limit)
+   public int readInt()
    {
-      buffer.writerIndex(limit);
+      return buffer.readInt();
    }
 
-   public int capacity()
+   public long readLong()
    {
-      return buffer.capacity();
+      return buffer.readLong();
    }
 
-   public void flip()
+   public short readShort()
    {
-      int oldPosition = position();
-      position(0);
-      limit(oldPosition);
+      return buffer.readShort();
    }
 
-   public MessagingBuffer slice()
+   public short readUnsignedByte()
    {
-      return new ChannelBufferWrapper(buffer.slice());
+      return buffer.readUnsignedByte();
    }
 
-   public MessagingBuffer createNewBuffer(int len)
+   public int readUnsignedShort()
    {
-      return new ChannelBufferWrapper(len);
+      return buffer.readUnsignedShort();
    }
 
-   public int remaining()
+   public void resetReaderIndex()
    {
-      return buffer.readableBytes();
+      buffer.resetReaderIndex();
    }
 
-   public void rewind()
+   public void resetWriterIndex()
    {
-      position(0);
-      buffer.markReaderIndex();
+      buffer.resetWriterIndex();
    }
 
-   public void putByte(byte byteValue)
+   public void setIndex(final int readerIndex, final int writerIndex)
    {
-      flip();
-      buffer.writeByte(byteValue);
-      buffer.readerIndex(buffer.writerIndex());
+      buffer.setIndex(readerIndex, writerIndex);
    }
 
-   public void putBytes(final byte[] byteArray)
+   public void setInt(final int index, final int value)
    {
-      flip();
-      buffer.writeBytes(byteArray);
-      buffer.readerIndex(buffer.writerIndex());
+      buffer.setInt(index, value);
    }
 
-   public void putBytes(final byte[] bytes, int offset, int length)
+   public boolean writable()
    {
-      flip();
-      buffer.writeBytes(bytes, offset, length);
-      buffer.readerIndex(buffer.writerIndex());
+      return buffer.writable();
    }
 
-   public void putInt(final int intValue)
+   public int writableBytes()
    {
-      flip();
-      buffer.writeInt(intValue);
-      buffer.readerIndex(buffer.writerIndex());
+      return buffer.writableBytes();
    }
 
-   public void putInt(final int pos, final int intValue)
+   public void writeByte(final byte value)
    {
-      buffer.setInt(pos, intValue);
+      buffer.writeByte(value);
    }
 
-   public void putLong(final long longValue)
+   public void writeBytes(final byte[] src, final int srcIndex, final int length)
    {
-      flip();
-      buffer.writeLong(longValue);
-      buffer.readerIndex(buffer.writerIndex());
+      buffer.writeBytes(src, srcIndex, length);
    }
 
-   public void putFloat(final float floatValue)
+   public void writeBytes(final byte[] src)
    {
-      putInt(Float.floatToIntBits(floatValue));
+      buffer.writeBytes(src);
    }
 
-   public void putDouble(final double d)
+   public void writeInt(final int value)
    {
-      putLong(Double.doubleToLongBits(d));
+      buffer.writeInt(value);
    }
 
-   public void putShort(final short s)
+   public void writeLong(final long value)
    {
-      flip();
-      buffer.writeShort(s);
-      buffer.readerIndex(buffer.writerIndex());
+      buffer.writeLong(value);
    }
 
-   public void putChar(final char chr)
+   public int writerIndex()
    {
-      putShort((short)chr);
+      return buffer.writerIndex();
    }
 
-   public byte getByte()
+   public void writerIndex(final int writerIndex)
    {
-      try
-      {
-         return buffer.readByte();
-      }
-      catch (IndexOutOfBoundsException e)
-      {
-         throw new BufferUnderflowException();
-      }
+      buffer.writerIndex(writerIndex);
    }
 
-   public short getUnsignedByte()
+   public void writeShort(final short value)
    {
-      try
-      {
-         return buffer.readUnsignedByte();
-      }
-      catch (IndexOutOfBoundsException e)
-      {
-         throw new BufferUnderflowException();
-      }
+      buffer.writeShort(value);
    }
 
-   public void getBytes(final byte[] b)
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#array()
+    */
+   public byte[] array()
    {
-      try
-      {
-         buffer.readBytes(b);
-      }
-      catch (IndexOutOfBoundsException e)
-      {
-         throw new BufferUnderflowException();
-      }
+      return buffer.toByteBuffer().array();
    }
 
-   public void getBytes(final byte[] b, final int offset, final int length)
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readBoolean()
+    */
+   public boolean readBoolean()
    {
-      try
-      {
-         buffer.readBytes(b, offset, length);
-      }
-      catch (IndexOutOfBoundsException e)
-      {
-         throw new BufferUnderflowException();
-      }
+      return readByte() != 0;
    }
 
-   public int getInt()
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readChar()
+    */
+   public char readChar()
    {
-      try
-      {
-         return buffer.readInt();
-      }
-      catch (IndexOutOfBoundsException e)
-      {
-         throw new BufferUnderflowException();
-      }
+      return (char)readShort();
    }
 
-   public long getLong()
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readDouble()
+    */
+   public double readDouble()
    {
-      try
-      {
-         return buffer.readLong();
-      }
-      catch (IndexOutOfBoundsException e)
-      {
-         throw new BufferUnderflowException();
-      }
+      return Double.longBitsToDouble(readLong());
    }
 
-   public float getFloat()
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readFloat()
+    */
+   public float readFloat()
    {
-      return Float.intBitsToFloat(getInt());
+      return Float.intBitsToFloat(readInt());
    }
 
-   public short getShort()
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readNullableSimpleString()
+    */
+   public SimpleString readNullableSimpleString()
    {
-      try
+      int b = readByte();
+      if (b == DataConstants.NULL)
       {
-         return buffer.readShort();
+         return null;
       }
-      catch (IndexOutOfBoundsException e)
+      else
       {
-         throw new BufferUnderflowException();
+         return readSimpleString();
       }
    }
 
-   public int getUnsignedShort()
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readNullableString()
+    */
+   public String readNullableString()
    {
-      try
+      int b = readByte();
+      if (b == DataConstants.NULL)
       {
-         return buffer.readUnsignedShort();
+         return null;
       }
-      catch (IndexOutOfBoundsException e)
+      else
       {
-         throw new BufferUnderflowException();
+         return readString();
       }
    }
 
-   public double getDouble()
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readSimpleString()
+    */
+   public SimpleString readSimpleString()
    {
-      return Double.longBitsToDouble(getLong());
+      int len = readInt();
+      byte[] data = new byte[len];
+      readBytes(data);
+      return new SimpleString(data);
    }
 
-   public char getChar()
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readString()
+    */
+   public String readString()
    {
-      return (char)getShort();
-   }
-
-   public void putBoolean(final boolean b)
-   {
-      if (b)
+      int len = readInt();
+      char[] chars = new char[len];
+      for (int i = 0; i < len; i++)
       {
-         putByte(TRUE);
+         chars[i] = readChar();
       }
-      else
-      {
-         putByte(FALSE);
-      }
+      return new String(chars);
    }
 
-   public boolean getBoolean()
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#readUTF()
+    */
+   public String readUTF() throws Exception
    {
-      byte b = getByte();
-      return b == TRUE;
+      return UTF8Util.readUTF(this);
    }
 
-   public void putString(final String nullableString)
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeBoolean(boolean)
+    */
+   public void writeBoolean(final boolean val)
    {
-      flip();
-      buffer.writeInt(nullableString.length());
-      for (int i = 0; i < nullableString.length(); i++)
-      {
-         buffer.writeShort((short)nullableString.charAt(i));
-      }
-      buffer.readerIndex(buffer.writerIndex());
+      writeByte((byte)(val ? -1 : 0));
    }
 
-   public void putNullableString(final String nullableString)
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeChar(char)
+    */
+   public void writeChar(final char val)
    {
-      if (nullableString == null)
-      {
-         putByte(NULL);
-      }
-      else
-      {
-         putByte(NOT_NULL);
-         putString(nullableString);
-      }
+      writeShort((short)val);
    }
 
-   public String getString()
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeDouble(double)
+    */
+   public void writeDouble(final double val)
    {
-      int len = getInt();
+      writeLong(Double.doubleToLongBits(val));
 
-      char[] chars = new char[len];
+   }
 
-      for (int i = 0; i < len; i++)
-      {
-         chars[i] = getChar();
-      }
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeFloat(float)
+    */
+   public void writeFloat(final float val)
+   {
+      writeInt(Float.floatToIntBits(val));
 
-      return new String(chars);
    }
 
-   public String getNullableString()
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeNullableSimpleString(org.jboss.messaging.util.SimpleString)
+    */
+   public void writeNullableSimpleString(final SimpleString val)
    {
-      byte check = getByte();
-
-      if (check == NULL)
+      if (val == null)
       {
-         return null;
+         writeByte(DataConstants.NULL);
       }
       else
       {
-         return getString();
+         writeByte(DataConstants.NOT_NULL);
+         writeSimpleString(val);
       }
    }
 
-   public void putUTF(final String str) throws Exception
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeNullableString(java.lang.String)
+    */
+   public void writeNullableString(final String val)
    {
-      UTF8Util.saveUTF(this, str);
-      buffer.readerIndex(buffer.writerIndex());
-   }
-
-   public void putNullableSimpleString(final SimpleString string)
-   {
-      if (string == null)
+      if (val == null)
       {
-         putByte(NULL);
+         writeByte(DataConstants.NULL);
       }
       else
       {
-         putByte(NOT_NULL);
-         putSimpleString(string);
+         writeByte(DataConstants.NOT_NULL);
+         writeString(val);
       }
    }
 
-   public void putSimpleString(final SimpleString string)
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeSimpleString(org.jboss.messaging.util.SimpleString)
+    */
+   public void writeSimpleString(final SimpleString val)
    {
-      byte[] data = string.getData();
-
-      flip();
-      buffer.writeInt(data.length);
-      buffer.writeBytes(data);
-      buffer.readerIndex(buffer.writerIndex());
+      byte[] data = val.getData();
+      writeInt(data.length);
+      writeBytes(data);
    }
 
-   public SimpleString getSimpleString()
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeString(java.lang.String)
+    */
+   public void writeString(final String val)
    {
-      int len = getInt();
-
-      byte[] data = new byte[len];
-      getBytes(data);
-
-      return new SimpleString(data);
-   }
-
-   public SimpleString getNullableSimpleString()
-   {
-      int b = getByte();
-      if (b == NULL)
+      writeInt(val.length());
+      for (int i = 0; i < val.length(); i++)
       {
-         return null;
+         writeShort((short)val.charAt(i));
       }
-      else
-      {
-         return getSimpleString();
-      }
    }
 
-   public String getUTF() throws Exception
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#writeUTF(java.lang.String)
+    */
+   public void writeUTF(final String utf) throws Exception
    {
-      return UTF8Util.readUTF(this);
+      UTF8Util.saveUTF(this, utf);
    }
 
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.spi.MessagingBuffer#getUnderlyingBuffer()
+    */
    public Object getUnderlyingBuffer()
    {
       return buffer;
    }
 
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}
\ No newline at end of file
+}

Modified: trunk/src/main/org/jboss/messaging/integration/transports/netty/NettyConnection.java
===================================================================
--- trunk/src/main/org/jboss/messaging/integration/transports/netty/NettyConnection.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/integration/transports/netty/NettyConnection.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -115,7 +115,7 @@
 
    public MessagingBuffer createBuffer(int size)
    {
-      return new ChannelBufferWrapper(size);
+      return new ChannelBufferWrapper(org.jboss.netty.buffer.ChannelBuffers.dynamicBuffer(size));
    }
 
    public Object getID()

Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossBytesMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossBytesMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossBytesMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -104,9 +104,9 @@
       checkRead();
       try
       {
-         return getBody().getBoolean();
+         return getBody().readBoolean();
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -117,9 +117,9 @@
       checkRead();
       try
       {
-         return getBody().getByte();
+         return getBody().readByte();
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -130,9 +130,9 @@
       checkRead();
       try
       {
-         return getBody().getUnsignedByte();
+         return getBody().readUnsignedByte();
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -143,9 +143,9 @@
       checkRead();
       try
       {
-         return getBody().getShort();
+         return getBody().readShort();
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -156,9 +156,9 @@
       checkRead();
       try
       {
-         return getBody().getUnsignedShort();
+         return getBody().readUnsignedShort();
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -169,9 +169,9 @@
       checkRead();
       try
       {
-         return getBody().getChar();
+         return getBody().readChar();
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -182,9 +182,9 @@
       checkRead();
       try
       {
-         return getBody().getInt();
+         return getBody().readInt();
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -195,9 +195,9 @@
       checkRead();
       try
       {
-         return getBody().getLong();
+         return getBody().readLong();
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -208,9 +208,9 @@
       checkRead();
       try
       {
-         return getBody().getFloat();
+         return getBody().readFloat();
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -221,9 +221,9 @@
       checkRead();
       try
       {
-         return getBody().getDouble();
+         return getBody().readDouble();
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -234,9 +234,9 @@
       checkRead();
       try
       {
-         return getBody().getUTF();
+         return getBody().readUTF();
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -258,13 +258,13 @@
    {
       checkRead();
 
-      if (getBody().remaining() == 0) { return -1; }
+      if (!getBody().readable()) { return -1; }
 
-      int read = Math.min(length, getBody().remaining());
+      int read = Math.min(length, getBody().readableBytes());
 
       if (read != 0)
       {
-         getBody().getBytes(value, 0, read);
+         getBody().readBytes(value, 0, read);
       }
 
       return read;
@@ -273,49 +273,49 @@
    public void writeBoolean(final boolean value) throws JMSException
    {
       checkWrite();
-      getBody().putBoolean(value);
+      getBody().writeBoolean(value);
    }
 
    public void writeByte(final byte value) throws JMSException
    {
       checkWrite();
-      getBody().putByte(value);
+      getBody().writeByte(value);
    }
 
    public void writeShort(final short value) throws JMSException
    {
       checkWrite();
-      getBody().putShort(value);
+      getBody().writeShort(value);
    }
 
    public void writeChar(final char value) throws JMSException
    {
       checkWrite();
-      getBody().putChar(value);
+      getBody().writeChar(value);
    }
 
    public void writeInt(final int value) throws JMSException
    {
       checkWrite();
-      getBody().putInt(value);
+      getBody().writeInt(value);
    }
 
    public void writeLong(final long value) throws JMSException
    {
       checkWrite();
-      getBody().putLong(value);
+      getBody().writeLong(value);
    }
 
    public void writeFloat(final float value) throws JMSException
    {
       checkWrite();
-      getBody().putFloat(value);
+      getBody().writeFloat(value);
    }
 
    public void writeDouble(final double value) throws JMSException
    {
       checkWrite();
-      getBody().putDouble(value);
+      getBody().writeDouble(value);
    }
 
    public void writeUTF(final String value) throws JMSException
@@ -323,7 +323,7 @@
       checkWrite();
       try
       {
-         getBody().putUTF(value);
+         getBody().writeUTF(value);
       }
       catch (Exception e)
       {
@@ -336,14 +336,14 @@
    public void writeBytes(final byte[] value) throws JMSException
    {
       checkWrite();
-      getBody().putBytes(value);
+      getBody().writeBytes(value);
    }
 
    public void writeBytes(final byte[] value, final int offset, final int length)
          throws JMSException
    {
       checkWrite();
-      getBody().putBytes(value, offset, length);
+      getBody().writeBytes(value, offset, length);
    }
 
    public void writeObject(final Object value) throws JMSException
@@ -402,11 +402,11 @@
       {
          readOnly = true;
 
-         getBody().flip();
+         getBody().resetReaderIndex();
       }
       else
       {
-         getBody().rewind();
+         getBody().resetReaderIndex();
       }
    }
 
@@ -416,14 +416,14 @@
    {
       super.clearBody();
       MessagingBuffer currentBody = message.getBody();
-      message.setBody(currentBody.createNewBuffer(1024));
+      currentBody.clear();
    }
 
    public long getBodyLength() throws JMSException
    {
       checkRead();
 
-      return getBody().limit();
+      return getBody().writerIndex();
    }
 
    public void doBeforeSend() throws Exception

Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossMapMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossMapMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossMapMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -443,6 +443,7 @@
    
    public void doBeforeSend() throws Exception
    {
+      message.getBody().clear();
       map.encode(message.getBody());
       
       super.doBeforeSend();

Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -12,7 +12,6 @@
 
 package org.jboss.messaging.jms.client;
 
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Enumeration;
@@ -28,13 +27,13 @@
 import javax.jms.MessageNotReadableException;
 import javax.jms.MessageNotWriteableException;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.impl.ClientMessageImpl;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.impl.MessageImpl;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.jms.JBossDestination;
 import org.jboss.messaging.utils.SimpleString;
@@ -183,7 +182,7 @@
                                       0,
                                       System.currentTimeMillis(),
                                       (byte)4,
-                                      new ByteBufferWrapper(ByteBuffer.allocate(1024)));
+                                      ChannelBuffers.dynamicBuffer(1024));
 
    }
 
@@ -194,7 +193,7 @@
                                       0,
                                       System.currentTimeMillis(),
                                       (byte)4,
-                                      new ByteBufferWrapper(ByteBuffer.allocate(1024)));
+                                      ChannelBuffers.dynamicBuffer(1024));
 
    }
 
@@ -903,7 +902,7 @@
 
    public void doBeforeSend() throws Exception
    {
-      message.getBody().flip();
+      message.getBody().resetReaderIndex();
    }
 
    public void doBeforeReceive() throws Exception
@@ -911,7 +910,7 @@
       MessagingBuffer body = message.getBody();
       if (body != null)
       {
-         body.rewind();
+         body.resetReaderIndex();
       }
    }
 

Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossObjectMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossObjectMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossObjectMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -101,10 +101,11 @@
    
    public void doBeforeSend() throws Exception
    {
+      getBody().clear();
       if (data != null)
       {
-         getBody().putInt(data.length);
-         getBody().putBytes(data);
+         getBody().writeInt(data.length);
+         getBody().writeBytes(data);
       }
       
       super.doBeforeSend();
@@ -147,9 +148,9 @@
       {
          try
          {
-            int len = getBody().getInt();
+            int len = getBody().readInt();
             data = new byte[len];
-            getBody().getBytes(data);
+            getBody().readBytes(data);
          } 
          catch (Exception e)
          {

Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossStreamMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossStreamMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossStreamMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -22,8 +22,6 @@
 
 package org.jboss.messaging.jms.client;
 
-import java.nio.BufferUnderflowException;
-
 import javax.jms.JMSException;
 import javax.jms.MessageEOFException;
 import javax.jms.MessageFormatException;
@@ -32,7 +30,6 @@
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.utils.DataConstants;
 
 /**
@@ -119,20 +116,20 @@
       checkRead();
       try
       {
-         byte type = getBody().getByte();
+         byte type = getBody().readByte();
          
          switch (type)
          {
             case DataConstants.BOOLEAN:
-               return getBody().getBoolean();
+               return getBody().readBoolean();
             case DataConstants.STRING:
-               String s = getBody().getNullableString();
+               String s = getBody().readNullableString();
                return Boolean.valueOf(s);
             default:
                throw new MessageFormatException("Invalid conversion");           
          }
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -143,19 +140,19 @@
       checkRead();
       try
       {
-         byte type = getBody().getByte();
+         byte type = getBody().readByte();
          switch (type)
          {
             case DataConstants.BYTE:
-               return getBody().getByte();
+               return getBody().readByte();
             case DataConstants.STRING:
-               String s = getBody().getNullableString();
+               String s = getBody().readNullableString();
                return Byte.parseByte(s);
             default:
                throw new MessageFormatException("Invalid conversion");           
          }
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -166,21 +163,21 @@
       checkRead();
       try
       {
-         byte type = getBody().getByte();
+         byte type = getBody().readByte();
          switch (type)
          {
             case DataConstants.BYTE:
-               return getBody().getByte();
+               return getBody().readByte();
             case DataConstants.SHORT:
-               return getBody().getShort();
+               return getBody().readShort();
             case DataConstants.STRING:
-               String s = getBody().getNullableString();
+               String s = getBody().readNullableString();
                return Short.parseShort(s);
             default:
                throw new MessageFormatException("Invalid conversion");           
          }
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -191,16 +188,16 @@
       checkRead();
       try
       {
-         byte type = getBody().getByte();
+         byte type = getBody().readByte();
          switch (type)
          {
             case DataConstants.CHAR:
-               return getBody().getChar();
+               return getBody().readChar();
             default:
                throw new MessageFormatException("Invalid conversion");           
          }
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -211,23 +208,23 @@
       checkRead();
       try
       {
-         byte type = getBody().getByte();
+         byte type = getBody().readByte();
          switch (type)
          {
             case DataConstants.BYTE:
-               return getBody().getByte();
+               return getBody().readByte();
             case DataConstants.SHORT:
-               return getBody().getShort();
+               return getBody().readShort();
             case DataConstants.INT:
-               return getBody().getInt();
+               return getBody().readInt();
             case DataConstants.STRING:
-               String s = getBody().getNullableString();
+               String s = getBody().readNullableString();
                return Integer.parseInt(s);
             default:
                throw new MessageFormatException("Invalid conversion");           
          }
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -238,25 +235,25 @@
       checkRead();
       try
       {
-         byte type = getBody().getByte();
+         byte type = getBody().readByte();
          switch (type)
          {
             case DataConstants.BYTE:
-               return getBody().getByte();
+               return getBody().readByte();
             case DataConstants.SHORT:
-               return getBody().getShort();
+               return getBody().readShort();
             case DataConstants.INT:
-               return getBody().getInt();
+               return getBody().readInt();
             case DataConstants.LONG:
-               return getBody().getLong();
+               return getBody().readLong();
             case DataConstants.STRING:
-               String s = getBody().getNullableString();
+               String s = getBody().readNullableString();
                return Long.parseLong(s);
             default:
                throw new MessageFormatException("Invalid conversion");           
          }
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -267,19 +264,19 @@
       checkRead();
       try
       {
-         byte type = getBody().getByte();
+         byte type = getBody().readByte();
          switch (type)
          {
             case DataConstants.FLOAT:
-               return getBody().getFloat();
+               return getBody().readFloat();
             case DataConstants.STRING:
-               String s = getBody().getNullableString();
+               String s = getBody().readNullableString();
                return Float.parseFloat(s);
             default:
                throw new MessageFormatException("Invalid conversion");           
          }
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -290,21 +287,21 @@
       checkRead();
       try
       {
-         byte type = getBody().getByte();
+         byte type = getBody().readByte();
          switch (type)
          {
             case DataConstants.FLOAT:
-               return getBody().getFloat();
+               return getBody().readFloat();
             case DataConstants.DOUBLE:
-               return getBody().getDouble();
+               return getBody().readDouble();
             case DataConstants.STRING:
-               String s = getBody().getNullableString();
+               String s = getBody().readNullableString();
                return Double.parseDouble(s);
             default:
                throw new MessageFormatException("Invalid conversion: " + type);           
          }
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -315,32 +312,32 @@
       checkRead();
       try
       {
-         byte type = getBody().getByte();
+         byte type = getBody().readByte();
          switch (type)
          {
             case DataConstants.BOOLEAN:
-               return String.valueOf(getBody().getBoolean());
+               return String.valueOf(getBody().readBoolean());
             case DataConstants.BYTE:
-               return String.valueOf(getBody().getByte());
+               return String.valueOf(getBody().readByte());
             case DataConstants.SHORT:
-               return String.valueOf(getBody().getShort());
+               return String.valueOf(getBody().readShort());
             case DataConstants.CHAR:
-               return String.valueOf(getBody().getChar());
+               return String.valueOf(getBody().readChar());
             case DataConstants.INT:
-               return String.valueOf(getBody().getInt());
+               return String.valueOf(getBody().readInt());
             case DataConstants.LONG:
-               return String.valueOf(getBody().getLong());
+               return String.valueOf(getBody().readLong());
             case DataConstants.FLOAT:
-               return String.valueOf(getBody().getFloat());
+               return String.valueOf(getBody().readFloat());
             case DataConstants.DOUBLE:
-               return String.valueOf(getBody().getDouble());
+               return String.valueOf(getBody().readDouble());
             case DataConstants.STRING:
-               return getBody().getNullableString();
+               return getBody().readNullableString();
             default:
                throw new MessageFormatException("Invalid conversion");           
          }
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -360,15 +357,15 @@
          }
          else if (len == 0)
          {
-            byte type = getBody().getByte();
+            byte type = getBody().readByte();
             if (type != DataConstants.BYTES)
             {
                throw new MessageFormatException("Invalid conversion"); 
             }
-            len = getBody().getInt();       
+            len = getBody().readInt();       
          }     
          int read = Math.min(value.length, len);
-         getBody().getBytes(value, 0, read);
+         getBody().readBytes(value, 0, read);
          len -= read;
          if (len == 0)
          {
@@ -376,7 +373,7 @@
          }
          return read;      
       }
-      catch (BufferUnderflowException e)
+      catch (IndexOutOfBoundsException e)
       {
          throw new MessageEOFException("");
       }
@@ -385,31 +382,31 @@
    public Object readObject() throws JMSException
    {
       checkRead();
-      byte type = getBody().getByte();
+      byte type = getBody().readByte();
       switch (type)
       {
          case DataConstants.BOOLEAN:
-            return getBody().getBoolean();
+            return getBody().readBoolean();
          case DataConstants.BYTE:
-            return getBody().getByte();
+            return getBody().readByte();
          case DataConstants.SHORT:
-            return getBody().getShort();
+            return getBody().readShort();
          case DataConstants.CHAR:
-            return getBody().getChar();
+            return getBody().readChar();
          case DataConstants.INT:
-            return getBody().getInt();
+            return getBody().readInt();
          case DataConstants.LONG:
-            return getBody().getLong();
+            return getBody().readLong();
          case DataConstants.FLOAT:
-            return getBody().getFloat();
+            return getBody().readFloat();
          case DataConstants.DOUBLE:
-            return getBody().getDouble();
+            return getBody().readDouble();
          case DataConstants.STRING:
-            return getBody().getNullableString();         
+            return getBody().readNullableString();         
          case DataConstants.BYTES:
-            int len = getBody().getInt();
+            int len = getBody().readInt();
             byte[] bytes = new byte[len];
-            getBody().getBytes(bytes);
+            getBody().readBytes(bytes);
             return bytes;
          default:
             throw new MessageFormatException("Invalid conversion");           
@@ -419,81 +416,81 @@
    public void writeBoolean(final boolean value) throws JMSException
    {
       checkWrite();
-      getBody().putByte(DataConstants.BOOLEAN);
-      getBody().putBoolean(value);
+      getBody().writeByte(DataConstants.BOOLEAN);
+      getBody().writeBoolean(value);
    }
 
    public void writeByte(final byte value) throws JMSException
    {
       checkWrite();
-      getBody().putByte(DataConstants.BYTE);
-      getBody().putByte(value);
+      getBody().writeByte(DataConstants.BYTE);
+      getBody().writeByte(value);
    }
 
    public void writeShort(final short value) throws JMSException
    {
       checkWrite();
-      getBody().putByte(DataConstants.SHORT);
-      getBody().putShort(value);
+      getBody().writeByte(DataConstants.SHORT);
+      getBody().writeShort(value);
    }
 
    public void writeChar(final char value) throws JMSException
    {
       checkWrite();
-      getBody().putByte(DataConstants.CHAR);
-      getBody().putChar(value);
+      getBody().writeByte(DataConstants.CHAR);
+      getBody().writeChar(value);
    }
 
    public void writeInt(final int value) throws JMSException
    {
       checkWrite();
-      getBody().putByte(DataConstants.INT);
-      getBody().putInt(value);
+      getBody().writeByte(DataConstants.INT);
+      getBody().writeInt(value);
    }
 
    public void writeLong(final long value) throws JMSException
    {
       checkWrite();
-      getBody().putByte(DataConstants.LONG);
-      getBody().putLong(value);
+      getBody().writeByte(DataConstants.LONG);
+      getBody().writeLong(value);
    }
 
    public void writeFloat(final float value) throws JMSException
    {
       checkWrite();
-      getBody().putByte(DataConstants.FLOAT);
-      getBody().putFloat(value);
+      getBody().writeByte(DataConstants.FLOAT);
+      getBody().writeFloat(value);
    }
 
    public void writeDouble(final double value) throws JMSException
    {
       checkWrite();
-      getBody().putByte(DataConstants.DOUBLE);
-      getBody().putDouble(value);
+      getBody().writeByte(DataConstants.DOUBLE);
+      getBody().writeDouble(value);
    }
    
    public void writeString(final String value) throws JMSException
    {
       checkWrite();
-      getBody().putByte(DataConstants.STRING);
-      getBody().putNullableString(value);
+      getBody().writeByte(DataConstants.STRING);
+      getBody().writeNullableString(value);
    }
 
    public void writeBytes(final byte[] value) throws JMSException
    {
       checkWrite();
-      getBody().putByte(DataConstants.BYTES);
-      getBody().putInt(value.length);
-      getBody().putBytes(value);
+      getBody().writeByte(DataConstants.BYTES);
+      getBody().writeInt(value.length);
+      getBody().writeBytes(value);
    }
 
    public void writeBytes(final byte[] value, final int offset, final int length)
          throws JMSException
    {
       checkWrite();
-      getBody().putByte(DataConstants.BYTES);
-      getBody().putInt(length);
-      getBody().putBytes(value, offset, length);
+      getBody().writeByte(DataConstants.BYTES);
+      getBody().writeInt(length);
+      getBody().writeBytes(value, offset, length);
    }
 
    public void writeObject(final Object value) throws JMSException
@@ -553,13 +550,8 @@
       if (!readOnly)
       {
          readOnly = true;
-         
-         getBody().flip();
       }
-      else
-      {
-         getBody().rewind();
-      }
+      getBody().resetReaderIndex();
    }
 
    // JBossMessage overrides ----------------------------------------
@@ -567,8 +559,7 @@
    public void clearBody() throws JMSException
    {
       super.clearBody();
-      MessagingBuffer currentBody = message.getBody();
-      message.setBody(currentBody.createNewBuffer(1024));
+      message.getBody().clear();
    }
    
    public void doBeforeSend() throws Exception

Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossTextMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossTextMessage.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossTextMessage.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -124,7 +124,8 @@
    
    public void doBeforeSend() throws Exception
    {
-      getBody().putNullableString(text);      
+      getBody().clear();
+      getBody().writeNullableString(text);      
       
       super.doBeforeSend();
    }
@@ -133,7 +134,7 @@
    {
       super.doBeforeReceive();
       
-      text = getBody().getNullableString();                        
+      text = getBody().readNullableString();                        
    }
    
    // Package protected ---------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/utils/TypedProperties.java
===================================================================
--- trunk/src/main/org/jboss/messaging/utils/TypedProperties.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/utils/TypedProperties.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -191,7 +191,7 @@
 
    public synchronized void decode(final MessagingBuffer buffer)
    {
-      byte b = buffer.getByte();
+      byte b = buffer.readByte();
 
       if (b == NULL)
       {
@@ -199,19 +199,19 @@
       }
       else
       {
-         int numHeaders = buffer.getInt();
+         int numHeaders = buffer.readInt();
 
          properties = new HashMap<SimpleString, PropertyValue>(numHeaders);
          size = 0;
 
          for (int i = 0; i < numHeaders; i++)
          {
-            int len = buffer.getInt();
+            int len = buffer.readInt();
             byte[] data = new byte[len];
-            buffer.getBytes(data);
+            buffer.readBytes(data);
             SimpleString key = new SimpleString(data);
 
-            byte type = buffer.getByte();
+            byte type = buffer.readByte();
 
             PropertyValue val;
 
@@ -296,20 +296,20 @@
    {
       if (properties == null)
       {
-         buffer.putByte(NULL);
+         buffer.writeByte(NULL);
       }
       else
       {
-         buffer.putByte(NOT_NULL);
+         buffer.writeByte(NOT_NULL);
 
-         buffer.putInt(properties.size());
+         buffer.writeInt(properties.size());
 
          for (Map.Entry<SimpleString, PropertyValue> entry : properties.entrySet())
          {
             SimpleString s = entry.getKey();
             byte[] data = s.getData();
-            buffer.putInt(data.length);
-            buffer.putBytes(data);
+            buffer.writeInt(data.length);
+            buffer.writeBytes(data);
 
             entry.getValue().write(buffer);
          }
@@ -424,7 +424,7 @@
 
       public void write(final MessagingBuffer buffer)
       {
-         buffer.putByte(NULL);
+         buffer.writeByte(NULL);
       }
 
       public int encodeSize()
@@ -445,7 +445,7 @@
 
       public BooleanValue(final MessagingBuffer buffer)
       {
-         val = buffer.getBoolean();
+         val = buffer.readBoolean();
       }
 
       public Object getValue()
@@ -455,8 +455,8 @@
 
       public void write(final MessagingBuffer buffer)
       {
-         buffer.putByte(BOOLEAN);
-         buffer.putBoolean(val);
+         buffer.writeByte(BOOLEAN);
+         buffer.writeBoolean(val);
       }
 
       public int encodeSize()
@@ -477,7 +477,7 @@
 
       public ByteValue(final MessagingBuffer buffer)
       {
-         val = buffer.getByte();
+         val = buffer.readByte();
       }
 
       public Object getValue()
@@ -487,8 +487,8 @@
 
       public void write(final MessagingBuffer buffer)
       {
-         buffer.putByte(BYTE);
-         buffer.putByte(val);
+         buffer.writeByte(BYTE);
+         buffer.writeByte(val);
       }
 
       public int encodeSize()
@@ -508,9 +508,9 @@
 
       public BytesValue(final MessagingBuffer buffer)
       {
-         int len = buffer.getInt();
+         int len = buffer.readInt();
          val = new byte[len];
-         buffer.getBytes(val);
+         buffer.readBytes(val);
       }
 
       public Object getValue()
@@ -520,9 +520,9 @@
 
       public void write(final MessagingBuffer buffer)
       {
-         buffer.putByte(BYTES);
-         buffer.putInt(val.length);
-         buffer.putBytes(val);
+         buffer.writeByte(BYTES);
+         buffer.writeInt(val.length);
+         buffer.writeBytes(val);
       }
 
       public int encodeSize()
@@ -543,7 +543,7 @@
 
       public ShortValue(final MessagingBuffer buffer)
       {
-         val = buffer.getShort();
+         val = buffer.readShort();
       }
 
       public Object getValue()
@@ -553,8 +553,8 @@
 
       public void write(final MessagingBuffer buffer)
       {
-         buffer.putByte(SHORT);
-         buffer.putShort(val);
+         buffer.writeByte(SHORT);
+         buffer.writeShort(val);
       }
 
       public int encodeSize()
@@ -574,7 +574,7 @@
 
       public IntValue(final MessagingBuffer buffer)
       {
-         val = buffer.getInt();
+         val = buffer.readInt();
       }
 
       public Object getValue()
@@ -584,8 +584,8 @@
 
       public void write(final MessagingBuffer buffer)
       {
-         buffer.putByte(INT);
-         buffer.putInt(val);
+         buffer.writeByte(INT);
+         buffer.writeInt(val);
       }
 
       public int encodeSize()
@@ -605,7 +605,7 @@
 
       public LongValue(final MessagingBuffer buffer)
       {
-         val = buffer.getLong();
+         val = buffer.readLong();
       }
 
       public Object getValue()
@@ -615,8 +615,8 @@
 
       public void write(final MessagingBuffer buffer)
       {
-         buffer.putByte(LONG);
-         buffer.putLong(val);
+         buffer.writeByte(LONG);
+         buffer.writeLong(val);
       }
 
       public int encodeSize()
@@ -636,7 +636,7 @@
 
       public FloatValue(final MessagingBuffer buffer)
       {
-         val = buffer.getFloat();
+         val = buffer.readFloat();
       }
 
       public Object getValue()
@@ -646,8 +646,8 @@
 
       public void write(final MessagingBuffer buffer)
       {
-         buffer.putByte(FLOAT);
-         buffer.putFloat(val);
+         buffer.writeByte(FLOAT);
+         buffer.writeFloat(val);
       }
 
       public int encodeSize()
@@ -668,7 +668,7 @@
 
       public DoubleValue(final MessagingBuffer buffer)
       {
-         val = buffer.getDouble();
+         val = buffer.readDouble();
       }
 
       public Object getValue()
@@ -678,8 +678,8 @@
 
       public void write(final MessagingBuffer buffer)
       {
-         buffer.putByte(DOUBLE);
-         buffer.putDouble(val);
+         buffer.writeByte(DOUBLE);
+         buffer.writeDouble(val);
       }
 
       public int encodeSize()
@@ -699,7 +699,7 @@
 
       public CharValue(final MessagingBuffer buffer)
       {
-         val = buffer.getChar();
+         val = buffer.readChar();
       }
 
       public Object getValue()
@@ -709,8 +709,8 @@
 
       public void write(final MessagingBuffer buffer)
       {
-         buffer.putByte(CHAR);
-         buffer.putChar(val);
+         buffer.writeByte(CHAR);
+         buffer.writeChar(val);
       }
 
       public int encodeSize()
@@ -730,7 +730,7 @@
 
       public StringValue(final MessagingBuffer buffer)
       {
-         val = buffer.getSimpleString();
+         val = buffer.readSimpleString();
       }
 
       public Object getValue()
@@ -740,8 +740,8 @@
 
       public void write(final MessagingBuffer buffer)
       {
-         buffer.putByte(STRING);
-         buffer.putSimpleString(val);
+         buffer.writeByte(STRING);
+         buffer.writeSimpleString(val);
       }
 
       public int encodeSize()

Modified: trunk/src/main/org/jboss/messaging/utils/UTF8Util.java
===================================================================
--- trunk/src/main/org/jboss/messaging/utils/UTF8Util.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/src/main/org/jboss/messaging/utils/UTF8Util.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -66,7 +66,7 @@
          throw new IllegalArgumentException("the encoded string is too long (" + len + ")");
       }
 
-      out.putShort((short)len);
+      out.writeShort((short)len);
 
       if (len > buffer.byteBuffer.length)
       {
@@ -79,7 +79,7 @@
          {
             buffer.byteBuffer[byteLocation] = (byte)buffer.charBuffer[byteLocation];
          }
-         out.putBytes(buffer.byteBuffer, 0, len);
+         out.writeBytes(buffer.byteBuffer, 0, len);
       }
       else
       {
@@ -112,7 +112,7 @@
 
             }
          }
-         out.putBytes(buffer.byteBuffer, 0, len);
+         out.writeBytes(buffer.byteBuffer, 0, len);
       }
    }
 
@@ -120,7 +120,7 @@
    {
       StringUtilBuffer buffer = getThreadLocalBuffer();
 
-      final int size = input.getUnsignedShort();
+      final int size = input.readUnsignedShort();
 
       if (size > buffer.byteBuffer.length)
       {
@@ -141,7 +141,7 @@
       int byte1, byte2, byte3;
       int charCount = 0;
 
-      input.getBytes(buffer.byteBuffer, 0, size);
+      input.readBytes(buffer.byteBuffer, 0, size);
 
       while (count < size)
       {

Modified: trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/message/MessageHeaderTest.java
===================================================================
--- trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/message/MessageHeaderTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/message/MessageHeaderTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -24,7 +24,6 @@
 import static org.easymock.EasyMock.expect;
 
 import java.io.Serializable;
-import java.nio.ByteBuffer;
 import java.util.Enumeration;
 import java.util.HashSet;
 
@@ -41,10 +40,11 @@
 import javax.jms.TextMessage;
 
 import org.easymock.EasyMock;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.impl.ClientMessageImpl;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.jms.client.JBossBytesMessage;
 import org.jboss.messaging.jms.client.JBossMapMessage;
 import org.jboss.messaging.jms.client.JBossMessage;
@@ -681,7 +681,7 @@
    public void testCopyOnJBossMessage() throws JMSException
    {
       ClientSession session = EasyMock.createNiceMock(ClientSession.class);
-      ByteBufferWrapper body = new ByteBufferWrapper(ByteBuffer.allocate(1024));
+      MessagingBuffer body = ChannelBuffers.buffer(1024); 
       ClientMessage clientMessage = new ClientMessageImpl(JBossTextMessage.TYPE, true, 0, System.currentTimeMillis(), (byte)4, body);
       expect(session.createClientMessage(EasyMock.anyByte(), EasyMock.anyBoolean(), EasyMock.anyInt(), EasyMock.anyLong(), EasyMock.anyByte())).andReturn(clientMessage);
       EasyMock.replay(session);
@@ -699,7 +699,7 @@
    public void testCopyOnForeignMessage() throws JMSException
    {
       ClientSession session = EasyMock.createNiceMock(ClientSession.class);
-      ByteBufferWrapper body = new ByteBufferWrapper(ByteBuffer.allocate(1024));
+      MessagingBuffer body = ChannelBuffers.buffer(1024); 
       ClientMessage clientMessage = new ClientMessageImpl(JBossMessage.TYPE, true, 0, System.currentTimeMillis(), (byte)4, body);
       expect(session.createClientMessage(EasyMock.anyByte(), EasyMock.anyBoolean(), EasyMock.anyInt(), EasyMock.anyLong(), EasyMock.anyByte())).andReturn(clientMessage);
       EasyMock.replay(session);
@@ -716,7 +716,7 @@
    public void testCopyOnForeignBytesMessage() throws JMSException
    {
       ClientSession session = EasyMock.createNiceMock(ClientSession.class);
-      ByteBufferWrapper body = new ByteBufferWrapper(ByteBuffer.allocate(1024));
+      MessagingBuffer body = ChannelBuffers.buffer(1024); 
       ClientMessage clientMessage = new ClientMessageImpl(JBossBytesMessage.TYPE, true, 0, System.currentTimeMillis(), (byte)4, body);
       expect(session.createClientMessage(EasyMock.anyByte(), EasyMock.anyBoolean(), EasyMock.anyInt(), EasyMock.anyLong(), EasyMock.anyByte())).andReturn(clientMessage);
       EasyMock.replay(session);
@@ -739,7 +739,7 @@
    public void testCopyOnForeignMapMessage() throws JMSException
    {
       ClientSession session = EasyMock.createNiceMock(ClientSession.class);
-      ByteBufferWrapper body = new ByteBufferWrapper(ByteBuffer.allocate(1024));
+      MessagingBuffer body = ChannelBuffers.buffer(1024); 
       ClientMessage clientMessage = new ClientMessageImpl(JBossMapMessage.TYPE, true, 0, System.currentTimeMillis(), (byte)4, body);
       expect(session.createClientMessage(EasyMock.anyByte(), EasyMock.anyBoolean(), EasyMock.anyInt(), EasyMock.anyLong(), EasyMock.anyByte())).andReturn(clientMessage);
       EasyMock.replay(session);
@@ -757,7 +757,7 @@
    public void testCopyOnForeignObjectMessage() throws JMSException
    {
       ClientSession session = EasyMock.createNiceMock(ClientSession.class);
-      ByteBufferWrapper body = new ByteBufferWrapper(ByteBuffer.allocate(1024));
+      MessagingBuffer body = ChannelBuffers.buffer(1024); 
       ClientMessage clientMessage = new ClientMessageImpl(JBossObjectMessage.TYPE, true, 0, System.currentTimeMillis(), (byte)4, body);
       expect(session.createClientMessage(EasyMock.anyByte(), EasyMock.anyBoolean(), EasyMock.anyInt(), EasyMock.anyLong(), EasyMock.anyByte())).andReturn(clientMessage);
       EasyMock.replay(session);
@@ -773,7 +773,7 @@
    public void testCopyOnForeignStreamMessage() throws JMSException
    {
       ClientSession session = EasyMock.createNiceMock(ClientSession.class);
-      ByteBufferWrapper body = new ByteBufferWrapper(ByteBuffer.allocate(1024));
+      MessagingBuffer body = ChannelBuffers.buffer(1024); 
       ClientMessage clientMessage = new ClientMessageImpl(JBossStreamMessage.TYPE, true, 0, System.currentTimeMillis(), (byte)4, body);
       expect(session.createClientMessage(EasyMock.anyByte(), EasyMock.anyBoolean(), EasyMock.anyInt(), EasyMock.anyLong(), EasyMock.anyByte())).andReturn(clientMessage);
       EasyMock.replay(session);
@@ -793,7 +793,7 @@
    public void testCopyOnForeignTextMessage() throws JMSException
    {
       ClientSession session = EasyMock.createNiceMock(ClientSession.class);
-      ByteBufferWrapper body = new ByteBufferWrapper(ByteBuffer.allocate(1024));
+      MessagingBuffer body = ChannelBuffers.buffer(1024); 
       ClientMessage clientMessage = new ClientMessageImpl(JBossTextMessage.TYPE, true, 0, System.currentTimeMillis(), (byte)4, body);
       expect(session.createClientMessage(EasyMock.anyByte(), EasyMock.anyBoolean(), EasyMock.anyInt(), EasyMock.anyLong(), EasyMock.anyByte())).andReturn(clientMessage);
       EasyMock.replay(session);

Modified: trunk/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java
===================================================================
--- trunk/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -144,7 +144,7 @@
 
       if (clearDatabase)
       {
-         // Delete the BDB environment
+         // Delete the Journal environment
 
          File dir = new File("data");
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/basic/AutoGroupClientTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/basic/AutoGroupClientTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/basic/AutoGroupClientTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -96,8 +96,7 @@
       {
          ClientMessage message = session.createClientMessage(JBossTextMessage.TYPE, false, 0,
                System.currentTimeMillis(), (byte) 1);
-         message.getBody().putString("testINVMCoreClient");
-         message.getBody().flip();
+         message.getBody().writeString("testINVMCoreClient");
          message.setDurable(false);
          producer.send(message);
       }
@@ -158,16 +157,14 @@
       {
          ClientMessage message = session.createClientMessage(JBossTextMessage.TYPE, false, 0,
                System.currentTimeMillis(), (byte) 1);
-         message.getBody().putString("testINVMCoreClient");
-         message.getBody().flip();
+         message.getBody().writeString("testINVMCoreClient");
          producer.send(message);
       }
       for (int i = 0; i < numMessages; i++)
       {
          ClientMessage message = session.createClientMessage(JBossTextMessage.TYPE, false, 0,
                System.currentTimeMillis(), (byte) 1);
-         message.getBody().putString("testINVMCoreClient");
-         message.getBody().flip();
+         message.getBody().writeString("testINVMCoreClient");
          producer2.send(message);
       }
       latch.await();
@@ -222,8 +219,7 @@
       {
          ClientMessage message = session.createClientMessage(JBossTextMessage.TYPE, false, 0,
                System.currentTimeMillis(), (byte) 1);
-         message.getBody().putString("testINVMCoreClient");
-         message.getBody().flip();
+         message.getBody().writeString("testINVMCoreClient");
          message.setDurable(false);
          producer.send(message);
       }

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/basic/CoreClientTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/basic/CoreClientTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/basic/CoreClientTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -22,6 +22,8 @@
 
 package org.jboss.messaging.tests.integration.basic;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
+import org.jboss.messaging.core.buffers.HeapChannelBuffer;
 import org.jboss.messaging.core.client.ClientConsumer;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientProducer;
@@ -54,10 +56,13 @@
 
    // Public --------------------------------------------------------
 
-   public void testCoreClient() throws Exception
+   public void testCoreClientNetty() throws Exception
    {
-      testCoreClient("org.jboss.messaging.integration.transports.mina.MinaAcceptorFactory", "org.jboss.messaging.integration.transports.mina.MinaConnectorFactory");
       testCoreClient("org.jboss.messaging.integration.transports.netty.NettyAcceptorFactory", "org.jboss.messaging.integration.transports.netty.NettyConnectorFactory");
+   }
+   
+   public void testCoreClientInVM() throws Exception
+   {
       testCoreClient("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory", "org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory");
    }
    
@@ -89,8 +94,9 @@
       {
          ClientMessage message = session.createClientMessage(JBossTextMessage.TYPE, false, 0,
                System.currentTimeMillis(), (byte) 1);         
-         message.getBody().putString("testINVMCoreClient");
-         message.getBody().flip();         
+         message.setBody(ChannelBuffers.buffer(3000));
+         
+         message.getBody().writeString("testINVMCoreClient");
          producer.send(message);
       }
       
@@ -102,7 +108,7 @@
       {
          ClientMessage message2 = consumer.receive();
 
-         assertEquals("testINVMCoreClient", message2.getBody().getString());
+         assertEquals("testINVMCoreClient", message2.getBody().readString());
          
          message2.acknowledge();
       }

Added: trunk/tests/src/org/jboss/messaging/tests/integration/basic/SelfExpandingBufferTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/basic/SelfExpandingBufferTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/basic/SelfExpandingBufferTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -0,0 +1,149 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.messaging.tests.integration.basic;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
+import org.jboss.messaging.core.server.MessagingService;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ * A SelfExpandingBufferTest
+ *
+ * @author <a href="mailto:clebert.suconic at jboss.org">Clebert Suconic</a>
+ * 
+ * Created Feb 23, 2009 4:27:16 PM
+ *
+ *
+ */
+public class SelfExpandingBufferTest extends ServiceTestBase
+{
+
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   MessagingService service;
+
+   SimpleString ADDRESS = new SimpleString("Address");
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   public void testSelfExpandingBufferNetty() throws Exception
+   {
+      testSelfExpandingBuffer(true);
+   }
+
+   public void testSelfExpandingBufferInVM() throws Exception
+   {
+      testSelfExpandingBuffer(false);
+   }
+
+   public void testSelfExpandingBuffer(boolean netty) throws Exception
+   {
+
+      setUpService(true);
+
+      ClientSessionFactory factory;
+
+      if (netty)
+      {
+         factory = createNettyFactory();
+      }
+      else
+      {
+         factory = createInVMFactory();
+      }
+
+      ClientSession session = factory.createSession(false, true, true);
+
+      try
+      {
+
+         session.createQueue(ADDRESS, ADDRESS, true);
+
+         ClientMessage msg = session.createClientMessage(true);
+
+         MessagingBuffer buffer = msg.getBody();
+
+         for (int i = 0; i < 10; i++)
+         {
+            buffer.writeBytes(new byte[1024]);
+         }
+         
+         ClientProducer prod = session.createProducer(ADDRESS);
+         
+         prod.send(msg);
+         
+         ClientConsumer cons = session.createConsumer(ADDRESS);
+
+         session.start();
+         
+         ClientMessage msg2 = cons.receive(3000);
+         assertNotNull(msg2);
+         
+         
+         assertEquals(1024 * 10, msg2.getBodySize());
+         
+         
+      }
+      finally
+      {
+         session.close();
+      }
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   protected void setUpService(boolean netty) throws Exception
+   {
+      service = createService(false, createDefaultConfig(netty));
+      service.start();
+   }
+
+   protected void tearDown() throws Exception
+   {
+      if (service != null && service.isStarted())
+      {
+         service.stop();
+      }
+
+      super.tearDown();
+   }
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+
+}

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/chunkmessage/ChunkTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/chunkmessage/ChunkTestBase.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/chunkmessage/ChunkTestBase.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -29,6 +29,7 @@
 import java.nio.ByteBuffer;
 import java.nio.channels.FileChannel;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientConsumer;
 import org.jboss.messaging.core.client.ClientFileMessage;
 import org.jboss.messaging.core.client.ClientMessage;
@@ -38,7 +39,6 @@
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.impl.MessageImpl;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.server.MessagingService;
 import org.jboss.messaging.core.server.Queue;
@@ -289,11 +289,11 @@
                   else
                   {
                      MessagingBuffer buffer = message.getBody();
-                     buffer.rewind();
-                     assertEquals(numberOfIntegers * DataConstants.SIZE_INT, buffer.limit());
+                     buffer.resetReaderIndex();
+                     assertEquals(numberOfIntegers * DataConstants.SIZE_INT, buffer.writerIndex());
                      for (int b = 0; b < numberOfIntegers; b++)
                      {
-                        assertEquals(b, buffer.getInt());
+                        assertEquals(b, buffer.readInt());
                      }
                   }
                }
@@ -332,14 +332,12 @@
 
    protected MessagingBuffer createLargeBuffer(final int numberOfIntegers)
    {
-      ByteBuffer ioBuffer = ByteBuffer.allocate(DataConstants.SIZE_INT * numberOfIntegers);
-      MessagingBuffer body = new ByteBufferWrapper(ioBuffer);
+      MessagingBuffer body = ChannelBuffers.buffer(DataConstants.SIZE_INT * numberOfIntegers); 
 
       for (int i = 0; i < numberOfIntegers; i++)
       {
-         body.putInt(i);
+         body.writeInt(i);
       }
-      body.flip();
 
       return body;
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/chunkmessage/MessageChunkTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/chunkmessage/MessageChunkTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/chunkmessage/MessageChunkTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -23,12 +23,12 @@
 package org.jboss.messaging.tests.integration.chunkmessage;
 
 import java.io.File;
-import java.nio.ByteBuffer;
 import java.util.HashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import junit.framework.AssertionFailedError;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientConsumer;
 import org.jboss.messaging.core.client.ClientFileMessage;
 import org.jboss.messaging.core.client.ClientMessage;
@@ -42,7 +42,6 @@
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.Message;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl;
 import org.jboss.messaging.core.remoting.server.impl.RemotingServiceImpl;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
@@ -570,7 +569,7 @@
 
                assertNotNull(clientMessage);
 
-               assertEquals(numberOfIntegers * 4, clientMessage.getBody().limit());
+               assertEquals(numberOfIntegers * 4, clientMessage.getBody().writerIndex());
 
                clientMessage.acknowledge();
 
@@ -656,8 +655,6 @@
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
-         ByteBuffer ioBuffer = ByteBuffer.allocate(DataConstants.SIZE_INT * numberOfIntegers);
-
          // printBuffer("body to be sent : " , body);
 
          ClientMessage message = null;
@@ -666,13 +663,12 @@
 
          for (int i = 0; i < 100; i++)
          {
-            MessagingBuffer bodyLocal = new ByteBufferWrapper(ioBuffer);
+            MessagingBuffer bodyLocal = ChannelBuffers.buffer(DataConstants.SIZE_INT * numberOfIntegers);
 
             for (int j = 1; j <= numberOfIntegers; j++)
             {
-               bodyLocal.putInt(j);
+               bodyLocal.writeInt(j);
             }
-            bodyLocal.flip();
 
             if (i == 0)
             {
@@ -721,7 +717,7 @@
 
             try
             {
-               assertEqualsByteArrays(body.limit(), body.array(), message2.getBody().array());
+               assertEqualsByteArrays(body.writerIndex(), body.array(), message2.getBody().array());
             }
             catch (AssertionFailedError e)
             {

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientCrashTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientCrashTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientCrashTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -106,7 +106,7 @@
       // send the message to the queue
       Message messageFromClient = consumer.receive(5000);
       assertNotNull("no message received", messageFromClient);
-      assertEquals(MESSAGE_TEXT_FROM_CLIENT, messageFromClient.getBody().getString());
+      assertEquals(MESSAGE_TEXT_FROM_CLIENT, messageFromClient.getBody().readString());
       
       assertActiveConnections(1 + 1); // One local and one from the other vm
       assertActiveSession(1 + 1);
@@ -116,7 +116,7 @@
                                                           0,
                                                           System.currentTimeMillis(),
                                                           (byte)1);
-      message.getBody().putString(ClientCrashTest.MESSAGE_TEXT_FROM_SERVER);
+      message.getBody().writeString(ClientCrashTest.MESSAGE_TEXT_FROM_SERVER);
       producer.send(message);
       session.close();
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientExitTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientExitTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientExitTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -79,7 +79,7 @@
       Message message = consumer.receive(15000);
 
       assertNotNull(message);
-      assertEquals(MESSAGE_TEXT, message.getBody().getString());
+      assertEquals(MESSAGE_TEXT, message.getBody().readString());
 
       // the client VM should exit by itself. If it doesn't, that means we have a problem
       // and the test will timeout

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/CrashClient.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/CrashClient.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/CrashClient.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -105,7 +105,7 @@
          
          ClientMessage message = session.createClientMessage(JBossTextMessage.TYPE, false, 0,
                System.currentTimeMillis(), (byte) 1);
-         message.getBody().putString(ClientCrashTest.MESSAGE_TEXT_FROM_CLIENT);
+         message.getBody().writeString(ClientCrashTest.MESSAGE_TEXT_FROM_CLIENT);
 
          producer.send(message);
          

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/GracefulClient.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/GracefulClient.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/GracefulClient.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -70,7 +70,7 @@
 
          ClientMessage message = session.createClientMessage(JBossTextMessage.TYPE, false, 0,
                System.currentTimeMillis(), (byte) 1);
-         message.getBody().putString(messageText);
+         message.getBody().writeString(messageText);
          producer.send(message);
 
          session.start();

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeReconnectTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeReconnectTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeReconnectTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -167,7 +167,6 @@
       {
          ClientMessage message = session0.createClientMessage(false);
          message.putIntProperty(propKey, i);
-         message.getBody().flip();
 
          prod0.send(message);
       }
@@ -298,7 +297,6 @@
       {
          ClientMessage message = session0.createClientMessage(false);
          message.putIntProperty(propKey, i);
-         message.getBody().flip();
 
          prod0.send(message);
       }
@@ -456,7 +454,6 @@
       {
          ClientMessage message = session0.createClientMessage(false);
          message.putIntProperty(propKey, i);
-         message.getBody().flip();
 
          prod0.send(message);
       }
@@ -573,7 +570,6 @@
       {
          ClientMessage message = session0.createClientMessage(false);
          message.putIntProperty(propKey, i);
-         message.getBody().flip();
 
          prod0.send(message);
       }
@@ -687,7 +683,6 @@
       {
          ClientMessage message = session0.createClientMessage(false);
          message.putIntProperty(propKey, i);
-         message.getBody().flip();
 
          prod0.send(message);
       }
@@ -708,7 +703,6 @@
       {
          ClientMessage message = session0.createClientMessage(false);
          message.putIntProperty(propKey, i);
-         message.getBody().flip();
 
          prod0.send(message);
       }

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -369,10 +369,8 @@
 
          message.putStringProperty(propKey, new SimpleString("bing"));
 
-         message.getBody().putString("doo be doo be doo be doo");
+         message.getBody().writeString("doo be doo be doo be doo");
 
-         message.getBody().flip();
-
          producer0.send(message);
       }
 
@@ -386,7 +384,7 @@
 
          assertEquals(new SimpleString("bong"), val);
 
-         String sval = message.getBody().getString();
+         String sval = message.getBody().readString();
 
          assertEquals("dee be dee be dee be dee", sval);
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/SimpleTransformer.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/SimpleTransformer.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/SimpleTransformer.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -57,17 +57,17 @@
       //Change the body
       MessagingBuffer buffer = message.getBody();
       
-      String str = buffer.getString();
+      String str = buffer.readString();
       
       if (!str.equals("doo be doo be doo be doo"))
       {
          throw new IllegalStateException("Wrong body!!");
       }
-        
-      buffer.flip();
       
-      buffer.putString("dee be dee be dee be dee");
+      buffer.clear();
       
+      buffer.writeString("dee be dee be dee be dee");
+      
       return message;
    }
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/ActivationTimeoutTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/ActivationTimeoutTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/ActivationTimeoutTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -109,8 +109,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
       log.info("Sent messages");
@@ -147,7 +146,7 @@
             assertTrue(now - start >= ACTIVATION_TIMEOUT);
          }
          
-         assertEquals("aardvarks", message.getBody().getString());
+         assertEquals("aardvarks", message.getBody().readString());
 
          assertEquals(i, message.getProperty(new SimpleString("count")));
 
@@ -196,8 +195,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
       log.info("Sent messages");
@@ -238,7 +236,7 @@
             assertTrue(now - start >= ACTIVATION_TIMEOUT);
          }
          
-         assertEquals("aardvarks", message.getBody().getString());
+         assertEquals("aardvarks", message.getBody().readString());
 
          assertEquals(i, message.getProperty(new SimpleString("count")));
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/AutomaticFailoverWithDiscoveryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/AutomaticFailoverWithDiscoveryTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/AutomaticFailoverWithDiscoveryTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -108,8 +108,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
 
@@ -126,7 +125,7 @@
       {
          ClientMessage message2 = consumer.receive();
 
-         assertEquals("aardvarks", message2.getBody().getString());
+         assertEquals("aardvarks", message2.getBody().readString());
 
          assertEquals(i, message2.getProperty(new SimpleString("count")));
 
@@ -145,7 +144,7 @@
       {
          ClientMessage message2 = consumer.receive();
 
-         assertEquals("aardvarks", message2.getBody().getString());
+         assertEquals("aardvarks", message2.getBody().readString());
 
          assertEquals(i, message2.getProperty(new SimpleString("count")));
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailBackupServerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailBackupServerTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailBackupServerTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -104,8 +104,7 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
 
@@ -119,7 +118,7 @@
 
          assertNotNull(message);
 
-         assertEquals("aardvarks", message.getBody().getString());
+         assertEquals("aardvarks", message.getBody().readString());
 
          assertEquals(i, message.getProperty(new SimpleString("count")));
 
@@ -149,8 +148,7 @@
       {
          message = session1.createClientMessage(JBossTextMessage.TYPE, false, 0, System.currentTimeMillis(), (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
 
@@ -160,7 +158,7 @@
 
          assertNotNull(message);
 
-         assertEquals("aardvarks", message.getBody().getString());
+         assertEquals("aardvarks", message.getBody().readString());
 
          assertEquals(i, message.getProperty(new SimpleString("count")));
 
@@ -197,8 +195,7 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
       
@@ -208,7 +205,7 @@
 
          assertNotNull(message);
 
-         assertEquals("aardvarks", message.getBody().getString());
+         assertEquals("aardvarks", message.getBody().readString());
 
          assertEquals(i, message.getProperty(new SimpleString("count")));
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverExpiredMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverExpiredMessageTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverExpiredMessageTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -114,8 +114,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);         
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);                  
       }
       ClientConsumer consumer1 = session1.createConsumer(ADDRESS);

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverManagementTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverManagementTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverManagementTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -106,8 +106,6 @@
       {
          ClientMessage msg  = session1.createClientMessage(false);
          
-         msg.getBody().flip();
-         
          producer.send(msg);
       }
       
@@ -119,7 +117,6 @@
                                         ObjectNames.getQueueObjectName(ADDRESS, ADDRESS),
                                         "MessageCount");
          managementMessage.putStringProperty(ClientMessageImpl.REPLYTO_HEADER_NAME, replyTo);
-         managementMessage.getBody().flip();
          
          producer.send(DEFAULT_MANAGEMENT_ADDRESS, managementMessage);
       }
@@ -139,8 +136,6 @@
                                         ObjectNames.getQueueObjectName(ADDRESS, ADDRESS),
                                         "MessageCount");
          managementMessage.putStringProperty(ClientMessageImpl.REPLYTO_HEADER_NAME, replyTo);
-
-         managementMessage.getBody().flip();
          
          producer.send(DEFAULT_MANAGEMENT_ADDRESS, managementMessage);
       }
@@ -200,8 +195,6 @@
       {
          ClientMessage msg  = session1.createClientMessage(false);
          
-         msg.getBody().flip();
-         
          producer.send(msg);
       }
       
@@ -213,7 +206,6 @@
                                         ObjectNames.getQueueObjectName(ADDRESS, ADDRESS),
                                         "MessageCount");
          managementMessage.putStringProperty(ClientMessageImpl.REPLYTO_HEADER_NAME, replyTo);
-         managementMessage.getBody().flip();
          
          producer.send(DEFAULT_MANAGEMENT_ADDRESS, managementMessage);
       }

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverNoSessionsFailoverTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverNoSessionsFailoverTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverNoSessionsFailoverTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -100,8 +100,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
 
@@ -115,7 +114,7 @@
          
          assertNotNull(message);
          
-         assertEquals("aardvarks", message.getBody().getString());
+         assertEquals("aardvarks", message.getBody().readString());
 
          assertEquals(i, message.getProperty(new SimpleString("count")));
 
@@ -147,8 +146,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message2.putIntProperty(new SimpleString("count"), i);
-         message2.getBody().putString("aardvarks");
-         message2.getBody().flip();
+         message2.getBody().writeString("aardvarks");
          producer2.send(message2);
       }
 
@@ -162,7 +160,7 @@
          
          assertNotNull(message2);
          
-         assertEquals("aardvarks", message2.getBody().getString());
+         assertEquals("aardvarks", message2.getBody().readString());
 
          assertEquals(i, message2.getProperty(new SimpleString("count")));
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverPreAcknowledgeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverPreAcknowledgeTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverPreAcknowledgeTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -93,8 +93,7 @@
          ClientMessage message = session1.createClientMessage(JBossTextMessage.TYPE,
                                                              false);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("more aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("more aardvarks");
          producer.send(message);
       }
       ClientConsumer consumer1 = session1.createConsumer(ADDRESS);

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverScheduledMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverScheduledMessageTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverScheduledMessageTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -115,8 +115,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);         
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          long deliveryTime = now + delay * i;
          message.putLongProperty(MessageImpl.HDR_SCHEDULED_DELIVERY_TIME, deliveryTime);
          producer.send(message);                

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailureOnCreateConnectionTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailureOnCreateConnectionTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailureOnCreateConnectionTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -150,8 +150,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
 
@@ -169,7 +168,7 @@
 
          assertNotNull(message);
 
-         assertEquals("aardvarks", message.getBody().getString());
+         assertEquals("aardvarks", message.getBody().readString());
 
          assertEquals(i, message.getProperty(new SimpleString("count")));
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/JustReplicationTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/JustReplicationTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/JustReplicationTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -22,15 +22,14 @@
 
 package org.jboss.messaging.tests.integration.cluster.failover;
 
-import java.nio.ByteBuffer;
 import java.util.concurrent.CountDownLatch;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientConsumer;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientProducer;
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.utils.SimpleString;
 
@@ -160,14 +159,12 @@
          {
             ClientMessage message = session.createClientMessage(true);
 
-            ByteBuffer buffer = ByteBuffer.allocate(numberOfBytes);
+            MessagingBuffer buffer = ChannelBuffers.buffer(15000);
+            buffer.setInt(0, i);
+            buffer.writerIndex(buffer.capacity());
+            
+            message.setBody(buffer);
 
-            buffer.putInt(i);
-
-            buffer.rewind();
-
-            message.setBody(new ByteBufferWrapper(buffer));
-
             producer.send(message);
 
          }
@@ -186,11 +183,9 @@
 
             MessagingBuffer buffer = message.getBody();
 
-            buffer.rewind();
+            assertEquals(numberOfBytes, buffer.writerIndex());
 
-            assertEquals(numberOfBytes, buffer.limit());
-
-            assertEquals(i, buffer.getInt());
+            assertEquals(i, buffer.readInt());
          }
 
          assertNull(consumer.receive(500));

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/LargeMessageMultiThreadFailoverTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/LargeMessageMultiThreadFailoverTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/LargeMessageMultiThreadFailoverTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -23,7 +23,6 @@
 package org.jboss.messaging.tests.integration.cluster.failover;
 
 import java.io.File;
-import java.nio.ByteBuffer;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -32,7 +31,6 @@
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.jboss.messaging.core.remoting.impl.invm.TransportConstants;
 import org.jboss.messaging.core.server.Messaging;
@@ -52,6 +50,7 @@
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
+   private final byte[] FIVE_HUNDRED_BYTES = new byte[500];
 
    // Static --------------------------------------------------------
 
@@ -62,18 +61,17 @@
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------
-   
+
    protected ClientSessionFactoryInternal createSessionFactory()
    {
       ClientSessionFactoryInternal sf = super.createSessionFactory();
-      
+
       sf.setMinLargeMessageSize(200);
-      
+
       return sf;
 
    }
 
-
    @Override
    protected void start() throws Exception
    {
@@ -124,11 +122,12 @@
       liveService.start();
 
    }
-   
+
    @Override
    protected void setBody(final ClientMessage message) throws Exception
    {
-      message.setBody(new ByteBufferWrapper(ByteBuffer.allocate(500)));
+      
+      message.getBody().writeBytes(FIVE_HUNDRED_BYTES);
 
    }
 
@@ -138,7 +137,7 @@
    @Override
    protected boolean checkSize(ClientMessage message)
    {
-      return 500 ==  message.getBodySize();
+      return 500 == message.getBodySize();
    }
 
    // Private -------------------------------------------------------

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/MultiThreadRandomFailoverTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/MultiThreadRandomFailoverTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/MultiThreadRandomFailoverTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -68,7 +68,6 @@
    @Override
    protected void setBody(final ClientMessage message) throws Exception
    {
-      message.getBody().flip();
    }
 
    /* (non-Javadoc)
@@ -77,7 +76,7 @@
    @Override
    protected boolean checkSize(final ClientMessage message)
    {
-      return 0 == message.getBody().limit();
+      return 0 == message.getBody().writerIndex();
    }
 
 }

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/MultiThreadRandomFailoverTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/MultiThreadRandomFailoverTestBase.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/MultiThreadRandomFailoverTestBase.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -991,8 +991,6 @@
                                                        0,
                                                        System.currentTimeMillis(),
                                                        (byte)1);
-      message.getBody().flip();
-
       producer.send(message);
 
       ClientMessage message2 = consumer.receive(RECEIVE_TIMEOUT);
@@ -1029,8 +1027,6 @@
                                                        0,
                                                        System.currentTimeMillis(),
                                                        (byte)1);
-      message.getBody().flip();
-
       producer.send(message);
 
       ClientMessage message2 = consumer.receive(RECEIVE_TIMEOUT);
@@ -1224,8 +1220,6 @@
                                                        0,
                                                        System.currentTimeMillis(),
                                                        (byte)1);
-      message.getBody().flip();
-
       producer.send(message);
 
       sess.start();

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/PagingFailoverTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/PagingFailoverTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/PagingFailoverTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -35,7 +35,6 @@
 import org.jboss.messaging.core.paging.PagingManager;
 import org.jboss.messaging.core.paging.PagingStore;
 import org.jboss.messaging.core.remoting.RemotingConnection;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl;
 import org.jboss.messaging.core.remoting.impl.invm.InVMConnector;
 import org.jboss.messaging.utils.SimpleString;
@@ -100,14 +99,8 @@
          for (int i = 0; i < numMessages; i++)
          {
             ClientMessage message = session.createClientMessage(true);
-            ByteBuffer buffer = ByteBuffer.allocate(1000);
+            message.getBody().writeInt(i);
 
-            buffer.putInt(i);
-
-            buffer.rewind();
-
-            message.setBody(new ByteBufferWrapper(buffer));
-
             producer.send(message);
 
             if (storeLive.isPaging())
@@ -145,10 +138,8 @@
 
             message.acknowledge();
 
-            message.getBody().rewind();
+            assertEquals(i, message.getBody().readInt());
 
-            assertEquals(i, message.getBody().getInt());
-
          }
 
          session.close();

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/RandomFailoverTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/RandomFailoverTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/RandomFailoverTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -303,7 +303,6 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().flip();
          producer.send(message);
       }
 
@@ -418,7 +417,6 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().flip();
          producer.send(message);
       }
 
@@ -533,7 +531,6 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().flip();
          producer.send(message);
       }
 
@@ -547,7 +544,6 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().flip();
          producer.send(message);
       }
 
@@ -684,7 +680,6 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().flip();
          producer.send(message);
       }
 
@@ -698,7 +693,6 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().flip();
          producer.send(message);
       }
 
@@ -844,7 +838,6 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().flip();
          producer.send(message);
       }
 
@@ -932,7 +925,6 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().flip();
          producer.send(message);
       }
 
@@ -1034,7 +1026,6 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().flip();
          producer.send(message);
       }
 
@@ -1048,7 +1039,6 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().flip();
          producer.send(message);
       }
 
@@ -1171,7 +1161,6 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().flip();
          producer.send(message);
       }
 
@@ -1185,7 +1174,6 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().flip();
          producer.send(message);
       }
 
@@ -1293,8 +1281,6 @@
                                                        0,
                                                        System.currentTimeMillis(),
                                                        (byte)1);
-      message.getBody().flip();
-
       producer.send(message);
 
       ClientMessage message2 = consumer.receive(RECEIVE_TIMEOUT);
@@ -1329,8 +1315,6 @@
                                                        0,
                                                        System.currentTimeMillis(),
                                                        (byte)1);
-      message.getBody().flip();
-
       producer.send(message);
 
       ClientMessage message2 = consumer.receive(RECEIVE_TIMEOUT);
@@ -1403,8 +1387,6 @@
                                                        0,
                                                        System.currentTimeMillis(),
                                                        (byte)1);
-      message.getBody().flip();
-
       producer.send(message);
 
       sess.start();

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/ReconnectTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/ReconnectTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/ReconnectTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -112,8 +112,7 @@
                                                                 System.currentTimeMillis(),
                                                                 (byte)1);
             message.putIntProperty(new SimpleString("count"), i);
-            message.getBody().putString("aardvarks");
-            message.getBody().flip();
+            message.getBody().writeString("aardvarks");
             producer.send(message);
          }
 
@@ -131,7 +130,7 @@
    
             assertNotNull(message);
    
-            assertEquals("aardvarks", message.getBody().getString());
+            assertEquals("aardvarks", message.getBody().readString());
    
             assertEquals(i, message.getProperty(new SimpleString("count")));
    
@@ -188,8 +187,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
       log.info("Sent messages");
@@ -228,7 +226,7 @@
 
          assertNotNull(message);
 
-         assertEquals("aardvarks", message.getBody().getString());
+         assertEquals("aardvarks", message.getBody().readString());
 
          assertEquals(i, message.getProperty(new SimpleString("count")));
 
@@ -278,8 +276,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
       log.info("Sent messages");
@@ -358,8 +355,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
       log.info("Sent messages");
@@ -400,7 +396,7 @@
 
          assertNotNull(message);
 
-         assertEquals("aardvarks", message.getBody().getString());
+         assertEquals("aardvarks", message.getBody().readString());
 
          assertEquals(i, message.getProperty(new SimpleString("count")));
 
@@ -450,8 +446,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
       log.info("Sent messages");
@@ -491,7 +486,7 @@
 
          assertNotNull(message);
 
-         assertEquals("aardvarks", message.getBody().getString());
+         assertEquals("aardvarks", message.getBody().readString());
 
          assertEquals(i, message.getProperty(new SimpleString("count")));
 
@@ -545,8 +540,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
       log.info("Sent messages");
@@ -587,7 +581,7 @@
 
          assertNotNull(message);
 
-         assertEquals("aardvarks", message.getBody().getString());
+         assertEquals("aardvarks", message.getBody().readString());
 
          assertEquals(i, message.getProperty(new SimpleString("count")));
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/ReconnectWithBackupTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/ReconnectWithBackupTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/ReconnectWithBackupTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -120,8 +120,7 @@
                                                                 System.currentTimeMillis(),
                                                                 (byte)1);
             message.putIntProperty(new SimpleString("count"), i);
-            message.getBody().putString("aardvarks");
-            message.getBody().flip();
+            message.getBody().writeString("aardvarks");
             producer.send(message);
          }
          ClientConsumer consumer = session.createConsumer(ADDRESS);
@@ -138,7 +137,7 @@
 
             assertNotNull(message);
 
-            assertEquals("aardvarks", message.getBody().getString());
+            assertEquals("aardvarks", message.getBody().readString());
 
             assertEquals(i, message.getProperty(new SimpleString("count")));
 
@@ -193,8 +192,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
       ClientConsumer consumer = session.createConsumer(ADDRESS);
@@ -211,7 +209,7 @@
 
          assertNotNull(message);
 
-         assertEquals("aardvarks", message.getBody().getString());
+         assertEquals("aardvarks", message.getBody().readString());
 
          assertEquals(i, message.getProperty(new SimpleString("count")));
 
@@ -234,8 +232,7 @@
          {
             message = session.createClientMessage(JBossTextMessage.TYPE, false, 0, System.currentTimeMillis(), (byte)1);
             message.putIntProperty(new SimpleString("count"), i);
-            message.getBody().putString("aardvarks");
-            message.getBody().flip();
+            message.getBody().writeString("aardvarks");
             producer.send(message);
          }
 
@@ -253,7 +250,7 @@
 
             assertNotNull(message);
 
-            assertEquals("aardvarks", message.getBody().getString());
+            assertEquals("aardvarks", message.getBody().readString());
 
             assertEquals(i, message.getProperty(new SimpleString("count")));
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/SimpleAutomaticFailoverTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/SimpleAutomaticFailoverTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/SimpleAutomaticFailoverTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -106,8 +106,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
 
@@ -123,7 +122,7 @@
 
          // log.info("Got message " + message2);
 
-         assertEquals("aardvarks", message2.getBody().getString());
+         assertEquals("aardvarks", message2.getBody().readString());
          assertEquals(i, message2.getProperty(new SimpleString("count")));
 
          message2.acknowledge();
@@ -160,8 +159,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
 
@@ -178,7 +176,7 @@
       {
          ClientMessage message2 = consumer.receive();
 
-         assertEquals("aardvarks", message2.getBody().getString());
+         assertEquals("aardvarks", message2.getBody().readString());
 
          assertEquals(i, message2.getProperty(new SimpleString("count")));
 
@@ -197,7 +195,7 @@
       {
          ClientMessage message2 = consumer.receive();
 
-         assertEquals("aardvarks", message2.getBody().getString());
+         assertEquals("aardvarks", message2.getBody().readString());
 
          assertEquals(i, message2.getProperty(new SimpleString("count")));
 
@@ -239,8 +237,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
 
@@ -257,7 +254,7 @@
       {
          ClientMessage message2 = consumer.receive();
 
-         assertEquals("aardvarks", message2.getBody().getString());
+         assertEquals("aardvarks", message2.getBody().readString());
 
          assertEquals(i, message2.getProperty(new SimpleString("count")));
 
@@ -279,7 +276,7 @@
       {
          ClientMessage message2 = consumer.receive();
 
-         assertEquals("aardvarks", message2.getBody().getString());
+         assertEquals("aardvarks", message2.getBody().readString());
 
          assertEquals(i, message2.getProperty(new SimpleString("count")));
 
@@ -321,8 +318,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
 
@@ -339,7 +335,7 @@
       {
          ClientMessage message2 = consumer.receive();
 
-         assertEquals("aardvarks", message2.getBody().getString());
+         assertEquals("aardvarks", message2.getBody().readString());
 
          assertEquals(i, message2.getProperty(new SimpleString("count")));
 
@@ -390,8 +386,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
 
@@ -408,7 +403,7 @@
       {
          ClientMessage message2 = consumer.receive();
 
-         assertEquals("aardvarks", message2.getBody().getString());
+         assertEquals("aardvarks", message2.getBody().readString());
 
          assertEquals(i, message2.getProperty(new SimpleString("count")));
 
@@ -482,8 +477,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
 
@@ -500,7 +494,7 @@
          {
             ClientMessage message2 = cons.receive();
 
-            assertEquals("aardvarks", message2.getBody().getString());
+            assertEquals("aardvarks", message2.getBody().readString());
 
             assertEquals(j, message2.getProperty(new SimpleString("count")));
 
@@ -631,8 +625,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
 
@@ -651,7 +644,7 @@
       {
          ClientMessage message2 = consumer.receive();
 
-         assertEquals("aardvarks", message2.getBody().getString());
+         assertEquals("aardvarks", message2.getBody().readString());
 
          assertEquals(i, message2.getProperty(new SimpleString("count")));
 
@@ -741,8 +734,7 @@
                                                                    System.currentTimeMillis(),
                                                                    (byte)1);
                message.putIntProperty(new SimpleString("count"), k);
-               message.getBody().putString("aardvarks");
-               message.getBody().flip();
+               message.getBody().writeString("aardvarks");
                producer.send(message);
             }
 
@@ -754,7 +746,7 @@
             {
                ClientMessage message2 = consumer.receive();
 
-               assertEquals("aardvarks", message2.getBody().getString());
+               assertEquals("aardvarks", message2.getBody().readString());
 
                assertEquals(k, message2.getProperty(new SimpleString("count")));
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/SimpleManualFailoverTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/SimpleManualFailoverTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/SimpleManualFailoverTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -97,8 +97,7 @@
                                                              System.currentTimeMillis(),
                                                              (byte)1);
          message.putIntProperty(new SimpleString("count"), i);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
 
@@ -110,7 +109,7 @@
       {
          ClientMessage message2 = consumer.receive();
 
-         assertEquals("aardvarks", message2.getBody().getString());
+         assertEquals("aardvarks", message2.getBody().readString());
 
          assertEquals(i, message2.getProperty(new SimpleString("count")));
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/SplitBrainTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/SplitBrainTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/SplitBrainTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -112,8 +112,7 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), sendCount++);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
       
@@ -143,7 +142,7 @@
 
          assertNotNull(message);
 
-         assertEquals("aardvarks", message.getBody().getString());
+         assertEquals("aardvarks", message.getBody().readString());
          
          int count = (Integer)message.getProperty(new SimpleString("count"));
          
@@ -178,8 +177,7 @@
                                                               System.currentTimeMillis(),
                                                               (byte)1);
          message.putIntProperty(new SimpleString("count"), i + numMessages);
-         message.getBody().putString("aardvarks");
-         message.getBody().flip();
+         message.getBody().writeString("aardvarks");
          producer.send(message);
       }
       
@@ -191,7 +189,7 @@
          
          assertNotNull(message);
 
-         assertEquals("aardvarks", message.getBody().getString());
+         assertEquals("aardvarks", message.getBody().readString());
          
          int count = (Integer)message.getProperty(new SimpleString("count"));
          

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/consumer/ConsumerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/consumer/ConsumerTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/consumer/ConsumerTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -103,7 +103,7 @@
       {
          ClientMessage message2 = consumer.receive(1000);
 
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
       }
 
       consumer.close();
@@ -114,7 +114,7 @@
       {
          ClientMessage message2 = consumer.receive(1000);
 
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
       }
 
       consumer.close();
@@ -149,7 +149,7 @@
       {
          ClientMessage message2 = consumer.receive(1000);
 
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
       }
 
       consumer.close();
@@ -160,7 +160,7 @@
       {
          ClientMessage message2 = consumer.receive(1000);
 
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
       }
 
       consumer.close();
@@ -198,7 +198,7 @@
       {
          ClientMessage message2 = consumer.receive(1000);
 
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
       }
 
       session.close();
@@ -231,11 +231,11 @@
       for (int i = 0; i < numMessages; i++)
       {
          ClientMessage message2 = consumer.receive(1000);
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
          message2 = consumer2.receive(1000);
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
          message2 = consumer3.receive(1000);
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
       }
 
       session.close();
@@ -269,17 +269,17 @@
       for (int i = 0; i < 50; i++)
       {
          ClientMessage message2 = consumer.receive(1000);
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
       }
       for (int i = 50; i < numMessages; i++)
       {
          ClientMessage message2 = consumer2.receive(1000);
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
       }
       for (int i = 0; i < numMessages; i++)
       {
          ClientMessage message2 = consumer3.receive(1000);
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
       }
 
       session.close();
@@ -321,7 +321,7 @@
       {
          ClientMessage message2 = consumer.receive(1000);
 
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
       }
       // assert that all the messages are there and none have been acked
       assertEquals(0,
@@ -358,7 +358,7 @@
 
          message2.acknowledge();
 
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
       }
       // assert that all the messages are there and none have been acked
       assertEquals(0,
@@ -454,7 +454,7 @@
       {
          ClientMessage message2 = consumer.receive(1000);
 
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
       }
       // assert that all the messages are there and none have been acked
       assertEquals(0,
@@ -490,7 +490,7 @@
       {
          ClientMessage message2 = consumer.receive(1000);
 
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
       }
       // assert that all the messages are there and none have been acked
       assertEquals(0,
@@ -526,7 +526,7 @@
       {
          ClientMessage message2 = consumer.receive(1000);
 
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
          if (i < 50)
          {
             message2.acknowledge();
@@ -566,7 +566,7 @@
       {
          ClientMessage message2 = consumer.receive(1000);
 
-         assertEquals("m" + i, message2.getBody().getString());
+         assertEquals("m" + i, message2.getBody().readString());
          if (i < 50)
          {
             message2.acknowledge();
@@ -593,8 +593,7 @@
                                                           0,
                                                           System.currentTimeMillis(),
                                                           (byte)1);
-      message.getBody().putString(msg);
-      message.getBody().flip();
+      message.getBody().writeString(msg);
       return message;
    }
 }

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/http/CoreClientOverHttpTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/http/CoreClientOverHttpTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/http/CoreClientOverHttpTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -73,8 +73,7 @@
       {
          ClientMessage message = session.createClientMessage(JBossTextMessage.TYPE, false, 0,
                System.currentTimeMillis(), (byte) 1);
-         message.getBody().putString("CoreClientOverHttpTest");
-         message.getBody().flip();
+         message.getBody().writeString("CoreClientOverHttpTest");
          producer.send(message);
       }
 
@@ -86,7 +85,7 @@
       {
          ClientMessage message2 = consumer.receive();
 
-         assertEquals("CoreClientOverHttpTest", message2.getBody().getString());
+         assertEquals("CoreClientOverHttpTest", message2.getBody().readString());
 
          message2.acknowledge();
       }

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/http/NettyHttpTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/http/NettyHttpTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/http/NettyHttpTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -69,14 +69,12 @@
       for (int i = 0; i < numPackets; i++)
       {
          MessagingBuffer buff = conn.createBuffer(8);
-         buff.putInt(4);
-         buff.putInt(i);
-         buff.flip();
+         buff.writeInt(4);
+         buff.writeInt(i);
          conn.write(buff);
          buff = conn.createBuffer(8);
-         buff.putInt(4);
-         buff.putInt(i);
-         buff.flip();
+         buff.writeInt(4);
+         buff.writeInt(i);
          acceptorListener.connection.write(buff);
       }
       acceptorLatch.await(10, TimeUnit.SECONDS);
@@ -121,17 +119,15 @@
       for (int i = 0; i < numPackets; i++)
       {
          MessagingBuffer buff = conn.createBuffer(8);
-         buff.putInt(4);
-         buff.putInt(i);
-         buff.flip();
+         buff.writeInt(4);
+         buff.writeInt(i);
          conn.write(buff);
       }
       for (int i = 0; i < numPackets; i++)
       {
          MessagingBuffer buff = conn.createBuffer(8);
-         buff.putInt(4);
-         buff.putInt(i);
-         buff.flip();
+         buff.writeInt(4);
+         buff.writeInt(i);
          acceptorListener.connection.write(buff);
       }
       acceptorLatch.await(10, TimeUnit.SECONDS);
@@ -176,18 +172,16 @@
       for (int i = 0; i < numPackets; i++)
       {
          MessagingBuffer buff = conn.createBuffer(8);
-         buff.putInt(4);
-         buff.putInt(i);
-         buff.flip();
+         buff.writeInt(4);
+         buff.writeInt(i);
          acceptorListener.connection.write(buff);
       }
 
       for (int i = 0; i < numPackets; i++)
       {
          MessagingBuffer buff = conn.createBuffer(8);
-         buff.putInt(4);
-         buff.putInt(i);
-         buff.flip();
+         buff.writeInt(4);
+         buff.writeInt(i);
          conn.write(buff);
       }
       acceptorLatch.await(10, TimeUnit.SECONDS);
@@ -232,17 +226,15 @@
       for (int i = 0; i < numPackets; i++)
       {
          MessagingBuffer buff = conn.createBuffer(8);
-         buff.putInt(4);
-         buff.putInt(i);
-         buff.flip();
+         buff.writeInt(4);
+         buff.writeInt(i);
          acceptorListener.connection.write(buff);
       }
 
 
       MessagingBuffer buff = conn.createBuffer(8);
-      buff.putInt(4);
-      buff.putInt(0);
-      buff.flip();
+      buff.writeInt(4);
+      buff.writeInt(0);
       conn.write(buff);
 
       acceptorLatch.await(10, TimeUnit.SECONDS);
@@ -288,9 +280,8 @@
       for (int i = 0; i < numPackets; i++)
       {
          MessagingBuffer buff = conn.createBuffer(8);
-         buff.putInt(4);
-         buff.putInt(i);
-         buff.flip();
+         buff.writeInt(4);
+         buff.writeInt(i);
          acceptorListener.connection.write(buff);
       }
 
@@ -338,9 +329,8 @@
       for (int i = 0; i < numPackets; i++)
       {
          MessagingBuffer buff = conn.createBuffer(8);
-         buff.putInt(4);
-         buff.putInt(i);
-         buff.flip();
+         buff.writeInt(4);
+         buff.writeInt(i);
          conn.write(buff);
       }
       acceptorLatch.await(100, TimeUnit.SECONDS);
@@ -388,7 +378,7 @@
 
       public void bufferReceived(Object connectionID, MessagingBuffer buffer)
       {
-         int i = buffer.getInt();
+         int i = buffer.readInt();
          messages.add(i);
          messagesReceieved++;
          latch.countDown();
@@ -414,7 +404,7 @@
 
       public void bufferReceived(Object connectionID, MessagingBuffer buffer)
       {
-         int i = buffer.getInt();
+         int i = buffer.readInt();
          messages.add(i);
          messagesReceieved++;
          latch.countDown();

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/jms/management/JMSServerControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/jms/management/JMSServerControlTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/jms/management/JMSServerControlTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -44,8 +44,6 @@
 import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
 import org.jboss.messaging.core.server.Messaging;
 import org.jboss.messaging.core.server.MessagingService;
-import org.jboss.messaging.integration.transports.mina.MinaAcceptorFactory;
-import org.jboss.messaging.integration.transports.mina.MinaConnectorFactory;
 import org.jboss.messaging.integration.transports.netty.NettyAcceptorFactory;
 import org.jboss.messaging.integration.transports.netty.NettyConnectorFactory;
 import org.jboss.messaging.jms.server.impl.JMSServerManagerImpl;
@@ -103,11 +101,6 @@
       doListClientConnections(NettyAcceptorFactory.class.getName(), NettyConnectorFactory.class.getName());
    }
 
-   public void testListClientConnectionsForMina() throws Exception
-   {
-      doListClientConnections(MinaAcceptorFactory.class.getName(), MinaConnectorFactory.class.getName());
-   }
-
    public void testCloseConnectionsForAddressForInVM() throws Exception
    {
       doCloseConnectionsForAddress(InVMAcceptorFactory.class.getName(), InVMConnectorFactory.class.getName());
@@ -118,11 +111,6 @@
       doCloseConnectionsForAddress(NettyAcceptorFactory.class.getName(), NettyConnectorFactory.class.getName());
    }
 
-   public void testCloseConnectionsForAddressForMina() throws Exception
-   {
-      doCloseConnectionsForAddress(MinaAcceptorFactory.class.getName(), MinaConnectorFactory.class.getName());
-   }
-
    public void testCloseConnectionsForUnknownAddressForInVM() throws Exception
    {
       doCloseConnectionsForUnknownAddress(InVMAcceptorFactory.class.getName(), InVMConnectorFactory.class.getName());
@@ -133,11 +121,6 @@
       doCloseConnectionsForUnknownAddress(NettyAcceptorFactory.class.getName(), NettyConnectorFactory.class.getName());
    }
 
-   public void testCloseConnectionsForUnknownAddressForMina() throws Exception
-   {
-      doCloseConnectionsForUnknownAddress(MinaAcceptorFactory.class.getName(), MinaConnectorFactory.class.getName());
-   }
-
    public void testListSessionsForInVM() throws Exception
    {
       doListSessions(InVMAcceptorFactory.class.getName(), InVMConnectorFactory.class.getName());
@@ -148,11 +131,6 @@
       doListSessions(NettyAcceptorFactory.class.getName(), NettyConnectorFactory.class.getName());
    }
 
-   public void testListSessionsForMina() throws Exception
-   {
-      doListSessions(MinaAcceptorFactory.class.getName(), MinaConnectorFactory.class.getName());
-   }
-
    public void testListConnectionIDsForInVM() throws Exception
    {
       doListConnectionIDs(InVMAcceptorFactory.class.getName(), InVMConnectorFactory.class.getName());
@@ -163,11 +141,6 @@
       doListConnectionIDs(NettyAcceptorFactory.class.getName(), NettyConnectorFactory.class.getName());
    }
 
-   public void testListConnectionIDsForMina() throws Exception
-   {
-      doListConnectionIDs(MinaAcceptorFactory.class.getName(), MinaConnectorFactory.class.getName());
-   }
-
    public void testCreateConnectionFactoryWithDiscoveryGroup() throws Exception
    {
       String cfJNDIBinding = randomString();

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/ManagementServiceImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/ManagementServiceImplTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/ManagementServiceImplTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -43,13 +43,14 @@
 import javax.management.MBeanServerFactory;
 import javax.management.ObjectName;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
+import org.jboss.messaging.core.buffers.HeapChannelBuffer;
 import org.jboss.messaging.core.client.management.impl.ManagementHelper;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.management.AddressControlMBean;
 import org.jboss.messaging.core.management.ManagementService;
 import org.jboss.messaging.core.management.ObjectNames;
 import org.jboss.messaging.core.management.impl.ManagementServiceImpl;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.security.Role;
 import org.jboss.messaging.core.server.ServerMessage;
@@ -89,7 +90,7 @@
 
       // invoke attribute and operation on the server
       ServerMessage message = new ServerMessageImpl();
-      MessagingBuffer body = new ByteBufferWrapper(ByteBuffer.allocate(2048));
+      MessagingBuffer body = ChannelBuffers.buffer(2048);
       message.setBody(body);
       ManagementHelper.putAttributes(message, ObjectNames.getAddressObjectName(address), "Address");
 
@@ -121,7 +122,7 @@
 
       // invoke attribute and operation on the server
       ServerMessage message = new ServerMessageImpl();
-      MessagingBuffer body = new ByteBufferWrapper(ByteBuffer.allocate(2048));
+      MessagingBuffer body = ChannelBuffers.buffer(2048);
       message.setBody(body);
       ManagementHelper.putOperationInvocation(message,
                                               on,
@@ -162,7 +163,7 @@
 
       // invoke attribute and operation on the server
       ServerMessage message = new ServerMessageImpl();
-      MessagingBuffer body = new ByteBufferWrapper(ByteBuffer.allocate(2048));
+      MessagingBuffer body = ChannelBuffers.buffer(2048);
       message.setBody(body);
       ManagementHelper.putOperationInvocation(message,
                                               on,

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/paging/PageCrashTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/paging/PageCrashTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/paging/PageCrashTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -25,7 +25,6 @@
 import java.io.File;
 import java.lang.management.ManagementFactory;
 import java.lang.reflect.Field;
-import java.nio.ByteBuffer;
 import java.util.HashMap;
 import java.util.List;
 import java.util.concurrent.Executor;
@@ -47,10 +46,8 @@
 import org.jboss.messaging.core.paging.impl.PagingStoreImpl;
 import org.jboss.messaging.core.persistence.StorageManager;
 import org.jboss.messaging.core.persistence.impl.journal.JournalStorageManager;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.server.RemotingService;
 import org.jboss.messaging.core.remoting.server.impl.RemotingServiceImpl;
-import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.security.JBMSecurityManager;
 import org.jboss.messaging.core.security.impl.JBMSecurityManagerImpl;
 import org.jboss.messaging.core.server.MessagingServer;
@@ -169,14 +166,10 @@
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
-         ByteBuffer ioBuffer = ByteBuffer.allocate(1024);
-
          ClientMessage message = null;
 
-         MessagingBuffer bodyLocal = new ByteBufferWrapper(ioBuffer);
-
          message = session.createClientMessage(true);
-         message.setBody(bodyLocal);
+         message.getBody().writeBytes(new byte[1024]);
 
          PagingStore store = service.getServer().getPostOffice().getPagingManager().getPageStore(ADDRESS);
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingManagerIntegrationTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingManagerIntegrationTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingManagerIntegrationTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -26,6 +26,7 @@
 import java.nio.ByteBuffer;
 import java.util.List;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.paging.Page;
 import org.jboss.messaging.core.paging.PagedMessage;
 import org.jboss.messaging.core.paging.impl.PagedMessageImpl;
@@ -33,12 +34,11 @@
 import org.jboss.messaging.core.paging.impl.PagingStoreFactoryNIO;
 import org.jboss.messaging.core.paging.impl.TestSupportPageStore;
 import org.jboss.messaging.core.persistence.impl.nullpm.NullStorageManager;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.server.ServerMessage;
 import org.jboss.messaging.core.server.impl.ServerMessageImpl;
 import org.jboss.messaging.core.settings.HierarchicalRepository;
+import org.jboss.messaging.core.settings.impl.AddressSettings;
 import org.jboss.messaging.core.settings.impl.HierarchicalObjectRepository;
-import org.jboss.messaging.core.settings.impl.AddressSettings;
 import org.jboss.messaging.tests.util.RandomUtil;
 import org.jboss.messaging.tests.util.UnitTestCase;
 import org.jboss.messaging.utils.SimpleString;
@@ -124,7 +124,7 @@
                                                 0,
                                                 System.currentTimeMillis(),
                                                 (byte)0,
-                                                new ByteBufferWrapper(buffer));
+                                                ChannelBuffers.wrappedBuffer(new byte[1024]));
 
       msg.setMessageID(messageId);
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingServiceIntegrationTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingServiceIntegrationTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingServiceIntegrationTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -22,11 +22,11 @@
 
 package org.jboss.messaging.tests.integration.paging;
 
-import java.nio.ByteBuffer;
 import java.util.HashMap;
 
 import junit.framework.AssertionFailedError;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientConsumer;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientProducer;
@@ -35,7 +35,6 @@
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.impl.MessageImpl;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.server.MessagingService;
 import org.jboss.messaging.core.server.Queue;
@@ -58,6 +57,8 @@
 
    // Constants -----------------------------------------------------
    private static final Logger log = Logger.getLogger(PagingServiceIntegrationTest.class);
+   
+   private static final int RECEIVE_TIMEOUT = 30000;
 
    // Attributes ----------------------------------------------------
 
@@ -100,29 +101,26 @@
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
-         ByteBuffer ioBuffer = ByteBuffer.allocate(DataConstants.SIZE_INT * numberOfIntegers);
-
          ClientMessage message = null;
 
-         MessagingBuffer body = null;
+         byte[] body = null;
 
          for (int i = 0; i < numberOfMessages; i++)
          {
-            MessagingBuffer bodyLocal = new ByteBufferWrapper(ioBuffer);
+            message = session.createClientMessage(true);
 
+            MessagingBuffer bodyLocal = message.getBody();
+
             for (int j = 1; j <= numberOfIntegers; j++)
             {
-               bodyLocal.putInt(j);
+               bodyLocal.writeInt(j);
             }
-            bodyLocal.flip();
-
-            if (i == 0)
+            
+            if (body == null)
             {
-               body = bodyLocal;
+               body = bodyLocal.array();
             }
 
-            message = session.createClientMessage(true);
-            message.setBody(bodyLocal);
             message.putIntProperty(new SimpleString("id"), i);
 
             producer.send(message);
@@ -147,7 +145,7 @@
 
          for (int i = 0; i < numberOfMessages; i++)
          {
-            ClientMessage message2 = consumer.receive(10000);
+            ClientMessage message2 = consumer.receive(RECEIVE_TIMEOUT);
 
             assertNotNull(message2);
 
@@ -159,11 +157,11 @@
 
             try
             {
-               assertEqualsByteArrays(body.limit(), body.array(), message2.getBody().array());
+               assertEqualsByteArrays(body.length, body, message2.getBody().array());
             }
             catch (AssertionFailedError e)
             {
-               log.info("Expected buffer:" + dumbBytesHex(body.array(), 40));
+               log.info("Expected buffer:" + dumbBytesHex(body, 40));
                log.info("Arriving buffer:" + dumbBytesHex(message2.getBody().array(), 40));
                throw e;
             }
@@ -226,8 +224,7 @@
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
-         ByteBuffer ioBuffer = ByteBuffer.allocate(DataConstants.SIZE_INT * numberOfIntegers);
-         MessagingBuffer bodyLocal = new ByteBufferWrapper(ioBuffer);
+         MessagingBuffer bodyLocal = ChannelBuffers.buffer(DataConstants.SIZE_INT * numberOfIntegers);
 
          ClientMessage message = null;
 
@@ -267,7 +264,7 @@
                ClientConsumer consumer = session.createConsumer(ADDRESS);
                for (int j = 0; j < numberOfMessages; j++)
                {
-                  ClientMessage msg = consumer.receive(1000);
+                  ClientMessage msg = consumer.receive(RECEIVE_TIMEOUT);
                   msg.acknowledge();
                   assertNotNull(msg);
                }
@@ -293,7 +290,7 @@
 
          for (int i = 0; i < 10; i++)
          {
-            message = consumer.receive(10000);
+            message = consumer.receive(RECEIVE_TIMEOUT);
 
             assertNotNull(message);
 
@@ -368,29 +365,29 @@
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
-         ByteBuffer ioBuffer = ByteBuffer.allocate(DataConstants.SIZE_INT * numberOfIntegers);
-
          ClientMessage message = null;
 
-         MessagingBuffer body = null;
+         byte[] body = null;
 
          long scheduledTime = System.currentTimeMillis() + 5000;
 
          for (int i = 0; i < numberOfMessages; i++)
          {
-            MessagingBuffer bodyLocal = new ByteBufferWrapper(ioBuffer);
+            message = session.createClientMessage(true);
 
+            MessagingBuffer bodyLocal = message.getBody();
+
             for (int j = 1; j <= numberOfIntegers; j++)
             {
-               bodyLocal.putInt(j);
+               bodyLocal.writeInt(j);
             }
-            bodyLocal.flip();
 
-            if (i == 0)
+            
+            if (body == null)
             {
-               body = bodyLocal;
+               body = bodyLocal.array();
             }
-            message = session.createClientMessage(true);
+            
             message.setBody(bodyLocal);
             message.putIntProperty(new SimpleString("id"), i);
 
@@ -423,7 +420,7 @@
 
          for (int i = 0; i < numberOfMessages; i++)
          {
-            ClientMessage message2 = consumer.receive(10000);
+            ClientMessage message2 = consumer.receive(RECEIVE_TIMEOUT);
 
             assertNotNull(message2);
 
@@ -439,11 +436,11 @@
 
             try
             {
-               assertEqualsByteArrays(body.limit(), body.array(), message2.getBody().array());
+               assertEqualsByteArrays(body.length, body, message2.getBody().array());
             }
             catch (AssertionFailedError e)
             {
-               log.info("Expected buffer:" + dumbBytesHex(body.array(), 40));
+               log.info("Expected buffer:" + dumbBytesHex(body, 40));
                log.info("Arriving buffer:" + dumbBytesHex(message2.getBody().array(), 40));
                throw e;
             }
@@ -502,22 +499,20 @@
 
          long initialSize = messagingService.getServer().getPostOffice().getPagingManager().getGlobalSize();
 
-         ByteBuffer ioBuffer = ByteBuffer.allocate(DataConstants.SIZE_INT * numberOfIntegers);
-
          ClientMessage message = null;
 
          for (int i = 0; i < numberOfMessages; i++)
          {
-            MessagingBuffer bodyLocal = new ByteBufferWrapper(ioBuffer);
+            message = session.createClientMessage(true);
 
+            MessagingBuffer bodyLocal = message.getBody();
+
             for (int j = 1; j <= numberOfIntegers; j++)
             {
-               bodyLocal.putInt(j);
+               bodyLocal.writeInt(j);
             }
-            bodyLocal.flip();
 
-            message = session.createClientMessage(true);
-            message.setBody(bodyLocal);
+
             message.putIntProperty(new SimpleString("id"), i);
 
             producer.send(message);
@@ -529,7 +524,7 @@
 
          session.start();
 
-         assertNull(consumer.receive(500));
+         assertNull(consumer.receive(100));
 
          session.close();
 
@@ -581,22 +576,19 @@
 
          long initialSize = messagingService.getServer().getPostOffice().getPagingManager().getGlobalSize();
 
-         ByteBuffer ioBuffer = ByteBuffer.allocate(DataConstants.SIZE_INT * numberOfIntegers);
-
          ClientMessage message = null;
 
          for (int i = 0; i < numberOfMessages; i++)
          {
-            MessagingBuffer bodyLocal = new ByteBufferWrapper(ioBuffer);
+            message = session.createClientMessage(true);
+            
+            MessagingBuffer bodyLocal = message.getBody();
 
             for (int j = 1; j <= numberOfIntegers; j++)
             {
-               bodyLocal.putInt(j);
+               bodyLocal.writeInt(j);
             }
-            bodyLocal.flip();
 
-            message = session.createClientMessage(true);
-            message.setBody(bodyLocal);
             message.putIntProperty(new SimpleString("id"), i);
 
             producer.send(message);
@@ -683,7 +675,6 @@
 
       messagingService.start();
 
-      final int sizeOfMessage = 1024;
       final int numberOfMessages = 1000;
 
       try
@@ -700,13 +691,11 @@
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
-         ByteBuffer ioBuffer = ByteBuffer.allocate(sizeOfMessage);
-
          ClientMessage message = null;
 
          for (int i = 0; i < numberOfMessages; i++)
          {
-            MessagingBuffer bodyLocal = new ByteBufferWrapper(ioBuffer);
+            MessagingBuffer bodyLocal = ChannelBuffers.wrappedBuffer(new byte[1024]);
 
             message = session.createClientMessage(true);
             message.setBody(bodyLocal);
@@ -722,7 +711,7 @@
 
          for (int i = 0; i < 9; i++)
          {
-            ClientMessage message2 = consumer.receive(10000);
+            ClientMessage message2 = consumer.receive(RECEIVE_TIMEOUT);
 
             assertNotNull(message2);
 
@@ -740,7 +729,7 @@
 
          for (int i = 0; i < numberOfMessages; i++)
          {
-            MessagingBuffer bodyLocal = new ByteBufferWrapper(ioBuffer);
+            MessagingBuffer bodyLocal = ChannelBuffers.wrappedBuffer(new byte[1024]);
 
             message = session.createClientMessage(true);
             message.setBody(bodyLocal);
@@ -750,7 +739,7 @@
 
          for (int i = 0; i < 9; i++)
          {
-            ClientMessage message2 = consumer.receive(10000);
+            ClientMessage message2 = consumer.receive(RECEIVE_TIMEOUT);
 
             assertNotNull(message2);
 
@@ -767,7 +756,7 @@
 
          for (int i = 0; i < numberOfMessages; i++)
          {
-            MessagingBuffer bodyLocal = new ByteBufferWrapper(ioBuffer);
+            MessagingBuffer bodyLocal = ChannelBuffers.wrappedBuffer(new byte[1024]);
 
             message = session.createClientMessage(true);
             message.setBody(bodyLocal);
@@ -783,7 +772,7 @@
 
          for (int i = 0; i < 9; i++)
          {
-            ClientMessage message2 = consumer.receive(10000);
+            ClientMessage message2 = consumer.receive(RECEIVE_TIMEOUT);
 
             assertNotNull(message2);
 
@@ -821,8 +810,6 @@
    {
       Configuration config = createDefaultConfig();
 
-      final int MAX_SIZE = 90 * 1024; // this must be lower than minlargeMessageSize on the SessionFactory
-
       final int NUMBER_OF_BINDINGS = 100;
 
       int NUMBER_OF_MESSAGES = 2;
@@ -851,11 +838,9 @@
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
-         ByteBuffer ioBuffer = ByteBuffer.allocate(MAX_SIZE - 1024); // A single message with almost maxPageSize
-
          ClientMessage message = null;
 
-         MessagingBuffer bodyLocal = new ByteBufferWrapper(ioBuffer);
+         MessagingBuffer bodyLocal = ChannelBuffers.wrappedBuffer(new byte[1024]);
 
          message = session.createClientMessage(true);
          message.setBody(bodyLocal);
@@ -892,7 +877,7 @@
             {
                ClientConsumer consumer = session.createConsumer(new SimpleString("someQueue" + i));
 
-               ClientMessage message2 = consumer.receive(1000);
+               ClientMessage message2 = consumer.receive(RECEIVE_TIMEOUT);
 
                assertNotNull(message2);
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/queue/DeadLetterAddressTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/queue/DeadLetterAddressTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/queue/DeadLetterAddressTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -74,7 +74,7 @@
       ClientMessage m = clientConsumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "heyho!");
+      assertEquals(m.getBody().readString(), "heyho!");
       //force a cancel
       clientSession.end(xid, XAResource.TMSUCCESS);
       clientSession.rollback(xid);
@@ -84,7 +84,7 @@
       clientConsumer = clientSession.createConsumer(dlq);
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "heyho!");
+      assertEquals(m.getBody().readString(), "heyho!");
    }
 
    public void testBasicSendToMultipleQueues() throws Exception
@@ -109,7 +109,7 @@
       ClientMessage m = clientConsumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "heyho!");
+      assertEquals(m.getBody().readString(), "heyho!");
       //force a cancel
       clientSession.end(xid, XAResource.TMSUCCESS);
       clientSession.rollback(xid);
@@ -121,13 +121,13 @@
       m = clientConsumer.receive(500);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "heyho!");
+      assertEquals(m.getBody().readString(), "heyho!");
       clientConsumer.close();
       clientConsumer = clientSession.createConsumer(dlq2);
       m = clientConsumer.receive(500);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "heyho!");
+      assertEquals(m.getBody().readString(), "heyho!");
       clientConsumer.close();
    }
 
@@ -147,7 +147,7 @@
       ClientMessage m = clientConsumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "heyho!");
+      assertEquals(m.getBody().readString(), "heyho!");
       //force a cancel
       clientSession.end(xid, XAResource.TMSUCCESS);
       clientSession.rollback(xid);
@@ -197,7 +197,7 @@
             {
                origIds.put("Message:" + j, tm.getMessageID());
             }
-            assertEquals("Message:" + j, tm.getBody().getString());
+            assertEquals("Message:" + j, tm.getBody().readString());
          }
          clientSession.end(xid, XAResource.TMSUCCESS);
          clientSession.rollback(xid);
@@ -216,7 +216,7 @@
 
          assertNotNull(tm);
 
-         String text = tm.getBody().getString();
+         String text = tm.getBody().readString();
          assertEquals("Message:" + i, text);
 
          // Check the headers

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/queue/ExpiryAddressTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/queue/ExpiryAddressTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/queue/ExpiryAddressTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -77,7 +77,7 @@
       clientConsumer = clientSession.createConsumer(eq);
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "heyho!");
+      assertEquals(m.getBody().readString(), "heyho!");
       m.acknowledge();
       
       // PageSize should be the same as when it started
@@ -125,7 +125,7 @@
       log.info("acking");
       m.acknowledge();
       
-      assertEquals(m.getBody().getString(), "heyho!");
+      assertEquals(m.getBody().readString(), "heyho!");
       
       clientConsumer.close();
       
@@ -138,7 +138,7 @@
       log.info("acking");
       m.acknowledge();
       
-      assertEquals(m.getBody().getString(), "heyho!");
+      assertEquals(m.getBody().readString(), "heyho!");
       
       clientConsumer.close();
       
@@ -205,7 +205,7 @@
 
          assertNotNull(tm);
 
-         String text = tm.getBody().getString();
+         String text = tm.getBody().readString();
          assertEquals("Message:" + i, text);
 
          // Check the headers

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/queue/ExpiryRunnerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/queue/ExpiryRunnerTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/queue/ExpiryRunnerTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -170,7 +170,7 @@
          ClientMessage cm = consumer.receive(500);
          assertNotNull("message not received " + i, cm);
          cm.acknowledge();
-         assertEquals("m" + i, cm.getBody().getString());
+         assertEquals("m" + i, cm.getBody().readString());
       }
       consumer.close();
       Thread.sleep(2100);
@@ -254,7 +254,7 @@
          {
             break;
          }
-         String text = cm.getBody().getString();
+         String text = cm.getBody().readString();
          cm.acknowledge();
          assertFalse(dummyMessageHandler.payloads.contains(text));
          dummyMessageHandler.payloads.add(text);
@@ -369,7 +369,7 @@
                   break;
                }
                message.acknowledge();
-               payloads.add(message.getBody().getString());
+               payloads.add(message.getBody().readString());
 
                Thread.sleep(110);
             }

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/queue/MessageGroupingTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/queue/MessageGroupingTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/queue/MessageGroupingTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -116,14 +116,14 @@
       int i = 0;
       for (ClientMessage message : dummyMessageHandler.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       assertEquals(dummyMessageHandler2.list.size(), 50);
       i = 1;
       for (ClientMessage message : dummyMessageHandler2.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       consumer.close();
@@ -163,14 +163,14 @@
       int i = 0;
       for (ClientMessage message : dummyMessageHandler.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       assertEquals(dummyMessageHandler2.list.size(), 50);
       i = 1;
       for (ClientMessage message : dummyMessageHandler2.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       consumer.close();
@@ -204,11 +204,11 @@
       {
          ClientMessage cm = consumer.receive(500);
          assertNotNull(cm);
-         assertEquals(cm.getBody().getString(), "m" + i);
+         assertEquals(cm.getBody().readString(), "m" + i);
          i++;
          cm = consumer2.receive(500);
          assertNotNull(cm);
-         assertEquals(cm.getBody().getString(), "m" + i);
+         assertEquals(cm.getBody().readString(), "m" + i);
       }
 
       consumer2.close();
@@ -219,13 +219,13 @@
       {
          ClientMessage cm = consumer.receive(500);
          assertNotNull(cm);
-         assertEquals(cm.getBody().getString(), "m" + i);
+         assertEquals(cm.getBody().readString(), "m" + i);
       }
       for(int i = 1; i < numMessages; i+=2)
       {
          ClientMessage cm = consumer.receive(500);
          assertNotNull(cm);
-         assertEquals(cm.getBody().getString(), "m" + i);
+         assertEquals(cm.getBody().readString(), "m" + i);
       }
       consumer.close();
    }
@@ -259,7 +259,7 @@
       int i = 0;
       for (ClientMessage message : dummyMessageHandler.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 1;
       }
       consumer.close();
@@ -301,14 +301,14 @@
       int i = 0;
       for (ClientMessage message : dummyMessageHandler.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       assertEquals(dummyMessageHandler2.list.size(), 50);
       i = 1;
       for (ClientMessage message : dummyMessageHandler2.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       consumer.close();
@@ -352,14 +352,14 @@
       int i = 0;
       for (ClientMessage message : dummyMessageHandler.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       assertEquals(dummyMessageHandler2.list.size(), 50);
       i = 1;
       for (ClientMessage message : dummyMessageHandler2.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       latch = new CountDownLatch(numMessages);
@@ -371,14 +371,14 @@
       i = 0;
       for (ClientMessage message : dummyMessageHandler.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       assertEquals(dummyMessageHandler2.list.size(), 50);
       i = 1;
       for (ClientMessage message : dummyMessageHandler2.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       consumer = this.clientSession.createConsumer(qName);
@@ -425,14 +425,14 @@
       int i = 0;
       for (ClientMessage message : dummyMessageHandler.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       assertEquals(dummyMessageHandler2.list.size(), 50);
       i = 1;
       for (ClientMessage message : dummyMessageHandler2.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       consumer.close();
@@ -480,14 +480,14 @@
       int i = 0;
       for (ClientMessage message : dummyMessageHandler.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       assertEquals(dummyMessageHandler2.list.size(), 50);
       i = 1;
       for (ClientMessage message : dummyMessageHandler2.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       latch = new CountDownLatch(numMessages);
@@ -503,14 +503,14 @@
       i = 0;
       for (ClientMessage message : dummyMessageHandler.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       assertEquals(dummyMessageHandler2.list.size(), 50);
       i = 1;
       for (ClientMessage message : dummyMessageHandler2.list)
       {
-         assertEquals(message.getBody().getString(), "m" + i);
+         assertEquals(message.getBody().readString(), "m" + i);
          i += 2;
       }
       consumer = this.clientSession.createConsumer(qName);

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/queue/SoloQueueRecoveryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/queue/SoloQueueRecoveryTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/queue/SoloQueueRecoveryTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -87,11 +87,11 @@
       ClientMessage m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
    }
 
    public void testManyMessagesReceivedWithRollback() throws Exception
@@ -124,27 +124,27 @@
       producer.send(m1);
       ClientMessage m = consumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       producer.send(m2);
       m = consumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       producer.send(m3);
       m = consumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       producer.send(m4);
       m = consumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       producer.send(m5);
       m = consumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m5");
+      assertEquals(m.getBody().readString(), "m5");
       producer.send(m6);
       m = consumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
       clientSessionXa.end(xid, XAResource.TMSUCCESS);
       clientSessionXa.prepare(xid);
 
@@ -155,7 +155,7 @@
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
       m = consumer.receive(1000);
       assertNull(m);
    }

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/queue/SoloQueueTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/queue/SoloQueueTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/queue/SoloQueueTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -72,7 +72,7 @@
       ClientMessage m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
    }
 
    public void testMultipleMessages() throws Exception
@@ -97,11 +97,11 @@
       ClientMessage m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
    }
 
    public void testFirstMessageReceivedButAckedAfter() throws Exception
@@ -119,11 +119,11 @@
       assertNotNull(m);
       producer.send(m2);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
    }
 
    public void testFirstMessageReceivedAndCancelled() throws Exception
@@ -145,7 +145,7 @@
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = consumer.receive(1000);
       assertNull(m);
    }
@@ -172,33 +172,33 @@
       producer.send(m1);
       ClientMessage m = consumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       producer.send(m2);
       m = consumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       producer.send(m3);
       m = consumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       producer.send(m4);
       m = consumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       producer.send(m5);
       m = consumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m5");
+      assertEquals(m.getBody().readString(), "m5");
       producer.send(m6);
       m = consumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
       consumer.close();
       consumer = clientSession.createConsumer(qName1);
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
       m = consumer.receive(1000);
       assertNull(m);
    }
@@ -219,7 +219,7 @@
       ClientMessage m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
    }
 
    public void testMultipleMessagesInTx() throws Exception
@@ -244,11 +244,11 @@
       ClientMessage m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       clientSessionTxReceives.commit();
       m = consumer.receive(1000);
       assertNull(m);
@@ -274,30 +274,30 @@
       ClientMessage m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       producer.send(m3);
       producer.send(m4);
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       clientSessionTxReceives.rollback();
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
    }
 
    public void testMultipleMessagesInTxSend() throws Exception
@@ -328,7 +328,7 @@
       ClientMessage m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
    }
 
    public void testMultipleMessagesPersistedCorrectly() throws Exception
@@ -365,7 +365,7 @@
       ClientMessage m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
       assertEquals(0, storageManager.messageIds.size());
    }
 
@@ -404,7 +404,7 @@
       ClientMessage m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
       assertEquals(0, storageManager.messageIds.size());
    }
 
@@ -436,32 +436,32 @@
       ClientMessage m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       producer.send(m2);
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       producer.send(m3);
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       producer.send(m4);
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       producer.send(m5);
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m5");
+      assertEquals(m.getBody().readString(), "m5");
       producer.send(m6);
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
       assertEquals(6, storageManager.ackIds.size());
    }
 
@@ -493,32 +493,32 @@
       ClientMessage m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       producer.send(m2);
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       producer.send(m3);
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       producer.send(m4);
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       producer.send(m5);
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m5");
+      assertEquals(m.getBody().readString(), "m5");
       producer.send(m6);
       m = consumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
       clientSessionTxReceives.commit();
       assertEquals(6, storageManager.ackIds.size());
    }

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/remoting/MinaNetworkAddressTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/remoting/MinaNetworkAddressTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/remoting/MinaNetworkAddressTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -1,74 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.messaging.tests.integration.remoting;
-
-import org.jboss.messaging.integration.transports.mina.MinaAcceptorFactory;
-import org.jboss.messaging.integration.transports.mina.MinaConnectorFactory;
-import org.jboss.messaging.integration.transports.mina.TransportConstants;
-
-/**
- * A NettyNetworkAddressTest
- *
- * @author <a href="jmesnil at redhat.com">Jeff Mesnil</a>
- *
- */
-public class MinaNetworkAddressTest extends NetworkAddressTestBase
-{
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   @Override
-   protected String getAcceptorFactoryClassName()
-   {
-      return MinaAcceptorFactory.class.getName();
-   }
-
-   @Override
-   protected String getConnectorFactoryClassName()
-   {
-      return MinaConnectorFactory.class.getName();
-   }
-
-   @Override
-   protected String getHostPropertyKey()
-   {
-      return TransportConstants.HOST_PROP_NAME;
-   }
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-
-}

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/scheduling/ScheduledMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/scheduling/ScheduledMessageTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/scheduling/ScheduledMessageTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -48,20 +48,20 @@
 public class ScheduledMessageTest extends ServiceTestBase
 {
    private static final Logger log = Logger.getLogger(ScheduledMessageTest.class);
-  
-   private SimpleString atestq = new SimpleString("ascheduledtestq");
 
-   private SimpleString atestq2 = new SimpleString("ascheduledtestq2");
+   private final SimpleString atestq = new SimpleString("ascheduledtestq");
 
+   private final SimpleString atestq2 = new SimpleString("ascheduledtestq2");
+
    private Configuration configuration;
-   
+
    private MessagingService messagingService;
 
+   @Override
    protected void setUp() throws Exception
    {
       super.setUp();
-      
-      super.clearData();
+      clearData();
       configuration = createDefaultConfig();
       configuration.setSecurityEnabled(false);
       configuration.setJournalMinFiles(2);
@@ -70,6 +70,7 @@
       messagingService.start();
    }
 
+   @Override
    protected void tearDown() throws Exception
    {
       if (messagingService != null)
@@ -140,7 +141,7 @@
    public void testPagedMessageDeliveredCorrectly() throws Exception
    {
       // then we create a client as normal
-      ClientSessionFactory sessionFactory = createInVMFactory(); 
+      ClientSessionFactory sessionFactory = createInVMFactory();
       ClientSession session = sessionFactory.createSession(false, true, false);
       session.createQueue(atestq, atestq, null, true, true);
       ClientProducer producer = session.createProducer(atestq);
@@ -158,7 +159,7 @@
 
       ClientMessage message2 = consumer.receive(10250);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m1", message2.getBody().getString());
+      assertEquals("m1", message2.getBody().readString());
 
       message2.acknowledge();
 
@@ -192,8 +193,8 @@
       session.start();
       ClientMessage message3 = consumer.receive(1000);
       ClientMessage message2 = consumer2.receive(1000);
-      assertEquals("m1", message3.getBody().getString());
-      assertEquals("m1", message2.getBody().getString());
+      assertEquals("m1", message3.getBody().readString());
+      assertEquals("m1", message2.getBody().readString());
       long time = System.currentTimeMillis();
       // force redelivery
       consumer.close();
@@ -204,8 +205,8 @@
       message2 = consumer2.receive(1000);
       time += 5000;
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m1", message3.getBody().getString());
-      assertEquals("m1", message2.getBody().getString());
+      assertEquals("m1", message3.getBody().readString());
+      assertEquals("m1", message2.getBody().readString());
       message2.acknowledge();
       message3.acknowledge();
 
@@ -243,8 +244,8 @@
       assertNotNull(message3);
       ClientMessage message2 = consumer2.receive(1000);
       assertNotNull(message2);
-      assertEquals("m1", message3.getBody().getString());
-      assertEquals("m1", message2.getBody().getString());
+      assertEquals("m1", message3.getBody().readString());
+      assertEquals("m1", message2.getBody().readString());
       long time = System.currentTimeMillis();
       // force redelivery
       consumer.close();
@@ -266,8 +267,8 @@
       assertNotNull(message2);
       time += 5000;
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m1", message3.getBody().getString());
-      assertEquals("m1", message2.getBody().getString());
+      assertEquals("m1", message3.getBody().readString());
+      assertEquals("m1", message2.getBody().readString());
       message2.acknowledge();
       message3.acknowledge();
 
@@ -280,10 +281,10 @@
       session.close();
    }
 
-   public void testMessageDeliveredCorrectly(boolean recover) throws Exception
+   public void testMessageDeliveredCorrectly(final boolean recover) throws Exception
    {
 
-       // then we create a client as normal
+      // then we create a client as normal
       ClientSessionFactory sessionFactory = createInVMFactory();
       ClientSession session = sessionFactory.createSession(false, true, false);
       session.createQueue(atestq, atestq, null, true, true);
@@ -293,8 +294,7 @@
                                                           0,
                                                           System.currentTimeMillis(),
                                                           (byte)1);
-      message.getBody().putString("testINVMCoreClient");
-      message.getBody().flip();
+      message.getBody().writeString("testINVMCoreClient");
       message.setDurable(true);
       long time = System.currentTimeMillis();
       time += 10000;
@@ -319,19 +319,19 @@
 
       ClientMessage message2 = consumer.receive(11000);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("testINVMCoreClient", message2.getBody().getString());
+      assertEquals("testINVMCoreClient", message2.getBody().readString());
 
       message2.acknowledge();
-      
+
       // Make sure no more messages
-      consumer.close();   
+      consumer.close();
       consumer = session.createConsumer(atestq);
       assertNull(consumer.receive(1000));
-      
+
       session.close();
    }
 
-   public void testScheduledMessagesDeliveredCorrectly(boolean recover) throws Exception
+   public void testScheduledMessagesDeliveredCorrectly(final boolean recover) throws Exception
    {
 
       ClientSessionFactory sessionFactory = createInVMFactory();
@@ -380,38 +380,38 @@
 
       ClientMessage message = consumer.receive(11000);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m1", message.getBody().getString());
+      assertEquals("m1", message.getBody().readString());
       message.acknowledge();
       time += 1000;
       message = consumer.receive(1250);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m2", message.getBody().getString());
+      assertEquals("m2", message.getBody().readString());
       message.acknowledge();
       time += 1000;
       message = consumer.receive(1250);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m3", message.getBody().getString());
+      assertEquals("m3", message.getBody().readString());
       message.acknowledge();
       time += 1000;
       message = consumer.receive(1250);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m4", message.getBody().getString());
+      assertEquals("m4", message.getBody().readString());
       message.acknowledge();
       time += 1000;
       message = consumer.receive(1250);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m5", message.getBody().getString());
+      assertEquals("m5", message.getBody().readString());
       message.acknowledge();
-      
+
       // Make sure no more messages
       consumer.close();
       consumer = session.createConsumer(atestq);
       assertNull(consumer.receive(1000));
-      
+
       session.close();
    }
 
-   public void testScheduledMessagesDeliveredCorrectlyDifferentOrder(boolean recover) throws Exception
+   public void testScheduledMessagesDeliveredCorrectlyDifferentOrder(final boolean recover) throws Exception
    {
 
       ClientSessionFactory sessionFactory = createInVMFactory();
@@ -461,38 +461,38 @@
 
       ClientMessage message = consumer.receive(10250);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m1", message.getBody().getString());
+      assertEquals("m1", message.getBody().readString());
       message.acknowledge();
       time += 1000;
       message = consumer.receive(1250);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m3", message.getBody().getString());
+      assertEquals("m3", message.getBody().readString());
       message.acknowledge();
       time += 1000;
       message = consumer.receive(1250);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m5", message.getBody().getString());
+      assertEquals("m5", message.getBody().readString());
       message.acknowledge();
       time += 1000;
       message = consumer.receive(1250);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m2", message.getBody().getString());
+      assertEquals("m2", message.getBody().readString());
       message.acknowledge();
       time += 1000;
       message = consumer.receive(1250);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m4", message.getBody().getString());
+      assertEquals("m4", message.getBody().readString());
       message.acknowledge();
-      
+
       // Make sure no more messages
       consumer.close();
       consumer = session.createConsumer(atestq);
       assertNull(consumer.receive(1000));
-      
+
       session.close();
    }
 
-   public void testScheduledAndNormalMessagesDeliveredCorrectly(boolean recover) throws Exception
+   public void testScheduledAndNormalMessagesDeliveredCorrectly(final boolean recover) throws Exception
    {
 
       ClientSessionFactory sessionFactory = createInVMFactory();
@@ -536,40 +536,39 @@
       session.start();
 
       ClientMessage message = consumer.receive(1000);
-      assertEquals("m2", message.getBody().getString());
+      assertEquals("m2", message.getBody().readString());
       message.acknowledge();
       message = consumer.receive(1000);
-      assertEquals("m4", message.getBody().getString());
+      assertEquals("m4", message.getBody().readString());
       message.acknowledge();
       message = consumer.receive(10250);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m1", message.getBody().getString());
+      assertEquals("m1", message.getBody().readString());
       message.acknowledge();
       time += 1000;
       message = consumer.receive(1250);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m3", message.getBody().getString());
+      assertEquals("m3", message.getBody().readString());
       message.acknowledge();
       time += 1000;
       message = consumer.receive(1250);
       assertTrue(System.currentTimeMillis() >= time);
-      assertEquals("m5", message.getBody().getString());
+      assertEquals("m5", message.getBody().readString());
       message.acknowledge();
-      
+
       // Make sure no more messages
       consumer.close();
       consumer = session.createConsumer(atestq);
       assertNull(consumer.receive(1000));
-      
+
       session.close();
    }
 
-   public void testTxMessageDeliveredCorrectly(boolean recover) throws Exception
+   public void testTxMessageDeliveredCorrectly(final boolean recover) throws Exception
    {
       Xid xid = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());
       Xid xid2 = new XidImpl("xa2".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());
 
-      
       ClientSessionFactory sessionFactory = createInVMFactory();
       ClientSession session = sessionFactory.createSession(true, false, false);
       session.createQueue(atestq, atestq, null, true, false);
@@ -580,8 +579,7 @@
                                                           0,
                                                           System.currentTimeMillis(),
                                                           (byte)1);
-      message.getBody().putString("testINVMCoreClient");
-      message.getBody().flip();
+      message.getBody().writeString("testINVMCoreClient");
       message.setDurable(true);
       Calendar cal = Calendar.getInstance();
       cal.roll(Calendar.SECOND, 10);
@@ -610,7 +608,7 @@
       ClientMessage message2 = consumer.receive(10000);
       assertTrue(System.currentTimeMillis() >= cal.getTimeInMillis());
       assertNotNull(message2);
-      assertEquals("testINVMCoreClient", message2.getBody().getString());
+      assertEquals("testINVMCoreClient", message2.getBody().readString());
 
       message2.acknowledge();
       session.end(xid2, XAResource.TMSUCCESS);
@@ -623,15 +621,14 @@
       session.close();
    }
 
-   private ClientMessage createMessage(ClientSession session, String body)
+   private ClientMessage createMessage(final ClientSession session, final String body)
    {
       ClientMessage message = session.createClientMessage(JBossTextMessage.TYPE,
                                                           false,
                                                           0,
                                                           System.currentTimeMillis(),
                                                           (byte)1);
-      message.getBody().putString(body);
-      message.getBody().flip();
+      message.getBody().writeString(body);
       message.setDurable(true);
       return message;
    }

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/security/MinaSecurityClientTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/security/MinaSecurityClientTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/security/MinaSecurityClientTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -1,68 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.messaging.tests.integration.security;
-
-import org.jboss.messaging.integration.transports.mina.MinaAcceptorFactory;
-import org.jboss.messaging.integration.transports.mina.MinaConnectorFactory;
-
-/**
- * A MinaSecurityClientTest
- *
- * @author <a href="jmesnil at redhat.com">Jeff Mesnil</a>
- */
-public class MinaSecurityClientTest extends SecurityManagerClientTestBase
-{
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   // SecurityManagerClientTestBase overrides -----------------------
-
-   @Override
-   protected String getAcceptorFactoryClassName()
-   {
-      return MinaAcceptorFactory.class.getName();
-   }
-
-   @Override
-   protected String getConnectorFactoryClassName()
-   {
-      return MinaConnectorFactory.class.getName();
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-
-}

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/security/SimpleClient.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/security/SimpleClient.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/security/SimpleClient.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -75,7 +75,7 @@
                                                              0,
                                                              System.currentTimeMillis(),
                                                              (byte)1);
-         message.getBody().putString(messageText);
+         message.getBody().writeString(messageText);
          producer.send(message);
 
          session.start();
@@ -86,7 +86,7 @@
             throw new Exception("did not receive the message");
          }
          
-         String text = receivedMsg.getBody().getString();
+         String text = receivedMsg.getBody().readString();
          if (text == null || !text.equals(messageText))
          {
             throw new Exception("received " + text + ", was expecting " + messageText);

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSL.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSL.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSL.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -76,7 +76,7 @@
 
          ClientMessage message = session.createClientMessage(JBossTextMessage.TYPE, false, 0,
                System.currentTimeMillis(), (byte) 1);
-         message.getBody().putString(CoreClientOverSSLTest.MESSAGE_TEXT_FROM_CLIENT);
+         message.getBody().writeString(CoreClientOverSSLTest.MESSAGE_TEXT_FROM_CLIENT);
          producer.send(message);
 
          session.close();

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/wildcard/WildCardRoutingTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/wildcard/WildCardRoutingTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/wildcard/WildCardRoutingTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -63,11 +63,11 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -88,11 +88,11 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -121,11 +121,11 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -162,11 +162,11 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -193,11 +193,11 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -222,11 +222,11 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -254,11 +254,11 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       clientConsumer.close();
       clientSession.deleteQueue(queueName);
@@ -312,39 +312,39 @@
 
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m3", m.getBody().getString());
+      assertEquals("m3", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m4", m.getBody().getString());
+      assertEquals("m4", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m5", m.getBody().getString());
+      assertEquals("m5", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m6", m.getBody().getString());
+      assertEquals("m6", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m7", m.getBody().getString());
+      assertEquals("m7", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m8", m.getBody().getString());
+      assertEquals("m8", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m9", m.getBody().getString());
+      assertEquals("m9", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -409,39 +409,39 @@
 
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m3", m.getBody().getString());
+      assertEquals("m3", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m4", m.getBody().getString());
+      assertEquals("m4", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m5", m.getBody().getString());
+      assertEquals("m5", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m6", m.getBody().getString());
+      assertEquals("m6", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m7", m.getBody().getString());
+      assertEquals("m7", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m8", m.getBody().getString());
+      assertEquals("m8", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m9", m.getBody().getString());
+      assertEquals("m9", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -479,11 +479,11 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -508,11 +508,11 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -538,11 +538,11 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -567,11 +567,11 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -596,7 +596,7 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -621,11 +621,11 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
    }
 
@@ -648,7 +648,7 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -673,7 +673,7 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -698,7 +698,7 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -723,7 +723,7 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -748,7 +748,7 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);
@@ -776,11 +776,11 @@
       producer2.send(createTextMessage("m2", clientSession));
       ClientMessage m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m1", m.getBody().getString());
+      assertEquals("m1", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNotNull(m);
-      assertEquals("m2", m.getBody().getString());
+      assertEquals("m2", m.getBody().readString());
       m.acknowledge();
       m = clientConsumer.receive(500);
       assertNull(m);

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/xa/BasicXaRecoveryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/xa/BasicXaRecoveryTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/xa/BasicXaRecoveryTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -505,16 +505,16 @@
       clientSession.start();
       ClientMessage m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
    }
 
    public void testBasicSendWithRollback(final boolean stopServer) throws Exception
@@ -609,16 +609,16 @@
       clientSession.start();
       ClientMessage m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m5");
+      assertEquals(m.getBody().readString(), "m5");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m7");
+      assertEquals(m.getBody().readString(), "m7");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m8");
+      assertEquals(m.getBody().readString(), "m8");
    }
 
    public void testMultipleTxSendWithCommit(final boolean stopServer) throws Exception
@@ -671,28 +671,28 @@
       clientSession.start();
       ClientMessage m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m5");
+      assertEquals(m.getBody().readString(), "m5");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m7");
+      assertEquals(m.getBody().readString(), "m7");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m8");
+      assertEquals(m.getBody().readString(), "m8");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
    }
 
    public void testMultipleTxSendWithRollback(final boolean stopServer) throws Exception
@@ -797,16 +797,16 @@
       clientSession.start();
       ClientMessage m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       m = clientConsumer.receive(1000);
       assertNull(m);
    }
@@ -860,28 +860,28 @@
       clientSession.start();
       ClientMessage m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m5");
+      assertEquals(m.getBody().readString(), "m5");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m7");
+      assertEquals(m.getBody().readString(), "m7");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m8");
+      assertEquals(m.getBody().readString(), "m8");
    }
 
    public void testBasicReceiveWithCommit(final boolean stopServer) throws Exception
@@ -903,19 +903,19 @@
       ClientMessage m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       clientSession.end(xid, XAResource.TMSUCCESS);
       assertEquals("Expected XA_OK", XAResource.XA_OK, clientSession.prepare(xid));
 
@@ -961,19 +961,19 @@
       ClientMessage m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       clientSession.end(xid, XAResource.TMSUCCESS);
       clientSession.prepare(xid);
 
@@ -1002,16 +1002,16 @@
       clientSession.start();
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
    }
 
    public void testMultipleTxReceiveWithCommit(final boolean stopServer) throws Exception
@@ -1047,19 +1047,19 @@
       ClientMessage m = clientConsumer2.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m5");
+      assertEquals(m.getBody().readString(), "m5");
       m = clientConsumer2.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
       m = clientConsumer2.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m7");
+      assertEquals(m.getBody().readString(), "m7");
       m = clientConsumer2.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m8");
+      assertEquals(m.getBody().readString(), "m8");
       clientSession2.end(xid2, XAResource.TMSUCCESS);
       clientSession2.prepare(xid2);
       clientSession2.close();
@@ -1069,19 +1069,19 @@
       m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       clientSession.end(xid, XAResource.TMSUCCESS);
       clientSession.prepare(xid);
 
@@ -1137,19 +1137,19 @@
       ClientMessage m = clientConsumer2.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m5");
+      assertEquals(m.getBody().readString(), "m5");
       m = clientConsumer2.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
       m = clientConsumer2.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m7");
+      assertEquals(m.getBody().readString(), "m7");
       m = clientConsumer2.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m8");
+      assertEquals(m.getBody().readString(), "m8");
       clientSession2.end(xid2, XAResource.TMSUCCESS);
       clientSession2.prepare(xid2);
       clientSession2.close();
@@ -1159,19 +1159,19 @@
       m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       clientSession.end(xid, XAResource.TMSUCCESS);
       clientSession.prepare(xid);
 
@@ -1193,19 +1193,19 @@
       m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(1000);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
    }
 
    protected void stopAndRestartServer() throws Exception
@@ -1248,8 +1248,7 @@
                                                                 0,
                                                                 System.currentTimeMillis(),
                                                                 (byte)1);
-      message.getBody().putString(s);
-      message.getBody().flip();
+      message.getBody().writeString(s);
       return message;
    }
 
@@ -1260,8 +1259,7 @@
                                                                 0,
                                                                 System.currentTimeMillis(),
                                                                 (byte)1);
-      message.getBody().putBytes(b);
-      message.getBody().flip();
+      message.getBody().writeBytes(b);
       return message;
    }
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/xa/BasicXaTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/xa/BasicXaTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/xa/BasicXaTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -140,16 +140,16 @@
       ClientConsumer clientConsumer = clientSession.createConsumer(atestq);
       ClientMessage m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
    }
 
    public void testReceivePrepareDoesntRollbackOnClose() throws Exception
@@ -174,19 +174,19 @@
       ClientMessage m = clientConsumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(1000);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       clientSession.end(xid, XAResource.TMSUCCESS);
       clientSession.prepare(xid);
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/xa/XaTimeoutTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/xa/XaTimeoutTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/xa/XaTimeoutTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -168,19 +168,19 @@
       ClientMessage m = clientConsumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(500);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       clientSession.end(xid, XAResource.TMSUCCESS);
       Thread.sleep(2600);
       try
@@ -199,19 +199,19 @@
       m = consumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = consumer.receive(500);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = consumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = consumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       clientSession2.close();
    }
 
@@ -244,19 +244,19 @@
       ClientMessage m = clientConsumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(500);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       clientSession.end(xid, XAResource.TMSUCCESS);
       Thread.sleep(2600);
       try
@@ -275,19 +275,19 @@
       m = consumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = consumer.receive(500);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = consumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = consumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       m = consumer.receive(500);
       assertNull(m);
       clientSession2.close();
@@ -322,19 +322,19 @@
       ClientMessage m = clientConsumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = clientConsumer.receive(500);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = clientConsumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = clientConsumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       clientSession.end(xid, XAResource.TMSUCCESS);
       clientSession.prepare(xid);
       Thread.sleep(2600);
@@ -348,19 +348,19 @@
       m = consumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m5");
+      assertEquals(m.getBody().readString(), "m5");
       m = consumer.receive(500);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m6");
+      assertEquals(m.getBody().readString(), "m6");
       m = consumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m7");
+      assertEquals(m.getBody().readString(), "m7");
       m = consumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m8");
+      assertEquals(m.getBody().readString(), "m8");
       m = consumer.receive(500);
       assertNull(m);
       clientSession2.close();
@@ -420,19 +420,19 @@
       clientSession2.start();
       ClientMessage m = consumer.receive(500);
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m1");
+      assertEquals(m.getBody().readString(), "m1");
       m = consumer.receive(500);
       assertNotNull(m);
       m.acknowledge();
-      assertEquals(m.getBody().getString(), "m2");
+      assertEquals(m.getBody().readString(), "m2");
       m = consumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m3");
+      assertEquals(m.getBody().readString(), "m3");
       m = consumer.receive(500);
       m.acknowledge();
       assertNotNull(m);
-      assertEquals(m.getBody().getString(), "m4");
+      assertEquals(m.getBody().readString(), "m4");
       clientSession2.close();
    }
 

Modified: trunk/tests/src/org/jboss/messaging/tests/performance/paging/MeasurePagingMultiThreadTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/performance/paging/MeasurePagingMultiThreadTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/performance/paging/MeasurePagingMultiThreadTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -32,7 +32,6 @@
 import org.jboss.messaging.core.client.ClientSessionFactory;
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.server.MessagingService;
 import org.jboss.messaging.core.settings.impl.AddressSettings;
@@ -115,11 +114,7 @@
                session = factory.createSession(false, true, true);
                producer = session.createProducer(adr);
                msg = session.createClientMessage(true);
-
-               ByteBuffer buffer = ByteBuffer.allocate(SIZE_OF_MESSAGE);
-               MessagingBuffer msgBuffer = new ByteBufferWrapper(buffer);
-               msg.setBody(msgBuffer);
-
+               msg.getBody().writeBytes(new byte[SIZE_OF_MESSAGE]);
             }
 
             // run is not going to close sessions or anything, as we don't want to measure that time
@@ -220,9 +215,7 @@
       ClientProducer producer = session.createProducer(adr);
       ClientMessage msg = session.createClientMessage(true);
 
-      ByteBuffer buffer = ByteBuffer.allocate(messageSize);
-      MessagingBuffer msgBuffer = new ByteBufferWrapper(buffer);
-      msg.setBody(msgBuffer);
+      msg.getBody().writeBytes(new byte[messageSize]);
 
       sendMessages(nMessages, producer, msg);
    }

Modified: trunk/tests/src/org/jboss/messaging/tests/performance/persistence/StorageManagerTimingTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/performance/persistence/StorageManagerTimingTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/performance/persistence/StorageManagerTimingTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -23,19 +23,18 @@
 package org.jboss.messaging.tests.performance.persistence;
 
 import java.io.File;
-import java.nio.ByteBuffer;
 import java.util.HashMap;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.jboss.messaging.core.asyncio.impl.AsynchronousFileImpl;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
+import org.jboss.messaging.core.buffers.HeapChannelBuffer;
 import org.jboss.messaging.core.config.impl.FileConfiguration;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.persistence.impl.journal.JournalStorageManager;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.server.JournalType;
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.impl.ServerMessageImpl;
-import org.jboss.messaging.integration.transports.mina.IoBufferWrapper;
 import org.jboss.messaging.tests.util.UnitTestCase;
 import org.jboss.messaging.utils.SimpleString;
 
@@ -143,9 +142,6 @@
          bytes[i] = (byte)('a' + (i % 20));
       }
 
-      final IoBufferWrapper buffer = new IoBufferWrapper(1024);
-      buffer.putBytes(bytes);
-
       final AtomicLong transactionGenerator = new AtomicLong(1);
 
       class LocalThread extends Thread
@@ -182,12 +178,12 @@
                                                                     0,
                                                                     /* timestamp */0, /* priority */
                                                                     (byte)0,
-                                                                    new ByteBufferWrapper(ByteBuffer.allocateDirect(1024)));
+                                                                    ChannelBuffers.wrappedBuffer(new byte[1024]));
 
                   implMsg.putStringProperty(new SimpleString("Key"), new SimpleString("This String is worthless!"));
 
                   implMsg.setMessageID(i);
-                  implMsg.setBody(buffer);
+                  implMsg.setBody(ChannelBuffers.wrappedBuffer(bytes));
 
                   implMsg.setDestination(address);
 

Modified: trunk/tests/src/org/jboss/messaging/tests/timing/util/UTF8Test.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/timing/util/UTF8Test.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/timing/util/UTF8Test.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -22,7 +22,8 @@
 
 package org.jboss.messaging.tests.timing.util;
 
-import org.jboss.messaging.integration.transports.netty.ChannelBufferWrapper;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.tests.util.UnitTestCase;
 import org.jboss.messaging.utils.UTF8Util;
 
@@ -55,7 +56,7 @@
 
    public void testWriteUTF() throws Exception
    {
-      ChannelBufferWrapper buffer = new ChannelBufferWrapper(10 * 1024);
+      MessagingBuffer buffer = ChannelBuffers.buffer(10 * 1024); 
 
       long start = System.currentTimeMillis();
 
@@ -68,8 +69,8 @@
                start = System.currentTimeMillis();
             }
 
-            buffer.rewind();
-            buffer.putUTF(str);
+            buffer.clear();
+            buffer.writeUTF(str);
          }
 
          long spentTime = System.currentTimeMillis() - start;
@@ -80,9 +81,9 @@
 
    public void testReadUTF() throws Exception
    {
-      ChannelBufferWrapper buffer = new ChannelBufferWrapper(10 * 1024);
+      MessagingBuffer buffer = ChannelBuffers.buffer(10 * 1024); 
 
-      buffer.putUTF(str);
+      buffer.writeUTF(str);
 
       long start = System.currentTimeMillis();
 
@@ -95,8 +96,8 @@
                start = System.currentTimeMillis();
             }
 
-            buffer.rewind();
-            String newstr = buffer.getUTF();
+            buffer.resetReaderIndex();
+            String newstr = buffer.readUTF();
             assertEquals(str, newstr);
          }
 

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientMessageImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientMessageImplTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientMessageImplTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -23,10 +23,10 @@
 
 import java.nio.ByteBuffer;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.impl.ClientMessageImpl;
 import org.jboss.messaging.core.message.Message;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.tests.unit.core.message.impl.MessageImplTestBase;
 import org.jboss.messaging.tests.util.RandomUtil;
@@ -69,19 +69,21 @@
    
    public void testConstructor1()
    {
+      ClientMessage msg2 = new ClientMessageImpl(true, ChannelBuffers.buffer(1024));
+      msg2.getBody();
       for (int i = 0; i < 10; i++)
       {
          boolean durable = RandomUtil.randomBoolean();    
-         ByteBuffer bb = ByteBuffer.wrap(new byte[1000]);    
-         MessagingBuffer body = new ByteBufferWrapper(bb);   
-         
+         MessagingBuffer body = ChannelBuffers.EMPTY_BUFFER;   
+
          ClientMessage msg = new ClientMessageImpl(durable, body);
+         assertTrue("i = " + i + "Time is = " + (System.currentTimeMillis() - msg.getTimestamp()), System.currentTimeMillis() - msg.getTimestamp() < 5);
+
          assertEquals(durable, msg.isDurable());
          assertEquals(body, msg.getBody());
-             
          assertEquals(0, msg.getType());
          assertEquals(0, msg.getExpiration());
-         assertTrue(System.currentTimeMillis() - msg.getTimestamp() < 5);
+       
          assertEquals((byte)4, msg.getPriority());
       }
    }
@@ -93,7 +95,7 @@
          byte type = RandomUtil.randomByte();
          boolean durable = RandomUtil.randomBoolean();    
          ByteBuffer bb = ByteBuffer.wrap(new byte[1000]);    
-         MessagingBuffer body = new ByteBufferWrapper(bb);   
+         MessagingBuffer body = ChannelBuffers.wrappedBuffer(new byte[1000]);   
          
          ClientMessage msg = new ClientMessageImpl(type, durable, body);
          assertEquals(type, msg.getType());
@@ -113,7 +115,7 @@
          byte type = RandomUtil.randomByte();
          boolean durable = RandomUtil.randomBoolean();    
          ByteBuffer bb = ByteBuffer.wrap(new byte[1000]);    
-         MessagingBuffer body = new ByteBufferWrapper(bb);   
+         MessagingBuffer body = ChannelBuffers.wrappedBuffer(new byte[1000]);   
          long expiration = RandomUtil.randomLong();
          long timestamp = RandomUtil.randomLong();
          byte priority = RandomUtil.randomByte();

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/fakes/SimpleEncoding.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/fakes/SimpleEncoding.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/fakes/SimpleEncoding.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -61,7 +61,7 @@
    {
       for (int i = 0; i < size; i++)
       {
-         buffer.putByte(bytetosend);
+         buffer.writeByte(bytetosend);
       }
    }
 

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/message/impl/MessageImplTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/message/impl/MessageImplTestBase.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/message/impl/MessageImplTestBase.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -32,16 +32,14 @@
 import static org.jboss.messaging.tests.util.RandomUtil.randomShort;
 import static org.jboss.messaging.tests.util.RandomUtil.randomString;
 
-import java.nio.ByteBuffer;
 import java.util.Set;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.journal.EncodingSupport;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.Message;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.server.impl.ServerMessageImpl;
-import org.jboss.messaging.integration.transports.mina.IoBufferWrapper;
 import org.jboss.messaging.tests.util.UnitTestCase;
 import org.jboss.messaging.utils.SimpleString;
 
@@ -68,19 +66,16 @@
          {
             bytes[i] = randomByte();
          }
-         ByteBuffer bb = ByteBuffer.wrap(bytes);    
-         MessagingBuffer body = new ByteBufferWrapper(bb);      
+         MessagingBuffer body = ChannelBuffers.wrappedBuffer(bytes);      
          Message message = createMessage(randomByte(), randomBoolean(), randomLong(),
                                          randomLong(), randomByte(), body);
          message.setDestination(new SimpleString("oasoas"));
          
          message.putStringProperty(new SimpleString("prop1"), new SimpleString("blah1"));
          message.putStringProperty(new SimpleString("prop2"), new SimpleString("blah2"));      
-         ByteBuffer bbMsg = ByteBuffer.allocate(message.getEncodeSize());
-         MessagingBuffer buffer = new ByteBufferWrapper(bbMsg);      
+         MessagingBuffer buffer = ChannelBuffers.buffer(message.getEncodeSize()); 
          message.encode(buffer);      
          Message message2 = createMessage();      
-         buffer.flip();      
          message2.decode(buffer);      
          assertMessagesEquivalent(message, message2);
       }
@@ -95,8 +90,7 @@
          {
             bytes[i] = randomByte();
          }
-         ByteBuffer bb = ByteBuffer.wrap(bytes);    
-         MessagingBuffer body = new ByteBufferWrapper(bb); 
+         MessagingBuffer body = ChannelBuffers.wrappedBuffer(bytes);      
          
          final byte type = randomByte();
          final boolean durable = randomBoolean();
@@ -162,17 +156,15 @@
 
    public void testEncodingMessage() throws Exception
    {
-      byte[] bytes = new byte[]{(byte)1, (byte)2, (byte)3};
-      final IoBufferWrapper bufferBody = new IoBufferWrapper(bytes.length);
-      bufferBody.putBytes(bytes);
             
       SimpleString address = new SimpleString("Simple Destination ");
       
       Message msg = createMessage(); 
-      msg.setBody(new ByteBufferWrapper(ByteBuffer.allocateDirect(1024)));
+
+      byte[] bytes = new byte[]{(byte)1, (byte)2, (byte)3};
+      msg.setBody(ChannelBuffers.wrappedBuffer(bytes));
          
       msg.setDestination(address);
-      msg.setBody(bufferBody);
       msg.putStringProperty(new SimpleString("Key"), new SimpleString("This String is worthless!"));
       msg.putStringProperty(new SimpleString("Key"), new SimpleString("This String is worthless and bigger!"));
       msg.putStringProperty(new SimpleString("Key2"), new SimpleString("This String is worthless and bigger and bigger!"));
@@ -345,21 +337,20 @@
    
    private void checkSizes(final Message obj, final EncodingSupport newObject)
    {
-      ByteBuffer bf = ByteBuffer.allocateDirect(1024);
-      ByteBufferWrapper buffer = new ByteBufferWrapper(bf);
+      MessagingBuffer buffer = ChannelBuffers.buffer(1024);
       obj.encode(buffer);
-      assertEquals (buffer.position(), obj.getEncodeSize());
-      int originalSize = buffer.position();
-      
-      bf.rewind();
+      assertEquals (buffer.writerIndex(), obj.getEncodeSize());
+      int originalSize = buffer.writerIndex();
+
+      buffer.resetReaderIndex();
       newObject.decode(buffer);
       
-      bf = ByteBuffer.allocateDirect(1024 * 10);
-      buffer = new ByteBufferWrapper(bf);
+
+      MessagingBuffer newBuffer = ChannelBuffers.buffer(1024);
       
-      newObject.encode(buffer);
+      newObject.encode(newBuffer);
       
-      assertEquals(newObject.getEncodeSize(), bf.position());
-      assertEquals(originalSize, bf.position());     
+      assertEquals(newObject.getEncodeSize(), newBuffer.writerIndex());
+      assertEquals(originalSize, newBuffer.writerIndex());     
    }  
 }

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PageImplTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PageImplTestBase.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PageImplTestBase.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -26,15 +26,15 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.journal.SequentialFile;
 import org.jboss.messaging.core.journal.SequentialFileFactory;
 import org.jboss.messaging.core.paging.PagedMessage;
 import org.jboss.messaging.core.paging.impl.PageImpl;
 import org.jboss.messaging.core.paging.impl.PagedMessageImpl;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.server.ServerMessage;
 import org.jboss.messaging.core.server.impl.ServerMessageImpl;
-import org.jboss.messaging.tests.util.RandomUtil;
 import org.jboss.messaging.tests.util.UnitTestCase;
 import org.jboss.messaging.utils.SimpleString;
 
@@ -76,7 +76,7 @@
 
       SimpleString simpleDestination = new SimpleString("Test");
 
-      ArrayList<ByteBuffer> buffers = addPageElements(simpleDestination, impl, numberOfElements);
+      ArrayList<MessagingBuffer> buffers = addPageElements(simpleDestination, impl, numberOfElements);
 
       impl.sync();
       impl.close();
@@ -123,7 +123,7 @@
 
       SimpleString simpleDestination = new SimpleString("Test");
 
-      ArrayList<ByteBuffer> buffers = addPageElements(simpleDestination, impl, numberOfElements);
+      ArrayList<MessagingBuffer> buffers = addPageElements(simpleDestination, impl, numberOfElements);
 
       impl.sync();
 
@@ -188,19 +188,20 @@
     * @return
     * @throws Exception
     */
-   protected ArrayList<ByteBuffer> addPageElements(SimpleString simpleDestination, PageImpl page, int numberOfElements) throws Exception
+   protected ArrayList<MessagingBuffer> addPageElements(SimpleString simpleDestination, PageImpl page, int numberOfElements) throws Exception
    {
-      ArrayList<ByteBuffer> buffers = new ArrayList<ByteBuffer>();
+      ArrayList<MessagingBuffer> buffers = new ArrayList<MessagingBuffer>();
       
       int initialNumberOfMessages = page.getNumberOfMessages();
 
       for (int i = 0; i < numberOfElements; i++)
       {
-         ByteBuffer buffer = ByteBuffer.allocate(10);
+         MessagingBuffer buffer = ChannelBuffers.buffer(10); 
 
-         for (int j = 0; j < buffer.limit(); j++)
+         for (int j = 0; j < buffer.capacity(); j++)
          {
-            buffer.put(RandomUtil.randomByte());
+            //buffer.writeByte(RandomUtil.randomByte());
+            buffer.writeByte((byte)'b');
          }
 
          buffers.add(buffer);
@@ -210,7 +211,7 @@
                                                    0,
                                                    System.currentTimeMillis(),
                                                    (byte)0,
-                                                   new ByteBufferWrapper(buffer));
+                                                   buffer);
 
          msg.setMessageID(i);
 

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PageTransactionImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PageTransactionImplTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PageTransactionImplTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -22,11 +22,10 @@
 
 package org.jboss.messaging.tests.unit.core.paging.impl;
 
-import java.nio.ByteBuffer;
-
+import org.jboss.messaging.core.buffers.ChannelBuffers;
+import org.jboss.messaging.core.buffers.HeapChannelBuffer;
 import org.jboss.messaging.core.paging.PageTransactionInfo;
 import org.jboss.messaging.core.paging.impl.PageTransactionInfoImpl;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.tests.util.RandomUtil;
 import org.jboss.messaging.tests.util.UnitTestCase;
@@ -67,14 +66,12 @@
 
       assertEquals(nr1, trans.getNumberOfMessages());
 
-      ByteBuffer buffer = ByteBuffer.allocate(trans.getEncodeSize());
-      MessagingBuffer wrapper = new ByteBufferWrapper(buffer);
+      MessagingBuffer buffer = ChannelBuffers.buffer(trans.getEncodeSize());
 
-      trans.encode(wrapper);
-      wrapper.rewind();
+      trans.encode(buffer);
 
       PageTransactionInfo trans2 = new PageTransactionInfoImpl(id1);
-      trans2.decode(wrapper);
+      trans2.decode(buffer);
 
       assertEquals(id2, trans2.getTransactionID());
 

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreImplTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreImplTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -22,7 +22,6 @@
 
 package org.jboss.messaging.tests.unit.core.paging.impl;
 
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -35,6 +34,7 @@
 import org.jboss.messaging.core.paging.impl.PagedMessageImpl;
 import org.jboss.messaging.core.paging.impl.PagingStoreImpl;
 import org.jboss.messaging.core.paging.impl.TestSupportPageStore;
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.settings.impl.AddressSettings;
 import org.jboss.messaging.tests.unit.core.journal.impl.fakes.FakeSequentialFileFactory;
 import org.jboss.messaging.utils.SimpleString;
@@ -108,9 +108,9 @@
 
       assertEquals(1, storeImpl.getNumberOfPages());
 
-      List<ByteBuffer> buffers = new ArrayList<ByteBuffer>();
+      List<MessagingBuffer> buffers = new ArrayList<MessagingBuffer>();
 
-      ByteBuffer buffer = createRandomBuffer(0, 10);
+      MessagingBuffer buffer = createRandomBuffer(0, 10);
 
       buffers.add(buffer);
       SimpleString destination = new SimpleString("test");
@@ -165,12 +165,12 @@
 
       storeImpl.startPaging();
 
-      List<ByteBuffer> buffers = new ArrayList<ByteBuffer>();
+      List<MessagingBuffer> buffers = new ArrayList<MessagingBuffer>();
 
       for (int i = 0; i < 10; i++)
       {
 
-         ByteBuffer buffer = createRandomBuffer(i + 1l, 10);
+         MessagingBuffer buffer = createRandomBuffer(i + 1l, 10);
 
          buffers.add(buffer);
 
@@ -234,12 +234,12 @@
 
       assertEquals(1, storeImpl.getNumberOfPages());
 
-      List<ByteBuffer> buffers = new ArrayList<ByteBuffer>();
+      List<MessagingBuffer> buffers = new ArrayList<MessagingBuffer>();
 
       for (int i = 0; i < 10; i++)
       {
 
-         ByteBuffer buffer = createRandomBuffer(i + 1l, 10);
+         MessagingBuffer buffer = createRandomBuffer(i + 1l, 10);
 
          buffers.add(buffer);
 

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreTestBase.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreTestBase.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -22,7 +22,6 @@
 
 package org.jboss.messaging.tests.unit.core.paging.impl;
 
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
@@ -33,6 +32,8 @@
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.easymock.classextension.EasyMock;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
+import org.jboss.messaging.core.buffers.HeapChannelBuffer;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.journal.SequentialFile;
 import org.jboss.messaging.core.journal.SequentialFileFactory;
@@ -45,7 +46,7 @@
 import org.jboss.messaging.core.paging.impl.TestSupportPageStore;
 import org.jboss.messaging.core.persistence.StorageManager;
 import org.jboss.messaging.core.postoffice.PostOffice;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.server.ServerMessage;
 import org.jboss.messaging.core.server.impl.ServerMessageImpl;
 import org.jboss.messaging.core.settings.impl.AddressSettings;
@@ -240,9 +241,8 @@
 
          for (PagedMessage msg : msgs)
          {
-            msg.getMessage(null).getBody().rewind();
-            long id = msg.getMessage(null).getBody().getLong();
-            msg.getMessage(null).getBody().rewind();
+            long id = msg.getMessage(null).getBody().readLong();
+            msg.getMessage(null).getBody().resetReaderIndex();
 
             PagedMessageImpl msgWritten = buffers.remove(id);
             buffers2.put(id, msg);
@@ -313,8 +313,7 @@
          for (PagedMessage msg : msgs)
          {
 
-            msg.getMessage(null).getBody().rewind();
-            long id = msg.getMessage(null).getBody().getLong();
+            long id = msg.getMessage(null).getBody().readLong();
             PagedMessage msgWritten = buffers2.remove(id);
             assertNotNull(msgWritten);
             assertEquals(msg.getMessage(null).getDestination(), msgWritten.getMessage(null).getDestination());
@@ -329,8 +328,8 @@
       lastPage.close();
       assertEquals(1, lastMessages.size());
 
-      lastMessages.get(0).getMessage(null).getBody().rewind();
-      assertEquals(lastMessages.get(0).getMessage(null).getBody().getLong(), lastMessageId);
+      lastMessages.get(0).getMessage(null).getBody().resetReaderIndex();
+      assertEquals(lastMessages.get(0).getMessage(null).getBody().readLong(), lastMessageId);
       assertEqualsByteArrays(lastMessages.get(0).getMessage(null).getBody().array(), lastMsg.getMessage(null)
                                                                                             .getBody()
                                                                                             .array());
@@ -341,28 +340,28 @@
 
    }
 
-   protected PagedMessageImpl createMessage(final SimpleString destination, final ByteBuffer buffer)
+   protected PagedMessageImpl createMessage(final SimpleString destination, final MessagingBuffer buffer)
    {
       ServerMessage msg = new ServerMessageImpl((byte)1,
                                                 true,
                                                 0,
                                                 System.currentTimeMillis(),
                                                 (byte)0,
-                                                new ByteBufferWrapper(buffer));
+                                                buffer);
 
       msg.setDestination(destination);
       return new PagedMessageImpl(msg);
    }
 
-   protected ByteBuffer createRandomBuffer(final long id, final int size)
+   protected MessagingBuffer createRandomBuffer(final long id, final int size)
    {
-      ByteBuffer buffer = ByteBuffer.allocate(size + 8);
+      MessagingBuffer buffer = ChannelBuffers.buffer(size + 8);
 
-      buffer.putLong(id);
+      buffer.writeLong(id);
 
-      for (int j = 8; j < buffer.limit(); j++)
+      for (int j = 8; j < buffer.capacity(); j++)
       {
-         buffer.put(RandomUtil.randomByte());
+         buffer.writeByte(RandomUtil.randomByte());
       }
       return buffer;
    }

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/persistence/impl/journal/JournalStorageManagerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/persistence/impl/journal/JournalStorageManagerTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/persistence/impl/journal/JournalStorageManagerTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -23,7 +23,6 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.DataOutputStream;
-import java.nio.ByteBuffer;
 import java.util.List;
 
 import javax.transaction.xa.Xid;
@@ -31,6 +30,7 @@
 import org.easymock.EasyMock;
 import org.easymock.IAnswer;
 import org.easymock.IArgumentMatcher;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.journal.EncodingSupport;
@@ -40,7 +40,7 @@
 import org.jboss.messaging.core.journal.TestableJournal;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.persistence.impl.journal.JournalStorageManager;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.server.MessageReference;
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.ServerMessage;
@@ -842,12 +842,8 @@
                return false;
             }
 
-            byte newByte[] = new byte[expectedRecord.length];
+            MessagingBuffer wrapper = ChannelBuffers.buffer(expectedRecord.length);
 
-            ByteBuffer buffer = ByteBuffer.wrap(newByte);
-
-            ByteBufferWrapper wrapper = new ByteBufferWrapper(buffer);
-
             support.encode(wrapper);
 
             byte encodingBytes[] = wrapper.array();

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/MessagingBufferTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/MessagingBufferTestBase.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/MessagingBufferTestBase.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -29,7 +29,6 @@
 import static org.jboss.messaging.tests.util.RandomUtil.randomInt;
 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.UnitTestCase.assertEqualsByteArrays;
 
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.tests.util.RandomUtil;
@@ -122,30 +121,22 @@
    public void testByte() throws Exception
    {
       byte b = randomByte();
-      wrapper.putByte(b);
+      wrapper.writeByte(b);
 
-      wrapper.flip();
-
-      assertEquals(b, wrapper.getByte());
+      assertEquals(b, wrapper.readByte());
    }
 
    public void testUnsignedByte() throws Exception
    {
       byte b = (byte) 0xff;
-      wrapper.putByte(b);
+      wrapper.writeByte(b);
 
-      wrapper.flip();
+      assertEquals(255, wrapper.readUnsignedByte());
 
-      assertEquals(255, wrapper.getUnsignedByte());
-
-      wrapper.rewind();
-
       b = (byte) 0xf;
-      wrapper.putByte(b);
+      wrapper.writeByte(b);
 
-      wrapper.flip();
-
-      assertEquals(b, wrapper.getUnsignedByte());
+      assertEquals(b, wrapper.readUnsignedByte());
    }
 
 
@@ -153,12 +144,10 @@
    public void testBytes() throws Exception
    {
       byte[] bytes = randomBytes();
-      wrapper.putBytes(bytes);
+      wrapper.writeBytes(bytes);
 
-      wrapper.flip();
-
       byte[] b = new byte[bytes.length];
-      wrapper.getBytes(b);
+      wrapper.readBytes(b);
       assertEqualsByteArrays(bytes, b);
    }
 
@@ -166,50 +155,40 @@
    {
       byte[] bytes = randomBytes();
       // put only half of the bytes
-      wrapper.putBytes(bytes, 0, bytes.length / 2);
+      wrapper.writeBytes(bytes, 0, bytes.length / 2);
 
-      wrapper.flip();
-
       byte[] b = new byte[bytes.length / 2];
-      wrapper.getBytes(b, 0, b.length);
+      wrapper.readBytes(b, 0, b.length);
       assertEqualsByteArrays(b.length, bytes, b);
    }
 
    public void testPutTrueBoolean() throws Exception
    {
-      wrapper.putBoolean(true);
+      wrapper.writeBoolean(true);
 
-      wrapper.flip();
-
-      assertTrue(wrapper.getBoolean());
+      assertTrue(wrapper.readBoolean());
    }
 
    public void testPutFalseBoolean() throws Exception
    {
-      wrapper.putBoolean(false);
+      wrapper.writeBoolean(false);
 
-      wrapper.flip();
-
-      assertFalse(wrapper.getBoolean());
+      assertFalse(wrapper.readBoolean());
    }
 
    public void testChar() throws Exception
    {
-      wrapper.putChar('a');
+      wrapper.writeChar('a');
 
-      wrapper.flip();
-
-      assertEquals('a', wrapper.getChar());
+      assertEquals('a', wrapper.readChar());
    }
 
    public void testInt() throws Exception
    {
       int i = randomInt();
-      wrapper.putInt(i);
+      wrapper.writeInt(i);
 
-      wrapper.flip();
-
-      assertEquals(i, wrapper.getInt());
+      assertEquals(i, wrapper.readInt());
    }
 
    public void testIntAtPosition() throws Exception
@@ -217,61 +196,47 @@
       int firstInt = randomInt();
       int secondInt = randomInt();
 
-      wrapper.putInt(secondInt);
-      wrapper.putInt(secondInt);
+      wrapper.writeInt(secondInt);
+      wrapper.writeInt(secondInt);
       // rewrite firstInt at the beginning
-      wrapper.putInt(0, firstInt);
+      wrapper.setInt(0, firstInt);
 
-      wrapper.flip();
-
-      assertEquals(firstInt, wrapper.getInt());
-      assertEquals(secondInt, wrapper.getInt());
+      assertEquals(firstInt, wrapper.readInt());
+      assertEquals(secondInt, wrapper.readInt());
    }
 
    public void testLong() throws Exception
    {
       long l = randomLong();
-      wrapper.putLong(l);
+      wrapper.writeLong(l);
 
-      wrapper.flip();
-
-      assertEquals(l, wrapper.getLong());
+      assertEquals(l, wrapper.readLong());
    }
 
    public void testUnsignedShort() throws Exception
    {
       short s1 = Short.MAX_VALUE;
 
-      wrapper.putShort(s1);
+      wrapper.writeShort(s1);
 
-      wrapper.flip();
+      int s2 = wrapper.readUnsignedShort();
 
-      int s2 = wrapper.getUnsignedShort();
-
       assertEquals(s1, s2);
 
-      wrapper.rewind();
-
       s1 = Short.MIN_VALUE;
 
-      wrapper.putShort(s1);
+      wrapper.writeShort(s1);
 
-      wrapper.flip();
+      s2 = wrapper.readUnsignedShort();
 
-      s2 = wrapper.getUnsignedShort();
-
       assertEquals(s1 * -1, s2);
 
-      wrapper.rewind();
-
       s1 = -1;
 
-      wrapper.putShort(s1);
+      wrapper.writeShort(s1);
 
-      wrapper.flip();
+      s2 = wrapper.readUnsignedShort();
 
-      s2 = wrapper.getUnsignedShort();
-
       // / The max of an unsigned short
       // (http://en.wikipedia.org/wiki/Unsigned_short)
       assertEquals(s2, 65535);
@@ -279,50 +244,40 @@
 
    public void testShort() throws Exception
    {
-      wrapper.putShort((short) 1);
+      wrapper.writeShort((short) 1);
 
-      wrapper.flip();
-
-      assertEquals((short)1, wrapper.getShort());
+      assertEquals((short)1, wrapper.readShort());
    }
 
    public void testDouble() throws Exception
    {
       double d = randomDouble();
-      wrapper.putDouble(d);
+      wrapper.writeDouble(d);
 
-      wrapper.flip();
-
-      assertEquals(d, wrapper.getDouble());
+      assertEquals(d, wrapper.readDouble());
    }
 
    public void testFloat() throws Exception
    {
       float f = randomFloat();
-      wrapper.putFloat(f);
+      wrapper.writeFloat(f);
 
-      wrapper.flip();
-
-      assertEquals(f, wrapper.getFloat());
+      assertEquals(f, wrapper.readFloat());
    }
 
    public void testUTF() throws Exception
    {
       String str = randomString();
-      wrapper.putUTF(str);
+      wrapper.writeUTF(str);
 
-      wrapper.flip();
-
-      assertEquals(str, wrapper.getUTF());
+      assertEquals(str, wrapper.readUTF());
    }
 
    public void testArray() throws Exception
    {
       byte[] bytes = randomBytes(128);
-      wrapper.putBytes(bytes);
+      wrapper.writeBytes(bytes);
 
-      wrapper.flip();
-
       byte[] array = wrapper.array();
       assertEquals(wrapper.capacity(), array.length);
       assertEqualsByteArrays(128, bytes, wrapper.array());
@@ -331,74 +286,41 @@
    public void testRewind() throws Exception
    {
       int i = randomInt();
-      wrapper.putInt(i);
+      wrapper.writeInt(i);
 
-      wrapper.flip();
+      assertEquals(i, wrapper.readInt());
 
-      assertEquals(i, wrapper.getInt());
-
-      wrapper.rewind();
-
-      assertEquals(i, wrapper.getInt());
+      wrapper.resetReaderIndex();
+      
+      assertEquals(i, wrapper.readInt());
    }
 
    public void testRemaining() throws Exception
    {
       int capacity = wrapper.capacity();
-      assertEquals(capacity, wrapper.remaining());
 
       // fill 1/3 of the buffer
       int fill = capacity / 3;
       byte[] bytes = randomBytes(fill);
-      wrapper.putBytes(bytes);
+      wrapper.writeBytes(bytes);
 
       // check the remaining is 2/3
-      assertEquals(capacity - fill, wrapper.remaining());
+      assertEquals(capacity - fill, wrapper.writableBytes());
    }
 
    public void testPosition() throws Exception
    {
-      assertEquals(0, wrapper.position());
+      assertEquals(0, wrapper.writerIndex());
 
       byte[] bytes = randomBytes(128);
-      wrapper.putBytes(bytes);
+      wrapper.writeBytes(bytes);
 
-      assertEquals(bytes.length, wrapper.position());
+      assertEquals(bytes.length, wrapper.writerIndex());
 
-      wrapper.position(0);
-      assertEquals(0, wrapper.position());
+      wrapper.writerIndex(0);
+      assertEquals(0, wrapper.writerIndex());
    }
 
-   public void testLimit() throws Exception
-   {
-      assertEquals(wrapper.capacity(), wrapper.limit());
-
-      byte[] bytes = randomBytes(128);
-      wrapper.putBytes(bytes);
-
-      assertTrue(wrapper.limit() >= bytes.length);
-
-      wrapper.limit(128);
-      assertEquals(128, wrapper.limit());
-   }
-
-   public void testSlice() throws Exception
-   {
-      byte[] bytes = randomBytes(128);
-      wrapper.putBytes(bytes);
-
-      wrapper.position(0);
-      wrapper.limit(128);
-
-      MessagingBuffer slicedBuffer = wrapper.slice();
-      assertEquals(128, slicedBuffer.capacity());
-
-      byte[] slicedBytes = new byte[128];
-      slicedBuffer.getBytes(slicedBytes);
-
-      assertEqualsByteArrays(bytes, slicedBytes);
-   }
-
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------
@@ -407,20 +329,16 @@
 
    private String putAndGetNullableString(String nullableString) throws Exception
    {
-      wrapper.putNullableString(nullableString);
+      wrapper.writeNullableString(nullableString);
 
-      wrapper.flip();
-
-      return wrapper.getNullableString();
+      return wrapper.readNullableString();
    }
 
    private SimpleString putAndGetNullableSimpleString(SimpleString nullableSimpleString) throws Exception
    {
-      wrapper.putNullableSimpleString(nullableSimpleString);
+      wrapper.writeNullableSimpleString(nullableSimpleString);
 
-      wrapper.flip();
-
-      return wrapper.getNullableSimpleString();
+      return wrapper.readNullableSimpleString();
    }
 
    // Inner classes -------------------------------------------------

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/ByteBufferWrapperTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/ByteBufferWrapperTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/ByteBufferWrapperTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -18,13 +18,13 @@
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */ 
+ */
 
 package org.jboss.messaging.tests.unit.core.remoting.impl;
 
 import java.nio.ByteBuffer;
 
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.tests.unit.core.remoting.MessagingBufferTestBase;
 
@@ -48,13 +48,13 @@
    // Public --------------------------------------------------------
 
    // MessagingBufferTestBase overrides -----------------------------
-   
+
    @Override
    protected MessagingBuffer createBuffer()
    {
-      return new ByteBufferWrapper(ByteBuffer.allocate(512));
+      return ChannelBuffers.wrappedBuffer(ByteBuffer.allocate(512));
    }
-   
+
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Deleted: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/ExpandingMessagingBufferTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/ExpandingMessagingBufferTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/ExpandingMessagingBufferTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -1,64 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.messaging.tests.unit.core.remoting.impl;
-
-import org.jboss.messaging.core.remoting.impl.ExpandingMessagingBuffer;
-import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
-import org.jboss.messaging.tests.unit.core.remoting.MessagingBufferTestBase;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * @author <a href="mailto:tlee at redhat.com">Trustin Lee</a>
- *
- * @version <tt>$Revision$</tt>
- *
- */
-public class ExpandingMessagingBufferTest extends MessagingBufferTestBase
-{
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   // MessagingBufferTestBase overrides -----------------------------
-
-   @Override
-   protected MessagingBuffer createBuffer()
-   {
-      return new ExpandingMessagingBuffer(512);
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/ChannelBufferWrapper2Test.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/ChannelBufferWrapper2Test.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/ChannelBufferWrapper2Test.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -22,8 +22,8 @@
 
 package org.jboss.messaging.tests.unit.core.remoting.impl.netty;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
-import org.jboss.messaging.integration.transports.netty.ChannelBufferWrapper;
 import org.jboss.messaging.tests.unit.core.remoting.MessagingBufferTestBase;
 
 /**
@@ -52,7 +52,7 @@
    @Override
    protected MessagingBuffer createBuffer()
    {
-      return new ChannelBufferWrapper(512);
+      return ChannelBuffers.dynamicBuffer(512);
    }
 
    // Package protected ---------------------------------------------

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyAcceptorFactoryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyAcceptorFactoryTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyAcceptorFactoryTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -34,7 +34,7 @@
 
 /**
  *
- * A MinaAcceptorFactoryTest
+ * A NettyAcceptorFactoryTest
  *
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  *

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyConnectionTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyConnectionTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyConnectionTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -113,7 +113,7 @@
       final int size = 1234;
 
       MessagingBuffer buff = conn.createBuffer(size);
-      buff.putByte((byte) 0x00); // Netty buffer does lazy initialization.
+      buff.writeByte((byte) 0x00); // Netty buffer does lazy initialization.
       assertEquals(size, buff.capacity());
 
       EasyMock.verify(channel);

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerMessageImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerMessageImplTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerMessageImplTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -25,10 +25,8 @@
 import static org.jboss.messaging.tests.util.RandomUtil.randomByte;
 import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
 
-import java.nio.ByteBuffer;
-
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.message.Message;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.server.ServerMessage;
 import org.jboss.messaging.core.server.impl.ServerMessageImpl;
@@ -71,8 +69,7 @@
          {
             bytes[i] = randomByte();
          }
-         ByteBuffer bb = ByteBuffer.wrap(bytes);    
-         MessagingBuffer body = new ByteBufferWrapper(bb);      
+         MessagingBuffer body = ChannelBuffers.wrappedBuffer(bytes);      
          ServerMessageImpl message = new ServerMessageImpl(randomByte(), randomBoolean(), randomLong(),
                                          randomLong(), randomByte(), body);
          message.setDestination(new SimpleString("oasoas"));

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossBytesMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossBytesMessageTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossBytesMessageTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -17,19 +17,17 @@
 import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
 import static org.jboss.messaging.tests.util.RandomUtil.randomShort;
 import static org.jboss.messaging.tests.util.RandomUtil.randomString;
-import static org.jboss.messaging.tests.util.UnitTestCase.assertEqualsByteArrays;
 
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 
 import javax.jms.MessageEOFException;
 import javax.jms.MessageFormatException;
 
 import org.easymock.EasyMock;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.impl.ClientMessageImpl;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.jms.client.JBossBytesMessage;
 import org.jboss.messaging.tests.util.UnitTestCase;
@@ -55,9 +53,9 @@
    public void testForeignBytesMessage() throws Exception
    {
       ClientSession session = EasyMock.createNiceMock(ClientSession.class);
-      ByteBufferWrapper body = new ByteBufferWrapper(ByteBuffer.allocate(3000));
+      MessagingBuffer body = ChannelBuffers.dynamicBuffer(3000); 
       ClientMessage clientMessage = new ClientMessageImpl(JBossBytesMessage.TYPE, true, 0, System.currentTimeMillis(), (byte)4, body);
-      ByteBufferWrapper body2 = new ByteBufferWrapper(ByteBuffer.allocate(3000));
+      MessagingBuffer body2 = ChannelBuffers.dynamicBuffer(3000); 
       ClientMessage clientMessage2 = new ClientMessageImpl(JBossBytesMessage.TYPE, true, 0, System.currentTimeMillis(), (byte)4, body2);
       expect(session.createClientMessage(EasyMock.anyByte(), EasyMock.anyBoolean(), EasyMock.anyInt(), EasyMock.anyLong(), EasyMock.anyByte())).andReturn(clientMessage);
       expect(session.createClientMessage(EasyMock.anyByte(), EasyMock.anyBoolean(), EasyMock.anyInt(), EasyMock.anyLong(), EasyMock.anyByte())).andReturn(clientMessage2);
@@ -127,7 +125,7 @@
       JBossBytesMessage message = new JBossBytesMessage();
 
       MessagingBuffer body = message.getCoreMessage().getBody();
-      body.putBoolean(value);
+      body.writeBoolean(value);
       message.reset();
 
       assertEquals(value, message.readBoolean());
@@ -161,7 +159,7 @@
       JBossBytesMessage message = new JBossBytesMessage();
 
       MessagingBuffer body = message.getCoreMessage().getBody();
-      body.putByte(value);
+      body.writeByte(value);
       message.reset();
 
       assertEquals(value, message.readByte());
@@ -197,7 +195,7 @@
       JBossBytesMessage message = new JBossBytesMessage();
 
       MessagingBuffer body = message.getCoreMessage().getBody();
-      body.putBytes(value);
+      body.writeBytes(value);
       message.reset();
 
       byte[] v = new byte[value.length];
@@ -232,7 +230,7 @@
       JBossBytesMessage message = new JBossBytesMessage();
 
       MessagingBuffer body = message.getCoreMessage().getBody();
-      body.putShort(value);
+      body.writeShort(value);
       message.reset();
 
       assertEquals(value, message.readShort());
@@ -266,7 +264,7 @@
       JBossBytesMessage message = new JBossBytesMessage();
 
       MessagingBuffer body = message.getCoreMessage().getBody();
-      body.putChar(value);
+      body.writeChar(value);
       message.reset();
 
       assertEquals(value, message.readChar());
@@ -300,7 +298,7 @@
       JBossBytesMessage message = new JBossBytesMessage();
 
       MessagingBuffer body = message.getCoreMessage().getBody();
-      body.putInt(value);
+      body.writeInt(value);
       message.reset();
 
       assertEquals(value, message.readInt());
@@ -334,7 +332,7 @@
       JBossBytesMessage message = new JBossBytesMessage();
 
       MessagingBuffer body = message.getCoreMessage().getBody();
-      body.putLong(value);
+      body.writeLong(value);
       message.reset();
 
       assertEquals(value, message.readLong());
@@ -368,7 +366,7 @@
       JBossBytesMessage message = new JBossBytesMessage();
 
       MessagingBuffer body = message.getCoreMessage().getBody();
-      body.putFloat(value);
+      body.writeFloat(value);
       message.reset();
 
       assertEquals(value, message.readFloat());
@@ -402,7 +400,7 @@
       JBossBytesMessage message = new JBossBytesMessage();
 
       MessagingBuffer body = message.getCoreMessage().getBody();
-      body.putDouble(value);
+      body.writeDouble(value);
       message.reset();
 
       assertEquals(value, message.readDouble());
@@ -436,7 +434,7 @@
       JBossBytesMessage message = new JBossBytesMessage();
 
       MessagingBuffer body = message.getCoreMessage().getBody();
-      body.putUTF(value);
+      body.writeUTF(value);
       message.reset();
 
       assertEquals(value, message.readUTF());

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageConsumerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageConsumerTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageConsumerTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -365,7 +365,7 @@
       MessagingBuffer body = createStrictMock(MessagingBuffer.class);
       expect(clientMessage.getBody()).andStubReturn(body );
       expect(clientConsumer.receive(0)).andReturn(clientMessage );
-      body.rewind();
+      body.resetReaderIndex();
 
       replay(session, clientSession, clientConsumer, clientMessage, body);
 

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageProducerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageProducerTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageProducerTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -38,7 +38,6 @@
 import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
 import static org.jboss.messaging.tests.util.RandomUtil.randomString;
 
-import java.nio.ByteBuffer;
 import java.util.Vector;
 
 import javax.jms.DeliveryMode;
@@ -50,12 +49,13 @@
 import javax.jms.Topic;
 
 import org.easymock.EasyMock;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientProducer;
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.impl.ClientMessageImpl;
 import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.jms.JBossDestination;
 import org.jboss.messaging.jms.JBossQueue;
 import org.jboss.messaging.jms.JBossTopic;
@@ -396,7 +396,7 @@
       EasyMock.expect(jbConn.hasNoLocal()).andStubReturn(false);
       Message message = createStrictMock(Message.class);
       ClientSession session = EasyMock.createNiceMock(ClientSession.class);
-      ByteBufferWrapper body = new ByteBufferWrapper(ByteBuffer.allocate(1024));
+      MessagingBuffer body = ChannelBuffers.wrappedBuffer(new byte[1024]);
       ClientMessage clientMessage = new ClientMessageImpl(JBossMessage.TYPE, true, 0, System.currentTimeMillis(), (byte)4, body);
       expect(session.createClientMessage(EasyMock.anyByte(), EasyMock.anyBoolean(), EasyMock.anyInt(), EasyMock.anyLong(), EasyMock.anyByte())).andReturn(clientMessage);
       expect(clientProducer.isClosed()).andStubReturn(false);
@@ -436,7 +436,7 @@
       JBossConnection jbConn = createStrictMock(JBossConnection.class);
       EasyMock.expect(jbConn.getUID()).andReturn(randomSimpleString());
       EasyMock.expect(jbConn.hasNoLocal()).andStubReturn(false);
-      ByteBufferWrapper body = new ByteBufferWrapper(ByteBuffer.allocate(1024));
+      MessagingBuffer body = ChannelBuffers.wrappedBuffer(new byte[1024]);
       ClientMessage clientMessage = new ClientMessageImpl(JBossMessage.TYPE, true, 0, System.currentTimeMillis(), (byte)4, body);
       expect(clientSession.createClientMessage(EasyMock.anyByte(), EasyMock.anyBoolean(), EasyMock.anyInt(), EasyMock.anyLong(), EasyMock.anyByte())).andReturn(clientMessage);
       Message message = createStrictMock(Message.class);

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -37,7 +37,6 @@
 import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
 import static org.jboss.messaging.tests.util.RandomUtil.randomString;
 
-import java.nio.ByteBuffer;
 import java.util.Collections;
 
 import javax.jms.DeliveryMode;
@@ -46,12 +45,12 @@
 import javax.jms.MessageFormatException;
 
 import org.easymock.EasyMock;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.impl.ClientMessageImpl;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.message.impl.MessageImpl;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.jms.client.JBossBytesMessage;
 import org.jboss.messaging.jms.client.JBossMapMessage;
@@ -129,7 +128,7 @@
    {
       Message foreignMessage = createNiceMock(Message.class);
       ClientSession session = EasyMock.createNiceMock(ClientSession.class);
-      ByteBufferWrapper body = new ByteBufferWrapper(ByteBuffer.allocate(1024));
+      MessagingBuffer body = ChannelBuffers.wrappedBuffer(new byte[1024]);
       ClientMessage clientMessage = new ClientMessageImpl(JBossMessage.TYPE, true, 0, System.currentTimeMillis(), (byte)4, body);
       expect(session.createClientMessage(EasyMock.anyByte(), EasyMock.anyBoolean(), EasyMock.anyInt(), EasyMock.anyLong(), EasyMock.anyByte())).andReturn(clientMessage);
       expect(foreignMessage.getJMSDeliveryMode()).andReturn(

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossObjectMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossObjectMessageTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossObjectMessageTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -27,22 +27,20 @@
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.verify;
 import static org.jboss.messaging.tests.util.RandomUtil.randomString;
-import static org.jboss.messaging.tests.util.UnitTestCase.assertEqualsByteArrays;
 
 import java.io.ByteArrayOutputStream;
 import java.io.ObjectOutputStream;
 import java.io.Serializable;
-import java.nio.ByteBuffer;
 import java.util.Collections;
 
 import javax.jms.DeliveryMode;
 import javax.jms.ObjectMessage;
 
 import org.easymock.EasyMock;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.impl.ClientMessageImpl;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.jms.client.JBossObjectMessage;
 import org.jboss.messaging.tests.util.UnitTestCase;
@@ -79,7 +77,7 @@
    {
       ObjectMessage foreignMessage = createNiceMock(ObjectMessage.class);
       ClientSession session = EasyMock.createNiceMock(ClientSession.class);
-      ByteBufferWrapper body = new ByteBufferWrapper(ByteBuffer.allocate(1024));
+      MessagingBuffer body = ChannelBuffers.wrappedBuffer(new byte[1024]);
       ClientMessage clientMessage = new ClientMessageImpl(JBossObjectMessage.TYPE, true, 0, System.currentTimeMillis(), (byte)4, body);
       expect(session.createClientMessage(EasyMock.anyByte(), EasyMock.anyBoolean(), EasyMock.anyInt(), EasyMock.anyLong(), EasyMock.anyByte())).andReturn(clientMessage);
       expect(foreignMessage.getJMSDeliveryMode()).andReturn(DeliveryMode.NON_PERSISTENT);
@@ -130,9 +128,9 @@
       msg.doBeforeSend();
 
       MessagingBuffer body = msg.getCoreMessage().getBody();
-      assertEquals(data.length, body.getInt());
+      assertEquals(data.length, body.readInt());
       byte[] bytes = new byte[data.length];
-      body.getBytes(bytes);
+      body.readBytes(bytes);
 
       assertEqualsByteArrays(data, bytes);
    }
@@ -147,9 +145,8 @@
       
       JBossObjectMessage message = new JBossObjectMessage();
       MessagingBuffer body = message.getCoreMessage().getBody();
-      body.putInt(data.length);
-      body.putBytes(data);
-      body.flip();
+      body.writeInt(data.length);
+      body.writeBytes(data);
       
       message.doBeforeReceive();
       

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossTextMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossTextMessageTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossTextMessageTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -28,17 +28,16 @@
 import static org.easymock.EasyMock.verify;
 import static org.jboss.messaging.tests.util.RandomUtil.randomString;
 
-import java.nio.ByteBuffer;
 import java.util.Collections;
 
 import javax.jms.DeliveryMode;
 import javax.jms.TextMessage;
 
 import org.easymock.EasyMock;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.impl.ClientMessageImpl;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.jms.client.JBossTextMessage;
 import org.jboss.messaging.tests.util.UnitTestCase;
@@ -75,7 +74,7 @@
    {
       TextMessage foreignMessage = createNiceMock(TextMessage.class);
       ClientSession session = EasyMock.createNiceMock(ClientSession.class);
-      ByteBufferWrapper body = new ByteBufferWrapper(ByteBuffer.allocate(1024));
+      MessagingBuffer body = ChannelBuffers.wrappedBuffer(new byte[1024]);
       ClientMessage clientMessage = new ClientMessageImpl(JBossTextMessage.TYPE, true, 0, System.currentTimeMillis(), (byte)4, body);
       expect(session.createClientMessage(EasyMock.anyByte(), EasyMock.anyBoolean(), EasyMock.anyInt(), EasyMock.anyLong(), EasyMock.anyByte())).andReturn(clientMessage);  
       expect(foreignMessage.getJMSDeliveryMode()).andReturn(DeliveryMode.NON_PERSISTENT);
@@ -120,7 +119,7 @@
       msg.doBeforeSend();
 
       MessagingBuffer body = msg.getCoreMessage().getBody();
-      String s = body.getNullableString();
+      String s = body.readNullableString();
       assertEquals(text, s);
    }
    
@@ -129,8 +128,7 @@
       JBossTextMessage msg = new JBossTextMessage();
       assertNull(msg.getText());
       MessagingBuffer body = msg.getCoreMessage().getBody();
-      body.putNullableString(text);
-      body.flip();
+      body.writeNullableString(text);
       
       msg.doBeforeReceive();
       

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/util/TypedPropertiesTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/util/TypedPropertiesTest.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/util/TypedPropertiesTest.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -35,8 +35,8 @@
 
 import java.util.Iterator;
 
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
-import org.jboss.messaging.integration.transports.mina.IoBufferWrapper;
 import org.jboss.messaging.tests.util.UnitTestCase;
 import org.jboss.messaging.utils.SimpleString;
 import org.jboss.messaging.utils.TypedProperties;
@@ -294,38 +294,35 @@
       SimpleString keyToRemove = randomSimpleString();
       props.putStringProperty(keyToRemove, randomSimpleString());
 
-      MessagingBuffer buffer = new IoBufferWrapper(1024);
+      MessagingBuffer buffer = ChannelBuffers.dynamicBuffer(1024); 
       props.encode(buffer);
       
-      assertEquals(props.getEncodeSize(), buffer.position());
+      assertEquals(props.getEncodeSize(), buffer.writerIndex());
 
-      buffer.flip();
-
       TypedProperties decodedProps = new TypedProperties();
       decodedProps.decode(buffer);
 
       assertEqualsTypeProperties(props, decodedProps);
+
+      buffer.clear();
       
-      buffer.flip();
       
       // After removing a property, you should still be able to encode the Property
       props.removeProperty(keyToRemove);
       props.encode(buffer);
       
-      assertEquals(props.getEncodeSize(), buffer.position());
+      assertEquals(props.getEncodeSize(), buffer.writerIndex());
    }
    
    public void testEncodeDecodeEmpty() throws Exception
    {
       TypedProperties emptyProps = new TypedProperties();
 
-      MessagingBuffer buffer = new IoBufferWrapper(1024);
+      MessagingBuffer buffer = ChannelBuffers.dynamicBuffer(1024); 
       emptyProps.encode(buffer);
       
-      assertEquals(props.getEncodeSize(), buffer.position());
+      assertEquals(props.getEncodeSize(), buffer.writerIndex());
 
-      buffer.flip();
-
       TypedProperties decodedProps = new TypedProperties();
       decodedProps.decode(buffer);
 

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/util/UTF8Test.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/util/UTF8Test.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/util/UTF8Test.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -28,10 +28,8 @@
 import java.io.DataOutputStream;
 import java.nio.ByteBuffer;
 
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
-import org.jboss.messaging.core.remoting.impl.ExpandingMessagingBuffer;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
-import org.jboss.messaging.integration.transports.netty.ChannelBufferWrapper;
 import org.jboss.messaging.tests.util.RandomUtil;
 import org.jboss.messaging.tests.util.UnitTestCase;
 import org.jboss.messaging.utils.DataConstants;
@@ -52,7 +50,7 @@
 
    public void testValidateUTF() throws Exception
    {
-      ChannelBufferWrapper buffer = new ChannelBufferWrapper(10 * 1024);
+      MessagingBuffer buffer = ChannelBuffers.buffer(60 * 1024); 
 
       byte[] bytes = new byte[20000];
 
@@ -63,8 +61,6 @@
 
       UTF8Util.saveUTF(buffer, str);
 
-      buffer.rewind();
-
       String newStr = UTF8Util.readUTF(buffer);
 
       assertEquals(str, newStr);
@@ -84,11 +80,11 @@
          String str = new String(bytes);
          
          // The maximum size the encoded UTF string would reach is str.length * 3 (look at the UTF8 implementation)
-         testValidateUTFOnDataInputStream(str, new ByteBufferWrapper(ByteBuffer.allocate(str.length() * 3 + DataConstants.SIZE_SHORT)));
+         testValidateUTFOnDataInputStream(str, ChannelBuffers.wrappedBuffer(ByteBuffer.allocate(str.length() * 3 + DataConstants.SIZE_SHORT))); 
 
-         testValidateUTFOnDataInputStream(str, new ExpandingMessagingBuffer(100));
+         testValidateUTFOnDataInputStream(str, ChannelBuffers.dynamicBuffer(100));
 
-         testValidateUTFOnDataInputStream(str, new ChannelBufferWrapper(100 * 1024));
+         testValidateUTFOnDataInputStream(str, ChannelBuffers.buffer(100 * 1024));
       }
    }
 
@@ -107,13 +103,10 @@
 
       outData.writeUTF(str);
 
-      ByteBuffer buffer = ByteBuffer.wrap(byteOut.toByteArray());
-      wrap = new ByteBufferWrapper(buffer);
+      MessagingBuffer buffer = ChannelBuffers.wrappedBuffer(byteOut.toByteArray());
 
-      wrap.rewind();
+      newStr = UTF8Util.readUTF(buffer);
 
-      newStr = UTF8Util.readUTF(wrap);
-
       assertEquals(str, newStr);
    }
 
@@ -129,7 +122,7 @@
 
       String str = new String(chars);
 
-      ChannelBufferWrapper buffer = new ChannelBufferWrapper(0xffff + 4);
+      MessagingBuffer buffer = ChannelBuffers.buffer(0xffff + 4);
 
       try
       {
@@ -140,7 +133,7 @@
       {
       }
 
-      assertEquals(0, buffer.position());
+      assertEquals("A buffer was supposed to be untouched since the string was too big", 0, buffer.writerIndex());
 
       chars = new char[25000];
 
@@ -160,7 +153,7 @@
       {
       }
 
-      assertEquals(0, buffer.position());
+      assertEquals("A buffer was supposed to be untouched since the string was too big", 0, buffer.writerIndex());
 
       // Testing a string right on the limit
       chars = new char[0xffff];
@@ -174,10 +167,8 @@
 
       UTF8Util.saveUTF(buffer, str);
 
-      assertEquals(0xffff + DataConstants.SIZE_SHORT, buffer.position());
+      assertEquals(0xffff + DataConstants.SIZE_SHORT, buffer.writerIndex());
 
-      buffer.rewind();
-
       String newStr = UTF8Util.readUTF(buffer);
 
       assertEquals(str, newStr);

Modified: trunk/tests/src/org/jboss/messaging/tests/util/ServiceTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/util/ServiceTestBase.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/util/ServiceTestBase.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -252,8 +252,8 @@
    
    public String getTextMessage(ClientMessage m)
    {
-      m.getBody().rewind();
-      return m.getBody().getString();
+      m.getBody().resetReaderIndex();
+      return m.getBody().readString();
    }
 
    protected ClientMessage createTextMessage(final ClientSession session, final String s, final boolean durable)
@@ -263,8 +263,7 @@
                                                           0,
                                                           System.currentTimeMillis(),
                                                           (byte)1);
-      message.getBody().putString(s);
-      message.getBody().flip();
+      message.getBody().writeString(s);
       return message;
    }
 
@@ -275,8 +274,7 @@
                                                           0,
                                                           System.currentTimeMillis(),
                                                           (byte)1);
-      message.getBody().putBytes(b);
-      message.getBody().flip();
+      message.getBody().writeBytes(b);
       return message;
    }
 

Modified: trunk/tests/src/org/jboss/messaging/tests/util/UnitTestCase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/util/UnitTestCase.java	2009-02-27 12:20:10 UTC (rev 5947)
+++ trunk/tests/src/org/jboss/messaging/tests/util/UnitTestCase.java	2009-02-27 20:23:47 UTC (rev 5948)
@@ -40,12 +40,12 @@
 
 import org.easymock.EasyMock;
 import org.easymock.IArgumentMatcher;
+import org.jboss.messaging.core.buffers.ChannelBuffers;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.journal.EncodingSupport;
 import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
 import org.jboss.messaging.core.remoting.impl.invm.InVMRegistry;
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
 import org.jboss.messaging.core.server.MessageReference;
@@ -480,9 +480,10 @@
                return false;
             }
 
-            byte[] compareArray = new byte[size];
+            final byte[] compareArray = new byte[size];
 
-            MessagingBuffer buffer = new ByteBufferWrapper(ByteBuffer.wrap(compareArray));
+            MessagingBuffer buffer = ChannelBuffers.wrappedBuffer(compareArray);
+            buffer.clear();
             encoding.encode(buffer);
 
             for (int i = 0; i < expectedArray.length; i++)
@@ -595,20 +596,11 @@
                                                     0,
                                                     System.currentTimeMillis(),
                                                     (byte)4,
-                                                    new ByteBufferWrapper(ByteBuffer.allocateDirect(1024)));
+                                                    ChannelBuffers.dynamicBuffer(1024));
 
       message.setMessageID(id);
 
-      byte[] bytes = new byte[1024];
-
-      for (int i = 0; i < 1024; i++)
-      {
-         bytes[i] = (byte)i;
-      }
-
-      // message.setPayload(bytes);
-
-      message.getBody().putString(UUID.randomUUID().toString());
+      message.getBody().writeString(UUID.randomUUID().toString());
       
       message.setDestination(new SimpleString("foo"));
 
@@ -639,8 +631,7 @@
                                                                 0,
                                                                 System.currentTimeMillis(),
                                                                 (byte)1);
-      message.getBody().putString(s);
-      message.getBody().flip();
+      message.getBody().writeString(s);
       return message;
    }
    // Private -------------------------------------------------------




More information about the jboss-cvs-commits mailing list