activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gtu...@apache.org
Subject svn commit: r739008 [1/7] - in /activemq/trunk/activemq-core: ./ src/main/java/org/apache/activemq/ src/main/java/org/apache/activemq/broker/ src/main/java/org/apache/activemq/broker/region/ src/main/java/org/apache/activemq/command/ src/main/java/org/...
Date Thu, 29 Jan 2009 20:51:13 GMT
Author: gtully
Date: Thu Jan 29 20:51:09 2009
New Revision: 739008

URL: http://svn.apache.org/viewvc?rev=739008&view=rev
Log:
resolve https://issues.apache.org/activemq/browse/AMQ-2087 - add a long attribute to RemoveInfo where the last delivered broker sequence id is passed back to the broker, prefetched messages with ids > than this value now don't get their redelivery count incremented, requires wireformat version increment and Destination api change

Added:
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQBlobMessageMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQBytesMessageMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQDestinationMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQMapMessageMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQMessageMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQObjectMessageMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQQueueMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQStreamMessageMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempDestinationMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempQueueMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempTopicMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTextMessageMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTopicMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/BaseCommandMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/BaseDataStreamMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/BrokerIdMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/BrokerInfoMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ConnectionControlMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ConnectionErrorMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ConnectionIdMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ConnectionInfoMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ConsumerControlMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ConsumerIdMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ConsumerInfoMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ControlCommandMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/DataArrayResponseMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/DataResponseMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/DestinationInfoMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/DiscoveryEventMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ExceptionResponseMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/FlushCommandMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/IntegerResponseMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/JournalQueueAckMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/JournalTopicAckMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/JournalTraceMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/JournalTransactionMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/KeepAliveInfoMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/LastPartialCommandMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/LocalTransactionIdMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/MarshallerFactory.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/MessageAckMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/MessageDispatchMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/MessageDispatchNotificationMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/MessageIdMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/MessageMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/MessagePullMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/NetworkBridgeFilterMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/PartialCommandMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ProducerAckMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ProducerIdMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ProducerInfoMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/RemoveInfoMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/RemoveSubscriptionInfoMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ReplayCommandMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ResponseMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/SessionIdMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/SessionInfoMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ShutdownInfoMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/SubscriptionInfoMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/TransactionIdMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/TransactionInfoMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/WireFormatInfoMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/XATransactionIdMarshaller.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/BaseCommandTestSupport.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/BrokerIdTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/BrokerInfoTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ConnectionControlTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ConnectionErrorTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ConnectionIdTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ConnectionInfoTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ConsumerControlTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ConsumerIdTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ConsumerInfoTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ControlCommandTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/DataArrayResponseTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/DataResponseTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/DestinationInfoTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/DiscoveryEventTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ExceptionResponseTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/FlushCommandTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/IntegerResponseTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/JournalQueueAckTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/JournalTopicAckTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/JournalTraceTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/JournalTransactionTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/KeepAliveInfoTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/LastPartialCommandTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/LocalTransactionIdTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/MessageAckTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/MessageDispatchNotificationTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/MessageDispatchTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/MessageIdTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/MessagePullTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/MessageTestSupport.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/NetworkBridgeFilterTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/PartialCommandTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ProducerAckTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ProducerIdTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ProducerInfoTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/RemoveInfoTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/RemoveSubscriptionInfoTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ReplayCommandTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ResponseTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/SessionIdTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/SessionInfoTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/ShutdownInfoTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/SubscriptionInfoTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/TransactionIdTestSupport.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/TransactionInfoTest.java   (with props)
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v5/XATransactionIdTest.java   (with props)
Modified:
    activemq/trunk/activemq-core/pom.xml
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQMessageConsumer.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Destination.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/DestinationFilter.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/CommandTypes.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ConsumerInfo.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/RemoveInfo.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/state/CommandVisitor.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/state/CommandVisitorAdapter.java
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/JmsQueueTransactionTest.java
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/JmsRedeliveredTest.java
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/JmsRollbackRedeliveryTest.java
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/MessageGroupDelayedTest.java

Modified: activemq/trunk/activemq-core/pom.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/pom.xml?rev=739008&r1=739007&r2=739008&view=diff
==============================================================================
--- activemq/trunk/activemq-core/pom.xml (original)
+++ activemq/trunk/activemq-core/pom.xml Thu Jan 29 20:51:09 2009
@@ -659,7 +659,7 @@
                   <tasks>
                     <echo>Running OpenWire Generator</echo>
                     <taskdef name="generate" classname="org.apache.activemq.openwire.tool.JavaGeneratorTask" classpathref="maven.compile.classpath" />
-                    <generate version="4" basedir="${basedir}" />
+                    <generate version="5" basedir="${basedir}" />
                   </tasks>
                 </configuration>
                 <goals>

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java?rev=739008&r1=739007&r2=739008&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java Thu Jan 29 20:51:09 2009
@@ -77,6 +77,7 @@
 import org.apache.activemq.command.MessageId;
 import org.apache.activemq.command.ProducerAck;
 import org.apache.activemq.command.ProducerId;
+import org.apache.activemq.command.RemoveInfo;
 import org.apache.activemq.command.RemoveSubscriptionInfo;
 import org.apache.activemq.command.Response;
 import org.apache.activemq.command.SessionId;
@@ -606,9 +607,11 @@
                         advisoryConsumer = null;
                     }
 
+                    long lastDeliveredSequenceId = 0;
                     for (Iterator<ActiveMQSession> i = this.sessions.iterator(); i.hasNext();) {
                         ActiveMQSession s = i.next();
                         s.dispose();
+                        lastDeliveredSequenceId = Math.max(lastDeliveredSequenceId, s.getLastDeliveredSequenceId());
                     }
                     for (Iterator<ActiveMQConnectionConsumer> i = this.connectionConsumers.iterator(); i.hasNext();) {
                         ActiveMQConnectionConsumer c = i.next();
@@ -627,6 +630,8 @@
                         // If we announced ourselfs to the broker.. Try to let
                         // the broker
                         // know that the connection is being shutdown.
+                        RemoveInfo removeCommand = info.createRemoveCommand();
+                        removeCommand.setLastDeliveredSequenceId(lastDeliveredSequenceId);
                         doSyncSendPacket(info.createRemoveCommand(), closeTimeout);
                         doAsyncSendPacket(new ShutdownInfo());
                     }

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQMessageConsumer.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQMessageConsumer.java?rev=739008&r1=739007&r2=739008&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQMessageConsumer.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQMessageConsumer.java Thu Jan 29 20:51:09 2009
@@ -42,6 +42,7 @@
 import org.apache.activemq.command.MessageDispatch;
 import org.apache.activemq.command.MessageId;
 import org.apache.activemq.command.MessagePull;
+import org.apache.activemq.command.RemoveInfo;
 import org.apache.activemq.management.JMSConsumerStatsImpl;
 import org.apache.activemq.management.StatsCapable;
 import org.apache.activemq.management.StatsImpl;
@@ -102,7 +103,7 @@
 
     // The are the messages that were delivered to the consumer but that have
     // not been acknowledged. It's kept in reverse order since we
-    // Always walk list in reverse order. Only used when session is client ack.
+    // Always walk list in reverse order.
     private final LinkedList<MessageDispatch> deliveredMessages = new LinkedList<MessageDispatch>();
     private int deliveredCounter;
     private int additionalWindowSize;
@@ -126,6 +127,7 @@
     private boolean clearDispatchList;
 
     private MessageAck pendingAck;
+    private long lastDeliveredSequenceId;
 
     /**
      * Create a MessageConsumer
@@ -608,7 +610,9 @@
 
     void doClose() throws JMSException {
         dispose();
-        this.session.asyncSendPacket(info.createRemoveCommand());
+        RemoveInfo removeCommand = info.createRemoveCommand();
+        removeCommand.setLastDeliveredSequenceId(lastDeliveredSequenceId);
+        this.session.asyncSendPacket(removeCommand);
     }
     
     void clearMessagesInProgress() {
@@ -661,16 +665,8 @@
     public void dispose() throws JMSException {
         if (!unconsumedMessages.isClosed()) {
             
-//            if ( !deliveredMessages.isEmpty() ) {
-//                // We need to let the broker know how many times that message
-//                // was rolled back.
-//                rollbackCounter++;
-//                MessageDispatch lastMd = deliveredMessages.get(0);
-//            }
-
             // Do we have any acks we need to send out before closing?
             // Ack any delivered messages now.
-            // only processes optimized acknowledgements
             if (!session.isTransacted()) { 
                 deliverAcks();
                 if (session.isDupsOkAcknowledge()) {
@@ -751,6 +747,7 @@
 
     private void beforeMessageIsConsumed(MessageDispatch md) throws JMSException {
         md.setDeliverySequenceId(session.getNextDeliveryId());
+        lastDeliveredSequenceId = md.getMessage().getMessageId().getBrokerSequenceId();
         if (!session.isDupsOkAcknowledge()) {
             synchronized(deliveredMessages) {
                 deliveredMessages.addFirst(md);
@@ -1131,4 +1128,8 @@
         return info.getDestination().equals(destination);
     }
 
+    public long getLastDeliveredSequenceId() {
+        return lastDeliveredSequenceId;
+    }
+
 }

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java?rev=739008&r1=739007&r2=739008&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java Thu Jan 29 20:51:09 2009
@@ -176,6 +176,7 @@
     private DeliveryListener deliveryListener;
     private MessageTransformer transformer;
     private BlobTransferPolicy blobTransferPolicy;
+    private long lastDeliveredSequenceId;
 
     /**
      * Construct the Session
@@ -580,7 +581,9 @@
 
     private void doClose() throws JMSException {
         dispose();
-        connection.asyncSendPacket(info.createRemoveCommand());
+        RemoveInfo removeCommand = info.createRemoveCommand();
+        removeCommand.setLastDeliveredSequenceId(lastDeliveredSequenceId);
+        connection.asyncSendPacket(removeCommand);
     }
 
     void clearMessagesInProgress() {
@@ -607,6 +610,7 @@
                 for (Iterator<ActiveMQMessageConsumer> iter = consumers.iterator(); iter.hasNext();) {
                     ActiveMQMessageConsumer consumer = iter.next();
                     consumer.dispose();
+                    lastDeliveredSequenceId = Math.max(lastDeliveredSequenceId, consumer.getLastDeliveredSequenceId());
                 }
                 consumers.clear();
 
@@ -1937,6 +1941,15 @@
         return false;
     }
     
+    /**
+     * highest sequence id of the last message delivered by this session.
+     * Passed to the broker in the close command, maintained by dispose()
+     * @return lastDeliveredSequenceId
+     */
+    public long getLastDeliveredSequenceId() {
+        return lastDeliveredSequenceId;
+    }
+    
     protected void sendAck(MessageAck ack) throws JMSException {
         sendAck(ack,false);
     }

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java?rev=739008&r1=739007&r2=739008&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java Thu Jan 29 20:51:09 2009
@@ -550,7 +550,7 @@
         return null;
     }
 
-    public Response processRemoveConsumer(ConsumerId id) throws Exception {
+    public Response processRemoveConsumer(ConsumerId id, long lastDeliveredSequenceId) throws Exception {
         SessionId sessionId = id.getParentId();
         ConnectionId connectionId = sessionId.getParentId();
         TransportConnectionState cs = lookupConnectionState(connectionId);
@@ -564,6 +564,8 @@
         if (consumerState == null) {
             throw new IllegalStateException("Cannot remove a consumer that had not been registered: " + id);
         }
+        ConsumerInfo info = consumerState.getInfo();
+        info.setLastDeliveredSequenceId(lastDeliveredSequenceId);
         broker.removeConsumer(cs.getContext(), consumerState.getInfo());
         removeConsumerBrokerExchange(id);
         return null;
@@ -585,7 +587,7 @@
         return null;
     }
 
-    public Response processRemoveSession(SessionId id) throws Exception {
+    public Response processRemoveSession(SessionId id, long lastDeliveredSequenceId) throws Exception {
         ConnectionId connectionId = id.getParentId();
         TransportConnectionState cs = lookupConnectionState(connectionId);
         SessionState session = cs.getSessionState(id);
@@ -599,7 +601,7 @@
         for (Iterator iter = session.getConsumerIds().iterator(); iter.hasNext();) {
             ConsumerId consumerId = (ConsumerId)iter.next();
             try {
-                processRemoveConsumer(consumerId);
+                processRemoveConsumer(consumerId, lastDeliveredSequenceId);
             } catch (Throwable e) {
                 LOG.warn("Failed to remove consumer: " + consumerId + ". Reason: " + e, e);
             }
@@ -693,7 +695,7 @@
         return null;
     }
 
-    public synchronized Response processRemoveConnection(ConnectionId id) throws InterruptedException {
+    public synchronized Response processRemoveConnection(ConnectionId id, long lastDeliveredSequenceId) throws InterruptedException {
         TransportConnectionState cs = lookupConnectionState(id);
         if (cs != null) {
             // Don't allow things to be added to the connection state while we are
@@ -704,7 +706,7 @@
             for (Iterator iter = cs.getSessionIds().iterator(); iter.hasNext();) {
                 SessionId sessionId = (SessionId)iter.next();
                 try {
-                    processRemoveSession(sessionId);
+                    processRemoveSession(sessionId, lastDeliveredSequenceId);
                 } catch (Throwable e) {
                     SERVICELOG.warn("Failed to remove session " + sessionId, e);
                 }
@@ -999,7 +1001,7 @@
                 cs.getContext().getStopping().set(true);
                 try {
                     LOG.debug("Cleaning up connection resources: " + getRemoteAddress());
-                    processRemoveConnection(cs.getInfo().getConnectionId());
+                    processRemoveConnection(cs.getInfo().getConnectionId(), 0l);
                 } catch (Throwable ignore) {
                     ignore.printStackTrace();
                 }

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java?rev=739008&r1=739007&r2=739008&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java Thu Jan 29 20:51:09 2009
@@ -182,7 +182,7 @@
                 for (Iterator<Subscription> iter = subscriptions.values().iterator(); iter.hasNext();) {
                     Subscription sub = iter.next();
                     if (sub.matches(destination)) {
-                        dest.removeSubscription(context, sub);
+                        dest.removeSubscription(context, sub, 0l);
                     }
                 }
                 destinationMap.removeAll(destination);
@@ -325,7 +325,7 @@
                 }
             }
             for(Destination dest:removeList) {
-              dest.removeSubscription(context, sub);
+              dest.removeSubscription(context, sub, info.getLastDeliveredSequenceId());
             }
 
             destroySubscription(sub);

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Destination.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Destination.java?rev=739008&r1=739007&r2=739008&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Destination.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Destination.java Thu Jan 29 20:51:09 2009
@@ -25,6 +25,7 @@
 import org.apache.activemq.broker.region.policy.DeadLetterStrategy;
 import org.apache.activemq.broker.region.policy.SharedDeadLetterStrategy;
 import org.apache.activemq.command.ActiveMQDestination;
+import org.apache.activemq.command.ConsumerInfo;
 import org.apache.activemq.command.Message;
 import org.apache.activemq.command.MessageAck;
 import org.apache.activemq.command.ProducerInfo;
@@ -41,7 +42,7 @@
     public static final DeadLetterStrategy DEFAULT_DEAD_LETTER_STRATEGY = new SharedDeadLetterStrategy();
     void addSubscription(ConnectionContext context, Subscription sub) throws Exception;
 
-    void removeSubscription(ConnectionContext context, Subscription sub) throws Exception;
+    void removeSubscription(ConnectionContext context, Subscription sub, long lastDeliveredSequenceId) throws Exception;
     
     void addProducer(ConnectionContext context, ProducerInfo info) throws Exception;
 

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/DestinationFilter.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/DestinationFilter.java?rev=739008&r1=739007&r2=739008&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/DestinationFilter.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/DestinationFilter.java Thu Jan 29 20:51:09 2009
@@ -85,8 +85,8 @@
         return next.getMemoryUsage();
     }
 
-    public void removeSubscription(ConnectionContext context, Subscription sub) throws Exception {
-        next.removeSubscription(context, sub);
+    public void removeSubscription(ConnectionContext context, Subscription sub, long lastDeliveredSequenceId) throws Exception {
+        next.removeSubscription(context, sub, lastDeliveredSequenceId);
     }
 
     public void send(ProducerBrokerExchange context, Message messageSend) throws Exception {

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java?rev=739008&r1=739007&r2=739008&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java Thu Jan 29 20:51:09 2009
@@ -280,7 +280,7 @@
         }
     }
 
-    public void removeSubscription(ConnectionContext context, Subscription sub)
+    public void removeSubscription(ConnectionContext context, Subscription sub, long lastDeiveredSequenceId)
             throws Exception {
         destinationStatistics.getConsumers().decrement();
         // synchronize with dispatch method so that no new messages are sent
@@ -316,7 +316,10 @@
                     QueueMessageReference qmr = (QueueMessageReference)ref;
                     if( qmr.getLockOwner()==sub ) {
                         qmr.unlock();
-                        qmr.incrementRedeliveryCounter();
+                        // only increment redelivery if it was delivered or we have no delivery information
+                        if (lastDeiveredSequenceId == 0 || qmr.getMessageId().getBrokerSequenceId() <= lastDeiveredSequenceId) {
+                            qmr.incrementRedeliveryCounter();
+                        }
                     }
                     list.add(qmr);
                 }

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java?rev=739008&r1=739007&r2=739008&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java Thu Jan 29 20:51:09 2009
@@ -153,7 +153,7 @@
         }
     }
 
-    public void removeSubscription(ConnectionContext context, Subscription sub) throws Exception {
+    public void removeSubscription(ConnectionContext context, Subscription sub, long lastDeliveredSequenceId) throws Exception {
         if (!sub.getConsumerInfo().isDurable()) {
             destinationStatistics.getConsumers().decrement();
             synchronized (consumers) {

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/CommandTypes.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/CommandTypes.java?rev=739008&r1=739007&r2=739008&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/CommandTypes.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/CommandTypes.java Thu Jan 29 20:51:09 2009
@@ -24,7 +24,7 @@
 public interface CommandTypes {
 
     // What is the latest version of the openwire protocol
-    byte PROTOCOL_VERSION = 4;
+    byte PROTOCOL_VERSION = 5;
 
     // A marshaling layer can use this type to specify a null object.
     byte NULL = 0;

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ConsumerInfo.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ConsumerInfo.java?rev=739008&r1=739007&r2=739008&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ConsumerInfo.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ConsumerInfo.java Thu Jan 29 20:51:09 2009
@@ -59,6 +59,10 @@
     protected transient boolean networkSubscription; // this subscription
     protected transient List<ConsumerId> networkConsumerIds; // the original consumerId
 
+    // not marshalled, populated from RemoveInfo, the last message delivered, used
+    // to suppress redelivery on prefetched messages after close
+    private transient long lastDeliveredSequenceId;
+
     // originated from a
     // network connection
 
@@ -456,4 +460,12 @@
         }
     }
 
+    public void setLastDeliveredSequenceId(long lastDeliveredSequenceId) {
+        this.lastDeliveredSequenceId  = lastDeliveredSequenceId;
+    }
+    
+    public long getLastDeliveredSequenceId() {
+        return lastDeliveredSequenceId;
+    }
+
 }

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/RemoveInfo.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/RemoveInfo.java?rev=739008&r1=739007&r2=739008&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/RemoveInfo.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/RemoveInfo.java Thu Jan 29 20:51:09 2009
@@ -31,6 +31,7 @@
     public static final byte DATA_STRUCTURE_TYPE = CommandTypes.REMOVE_INFO;
 
     protected DataStructure objectId;
+    protected long lastDeliveredSequenceId;
 
     public RemoveInfo() {
     }
@@ -54,14 +55,25 @@
         this.objectId = objectId;
     }
 
+    /**
+     * @openwire:property version=5 cache=false
+     */
+    public long getLastDeliveredSequenceId() {
+        return lastDeliveredSequenceId;
+    }
+
+    public void setLastDeliveredSequenceId(long lastDeliveredSequenceId) {
+        this.lastDeliveredSequenceId = lastDeliveredSequenceId;
+    }
+
     public Response visit(CommandVisitor visitor) throws Exception {
         switch (objectId.getDataStructureType()) {
         case ConnectionId.DATA_STRUCTURE_TYPE:
-            return visitor.processRemoveConnection((ConnectionId)objectId);
+            return visitor.processRemoveConnection((ConnectionId)objectId, lastDeliveredSequenceId);
         case SessionId.DATA_STRUCTURE_TYPE:
-            return visitor.processRemoveSession((SessionId)objectId);
+            return visitor.processRemoveSession((SessionId)objectId, lastDeliveredSequenceId);
         case ConsumerId.DATA_STRUCTURE_TYPE:
-            return visitor.processRemoveConsumer((ConsumerId)objectId);
+            return visitor.processRemoveConsumer((ConsumerId)objectId, lastDeliveredSequenceId);
         case ProducerId.DATA_STRUCTURE_TYPE:
             return visitor.processRemoveProducer((ProducerId)objectId);
         default:

Added: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQBlobMessageMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQBlobMessageMarshaller.java?rev=739008&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQBlobMessageMarshaller.java (added)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQBlobMessageMarshaller.java Thu Jan 29 20:51:09 2009
@@ -0,0 +1,139 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.openwire.v5;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQBlobMessageMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ *        if you need to make a change, please see the modify the groovy scripts in the
+ *        under src/gram/script and then use maven openwire:generate to regenerate 
+ *        this file.
+ *
+ * @version $Revision$
+ */
+public class ActiveMQBlobMessageMarshaller extends ActiveMQMessageMarshaller {
+
+    /**
+     * Return the type of Data Structure we marshal
+     * @return short representation of the type data structure
+     */
+    public byte getDataStructureType() {
+        return ActiveMQBlobMessage.DATA_STRUCTURE_TYPE;
+    }
+    
+    /**
+     * @return a new object instance
+     */
+    public DataStructure createObject() {
+        return new ActiveMQBlobMessage();
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+        super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+        ActiveMQBlobMessage info = (ActiveMQBlobMessage)o;
+        info.setRemoteBlobUrl(tightUnmarshalString(dataIn, bs));
+        info.setMimeType(tightUnmarshalString(dataIn, bs));
+        info.setDeletedByBroker(bs.readBoolean());
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+        ActiveMQBlobMessage info = (ActiveMQBlobMessage)o;
+
+        int rc = super.tightMarshal1(wireFormat, o, bs);
+        rc += tightMarshalString1(info.getRemoteBlobUrl(), bs);
+        rc += tightMarshalString1(info.getMimeType(), bs);
+        bs.writeBoolean(info.isDeletedByBroker());
+
+        return rc + 0;
+    }
+
+    /**
+     * Write a object instance to data output stream
+     *
+     * @param o the instance to be marshaled
+     * @param dataOut the output stream
+     * @throws IOException thrown if an error occurs
+     */
+    public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+        super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+        ActiveMQBlobMessage info = (ActiveMQBlobMessage)o;
+        tightMarshalString2(info.getRemoteBlobUrl(), dataOut, bs);
+        tightMarshalString2(info.getMimeType(), dataOut, bs);
+        bs.readBoolean();
+
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+        super.looseUnmarshal(wireFormat, o, dataIn);
+
+        ActiveMQBlobMessage info = (ActiveMQBlobMessage)o;
+        info.setRemoteBlobUrl(looseUnmarshalString(dataIn));
+        info.setMimeType(looseUnmarshalString(dataIn));
+        info.setDeletedByBroker(dataIn.readBoolean());
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+        ActiveMQBlobMessage info = (ActiveMQBlobMessage)o;
+
+        super.looseMarshal(wireFormat, o, dataOut);
+        looseMarshalString(info.getRemoteBlobUrl(), dataOut);
+        looseMarshalString(info.getMimeType(), dataOut);
+        dataOut.writeBoolean(info.isDeletedByBroker());
+
+    }
+}

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQBlobMessageMarshaller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQBlobMessageMarshaller.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQBytesMessageMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQBytesMessageMarshaller.java?rev=739008&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQBytesMessageMarshaller.java (added)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQBytesMessageMarshaller.java Thu Jan 29 20:51:09 2009
@@ -0,0 +1,114 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.openwire.v5;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQBytesMessageMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ *        if you need to make a change, please see the modify the groovy scripts in the
+ *        under src/gram/script and then use maven openwire:generate to regenerate 
+ *        this file.
+ *
+ * @version $Revision$
+ */
+public class ActiveMQBytesMessageMarshaller extends ActiveMQMessageMarshaller {
+
+    /**
+     * Return the type of Data Structure we marshal
+     * @return short representation of the type data structure
+     */
+    public byte getDataStructureType() {
+        return ActiveMQBytesMessage.DATA_STRUCTURE_TYPE;
+    }
+    
+    /**
+     * @return a new object instance
+     */
+    public DataStructure createObject() {
+        return new ActiveMQBytesMessage();
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+        super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+        int rc = super.tightMarshal1(wireFormat, o, bs);
+
+        return rc + 0;
+    }
+
+    /**
+     * Write a object instance to data output stream
+     *
+     * @param o the instance to be marshaled
+     * @param dataOut the output stream
+     * @throws IOException thrown if an error occurs
+     */
+    public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+        super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+        super.looseUnmarshal(wireFormat, o, dataIn);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+        super.looseMarshal(wireFormat, o, dataOut);
+
+    }
+}

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQBytesMessageMarshaller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQBytesMessageMarshaller.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQDestinationMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQDestinationMarshaller.java?rev=739008&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQDestinationMarshaller.java (added)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQDestinationMarshaller.java Thu Jan 29 20:51:09 2009
@@ -0,0 +1,114 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.openwire.v5;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQDestinationMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ *        if you need to make a change, please see the modify the groovy scripts in the
+ *        under src/gram/script and then use maven openwire:generate to regenerate 
+ *        this file.
+ *
+ * @version $Revision$
+ */
+public abstract class ActiveMQDestinationMarshaller extends BaseDataStreamMarshaller {
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+        super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+        ActiveMQDestination info = (ActiveMQDestination)o;
+        info.setPhysicalName(tightUnmarshalString(dataIn, bs));
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+        ActiveMQDestination info = (ActiveMQDestination)o;
+
+        int rc = super.tightMarshal1(wireFormat, o, bs);
+        rc += tightMarshalString1(info.getPhysicalName(), bs);
+
+        return rc + 0;
+    }
+
+    /**
+     * Write a object instance to data output stream
+     *
+     * @param o the instance to be marshaled
+     * @param dataOut the output stream
+     * @throws IOException thrown if an error occurs
+     */
+    public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+        super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+        ActiveMQDestination info = (ActiveMQDestination)o;
+        tightMarshalString2(info.getPhysicalName(), dataOut, bs);
+
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+        super.looseUnmarshal(wireFormat, o, dataIn);
+
+        ActiveMQDestination info = (ActiveMQDestination)o;
+        info.setPhysicalName(looseUnmarshalString(dataIn));
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+        ActiveMQDestination info = (ActiveMQDestination)o;
+
+        super.looseMarshal(wireFormat, o, dataOut);
+        looseMarshalString(info.getPhysicalName(), dataOut);
+
+    }
+}

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQDestinationMarshaller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQDestinationMarshaller.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQMapMessageMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQMapMessageMarshaller.java?rev=739008&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQMapMessageMarshaller.java (added)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQMapMessageMarshaller.java Thu Jan 29 20:51:09 2009
@@ -0,0 +1,114 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.openwire.v5;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQMapMessageMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ *        if you need to make a change, please see the modify the groovy scripts in the
+ *        under src/gram/script and then use maven openwire:generate to regenerate 
+ *        this file.
+ *
+ * @version $Revision$
+ */
+public class ActiveMQMapMessageMarshaller extends ActiveMQMessageMarshaller {
+
+    /**
+     * Return the type of Data Structure we marshal
+     * @return short representation of the type data structure
+     */
+    public byte getDataStructureType() {
+        return ActiveMQMapMessage.DATA_STRUCTURE_TYPE;
+    }
+    
+    /**
+     * @return a new object instance
+     */
+    public DataStructure createObject() {
+        return new ActiveMQMapMessage();
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+        super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+        int rc = super.tightMarshal1(wireFormat, o, bs);
+
+        return rc + 0;
+    }
+
+    /**
+     * Write a object instance to data output stream
+     *
+     * @param o the instance to be marshaled
+     * @param dataOut the output stream
+     * @throws IOException thrown if an error occurs
+     */
+    public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+        super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+        super.looseUnmarshal(wireFormat, o, dataIn);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+        super.looseMarshal(wireFormat, o, dataOut);
+
+    }
+}

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQMapMessageMarshaller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQMapMessageMarshaller.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQMessageMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQMessageMarshaller.java?rev=739008&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQMessageMarshaller.java (added)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQMessageMarshaller.java Thu Jan 29 20:51:09 2009
@@ -0,0 +1,114 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.openwire.v5;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQMessageMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ *        if you need to make a change, please see the modify the groovy scripts in the
+ *        under src/gram/script and then use maven openwire:generate to regenerate 
+ *        this file.
+ *
+ * @version $Revision$
+ */
+public class ActiveMQMessageMarshaller extends MessageMarshaller {
+
+    /**
+     * Return the type of Data Structure we marshal
+     * @return short representation of the type data structure
+     */
+    public byte getDataStructureType() {
+        return ActiveMQMessage.DATA_STRUCTURE_TYPE;
+    }
+    
+    /**
+     * @return a new object instance
+     */
+    public DataStructure createObject() {
+        return new ActiveMQMessage();
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+        super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+        int rc = super.tightMarshal1(wireFormat, o, bs);
+
+        return rc + 0;
+    }
+
+    /**
+     * Write a object instance to data output stream
+     *
+     * @param o the instance to be marshaled
+     * @param dataOut the output stream
+     * @throws IOException thrown if an error occurs
+     */
+    public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+        super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+        super.looseUnmarshal(wireFormat, o, dataIn);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+        super.looseMarshal(wireFormat, o, dataOut);
+
+    }
+}

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQMessageMarshaller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQMessageMarshaller.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQObjectMessageMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQObjectMessageMarshaller.java?rev=739008&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQObjectMessageMarshaller.java (added)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQObjectMessageMarshaller.java Thu Jan 29 20:51:09 2009
@@ -0,0 +1,114 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.openwire.v5;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQObjectMessageMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ *        if you need to make a change, please see the modify the groovy scripts in the
+ *        under src/gram/script and then use maven openwire:generate to regenerate 
+ *        this file.
+ *
+ * @version $Revision$
+ */
+public class ActiveMQObjectMessageMarshaller extends ActiveMQMessageMarshaller {
+
+    /**
+     * Return the type of Data Structure we marshal
+     * @return short representation of the type data structure
+     */
+    public byte getDataStructureType() {
+        return ActiveMQObjectMessage.DATA_STRUCTURE_TYPE;
+    }
+    
+    /**
+     * @return a new object instance
+     */
+    public DataStructure createObject() {
+        return new ActiveMQObjectMessage();
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+        super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+        int rc = super.tightMarshal1(wireFormat, o, bs);
+
+        return rc + 0;
+    }
+
+    /**
+     * Write a object instance to data output stream
+     *
+     * @param o the instance to be marshaled
+     * @param dataOut the output stream
+     * @throws IOException thrown if an error occurs
+     */
+    public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+        super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+        super.looseUnmarshal(wireFormat, o, dataIn);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+        super.looseMarshal(wireFormat, o, dataOut);
+
+    }
+}

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQObjectMessageMarshaller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQObjectMessageMarshaller.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQQueueMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQQueueMarshaller.java?rev=739008&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQQueueMarshaller.java (added)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQQueueMarshaller.java Thu Jan 29 20:51:09 2009
@@ -0,0 +1,114 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.openwire.v5;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQQueueMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ *        if you need to make a change, please see the modify the groovy scripts in the
+ *        under src/gram/script and then use maven openwire:generate to regenerate 
+ *        this file.
+ *
+ * @version $Revision$
+ */
+public class ActiveMQQueueMarshaller extends ActiveMQDestinationMarshaller {
+
+    /**
+     * Return the type of Data Structure we marshal
+     * @return short representation of the type data structure
+     */
+    public byte getDataStructureType() {
+        return ActiveMQQueue.DATA_STRUCTURE_TYPE;
+    }
+    
+    /**
+     * @return a new object instance
+     */
+    public DataStructure createObject() {
+        return new ActiveMQQueue();
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+        super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+        int rc = super.tightMarshal1(wireFormat, o, bs);
+
+        return rc + 0;
+    }
+
+    /**
+     * Write a object instance to data output stream
+     *
+     * @param o the instance to be marshaled
+     * @param dataOut the output stream
+     * @throws IOException thrown if an error occurs
+     */
+    public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+        super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+        super.looseUnmarshal(wireFormat, o, dataIn);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+        super.looseMarshal(wireFormat, o, dataOut);
+
+    }
+}

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQQueueMarshaller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQQueueMarshaller.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQStreamMessageMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQStreamMessageMarshaller.java?rev=739008&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQStreamMessageMarshaller.java (added)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQStreamMessageMarshaller.java Thu Jan 29 20:51:09 2009
@@ -0,0 +1,114 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.openwire.v5;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQStreamMessageMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ *        if you need to make a change, please see the modify the groovy scripts in the
+ *        under src/gram/script and then use maven openwire:generate to regenerate 
+ *        this file.
+ *
+ * @version $Revision$
+ */
+public class ActiveMQStreamMessageMarshaller extends ActiveMQMessageMarshaller {
+
+    /**
+     * Return the type of Data Structure we marshal
+     * @return short representation of the type data structure
+     */
+    public byte getDataStructureType() {
+        return ActiveMQStreamMessage.DATA_STRUCTURE_TYPE;
+    }
+    
+    /**
+     * @return a new object instance
+     */
+    public DataStructure createObject() {
+        return new ActiveMQStreamMessage();
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+        super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+        int rc = super.tightMarshal1(wireFormat, o, bs);
+
+        return rc + 0;
+    }
+
+    /**
+     * Write a object instance to data output stream
+     *
+     * @param o the instance to be marshaled
+     * @param dataOut the output stream
+     * @throws IOException thrown if an error occurs
+     */
+    public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+        super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+        super.looseUnmarshal(wireFormat, o, dataIn);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+        super.looseMarshal(wireFormat, o, dataOut);
+
+    }
+}

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQStreamMessageMarshaller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQStreamMessageMarshaller.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempDestinationMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempDestinationMarshaller.java?rev=739008&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempDestinationMarshaller.java (added)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempDestinationMarshaller.java Thu Jan 29 20:51:09 2009
@@ -0,0 +1,99 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.openwire.v5;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQTempDestinationMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ *        if you need to make a change, please see the modify the groovy scripts in the
+ *        under src/gram/script and then use maven openwire:generate to regenerate 
+ *        this file.
+ *
+ * @version $Revision$
+ */
+public abstract class ActiveMQTempDestinationMarshaller extends ActiveMQDestinationMarshaller {
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+        super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+        int rc = super.tightMarshal1(wireFormat, o, bs);
+
+        return rc + 0;
+    }
+
+    /**
+     * Write a object instance to data output stream
+     *
+     * @param o the instance to be marshaled
+     * @param dataOut the output stream
+     * @throws IOException thrown if an error occurs
+     */
+    public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+        super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+        super.looseUnmarshal(wireFormat, o, dataIn);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+        super.looseMarshal(wireFormat, o, dataOut);
+
+    }
+}

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempDestinationMarshaller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempDestinationMarshaller.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempQueueMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempQueueMarshaller.java?rev=739008&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempQueueMarshaller.java (added)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempQueueMarshaller.java Thu Jan 29 20:51:09 2009
@@ -0,0 +1,114 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.openwire.v5;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQTempQueueMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ *        if you need to make a change, please see the modify the groovy scripts in the
+ *        under src/gram/script and then use maven openwire:generate to regenerate 
+ *        this file.
+ *
+ * @version $Revision$
+ */
+public class ActiveMQTempQueueMarshaller extends ActiveMQTempDestinationMarshaller {
+
+    /**
+     * Return the type of Data Structure we marshal
+     * @return short representation of the type data structure
+     */
+    public byte getDataStructureType() {
+        return ActiveMQTempQueue.DATA_STRUCTURE_TYPE;
+    }
+    
+    /**
+     * @return a new object instance
+     */
+    public DataStructure createObject() {
+        return new ActiveMQTempQueue();
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+        super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+        int rc = super.tightMarshal1(wireFormat, o, bs);
+
+        return rc + 0;
+    }
+
+    /**
+     * Write a object instance to data output stream
+     *
+     * @param o the instance to be marshaled
+     * @param dataOut the output stream
+     * @throws IOException thrown if an error occurs
+     */
+    public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+        super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+    }
+
+    /**
+     * Un-marshal an object instance from the data input stream
+     *
+     * @param o the object to un-marshal
+     * @param dataIn the data input stream to build the object from
+     * @throws IOException
+     */
+    public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+        super.looseUnmarshal(wireFormat, o, dataIn);
+
+    }
+
+
+    /**
+     * Write the booleans that this object uses to a BooleanStream
+     */
+    public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+        super.looseMarshal(wireFormat, o, dataOut);
+
+    }
+}

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempQueueMarshaller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v5/ActiveMQTempQueueMarshaller.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date



Mime
View raw message