[jboss-cvs] JBoss Messaging SVN: r2202 - in trunk: src/main/org/jboss/jms/client/container and 38 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Feb 8 05:50:27 EST 2007
Author: timfox
Date: 2007-02-08 05:50:26 -0500 (Thu, 08 Feb 2007)
New Revision: 2202
Added:
trunk/src/main/org/jboss/messaging/core/message/Message.java
trunk/src/main/org/jboss/messaging/core/message/MessageHolder.java
trunk/src/main/org/jboss/messaging/core/message/MessageReference.java
trunk/src/main/org/jboss/messaging/core/message/SimpleMessageReference.java
trunk/src/main/org/jboss/messaging/core/message/SimpleMessageStore.java
Removed:
trunk/src/main/org/jboss/messaging/core/Message.java
trunk/src/main/org/jboss/messaging/core/MessageReference.java
trunk/src/main/org/jboss/messaging/core/Routable.java
trunk/src/main/org/jboss/messaging/core/message/RoutableSupport.java
trunk/src/main/org/jboss/messaging/core/plugin/MessageHolder.java
trunk/src/main/org/jboss/messaging/core/plugin/SimpleMessageReference.java
trunk/src/main/org/jboss/messaging/core/plugin/SimpleMessageStore.java
trunk/tests/src/org/jboss/test/messaging/core/message/SimpleMessageReferenceTest.java
trunk/tests/src/org/jboss/test/messaging/core/message/base/MessageSupportTestBase.java
Modified:
trunk/src/etc/server/default/deploy/clustered-mysql-persistence-service.xml
trunk/src/etc/server/default/deploy/mysql-persistence-service.xml
trunk/src/main/org/jboss/jms/client/container/ProducerAspect.java
trunk/src/main/org/jboss/jms/client/remoting/CallbackManager.java
trunk/src/main/org/jboss/jms/client/remoting/MessageCallbackHandler.java
trunk/src/main/org/jboss/jms/destination/JBossDestination.java
trunk/src/main/org/jboss/jms/destination/JBossQueue.java
trunk/src/main/org/jboss/jms/message/JBossBytesMessage.java
trunk/src/main/org/jboss/jms/message/JBossMapMessage.java
trunk/src/main/org/jboss/jms/message/JBossMessage.java
trunk/src/main/org/jboss/jms/message/JBossObjectMessage.java
trunk/src/main/org/jboss/jms/message/JBossStreamMessage.java
trunk/src/main/org/jboss/jms/message/JBossTextMessage.java
trunk/src/main/org/jboss/jms/message/MessageProxy.java
trunk/src/main/org/jboss/jms/selector/Selector.java
trunk/src/main/org/jboss/jms/server/JMSCondition.java
trunk/src/main/org/jboss/jms/server/ServerPeer.java
trunk/src/main/org/jboss/jms/server/destination/ManagedQueue.java
trunk/src/main/org/jboss/jms/server/destination/ManagedTopic.java
trunk/src/main/org/jboss/jms/server/endpoint/ServerBrowserEndpoint.java
trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionEndpoint.java
trunk/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java
trunk/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java
trunk/src/main/org/jboss/jms/server/plugin/JDBCJMSUserManager.java
trunk/src/main/org/jboss/jms/server/remoting/JMSWireFormat.java
trunk/src/main/org/jboss/jms/tx/ClientTransaction.java
trunk/src/main/org/jboss/jms/tx/TransactionRequest.java
trunk/src/main/org/jboss/jms/wireformat/CallbackSupport.java
trunk/src/main/org/jboss/jms/wireformat/ClientDelivery.java
trunk/src/main/org/jboss/jms/wireformat/ConnectionFactoryUpdate.java
trunk/src/main/org/jboss/jms/wireformat/ConnectionSendTransactionRequest.java
trunk/src/main/org/jboss/jms/wireformat/PolledCallbacksDelivery.java
trunk/src/main/org/jboss/jms/wireformat/SessionSendRequest.java
trunk/src/main/org/jboss/messaging/core/ChannelSupport.java
trunk/src/main/org/jboss/messaging/core/Delivery.java
trunk/src/main/org/jboss/messaging/core/Filter.java
trunk/src/main/org/jboss/messaging/core/PagingChannelSupport.java
trunk/src/main/org/jboss/messaging/core/Receiver.java
trunk/src/main/org/jboss/messaging/core/SimpleDelivery.java
trunk/src/main/org/jboss/messaging/core/local/FirstReceiverPointToPointRouter.java
trunk/src/main/org/jboss/messaging/core/local/PagingFilteredQueue.java
trunk/src/main/org/jboss/messaging/core/local/RoundRobinPointToPointRouter.java
trunk/src/main/org/jboss/messaging/core/message/CoreMessage.java
trunk/src/main/org/jboss/messaging/core/message/MessageFactory.java
trunk/src/main/org/jboss/messaging/core/message/MessageSupport.java
trunk/src/main/org/jboss/messaging/core/plugin/JDBCPersistenceManager.java
trunk/src/main/org/jboss/messaging/core/plugin/contract/Condition.java
trunk/src/main/org/jboss/messaging/core/plugin/contract/MessageStore.java
trunk/src/main/org/jboss/messaging/core/plugin/contract/PersistenceManager.java
trunk/src/main/org/jboss/messaging/core/plugin/contract/PostOffice.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/DefaultPostOffice.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/CastMessagesCallback.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultRouter.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/LocalClusteredQueue.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/MessageHolder.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/MessageRequest.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PostOfficeInternal.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PullMessageResultRequest.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PullMessagesRequest.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/RemoteQueueStub.java
trunk/src/main/org/jboss/messaging/core/tx/TransactionRepository.java
trunk/src/main/org/jboss/messaging/util/StreamUtils.java
trunk/tests/build.xml
trunk/tests/etc/log4j.xml
trunk/tests/src/org/jboss/test/messaging/MessagingTestCase.java
trunk/tests/src/org/jboss/test/messaging/core/BrokenReceiver.java
trunk/tests/src/org/jboss/test/messaging/core/SimpleChannel.java
trunk/tests/src/org/jboss/test/messaging/core/SimpleCondition.java
trunk/tests/src/org/jboss/test/messaging/core/SimpleDeliveryTest.java
trunk/tests/src/org/jboss/test/messaging/core/SimpleFilter.java
trunk/tests/src/org/jboss/test/messaging/core/SimpleReceiver.java
trunk/tests/src/org/jboss/test/messaging/core/local/RoundRobinPointToPointRouterTest.java
trunk/tests/src/org/jboss/test/messaging/core/local/base/PagingFilteredQueueTestBase.java
trunk/tests/src/org/jboss/test/messaging/core/message/CoreMessageTest.java
trunk/tests/src/org/jboss/test/messaging/core/message/JBossMessageTest.java
trunk/tests/src/org/jboss/test/messaging/core/message/base/RoutableSupportTestBase.java
trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_2PCTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_NTTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_TTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_2PCTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_NTTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_TTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/PagingTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_2PCTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_NTTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_TTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_2PCTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_NTTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_TTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_ReloadTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/base/PagingStateTestBase.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/JDBCPersistenceManagerTest.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/SimpleMessageStoreTest.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/base/MessageStoreTestBase.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/base/PostOfficeTestBase.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/DefaultPostOfficeTest.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOfficeTest.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultMessagePullPolicyTest.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultRouterTest.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RecoveryTest.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RedistributionWithDefaultMessagePullPolicyTest.java
trunk/tests/src/org/jboss/test/messaging/jms/DLQTest.java
trunk/tests/src/org/jboss/test/messaging/jms/ExpiryQueueTest.java
trunk/tests/src/org/jboss/test/messaging/jms/MessageCleanupTest.java
trunk/tests/src/org/jboss/test/messaging/jms/MessageConsumerTest.java
trunk/tests/src/org/jboss/test/messaging/jms/MessageProxyTest.java
trunk/tests/src/org/jboss/test/messaging/jms/ReferencingTest.java
trunk/tests/src/org/jboss/test/messaging/jms/message/MessageTest.java
trunk/tests/src/org/jboss/test/messaging/jms/persistence/BytesMessagePersistenceManagerTest.java
trunk/tests/src/org/jboss/test/messaging/jms/persistence/MapMessagePersistenceManagerTest.java
trunk/tests/src/org/jboss/test/messaging/jms/persistence/MessagePersistenceManagerTest.java
trunk/tests/src/org/jboss/test/messaging/jms/persistence/ObjectMessagePersistenceManagerTest.java
trunk/tests/src/org/jboss/test/messaging/jms/persistence/StreamMessagePersistenceManagerTest.java
trunk/tests/src/org/jboss/test/messaging/jms/persistence/TextMessagePersistenceManagerTest.java
trunk/tests/src/org/jboss/test/messaging/tools/jmx/ServiceContainer.java
Log:
Mainly http://jira.jboss.org/jira/browse/JBMESSAGING-739
Modified: trunk/src/etc/server/default/deploy/clustered-mysql-persistence-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/clustered-mysql-persistence-service.xml 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/etc/server/default/deploy/clustered-mysql-persistence-service.xml 2007-02-08 10:50:26 UTC (rev 2202)
@@ -17,47 +17,46 @@
<attribute name="CreateTablesOnStartup">true</attribute>
<attribute name="UsingBatchUpdates">true</attribute>
<attribute name="SqlProperties"><![CDATA[
-CREATE_MESSAGE_REFERENCE=CREATE TABLE JMS_MESSAGE_REFERENCE (CHANNELID BIGINT, MESSAGEID BIGINT, TRANSACTIONID BIGINT, STATE CHAR(1), ORD BIGINT, PAGE_ORD BIGINT, DELIVERYCOUNT INTEGER, RELIABLE CHAR(1), LOADED CHAR(1), SCHED_DELIVERY BIGINT, PRIMARY KEY(CHANNELID, MESSAGEID))
-CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JMS_MESSAGE_REF_TX ON JMS_MESSAGE_REFERENCE (TRANSACTIONID)
-CREATE_IDX_MESSAGE_REF_ORD=CREATE INDEX JMS_MESSAGE_REF_ORD ON JMS_MESSAGE_REFERENCE (ORD)
-CREATE_IDX_MESSAGE_REF_PAGE_ORD=CREATE INDEX JMS_MESSAGE_REF_LOADED ON JMS_MESSAGE_REFERENCE (PAGE_ORD)
-CREATE_IDX_MESSAGE_REF_MESSAGEID=CREATE INDEX JMS_MESSAGE_REF_MESSAGEID ON JMS_MESSAGE_REFERENCE (MESSAGEID)
-CREATE_IDX_MESSAGE_REF_RELIABLE=CREATE INDEX JMS_MESSAGE_REF_RELIABLE ON JMS_MESSAGE_REFERENCE (RELIABLE)
-CREATE_IDX_MESSAGE_REF_SCHED_DELIVERY=CREATE INDEX JMS_MESSAGE_REF_SCHED_DELIVERY ON JMS_MESSAGE_REFERENCE (SCHED_DELIVERY)
-CREATE_MESSAGE=CREATE TABLE JMS_MESSAGE (MESSAGEID BIGINT, RELIABLE CHAR(1), EXPIRATION BIGINT, TIMESTAMP BIGINT, PRIORITY TINYINT, COREHEADERS MEDIUMBLOB, PAYLOAD LONGBLOB, CHANNELCOUNT INTEGER, TYPE TINYINT, JMSTYPE VARCHAR(255), CORRELATIONID VARCHAR(255), CORRELATIONID_BYTES VARBINARY(254), DESTINATION VARCHAR(255), REPLYTO VARCHAR(255), JMSPROPERTIES MEDIUMBLOB, PRIMARY KEY (MESSAGEID))
-CREATE_TRANSACTION=CREATE TABLE JMS_TRANSACTION (TRANSACTIONID BIGINT, BRANCH_QUAL VARBINARY(254), FORMAT_ID INTEGER, GLOBAL_TXID VARBINARY(254), PRIMARY KEY (TRANSACTIONID))
-CREATE_COUNTER=CREATE TABLE JMS_COUNTER (NAME VARCHAR(255), NEXT_ID BIGINT, PRIMARY KEY(NAME))
-INSERT_MESSAGE_REF=INSERT INTO JMS_MESSAGE_REFERENCE (CHANNELID, MESSAGEID, TRANSACTIONID, STATE, ORD, PAGE_ORD, DELIVERYCOUNT, RELIABLE, SCHED_DELIVERY) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
-DELETE_MESSAGE_REF=DELETE FROM JMS_MESSAGE_REFERENCE WHERE MESSAGEID=? AND CHANNELID=? AND STATE='C'
-UPDATE_MESSAGE_REF=UPDATE JMS_MESSAGE_REFERENCE SET TRANSACTIONID=?, STATE='-' WHERE MESSAGEID=? AND CHANNELID=? AND STATE='C'
-UPDATE_PAGE_ORDER=UPDATE JMS_MESSAGE_REFERENCE SET PAGE_ORD = ? WHERE MESSAGEID=? AND CHANNELID=?
-COMMIT_MESSAGE_REF1=UPDATE JMS_MESSAGE_REFERENCE SET STATE='C', TRANSACTIONID = NULL WHERE TRANSACTIONID=? AND STATE='+'
-COMMIT_MESSAGE_REF2=DELETE FROM JMS_MESSAGE_REFERENCE WHERE TRANSACTIONID=? AND STATE='-'
-ROLLBACK_MESSAGE_REF1=DELETE FROM JMS_MESSAGE_REFERENCE WHERE TRANSACTIONID=? AND STATE='+'
-ROLLBACK_MESSAGE_REF2=UPDATE JMS_MESSAGE_REFERENCE SET STATE='C', TRANSACTIONID = NULL WHERE TRANSACTIONID=? AND STATE='-'
-LOAD_PAGED_REFS=SELECT MESSAGEID, DELIVERYCOUNT, PAGE_ORD, RELIABLE, SCHED_DELIVERY FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD
-LOAD_UNPAGED_REFS=SELECT MESSAGEID, DELIVERYCOUNT, RELIABLE, SCHED_DELIVERY FROM JMS_MESSAGE_REFERENCE WHERE STATE = 'C' AND CHANNELID = ? AND PAGE_ORD IS NULL ORDER BY ORD
-UPDATE_RELIABLE_REFS_NOT_PAGED=UPDATE JMS_MESSAGE_REFERENCE SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNELID=?
-SELECT_MIN_MAX_PAGE_ORD=SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID = ?
-SELECT_EXISTS_REF=SELECT MESSAGEID FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID = ? AND MESSAGEID = ?
-SELECT_EXISTS_REF_MESSAGEID=SELECT MESSAGEID FROM JMS_MESSAGE_REFERENCE WHERE MESSAGEID = ?
-UPDATE_DELIVERYCOUNT=UPDATE JMS_MESSAGE_REFERENCE SET DELIVERYCOUNT = ? WHERE CHANNELID = ? AND MESSAGEID = ?
-LOAD_MESSAGES=SELECT MESSAGEID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, COREHEADERS, PAYLOAD, TYPE, JMSTYPE, CORRELATIONID, CORRELATIONID_BYTES, DESTINATION, REPLYTO, JMSPROPERTIES FROM JMS_MESSAGE
-INSERT_MESSAGE=INSERT INTO JMS_MESSAGE (MESSAGEID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, COREHEADERS, PAYLOAD, CHANNELCOUNT, TYPE, JMSTYPE, CORRELATIONID, CORRELATIONID_BYTES, DESTINATION, REPLYTO, JMSPROPERTIES) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-INC_CHANNELCOUNT=UPDATE JMS_MESSAGE SET CHANNELCOUNT = CHANNELCOUNT + 1 WHERE MESSAGEID=?
-DEC_CHANNELCOUNT=UPDATE JMS_MESSAGE SET CHANNELCOUNT = CHANNELCOUNT - 1 WHERE MESSAGEID=?
-DELETE_MESSAGE=DELETE FROM JMS_MESSAGE WHERE MESSAGEID=? AND CHANNELCOUNT=0
-MESSAGEID_COLUMN=MESSAGEID
-MESSAGE_EXISTS=SELECT MESSAGEID FROM JMS_MESSAGE WHERE MESSAGEID = ? FOR UPDATE
-INSERT_TRANSACTION=INSERT INTO JMS_TRANSACTION (TRANSACTIONID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?)
-DELETE_TRANSACTION=DELETE FROM JMS_TRANSACTION WHERE TRANSACTIONID = ?
-SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTIONID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JMS_TRANSACTION
-SELECT_MESSAGEID_FOR_REF=SELECT MESSAGEID, CHANNELID FROM JMS_MESSAGE_REFERENCE WHERE TRANSACTIONID = ? AND STATE = '+' ORDER BY ORD
-SELECT_MESSAGEID_FOR_ACK=SELECT MESSAGEID, CHANNELID FROM JMS_MESSAGE_REFERENCE WHERE TRANSACTIONID = ? AND STATE = '-' ORDER BY ORD
-UPDATE_COUNTER=UPDATE JMS_COUNTER SET NEXT_ID = ? WHERE NAME=?
-SELECT_COUNTER=SELECT NEXT_ID FROM JMS_COUNTER WHERE NAME=? FOR UPDATE
-INSERT_COUNTER=INSERT INTO JMS_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
-SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNELID) FROM JMS_MESSAGE_REFERENCE
+ CREATE_MESSAGE_REFERENCE=CREATE TABLE JBM_MSG_REF (CHANNEL_ID BIGINT, MESSAGE_ID BIGINT, TRANSACTION_ID BIGINT, STATE CHAR(1), ORD BIGINT, PAGE_ORD BIGINT, DELIVERY_COUNT INTEGER, LOADED CHAR(1), SCHED_DELIVERY BIGINT, PRIMARY KEY(CHANNEL_ID, MESSAGE_ID))
+ CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JBM_MSG_REF_TX ON JBM_MSG_REF (TRANSACTION_ID)
+ CREATE_IDX_MESSAGE_REF_ORD=CREATE INDEX JBM_MSG_REF_ORD ON JBM_MSG_REF (ORD)
+ CREATE_IDX_MESSAGE_REF_PAGE_ORD=CREATE INDEX JBM_MSG_REF_LOADED ON JBM_MSG_REF (PAGE_ORD)
+ CREATE_IDX_MESSAGE_REF_MESSAGE_ID=CREATE INDEX JBM_MSG_REF_MESSAGE_ID ON JBM_MSG_REF (MESSAGE_ID)
+ CREATE_IDX_MESSAGE_REF_SCHED_DELIVERY=CREATE INDEX JBM_MSG_REF_SCHED_DELIVERY ON JBM_MSG_REF (SCHED_DELIVERY)
+ CREATE_MESSAGE=CREATE TABLE JBM_MSG (MESSAGE_ID BIGINT, RELIABLE CHAR(1), EXPIRATION BIGINT, TIMESTAMP BIGINT, PRIORITY TINYINT, HEADERS MEDIUMBLOB, PAYLOAD LONGBLOB, CHANNEL_COUNT INTEGER, TYPE TINYINT, PRIMARY KEY (MESSAGE_ID))
+ CREATE_TRANSACTION=CREATE TABLE JBM_TX (TRANSACTION_ID BIGINT, BRANCH_QUAL VARBINARY(254), FORMAT_ID INTEGER, GLOBAL_TXID VARBINARY(254), PRIMARY KEY (TRANSACTION_ID))
+ CREATE_COUNTER=CREATE TABLE JBM_COUNTER (NAME VARCHAR(255), NEXT_ID BIGINT, PRIMARY KEY(NAME))
+ INSERT_MESSAGE_REF=INSERT INTO JBM_MSG_REF (CHANNEL_ID, MESSAGE_ID, TRANSACTION_ID, STATE, ORD, PAGE_ORD, DELIVERY_COUNT, SCHED_DELIVERY) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ DELETE_MESSAGE_REF=DELETE FROM JBM_MSG_REF WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_MESSAGE_REF=UPDATE JBM_MSG_REF SET TRANSACTION_ID=?, STATE='-' WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_PAGE_ORDER=UPDATE JBM_MSG_REF SET PAGE_ORD = ? WHERE MESSAGE_ID=? AND CHANNEL_ID=?
+ COMMIT_MESSAGE_REF1=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='+'
+ COMMIT_MESSAGE_REF2=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='-'
+ ROLLBACK_MESSAGE_REF1=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='+'
+ ROLLBACK_MESSAGE_REF2=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='-'
+ LOAD_PAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, PAGE_ORD, SCHED_DELIVERY FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD
+ LOAD_UNPAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? AND PAGE_ORD IS NULL ORDER BY ORD
+ UPDATE_REFS_NOT_PAGED=UPDATE JBM_MSG_REF SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNEL_ID=?
+ SELECT_MIN_MAX_PAGE_ORD=SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JBM_MSG_REF WHERE CHANNEL_ID = ?
+ SELECT_EXISTS_REF=SELECT MESSAGE_ID FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND MESSAGE_ID = ?
+ SELECT_EXISTS_REF_MESSAGE_ID=SELECT MESSAGE_ID FROM JBM_MSG_REF WHERE MESSAGE_ID = ?
+ UPDATE_DELIVERY_COUNT=UPDATE JBM_MSG_REF SET DELIVERY_COUNT = ? WHERE CHANNEL_ID = ? AND MESSAGE_ID = ?
+ LOAD_MESSAGES=SELECT MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, TYPE FROM JBM_MSG
+ INSERT_MESSAGE=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, CHANNEL_COUNT, TYPE) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
+ INC_CHANNEL_COUNT=UPDATE JBM_MSG SET CHANNEL_COUNT = CHANNEL_COUNT + 1 WHERE MESSAGE_ID=?
+ DEC_CHANNEL_COUNT=UPDATE JBM_MSG SET CHANNEL_COUNT = CHANNEL_COUNT - 1 WHERE MESSAGE_ID=?
+ DELETE_MESSAGE=DELETE FROM JBM_MSG WHERE MESSAGE_ID=? AND CHANNEL_COUNT=0
+ MESSAGE_ID_COLUMN=MESSAGE_ID
+ MESSAGE_EXISTS=SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ? FOR UPDATE
+ INSERT_TRANSACTION=INSERT INTO JBM_TX (TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?)
+ DELETE_TRANSACTION=DELETE FROM JBM_TX WHERE TRANSACTION_ID = ?
+ SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JBM_TX
+ SELECT_MESSAGE_ID_FOR_REF=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '+' ORDER BY ORD
+ SELECT_MESSAGE_ID_FOR_ACK=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '-' ORDER BY ORD
+ UPDATE_COUNTER=UPDATE JBM_COUNTER SET NEXT_ID = ? WHERE NAME=?
+ SELECT_COUNTER=SELECT NEXT_ID FROM JBM_COUNTER WHERE NAME=? FOR UPDATE
+ INSERT_COUNTER=INSERT INTO JBM_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
+ SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNEL_ID) FROM JBM_MSG_REF
]]></attribute>
<attribute name="MaxParams">500</attribute>
</mbean>
@@ -72,10 +71,10 @@
<attribute name="DataSource">java:/DefaultDS</attribute>
<attribute name="CreateTablesOnStartup">true</attribute>
<attribute name="SqlProperties"><![CDATA[
-CREATE_POSTOFFICE_TABLE=CREATE TABLE JMS_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255), NODE_ID INTEGER, QUEUE_NAME VARCHAR(1023), COND VARCHAR(1023), SELECTOR VARCHAR(1023), CHANNEL_ID BIGINT, IS_FAILED_OVER VARCHAR(1), FAILED_NODE_ID INTEGER)
-INSERT_BINDING=INSERT INTO JMS_POSTOFFICE (POSTOFFICE_NAME, NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, IS_FAILED_OVER, FAILED_NODE_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
-DELETE_BINDING=DELETE FROM JMS_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?
-LOAD_BINDINGS=SELECT NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, IS_FAILED_OVER, FAILED_NODE_ID FROM JMS_POSTOFFICE WHERE POSTOFFICE_NAME = ?
+CREATE_POSTOFFICE_TABLE=CREATE TABLE JBM_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255), NODE_ID INTEGER, QUEUE_NAME VARCHAR(1023), COND VARCHAR(1023), SELECTOR VARCHAR(1023), CHANNEL_ID BIGINT, IS_FAILED_OVER CHAR(1), FAILED_NODE_ID INTEGER)
+INSERT_BINDING=INSERT INTO JBM_POSTOFFICE (POSTOFFICE_NAME, NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, IS_FAILED_OVER, FAILED_NODE_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+DELETE_BINDING=DELETE FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?
+LOAD_BINDINGS=SELECT NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, IS_FAILED_OVER, FAILED_NODE_ID FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME = ?
]]></attribute>
<attribute name="GroupName">DefaultPostOffice</attribute>
<attribute name="StateTimeout">5000</attribute>
@@ -142,9 +141,9 @@
<attribute name="DataSource">java:/DefaultDS</attribute>
<attribute name="CreateTablesOnStartup">true</attribute>
<attribute name="SqlProperties"><![CDATA[
-CREATE_USER_TABLE=CREATE TABLE JMS_USER (USERID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128), PRIMARY KEY(USERID))
-CREATE_ROLE_TABLE=CREATE TABLE JMS_ROLE (ROLEID VARCHAR(32) NOT NULL, USERID VARCHAR(32) NOT NULL, PRIMARY KEY(USERID, ROLEID))
-SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JMS_USER WHERE USERID=?
+CREATE_USER_TABLE=CREATE TABLE JBM_USER (USER_ID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128), PRIMARY KEY(USER_ID))
+CREATE_ROLE_TABLE=CREATE TABLE JBM_ROLE (ROLE_ID VARCHAR(32) NOT NULL, USER_ID VARCHAR(32) NOT NULL, PRIMARY KEY(USER_ID, ROLE_ID))
+SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JBM_USER WHERE USER_ID=?
]]></attribute>
</mbean>
Modified: trunk/src/etc/server/default/deploy/mysql-persistence-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/mysql-persistence-service.xml 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/etc/server/default/deploy/mysql-persistence-service.xml 2007-02-08 10:50:26 UTC (rev 2202)
@@ -17,47 +17,46 @@
<attribute name="CreateTablesOnStartup">true</attribute>
<attribute name="UsingBatchUpdates">true</attribute>
<attribute name="SqlProperties"><![CDATA[
- CREATE_MESSAGE_REFERENCE=CREATE TABLE JMS_MESSAGE_REFERENCE (CHANNELID BIGINT, MESSAGEID BIGINT, TRANSACTIONID BIGINT, STATE CHAR(1), ORD BIGINT, PAGE_ORD BIGINT, DELIVERYCOUNT INTEGER, RELIABLE CHAR(1), LOADED CHAR(1), SCHED_DELIVERY BIGINT, PRIMARY KEY(CHANNELID, MESSAGEID))
- CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JMS_MESSAGE_REF_TX ON JMS_MESSAGE_REFERENCE (TRANSACTIONID)
- CREATE_IDX_MESSAGE_REF_ORD=CREATE INDEX JMS_MESSAGE_REF_ORD ON JMS_MESSAGE_REFERENCE (ORD)
- CREATE_IDX_MESSAGE_REF_PAGE_ORD=CREATE INDEX JMS_MESSAGE_REF_LOADED ON JMS_MESSAGE_REFERENCE (PAGE_ORD)
- CREATE_IDX_MESSAGE_REF_MESSAGEID=CREATE INDEX JMS_MESSAGE_REF_MESSAGEID ON JMS_MESSAGE_REFERENCE (MESSAGEID)
- CREATE_IDX_MESSAGE_REF_RELIABLE=CREATE INDEX JMS_MESSAGE_REF_RELIABLE ON JMS_MESSAGE_REFERENCE (RELIABLE)
- CREATE_IDX_MESSAGE_REF_SCHED_DELIVERY=CREATE INDEX JMS_MESSAGE_REF_SCHED_DELIVERY ON JMS_MESSAGE_REFERENCE (SCHED_DELIVERY)
- CREATE_MESSAGE=CREATE TABLE JMS_MESSAGE (MESSAGEID BIGINT, RELIABLE CHAR(1), EXPIRATION BIGINT, TIMESTAMP BIGINT, PRIORITY TINYINT, COREHEADERS MEDIUMBLOB, PAYLOAD LONGBLOB, CHANNELCOUNT INTEGER, TYPE TINYINT, JMSTYPE VARCHAR(255), CORRELATIONID VARCHAR(255), CORRELATIONID_BYTES VARBINARY(254), DESTINATION VARCHAR(255), REPLYTO VARCHAR(255), JMSPROPERTIES MEDIUMBLOB, PRIMARY KEY (MESSAGEID))
- CREATE_TRANSACTION=CREATE TABLE JMS_TRANSACTION (TRANSACTIONID BIGINT, BRANCH_QUAL VARBINARY(254), FORMAT_ID INTEGER, GLOBAL_TXID VARBINARY(254), PRIMARY KEY (TRANSACTIONID))
- CREATE_COUNTER=CREATE TABLE JMS_COUNTER (NAME VARCHAR(255), NEXT_ID BIGINT, PRIMARY KEY(NAME))
- INSERT_MESSAGE_REF=INSERT INTO JMS_MESSAGE_REFERENCE (CHANNELID, MESSAGEID, TRANSACTIONID, STATE, ORD, PAGE_ORD, DELIVERYCOUNT, RELIABLE, SCHED_DELIVERY) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
- DELETE_MESSAGE_REF=DELETE FROM JMS_MESSAGE_REFERENCE WHERE MESSAGEID=? AND CHANNELID=? AND STATE='C'
- UPDATE_MESSAGE_REF=UPDATE JMS_MESSAGE_REFERENCE SET TRANSACTIONID=?, STATE='-' WHERE MESSAGEID=? AND CHANNELID=? AND STATE='C'
- UPDATE_PAGE_ORDER=UPDATE JMS_MESSAGE_REFERENCE SET PAGE_ORD = ? WHERE MESSAGEID=? AND CHANNELID=?
- COMMIT_MESSAGE_REF1=UPDATE JMS_MESSAGE_REFERENCE SET STATE='C', TRANSACTIONID = NULL WHERE TRANSACTIONID=? AND STATE='+'
- COMMIT_MESSAGE_REF2=DELETE FROM JMS_MESSAGE_REFERENCE WHERE TRANSACTIONID=? AND STATE='-'
- ROLLBACK_MESSAGE_REF1=DELETE FROM JMS_MESSAGE_REFERENCE WHERE TRANSACTIONID=? AND STATE='+'
- ROLLBACK_MESSAGE_REF2=UPDATE JMS_MESSAGE_REFERENCE SET STATE='C', TRANSACTIONID = NULL WHERE TRANSACTIONID=? AND STATE='-'
- LOAD_PAGED_REFS=SELECT MESSAGEID, DELIVERYCOUNT, PAGE_ORD, RELIABLE, SCHED_DELIVERY FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD
- LOAD_UNPAGED_REFS=SELECT MESSAGEID, DELIVERYCOUNT, RELIABLE, SCHED_DELIVERY FROM JMS_MESSAGE_REFERENCE WHERE STATE = 'C' AND CHANNELID = ? AND PAGE_ORD IS NULL ORDER BY ORD
- UPDATE_RELIABLE_REFS_NOT_PAGED=UPDATE JMS_MESSAGE_REFERENCE SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNELID=?
- SELECT_MIN_MAX_PAGE_ORD=SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID = ?
- SELECT_EXISTS_REF=SELECT MESSAGEID FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID = ? AND MESSAGEID = ?
- SELECT_EXISTS_REF_MESSAGEID=SELECT MESSAGEID FROM JMS_MESSAGE_REFERENCE WHERE MESSAGEID = ?
- UPDATE_DELIVERYCOUNT=UPDATE JMS_MESSAGE_REFERENCE SET DELIVERYCOUNT = ? WHERE CHANNELID = ? AND MESSAGEID = ?
- LOAD_MESSAGES=SELECT MESSAGEID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, COREHEADERS, PAYLOAD, TYPE, JMSTYPE, CORRELATIONID, CORRELATIONID_BYTES, DESTINATION, REPLYTO, JMSPROPERTIES FROM JMS_MESSAGE
- INSERT_MESSAGE=INSERT INTO JMS_MESSAGE (MESSAGEID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, COREHEADERS, PAYLOAD, CHANNELCOUNT, TYPE, JMSTYPE, CORRELATIONID, CORRELATIONID_BYTES, DESTINATION, REPLYTO, JMSPROPERTIES) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
- INC_CHANNELCOUNT=UPDATE JMS_MESSAGE SET CHANNELCOUNT = CHANNELCOUNT + 1 WHERE MESSAGEID=?
- DEC_CHANNELCOUNT=UPDATE JMS_MESSAGE SET CHANNELCOUNT = CHANNELCOUNT - 1 WHERE MESSAGEID=?
- DELETE_MESSAGE=DELETE FROM JMS_MESSAGE WHERE MESSAGEID=? AND CHANNELCOUNT=0
- MESSAGEID_COLUMN=MESSAGEID
- MESSAGE_EXISTS=SELECT MESSAGEID FROM JMS_MESSAGE WHERE MESSAGEID = ? FOR UPDATE
- INSERT_TRANSACTION=INSERT INTO JMS_TRANSACTION (TRANSACTIONID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?)
- DELETE_TRANSACTION=DELETE FROM JMS_TRANSACTION WHERE TRANSACTIONID = ?
- SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTIONID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JMS_TRANSACTION
- SELECT_MESSAGEID_FOR_REF=SELECT MESSAGEID, CHANNELID FROM JMS_MESSAGE_REFERENCE WHERE TRANSACTIONID = ? AND STATE = '+' ORDER BY ORD
- SELECT_MESSAGEID_FOR_ACK=SELECT MESSAGEID, CHANNELID FROM JMS_MESSAGE_REFERENCE WHERE TRANSACTIONID = ? AND STATE = '-' ORDER BY ORD
- UPDATE_COUNTER=UPDATE JMS_COUNTER SET NEXT_ID = ? WHERE NAME=?
- SELECT_COUNTER=SELECT NEXT_ID FROM JMS_COUNTER WHERE NAME=? FOR UPDATE
- INSERT_COUNTER=INSERT INTO JMS_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
- SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNELID) FROM JMS_MESSAGE_REFERENCE
+ CREATE_MESSAGE_REFERENCE=CREATE TABLE JBM_MSG_REF (CHANNEL_ID BIGINT, MESSAGE_ID BIGINT, TRANSACTION_ID BIGINT, STATE CHAR(1), ORD BIGINT, PAGE_ORD BIGINT, DELIVERY_COUNT INTEGER, LOADED CHAR(1), SCHED_DELIVERY BIGINT, PRIMARY KEY(CHANNEL_ID, MESSAGE_ID))
+ CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JBM_MSG_REF_TX ON JBM_MSG_REF (TRANSACTION_ID)
+ CREATE_IDX_MESSAGE_REF_ORD=CREATE INDEX JBM_MSG_REF_ORD ON JBM_MSG_REF (ORD)
+ CREATE_IDX_MESSAGE_REF_PAGE_ORD=CREATE INDEX JBM_MSG_REF_LOADED ON JBM_MSG_REF (PAGE_ORD)
+ CREATE_IDX_MESSAGE_REF_MESSAGE_ID=CREATE INDEX JBM_MSG_REF_MESSAGE_ID ON JBM_MSG_REF (MESSAGE_ID)
+ CREATE_IDX_MESSAGE_REF_SCHED_DELIVERY=CREATE INDEX JBM_MSG_REF_SCHED_DELIVERY ON JBM_MSG_REF (SCHED_DELIVERY)
+ CREATE_MESSAGE=CREATE TABLE JBM_MSG (MESSAGE_ID BIGINT, RELIABLE CHAR(1), EXPIRATION BIGINT, TIMESTAMP BIGINT, PRIORITY TINYINT, HEADERS MEDIUMBLOB, PAYLOAD LONGBLOB, CHANNEL_COUNT INTEGER, TYPE TINYINT, PRIMARY KEY (MESSAGE_ID))
+ CREATE_TRANSACTION=CREATE TABLE JBM_TX (TRANSACTION_ID BIGINT, BRANCH_QUAL VARBINARY(254), FORMAT_ID INTEGER, GLOBAL_TXID VARBINARY(254), PRIMARY KEY (TRANSACTION_ID))
+ CREATE_COUNTER=CREATE TABLE JBM_COUNTER (NAME VARCHAR(255), NEXT_ID BIGINT, PRIMARY KEY(NAME))
+ INSERT_MESSAGE_REF=INSERT INTO JBM_MSG_REF (CHANNEL_ID, MESSAGE_ID, TRANSACTION_ID, STATE, ORD, PAGE_ORD, DELIVERY_COUNT, SCHED_DELIVERY) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ DELETE_MESSAGE_REF=DELETE FROM JBM_MSG_REF WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_MESSAGE_REF=UPDATE JBM_MSG_REF SET TRANSACTION_ID=?, STATE='-' WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_PAGE_ORDER=UPDATE JBM_MSG_REF SET PAGE_ORD = ? WHERE MESSAGE_ID=? AND CHANNEL_ID=?
+ COMMIT_MESSAGE_REF1=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='+'
+ COMMIT_MESSAGE_REF2=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='-'
+ ROLLBACK_MESSAGE_REF1=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='+'
+ ROLLBACK_MESSAGE_REF2=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='-'
+ LOAD_PAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, PAGE_ORD, SCHED_DELIVERY FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD
+ LOAD_UNPAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? AND PAGE_ORD IS NULL ORDER BY ORD
+ UPDATE_REFS_NOT_PAGED=UPDATE JBM_MSG_REF SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNEL_ID=?
+ SELECT_MIN_MAX_PAGE_ORD=SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JBM_MSG_REF WHERE CHANNEL_ID = ?
+ SELECT_EXISTS_REF=SELECT MESSAGE_ID FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND MESSAGE_ID = ?
+ SELECT_EXISTS_REF_MESSAGE_ID=SELECT MESSAGE_ID FROM JBM_MSG_REF WHERE MESSAGE_ID = ?
+ UPDATE_DELIVERY_COUNT=UPDATE JBM_MSG_REF SET DELIVERY_COUNT = ? WHERE CHANNEL_ID = ? AND MESSAGE_ID = ?
+ LOAD_MESSAGES=SELECT MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, TYPE FROM JBM_MSG
+ INSERT_MESSAGE=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, CHANNEL_COUNT, TYPE) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
+ INC_CHANNEL_COUNT=UPDATE JBM_MSG SET CHANNEL_COUNT = CHANNEL_COUNT + 1 WHERE MESSAGE_ID=?
+ DEC_CHANNEL_COUNT=UPDATE JBM_MSG SET CHANNEL_COUNT = CHANNEL_COUNT - 1 WHERE MESSAGE_ID=?
+ DELETE_MESSAGE=DELETE FROM JBM_MSG WHERE MESSAGE_ID=? AND CHANNEL_COUNT=0
+ MESSAGE_ID_COLUMN=MESSAGE_ID
+ MESSAGE_EXISTS=SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ? FOR UPDATE
+ INSERT_TRANSACTION=INSERT INTO JBM_TX (TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?)
+ DELETE_TRANSACTION=DELETE FROM JBM_TX WHERE TRANSACTION_ID = ?
+ SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JBM_TX
+ SELECT_MESSAGE_ID_FOR_REF=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '+' ORDER BY ORD
+ SELECT_MESSAGE_ID_FOR_ACK=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '-' ORDER BY ORD
+ UPDATE_COUNTER=UPDATE JBM_COUNTER SET NEXT_ID = ? WHERE NAME=?
+ SELECT_COUNTER=SELECT NEXT_ID FROM JBM_COUNTER WHERE NAME=? FOR UPDATE
+ INSERT_COUNTER=INSERT INTO JBM_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
+ SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNEL_ID) FROM JBM_MSG_REF
]]></attribute>
<attribute name="MaxParams">500</attribute>
</mbean>
@@ -72,10 +71,10 @@
<attribute name="DataSource">java:/DefaultDS</attribute>
<attribute name="CreateTablesOnStartup">true</attribute>
<attribute name="SqlProperties"><![CDATA[
-CREATE_POSTOFFICE_TABLE=CREATE TABLE JMS_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255), NODE_ID INTEGER, QUEUE_NAME VARCHAR(1023), COND VARCHAR(1023), SELECTOR VARCHAR(1023), CHANNEL_ID BIGINT, IS_FAILED_OVER CHAR(1), FAILED_NODE_ID INTEGER)
-INSERT_BINDING=INSERT INTO JMS_POSTOFFICE (POSTOFFICE_NAME, NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, IS_FAILED_OVER, FAILED_NODE_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
-DELETE_BINDING=DELETE FROM JMS_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?
-LOAD_BINDINGS=SELECT NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, IS_FAILED_OVER, FAILED_NODE_ID FROM JMS_POSTOFFICE WHERE POSTOFFICE_NAME = ?
+CREATE_POSTOFFICE_TABLE=CREATE TABLE JBM_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255), NODE_ID INTEGER, QUEUE_NAME VARCHAR(1023), COND VARCHAR(1023), SELECTOR VARCHAR(1023), CHANNEL_ID BIGINT, IS_FAILED_OVER CHAR(1), FAILED_NODE_ID INTEGER)
+INSERT_BINDING=INSERT INTO JBM_POSTOFFICE (POSTOFFICE_NAME, NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, IS_FAILED_OVER, FAILED_NODE_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+DELETE_BINDING=DELETE FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?
+LOAD_BINDINGS=SELECT NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, IS_FAILED_OVER, FAILED_NODE_ID FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME = ?
]]></attribute>
</mbean>
@@ -87,9 +86,9 @@
<attribute name="DataSource">java:/DefaultDS</attribute>
<attribute name="CreateTablesOnStartup">true</attribute>
<attribute name="SqlProperties"><![CDATA[
-CREATE_USER_TABLE=CREATE TABLE JMS_USER (USERID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128), PRIMARY KEY(USERID))
-CREATE_ROLE_TABLE=CREATE TABLE JMS_ROLE (ROLEID VARCHAR(32) NOT NULL, USERID VARCHAR(32) NOT NULL, PRIMARY KEY(USERID, ROLEID))
-SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JMS_USER WHERE USERID=?
+CREATE_USER_TABLE=CREATE TABLE JBM_USER (USER_ID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128), PRIMARY KEY(USER_ID))
+CREATE_ROLE_TABLE=CREATE TABLE JBM_ROLE (ROLE_ID VARCHAR(32) NOT NULL, USER_ID VARCHAR(32) NOT NULL, PRIMARY KEY(USER_ID, ROLE_ID))
+SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JBM_USER WHERE USER_ID=?
]]></attribute>
</mbean>
Modified: trunk/src/main/org/jboss/jms/client/container/ProducerAspect.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/container/ProducerAspect.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/client/container/ProducerAspect.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -165,12 +165,15 @@
}
m.setJMSDestination(destination);
-
+
+ // Generate the message id
+ ConnectionState connectionState = getConnectionState(invocation);
+
+ long id = connectionState.getIdGenerator().getId();
+
JBossMessage messageToSend;
boolean foreign = false;
- boolean doCopy = false;
-
if (!(m instanceof MessageProxy))
{
// it's a foreign message
@@ -205,41 +208,31 @@
{
messageToSend = new JBossMessage(m, 0);
}
-
- messageToSend.doAfterSend();
+
+ messageToSend.setJMSMessageID(null);
}
else
{
// get the actual message
MessageProxy proxy = (MessageProxy)m;
- messageToSend = proxy.getMessage();
-
- if (proxy.isSent() || proxy.isReceived())
- {
- doCopy = true;
- }
+
+ //The following line executed on the proxy should cause a copy to occur
+ //if it is necessary
+ proxy.setJMSMessageID(null);
- messageToSend.doAfterSend();
- proxy.setSent();
+ //Get the underlying message
+ messageToSend = proxy.getMessage();
+
+ proxy.beforeSend();
}
- // set the message ID
+ // Set the new id
- ConnectionState connectionState = getConnectionState(invocation);
-
- long id = connectionState.getIdGenerator().getId();
-
- messageToSend.setJMSMessageID(null);
messageToSend.setMessageId(id);
- // If the message has already been sent we need to make a shallow copy since if we are invm
- // then we do not want to change the ids of messages already sent - which would happen if we
- // were sending the same underlying instance.
- if (doCopy)
- {
- messageToSend = messageToSend.doShallowCopy();
- }
-
+ // This only really used for BytesMessages and StreamMessages to reset their state
+ messageToSend.doBeforeSend();
+
// now that we know the messageID, set it also on the foreign message, if is the case
if (foreign)
{
Modified: trunk/src/main/org/jboss/jms/client/remoting/CallbackManager.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/remoting/CallbackManager.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/client/remoting/CallbackManager.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -24,10 +24,12 @@
import java.util.Map;
import org.jboss.jms.client.delegate.ClientConnectionDelegate;
+import org.jboss.jms.message.JBossMessage;
import org.jboss.jms.message.MessageProxy;
import org.jboss.jms.wireformat.ClientDelivery;
import org.jboss.jms.wireformat.ConnectionFactoryUpdate;
import org.jboss.logging.Logger;
+import org.jboss.messaging.core.message.Message;
import org.jboss.remoting.callback.Callback;
import org.jboss.remoting.callback.HandleCallbackException;
import org.jboss.remoting.callback.InvokerCallbackHandler;
@@ -86,7 +88,11 @@
if (parameter instanceof ClientDelivery)
{
ClientDelivery dr = (ClientDelivery)parameter;
- MessageProxy msg = dr.getMessage();
+
+ Message msg = dr.getMessage();
+
+ MessageProxy proxy =
+ JBossMessage.createThinDelegate(dr.getDeliveryId(), (JBossMessage)msg, dr.getDeliveryCount());
MessageCallbackHandler handler =
(MessageCallbackHandler)callbackHandlers.get(new Integer(dr.getConsumerId()));
@@ -104,7 +110,7 @@
try
{
- handler.handleMessage(msg);
+ handler.handleMessage(proxy);
}
catch (Exception e)
{
Modified: trunk/src/main/org/jboss/jms/client/remoting/MessageCallbackHandler.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/remoting/MessageCallbackHandler.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/client/remoting/MessageCallbackHandler.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -37,7 +37,7 @@
import org.jboss.jms.server.endpoint.DefaultCancel;
import org.jboss.jms.server.endpoint.DeliveryInfo;
import org.jboss.logging.Logger;
-import org.jboss.messaging.core.Message;
+import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.util.Future;
import org.jboss.messaging.util.prioritylinkedlist.BasicPriorityLinkedList;
import org.jboss.messaging.util.prioritylinkedlist.PriorityLinkedList;
@@ -238,9 +238,9 @@
*/
public void handleMessage(Object message) throws Exception
{
- MessageProxy msg = (MessageProxy) message;
+ MessageProxy proxy = (MessageProxy) message;
- if (trace) { log.trace(this + " receiving message " + msg + " from the remoting layer"); }
+ if (trace) { log.trace(this + " receiving message " + proxy + " from the remoting layer"); }
synchronized (mainLock)
{
@@ -251,14 +251,12 @@
return;
}
- msg.setSessionDelegate(sessionDelegate, isConnectionConsumer);
-
- msg.setReceived();
-
+ proxy.setSessionDelegate(sessionDelegate, isConnectionConsumer);
+
//Add it to the buffer
- buffer.addLast(msg, msg.getJMSPriority());
+ buffer.addLast(proxy, proxy.getJMSPriority());
- lastDeliveryId = msg.getDeliveryId();
+ lastDeliveryId = proxy.getDeliveryId();
if (trace) { log.trace(this + " added message(s) to the buffer"); }
Modified: trunk/src/main/org/jboss/jms/destination/JBossDestination.java
===================================================================
--- trunk/src/main/org/jboss/jms/destination/JBossDestination.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/destination/JBossDestination.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -54,7 +54,7 @@
private static final byte TEMP_QUEUE = 3;
private static final byte TEMP_TOPIC = 4;
-
+
// Static --------------------------------------------------------
public static void writeDestination(DataOutputStream out, Destination dest) throws IOException
@@ -155,7 +155,7 @@
}
// Public --------------------------------------------------------
-
+
public String getName()
{
return name;
Modified: trunk/src/main/org/jboss/jms/destination/JBossQueue.java
===================================================================
--- trunk/src/main/org/jboss/jms/destination/JBossQueue.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/destination/JBossQueue.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -67,7 +67,7 @@
}
// Public --------------------------------------------------------
-
+
public String toString()
{
return "JBossQueue[" + name + "]";
Modified: trunk/src/main/org/jboss/jms/message/JBossBytesMessage.java
===================================================================
--- trunk/src/main/org/jboss/jms/message/JBossBytesMessage.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/message/JBossBytesMessage.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -27,7 +27,6 @@
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.IOException;
-import java.util.HashMap;
import java.util.Map;
import javax.jms.BytesMessage;
@@ -35,7 +34,6 @@
import javax.jms.MessageEOFException;
import javax.jms.MessageFormatException;
-import org.jboss.jms.destination.JBossDestination;
import org.jboss.jms.util.MessagingJMSException;
import org.jboss.logging.Logger;
@@ -59,7 +57,7 @@
private static final Logger log = Logger.getLogger(JBossBytesMessage.class);
- public static final byte TYPE = 1;
+ public static final byte TYPE = 4;
// Attributes ----------------------------------------------------
@@ -99,17 +97,9 @@
long timestamp,
byte priority,
Map coreHeaders,
- byte[] payloadAsByteArray,
- String jmsType,
- String correlationID,
- byte[] correlationIDBytes,
- JBossDestination destination,
- JBossDestination replyTo,
- HashMap jmsProperties)
+ byte[] payloadAsByteArray)
{
- super(messageID, reliable, expiration, timestamp, priority, coreHeaders, payloadAsByteArray,
- jmsType, correlationID, correlationIDBytes, destination, replyTo,
- jmsProperties);
+ super(messageID, reliable, expiration, timestamp, priority, coreHeaders, payloadAsByteArray);
baos = new ByteArrayOutputStream();
dos = new DataOutputStream(baos);
@@ -604,7 +594,7 @@
// JBossMessage overrides ----------------------------------------
- public void doAfterSend() throws JMSException
+ public void doBeforeSend() throws JMSException
{
reset();
}
@@ -656,7 +646,7 @@
return JBossBytesMessage.TYPE;
}
- public JBossMessage doShallowCopy() throws JMSException
+ public JBossMessage doCopy() throws JMSException
{
reset();
Modified: trunk/src/main/org/jboss/jms/message/JBossMapMessage.java
===================================================================
--- trunk/src/main/org/jboss/jms/message/JBossMapMessage.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/message/JBossMapMessage.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,7 +23,6 @@
import java.io.DataInputStream;
import java.io.DataOutputStream;
-import java.io.Serializable;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
@@ -33,7 +32,6 @@
import javax.jms.MapMessage;
import javax.jms.MessageFormatException;
-import org.jboss.jms.destination.JBossDestination;
import org.jboss.messaging.util.StreamUtils;
import org.jboss.util.Primitives;
@@ -55,7 +53,7 @@
private static final long serialVersionUID = 7939593521831220924L;
- public static final byte TYPE = 2;
+ public static final byte TYPE = 5;
// Attributes ----------------------------------------------------
@@ -83,23 +81,10 @@
/*
* This constructor is used to construct messages when retrieved from persistence storage
*/
- public JBossMapMessage(long messageID,
- boolean reliable,
- long expiration,
- long timestamp,
- byte priority,
- Map coreHeaders,
- byte[] payloadAsByteArray,
- String jmsType,
- String correlationID,
- byte[] correlationIDBytes,
- JBossDestination destination,
- JBossDestination replyTo,
- HashMap jmsProperties)
+ public JBossMapMessage(long messageID, boolean reliable, long expiration, long timestamp,
+ byte priority, Map coreHeaders, byte[] payloadAsByteArray)
{
- super(messageID, reliable, expiration, timestamp, priority, coreHeaders, payloadAsByteArray,
- jmsType, correlationID, correlationIDBytes, destination, replyTo,
- jmsProperties);
+ super(messageID, reliable, expiration, timestamp, priority, coreHeaders, payloadAsByteArray);
}
public JBossMapMessage(JBossMapMessage other)
@@ -490,7 +475,7 @@
clearPayloadAsByteArray();
}
- public JBossMessage doShallowCopy()
+ public JBossMessage doCopy()
{
return new JBossMapMessage(this);
}
@@ -499,12 +484,12 @@
// Protected -----------------------------------------------------
- protected void writePayload(DataOutputStream out, Serializable thePayload) throws Exception
+ protected void writePayload(DataOutputStream out, Object thePayload) throws Exception
{
StreamUtils.writeMap(out, ((Map)getPayload()), true);
}
- protected Serializable readPayload(DataInputStream in, int length)
+ protected Object readPayload(DataInputStream in, int length)
throws Exception
{
HashMap m = StreamUtils.readMap(in, true);
Modified: trunk/src/main/org/jboss/jms/message/JBossMessage.java
===================================================================
--- trunk/src/main/org/jboss/jms/message/JBossMessage.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/message/JBossMessage.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -45,8 +45,8 @@
import org.jboss.jms.destination.JBossDestination;
import org.jboss.jms.util.MessagingJMSException;
+import org.jboss.logging.Logger;
import org.jboss.messaging.core.message.MessageSupport;
-import org.jboss.messaging.util.StreamUtils;
import org.jboss.util.Primitives;
import org.jboss.util.Strings;
@@ -68,7 +68,6 @@
* @author Hiram Chirino (Cojonudo14 at hotmail.com)
* @author David Maplesden (David.Maplesden at orion.co.nz)
* @author <a href="mailto:adrian at jboss.org">Adrian Brock</a>
- * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
*
* $Id$
*/
@@ -77,18 +76,26 @@
// Constants -----------------------------------------------------
private static final long serialVersionUID = 2833181306818971346L;
- public static final byte TYPE = 0;
+ public static final byte TYPE = 1;
- private static final byte NULL = 0;
+ private static final char PROPERTY_PREFIX_CHAR = 'P';
- private static final byte STRING = 1;
+ private static final String PROPERTY_PREFIX = "P";
- private static final byte BYTES = 2;
+ private static final String DESTINATION_HEADER_NAME = "H.DEST";
- private static final String JMSX_DELIVERY_COUNT_PROP_NAME = "JMSXDeliveryCount";
+ private static final String REPLYTO_HEADER_NAME = "H.REPLYTO";
+ private static final String CORRELATIONID_HEADER_NAME = "H.CORRELATIONID";
+
+ private static final String CORRELATIONIDBYTES_HEADER_NAME = "H.CORRELATIONIDBYTES";
+
+ private static final String TYPE_HEADER_NAME = "H.TYPE";
+
public static final String JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME = "JMS_JBOSS_SCHEDULED_DELIVERY";
+ private static final Logger log = Logger.getLogger(JBossMessage.class);
+
// Static --------------------------------------------------------
private static final HashSet reservedIdentifiers = new HashSet();
@@ -191,31 +198,59 @@
sb.append(name).append(" - ").append(m.headers.get(name)).append('\n');
}
}
- sb.append(" redelivered: ").append(m.deliveryCount >= 1).append('\n');
- sb.append(" priority: ").append(m.priority).append('\n');
- sb.append(" deliveryCount: ").append(m.deliveryCount).append('\n');
-
- sb.append(" JMS ID: ").append(m.getJMSMessageID()).append('\n');
- sb.append(" type: ").append(type).append('\n');
- sb.append(" destination: ").append(m.destination).append('\n');
- sb.append(" replyTo: ").append(m.replyToDestination).append('\n');
- sb.append(" jmsType: ").append(m.jmsType).append('\n');
- sb.append(" properties: ");
-
- if (m.properties.size() == 0)
+
+ int deliveryCount = 0;
+ try
{
- sb.append("NO PROPERTIES").append('\n');
+ deliveryCount = m.getIntProperty("JMSXDeliveryCount");
}
- else
+ catch (JMSException e)
{
- sb.append('\n');
- for(Iterator i = m.properties.keySet().iterator(); i.hasNext(); )
+ log.error("Failed to get delivery count", e);
+ }
+
+ try
+ {
+ sb.append(" redelivered: ").append(deliveryCount >= 1).append('\n');
+ sb.append(" priority: ").append(m.priority).append('\n');
+ sb.append(" deliveryCount: ").append(deliveryCount).append('\n');
+
+ sb.append(" JMS ID: ").append(m.getJMSMessageID()).append('\n');
+ sb.append(" type: ").append(type).append('\n');
+ sb.append(" destination: ").append(m.getJMSDestination()).append('\n');
+ sb.append(" replyTo: ").append(m.getJMSReplyTo()).append('\n');
+ sb.append(" jmsType: ").append(m.getJMSType()).append('\n');
+ sb.append(" properties: ");
+ }
+ catch (Exception e)
+ {
+ log.error("Failed to dump message", e);
+ }
+
+ Iterator iter = m.headers.entrySet().iterator();
+
+ int count = 0;
+
+ while (iter.hasNext())
+ {
+ Map.Entry entry = (Map.Entry)iter.next();
+
+ String propName = (String)entry.getKey();
+
+ if (propName.charAt(0) == PROPERTY_PREFIX_CHAR)
{
- String name = (String)i.next();
+ if (count == 0)
+ {
+ sb.append("\n");
+ }
+
sb.append(" ");
- sb.append(name).append(" - ").append(m.properties.get(name)).append('\n');
+ sb.append(propName).append(" - ").append(entry.getValue()).append('\n');
+
+ count++;
}
}
+
sb.append("\n");
return sb.toString();
@@ -223,70 +258,42 @@
// Attributes ----------------------------------------------------
- protected JBossDestination destination;
- protected JBossDestination replyToDestination;
- protected String jmsType;
- protected Map properties;
- protected String correlationID;
- protected byte[] correlationIDBytes;
protected transient int connectionID;
+ protected transient String jmsMessageID;
+
+ //Optimisation - we could just store this as a header like everything else - but we store
+ //As an attribute so we can prevent an extra lookup on the server
+ private long scheduledDeliveryTime;
+
+ //Optimisation - we could just store this as a header like everything else - but we store
+ //As an attribute so we can prevent an extra lookup on the server
+ private JBossDestination destination;
+
// Constructors --------------------------------------------------
- /**
- * Only deserialization should use this constructor directory
+ /*
+ * Construct a message for deserialization or streaming
*/
public JBossMessage()
{
}
/*
- * This constructor is used to construct messages prior to sending
+ * Construct a message using default values
*/
public JBossMessage(long messageID)
{
- this(messageID, true, 0, System.currentTimeMillis(), (byte)4,
- null, null, null, null, null, null, null, null);
+ super(messageID, true, 0, System.currentTimeMillis(), (byte)4, null, null);
}
-
- public JBossMessage(long messageID,
- boolean reliable,
- long expiration,
- long timestamp,
- byte priority,
- Map coreHeaders,
- byte[] payloadAsByteArray,
- String jmsType,
- String correlationID,
- byte[] correlationIDBytes,
- JBossDestination destination,
- JBossDestination replyTo,
- HashMap jmsProperties)
+
+ /*
+ * Constructor using specified values
+ */
+ public JBossMessage(long messageID, boolean reliable, long expiration, long timestamp,
+ byte priority, Map headers, byte[] payloadAsByteArray)
{
- super(messageID,
- reliable,
- expiration,
- timestamp,
- priority,
- 0, 0,
- coreHeaders,
- payloadAsByteArray);
-
- this.jmsType = jmsType;
- this.correlationID = correlationID;
- this.correlationIDBytes = correlationIDBytes;
- this.connectionID = Integer.MIN_VALUE;
- this.destination = destination;
- this.replyToDestination = replyTo;
-
- if (jmsProperties == null)
- {
- properties = new HashMap();
- }
- else
- {
- properties = jmsProperties;
- }
+ super (messageID, reliable, expiration, timestamp, priority, headers, payloadAsByteArray);
}
/**
@@ -298,13 +305,8 @@
protected JBossMessage(JBossMessage other)
{
super(other);
- this.destination = other.destination;
- this.replyToDestination = other.replyToDestination;
- this.jmsType = other.jmsType;
- this.properties = other.properties;
- this.correlationID = other.correlationID;
- this.correlationIDBytes = other.correlationIDBytes;
- this.connectionID = other.connectionID;
+ this.connectionID = other.connectionID;
+ this.scheduledDeliveryTime = other.scheduledDeliveryTime;
}
/**
@@ -339,29 +341,17 @@
setJMSDestination(foreign.getJMSDestination());
}
setJMSDeliveryMode(foreign.getJMSDeliveryMode());
- setDeliveryCount(foreign.getJMSRedelivered() ? 1 : 0);
setJMSExpiration(foreign.getJMSExpiration());
setJMSPriority(foreign.getJMSPriority());
setJMSType(foreign.getJMSType());
- if (properties == null)
- {
- properties = new HashMap();
- }
-
for (Enumeration props = foreign.getPropertyNames(); props.hasMoreElements(); )
{
String name = (String)props.nextElement();
Object prop = foreign.getObjectProperty(name);
- if (JMSX_DELIVERY_COUNT_PROP_NAME.equals(name))
- {
- deliveryCount = foreign.getIntProperty(JMSX_DELIVERY_COUNT_PROP_NAME);
- }
- else
- {
- this.setObjectProperty(name, prop);
- }
+
+ this.setObjectProperty(name, prop);
}
}
@@ -375,8 +365,6 @@
// javax.jmx.Message implementation ------------------------------
- protected transient String jmsMessageID;
-
public String getJMSMessageID()
{
if (jmsMessageID == null)
@@ -407,7 +395,7 @@
public byte[] getJMSCorrelationIDAsBytes() throws JMSException
{
- return correlationIDBytes;
+ return (byte[]) headers.get(CORRELATIONIDBYTES_HEADER_NAME);
}
public void setJMSCorrelationIDAsBytes(byte[] correlationID) throws JMSException
@@ -416,24 +404,26 @@
{
throw new JMSException("Please specify a non-zero length byte[]");
}
- correlationIDBytes = correlationID;
- correlationID = null;
+ headers.put(CORRELATIONIDBYTES_HEADER_NAME, correlationID);
+
+ headers.remove(CORRELATIONID_HEADER_NAME);
}
public void setJMSCorrelationID(String correlationID) throws JMSException
{
- this.correlationID = correlationID;
- correlationIDBytes = null;
+ headers.put(CORRELATIONID_HEADER_NAME, correlationID);
+
+ headers.remove(CORRELATIONIDBYTES_HEADER_NAME);
}
public String getJMSCorrelationID() throws JMSException
{
- return correlationID;
+ return (String)headers.get(CORRELATIONID_HEADER_NAME);
}
public Destination getJMSReplyTo() throws JMSException
{
- return replyToDestination;
+ return (Destination)headers.get(REPLYTO_HEADER_NAME);
}
public void setJMSReplyTo(Destination replyTo) throws JMSException
@@ -442,12 +432,19 @@
{
throw new InvalidDestinationException("Replyto cannot be foreign");
}
- this.replyToDestination = (JBossDestination)replyTo;
+ headers.put(REPLYTO_HEADER_NAME, (JBossDestination)replyTo);
}
public Destination getJMSDestination() throws JMSException
{
- return destination;
+ if (destination != null)
+ {
+ return destination;
+ }
+ else
+ {
+ return (Destination)headers.get(DESTINATION_HEADER_NAME);
+ }
}
public void setJMSDestination(Destination destination) throws JMSException
@@ -456,8 +453,25 @@
{
throw new InvalidDestinationException("Destination cannot be foreign");
}
- this.destination = (JBossDestination)destination;
+
+ //We don't store as a header when setting - this allows us to avoid a lookup on the server
+ //when routing the message
+ this.destination = (JBossDestination)destination;
}
+
+ //We need to override getHeaders - so the JMSDestination header gets persisted to the db
+ //This is called by the persistence manager
+ public Map getHeaders()
+ {
+ if (destination != null)
+ {
+ headers.put(DESTINATION_HEADER_NAME, destination);
+ }
+
+ destination = null;
+
+ return headers;
+ }
public int getJMSDeliveryMode() throws JMSException
{
@@ -483,19 +497,13 @@
public boolean getJMSRedelivered() throws JMSException
{
- return deliveryCount >= 2;
+ throw new IllegalStateException("This should never be called directly");
}
public void setJMSRedelivered(boolean redelivered) throws JMSException
{
- if (deliveryCount == 1)
- {
- deliveryCount++;
- }
- else
- {
- //do nothing
- }
+ //Always dealt with on the proxy
+ throw new IllegalStateException("This should never be called directly");
}
/**
@@ -505,7 +513,7 @@
*/
public String getJMSType() throws JMSException
{
- return jmsType;
+ return (String)headers.get(TYPE_HEADER_NAME);
}
/**
@@ -515,7 +523,7 @@
*/
public void setJMSType(String type) throws JMSException
{
- this.jmsType = type;
+ headers.put(TYPE_HEADER_NAME, type);
}
public long getJMSExpiration() throws JMSException
@@ -540,24 +548,34 @@
public void clearProperties() throws JMSException
{
- properties.clear();
+ Iterator iter = headers.keySet().iterator();
+
+ while (iter.hasNext())
+ {
+ String propName = (String)iter.next();
+
+ if (propName.charAt(0) == PROPERTY_PREFIX_CHAR)
+ {
+ iter.remove();
+ }
+ }
}
public void clearBody() throws JMSException
{
this.setPayload(null);
+
clearPayloadAsByteArray();
}
public boolean propertyExists(String name) throws JMSException
{
- return properties.containsKey(name) || JMSX_DELIVERY_COUNT_PROP_NAME.equals(name) ||
- (this.scheduledDeliveryTime != 0 && JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME.equals(name));
+ return headers.containsKey(PROPERTY_PREFIX + name);
}
public boolean getBooleanProperty(String name) throws JMSException
{
- Object value = properties.get(name);
+ Object value = headers.get(PROPERTY_PREFIX + name);
if (value == null)
return Boolean.valueOf(null).booleanValue();
@@ -571,7 +589,7 @@
public byte getByteProperty(String name) throws JMSException
{
- Object value = properties.get(name);
+ Object value = headers.get(PROPERTY_PREFIX + name);
if (value == null)
throw new NumberFormatException("Message property '" + name + "' not set.");
@@ -585,7 +603,7 @@
public short getShortProperty(String name) throws JMSException
{
- Object value = properties.get(name);
+ Object value = headers.get(PROPERTY_PREFIX + name);
if (value == null)
throw new NumberFormatException("Message property '" + name + "' not set.");
@@ -600,13 +618,8 @@
}
public int getIntProperty(String name) throws JMSException
- {
- if (JMSX_DELIVERY_COUNT_PROP_NAME.equals(name))
- {
- return deliveryCount;
- }
-
- Object value = properties.get(name);
+ {
+ Object value = headers.get(PROPERTY_PREFIX + name);
if (value == null)
{
@@ -637,17 +650,20 @@
public long getLongProperty(String name) throws JMSException
{
- if (JMSX_DELIVERY_COUNT_PROP_NAME.equals(name))
- {
- return (long)deliveryCount;
+ if (JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME.equals(name))
+ {
+ if (this.scheduledDeliveryTime == 0)
+ {
+ throw new NumberFormatException("Message property '" + name + "' not set.");
+ }
+ else
+ {
+ return scheduledDeliveryTime;
+ }
}
- else if (JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME.equals(name) && scheduledDeliveryTime > 0)
- {
- return scheduledDeliveryTime;
- }
+
+ Object value = headers.get(PROPERTY_PREFIX + name);
- Object value = properties.get(name);
-
if (value == null)
{
throw new NumberFormatException("Message property '" + name + "' not set.");
@@ -681,7 +697,7 @@
public float getFloatProperty(String name) throws JMSException
{
- Object value = properties.get(name);
+ Object value = headers.get(PROPERTY_PREFIX + name);
if (value == null)
return Float.valueOf(null).floatValue();
@@ -695,7 +711,7 @@
public double getDoubleProperty(String name) throws JMSException
{
- Object value = properties.get(name);
+ Object value = headers.get(PROPERTY_PREFIX + name);
if (value == null)
return Double.valueOf(null).doubleValue();
@@ -711,16 +727,19 @@
public String getStringProperty(String name) throws JMSException
{
- if (JMSX_DELIVERY_COUNT_PROP_NAME.equals(name))
- {
- return String.valueOf(deliveryCount);
+ if (JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME.equals(name))
+ {
+ if (this.scheduledDeliveryTime == 0)
+ {
+ throw new NumberFormatException("Message property '" + name + "' not set.");
+ }
+ else
+ {
+ return String.valueOf(scheduledDeliveryTime);
+ }
}
- else if (JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME.equals(name) && scheduledDeliveryTime > 0)
- {
- return String.valueOf(scheduledDeliveryTime);
- }
-
- Object value = properties.get(name);
+
+ Object value = headers.get(PROPERTY_PREFIX + name);
if (value == null)
return null;
@@ -764,18 +783,43 @@
public Object getObjectProperty(String name) throws JMSException
{
- return properties.get(name);
+ if (JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME.equals(name))
+ {
+ if (scheduledDeliveryTime == 0)
+ {
+ return null;
+ }
+ else
+ {
+ return new Long(scheduledDeliveryTime);
+ }
+ }
+
+ return headers.get(PROPERTY_PREFIX + name);
}
public Enumeration getPropertyNames() throws JMSException
{
HashSet set = new HashSet();
- set.addAll(properties.keySet());
- set.add(JMSX_DELIVERY_COUNT_PROP_NAME);
- if (this.scheduledDeliveryTime > 0)
+
+ Iterator iter = headers.keySet().iterator();
+
+ while (iter.hasNext())
{
+ String propName = (String)iter.next();
+
+ if (propName.charAt(0) == PROPERTY_PREFIX_CHAR)
+ {
+ String name = propName.substring(1);
+ set.add(name);
+ }
+ }
+
+ if (scheduledDeliveryTime != 0)
+ {
set.add(JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME);
}
+
return Collections.enumeration(set);
}
@@ -783,103 +827,110 @@
{
Boolean b = Primitives.valueOf(value);
checkProperty(name, b);
- properties.put(name, b);
+ headers.put(PROPERTY_PREFIX + name, b);
}
public void setByteProperty(String name, byte value) throws JMSException
{
Byte b = new Byte(value);
checkProperty(name, b);
- properties.put(name, b);
+ headers.put(PROPERTY_PREFIX + name, b);
}
public void setShortProperty(String name, short value) throws JMSException
{
Short s = new Short(value);
checkProperty(name, s);
- properties.put(name, s);
+ headers.put(PROPERTY_PREFIX + name, s);
}
public void setIntProperty(String name, int value) throws JMSException
{
Integer i = new Integer(value);
checkProperty(name, i);
- properties.put(name, i);
+ headers.put(PROPERTY_PREFIX + name, i);
}
public void setLongProperty(String name, long value) throws JMSException
{
+ // Optimisation - we don't actually store this as a header - but as an attribute
if (JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME.equals(name))
- {
+ {
this.scheduledDeliveryTime = value;
}
else
- {
+ {
Long l = new Long(value);
checkProperty(name, l);
- properties.put(name, l);
- }
+ headers.put(PROPERTY_PREFIX + name, l);
+ }
}
public void setFloatProperty(String name, float value) throws JMSException
{
Float f = new Float(value);
checkProperty(name, f);
- properties.put(name, f);
+ headers.put(PROPERTY_PREFIX + name, f);
}
public void setDoubleProperty(String name, double value) throws JMSException
{
Double d = new Double(value);
checkProperty(name, d);
- properties.put(name, d);
+ headers.put(PROPERTY_PREFIX + name, d);
}
public void setStringProperty(String name, String value) throws JMSException
{
checkProperty(name, value);
- this.properties.put(name, value);
+ headers.put(PROPERTY_PREFIX + name, value);
}
public void setObjectProperty(String name, Object value) throws JMSException
{
+ if (JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME.equals(name) && value instanceof Long)
+ {
+ this.scheduledDeliveryTime = ((Long)value).longValue();
+ return;
+ }
+
checkProperty(name, value);
if (value instanceof Boolean)
{
- properties.put(name, value);
+ headers.put(PROPERTY_PREFIX + name, value);
}
else if (value instanceof Byte)
{
- properties.put(name, value);
+ headers.put(PROPERTY_PREFIX + name, value);
}
else if (value instanceof Short)
{
- properties.put(name, value);
+ headers.put(PROPERTY_PREFIX + name, value);
}
else if (value instanceof Integer)
{
- properties.put(name, value);
+ headers.put(PROPERTY_PREFIX + name, value);
}
else if (value instanceof Long)
{
- properties.put(name, value);
+ headers.put(PROPERTY_PREFIX + name, value);
}
else if (value instanceof Float)
{
- properties.put(name, value);
+ headers.put(PROPERTY_PREFIX + name, value);
}
else if (value instanceof Double)
{
- properties.put(name, value);
+ headers.put(PROPERTY_PREFIX + name, value);
}
else if (value instanceof String)
{
- properties.put(name, value);
+ headers.put(PROPERTY_PREFIX + name, value);
}
else if (value == null)
{
- properties.put(name, null);
+ headers.put(PROPERTY_PREFIX + name, null);
}
else
{
@@ -889,7 +940,7 @@
// Public --------------------------------------------------------
- public void doAfterSend() throws JMSException
+ public void doBeforeSend() throws JMSException
{
}
@@ -897,20 +948,7 @@
{
return JBossMessage.TYPE;
}
-
- /**
- * @return a reference of the internal JMS property map.
- */
- public Map getJMSProperties()
- {
- return properties;
- }
- public void setJMSProperties(Map props)
- {
- this.properties = props;
- }
-
public void copyPayload(Object payload) throws JMSException
{
}
@@ -935,127 +973,73 @@
return sb.toString();
}
- public JBossMessage doShallowCopy() throws JMSException
+ public JBossMessage doCopy() throws JMSException
{
return new JBossMessage(this);
}
+
+ public void acknowledge()
+ {
+ throw new IllegalStateException("Should not be handled here!");
+ }
- public boolean isCorrelationIDBytes()
+ public void setMessageId(long messageID)
{
- return this.correlationIDBytes != null;
+ this.messageID = messageID;
}
- public void acknowledge()
+ public long getScheduledDeliveryTime()
{
- //do nothing - handled in thin delegate
+ return scheduledDeliveryTime;
}
+
+ /* Only used for testing */
+ public Map getJMSProperties()
+ {
+ Map newHeaders = new HashMap();
+
+ Iterator iter = headers.entrySet().iterator();
+
+ while (iter.hasNext())
+ {
+ Map.Entry entry = (Map.Entry)iter.next();
+
+ String key = (String)entry.getKey();
+
+ if (key.charAt(0) == PROPERTY_PREFIX_CHAR)
+ {
+ newHeaders.put(key, entry.getValue());
+ }
+ }
+
+ return newHeaders;
+ }
- public void setMessageId(long messageID)
+ //Only used for testing
+ public boolean isCorrelationIDBytes()
{
- this.messageID = messageID;
+ return headers.get(CORRELATIONIDBYTES_HEADER_NAME) != null;
}
+
// Streamable implementation ---------------------------------
public void write(DataOutputStream out) throws Exception
{
super.write(out);
+
+ out.writeLong(scheduledDeliveryTime);
- JBossDestination.writeDestination(out, destination);
-
- JBossDestination.writeDestination(out, replyToDestination);
-
- if (jmsType == null)
- {
- out.writeByte(NULL);
- }
- else
- {
- out.writeByte(STRING);
- out.writeUTF(jmsType);
- }
-
- StreamUtils.writeMap(out, properties, true);
-
- if (correlationID == null && correlationIDBytes == null)
- {
- out.writeByte(NULL);
- }
- else if (correlationIDBytes == null)
- {
- //String correlation id
- out.writeByte(STRING);
-
- out.writeUTF(correlationID);
- }
- else
- {
- //Bytes correlation id
- out.writeByte(BYTES);
-
- out.writeInt(correlationIDBytes.length);
-
- out.write(correlationIDBytes);
- }
+ JBossDestination.writeDestination(out, destination);
}
public void read(DataInputStream in) throws Exception
{
super.read(in);
-
- destination = JBossDestination.readDestination(in);
-
- replyToDestination = JBossDestination.readDestination(in);
-
- byte b = in.readByte();
- if (b == NULL)
- {
- jmsType = null;
- }
- else
- {
- jmsType = in.readUTF();
- }
+
+ scheduledDeliveryTime = in.readLong();
- Map m = StreamUtils.readMap(in, true);
- if (!(m instanceof HashMap))
- {
- properties = new HashMap(m);
- }
- else
- {
- properties = (HashMap)m;
- }
-
- // correlation id
-
- b = in.readByte();
-
- if (b == NULL)
- {
- // No correlation id
- correlationID = null;
-
- correlationIDBytes = null;
- }
- else if (b == STRING)
- {
- // String correlation id
- correlationID = in.readUTF();
-
- correlationIDBytes = null;
- }
- else
- {
- // Bytes correlation id
- correlationID = null;
-
- int len = in.readInt();
-
- correlationIDBytes = new byte[len];
-
- in.readFully(correlationIDBytes);
- }
+ destination = JBossDestination.readDestination(in);
}
// Package protected ---------------------------------------------
@@ -1092,9 +1076,9 @@
}
if (name.regionMatches(false, 0, "JMSX", 0, 4) &&
- !name.equals("JMSXGroupID") && !name.equals("JMSXGroupSeq"))
+ !name.equals("JMSXGroupID") && !name.equals("JMSXGroupSeq") && !name.equals("JMSXDeliveryCount"))
{
- throw new JMSException("Can only set JMSXGroupId, JMSXGroupSeq");
+ throw new JMSException("Can only set JMSXGroupId, JMSXGroupSeq, JMSXDeliveryCount");
}
}
Modified: trunk/src/main/org/jboss/jms/message/JBossObjectMessage.java
===================================================================
--- trunk/src/main/org/jboss/jms/message/JBossObjectMessage.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/message/JBossObjectMessage.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -22,14 +22,11 @@
package org.jboss.jms.message;
import java.io.Serializable;
-import java.util.HashMap;
import java.util.Map;
import javax.jms.JMSException;
import javax.jms.ObjectMessage;
-import org.jboss.jms.destination.JBossDestination;
-
/**
* This class implements javax.jms.ObjectMessage
*
@@ -46,7 +43,7 @@
private static final long serialVersionUID = -2374448267737763502L;
- public static final byte TYPE = 3;
+ public static final byte TYPE = 2;
// Attributes ----------------------------------------------------
@@ -72,23 +69,10 @@
/*
* This constructor is used to construct messages when retrieved from persistence storage
*/
- public JBossObjectMessage(long messageID,
- boolean reliable,
- long expiration,
- long timestamp,
- byte priority,
- Map coreHeaders,
- byte[] payloadAsByteArray,
- String jmsType,
- String correlationID,
- byte[] correlationIDBytes,
- JBossDestination destination,
- JBossDestination replyTo,
- HashMap jmsProperties)
+ public JBossObjectMessage(long messageID, boolean reliable, long expiration, long timestamp,
+ byte priority, Map coreHeaders, byte[] payloadAsByteArray)
{
- super(messageID, reliable, expiration, timestamp, priority, coreHeaders, payloadAsByteArray,
- jmsType, correlationID, correlationIDBytes, destination, replyTo,
- jmsProperties);
+ super(messageID, reliable, expiration, timestamp, priority, coreHeaders, payloadAsByteArray);
}
@@ -132,12 +116,12 @@
public Serializable getObject() throws JMSException
{
- return getPayload();
+ return (Serializable)getPayload();
}
// JBossMessage overrides ----------------------------------------
- public JBossMessage doShallowCopy()
+ public JBossMessage doCopy()
{
return new JBossObjectMessage(this);
}
Modified: trunk/src/main/org/jboss/jms/message/JBossStreamMessage.java
===================================================================
--- trunk/src/main/org/jboss/jms/message/JBossStreamMessage.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/message/JBossStreamMessage.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,9 +23,7 @@
import java.io.DataInputStream;
import java.io.DataOutputStream;
-import java.io.Serializable;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -34,7 +32,6 @@
import javax.jms.MessageFormatException;
import javax.jms.StreamMessage;
-import org.jboss.jms.destination.JBossDestination;
import org.jboss.messaging.util.StreamUtils;
import org.jboss.util.Primitives;
@@ -56,7 +53,7 @@
private static final long serialVersionUID = 7469150228071568233L;
- public static final byte TYPE = 4;
+ public static final byte TYPE = 6;
// Attributes ----------------------------------------------------
@@ -93,23 +90,10 @@
/*
* This constructor is used to construct messages when retrieved from persistence storage
*/
- public JBossStreamMessage(long messageID,
- boolean reliable,
- long expiration,
- long timestamp,
- byte priority,
- Map coreHeaders,
- byte[] payloadAsByteArray,
- String jmsType,
- String correlationID,
- byte[] correlationIDBytes,
- JBossDestination destination,
- JBossDestination replyTo,
- HashMap jmsProperties)
+ public JBossStreamMessage(long messageID, boolean reliable, long expiration, long timestamp,
+ byte priority, Map coreHeaders, byte[] payloadAsByteArray)
{
- super(messageID, reliable, expiration, timestamp, priority, coreHeaders, payloadAsByteArray,
- jmsType, correlationID, correlationIDBytes, destination, replyTo,
- jmsProperties);
+ super(messageID, reliable, expiration, timestamp, priority, coreHeaders, payloadAsByteArray);
}
/**
@@ -155,7 +139,7 @@
return JBossStreamMessage.TYPE;
}
- public void doAfterSend() throws JMSException
+ public void doBeforeSend() throws JMSException
{
reset();
}
@@ -682,7 +666,7 @@
}
- public JBossMessage doShallowCopy()
+ public JBossMessage doCopy()
{
return new JBossStreamMessage(this);
}
@@ -691,12 +675,12 @@
// Protected -----------------------------------------------------
- protected void writePayload(DataOutputStream out, Serializable thePayload) throws Exception
+ protected void writePayload(DataOutputStream out, Object thePayload) throws Exception
{
StreamUtils.writeList(out, (List)thePayload);
}
- protected Serializable readPayload(DataInputStream in, int length)
+ protected Object readPayload(DataInputStream in, int length)
throws Exception
{
return StreamUtils.readList(in);
Modified: trunk/src/main/org/jboss/jms/message/JBossTextMessage.java
===================================================================
--- trunk/src/main/org/jboss/jms/message/JBossTextMessage.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/message/JBossTextMessage.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,14 +23,11 @@
import java.io.DataInputStream;
import java.io.DataOutputStream;
-import java.io.Serializable;
-import java.util.HashMap;
import java.util.Map;
import javax.jms.JMSException;
import javax.jms.TextMessage;
-import org.jboss.jms.destination.JBossDestination;
import org.jboss.messaging.util.SafeUTF;
/**
@@ -52,7 +49,7 @@
private static final long serialVersionUID = -5661567664746852006L;
- public static final byte TYPE = 5;
+ public static final byte TYPE = 3;
// Attributes ----------------------------------------------------
@@ -78,23 +75,10 @@
/*
* This constructor is used to construct messages when retrieved from persistence storage
*/
- public JBossTextMessage(long messageID,
- boolean reliable,
- long expiration,
- long timestamp,
- byte priority,
- Map coreHeaders,
- byte[] payloadAsByteArray,
- String jmsType,
- String correlationID,
- byte[] correlationIDBytes,
- JBossDestination destination,
- JBossDestination replyTo,
- HashMap jmsProperties)
+ public JBossTextMessage(long messageID, boolean reliable, long expiration, long timestamp,
+ byte priority, Map coreHeaders, byte[] payloadAsByteArray)
{
- super(messageID, reliable, expiration, timestamp, priority, coreHeaders, payloadAsByteArray,
- jmsType, correlationID, correlationIDBytes, destination, replyTo,
- jmsProperties);
+ super(messageID, reliable, expiration, timestamp, priority, coreHeaders, payloadAsByteArray);
}
/**
@@ -144,7 +128,7 @@
// JBossMessage override -----------------------------------------
- public JBossMessage doShallowCopy()
+ public JBossMessage doCopy()
{
return new JBossTextMessage(this);
}
@@ -153,12 +137,12 @@
// Protected -----------------------------------------------------
- protected void writePayload(DataOutputStream out, Serializable thePayload) throws Exception
+ protected void writePayload(DataOutputStream out, Object thePayload) throws Exception
{
SafeUTF.instance.safeWriteUTF(out, (String)thePayload);
}
- protected Serializable readPayload(DataInputStream in, int length)
+ protected Object readPayload(DataInputStream in, int length)
throws Exception
{
return SafeUTF.instance.safeReadUTF(in);
Modified: trunk/src/main/org/jboss/jms/message/MessageProxy.java
===================================================================
--- trunk/src/main/org/jboss/jms/message/MessageProxy.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/message/MessageProxy.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,7 +23,6 @@
import java.io.Serializable;
import java.util.Enumeration;
-import java.util.HashMap;
import javax.jms.Destination;
import javax.jms.JMSException;
@@ -31,6 +30,7 @@
import javax.jms.MessageNotWriteableException;
import org.jboss.jms.delegate.SessionDelegate;
+import org.jboss.logging.Logger;
/**
*
@@ -57,12 +57,10 @@
private static final long serialVersionUID = 5903095946142192468L;
+ private static final Logger log = Logger.getLogger(MessageProxy.class);
+
// Static --------------------------------------------------------
- protected static final int STATE_NEW = 0;
- protected static final int STATE_SENT = 1;
- protected static final int STATE_RECEIVED = 2;
-
// Attributes ----------------------------------------------------
//The actual session delegate for the message - needed for doing recovery
@@ -71,45 +69,68 @@
private transient boolean cc;
- private transient boolean messageCopied;
-
- private transient boolean propertiesCopied;
-
- private transient boolean bodyCopied;
-
- private transient int state;
-
- private transient boolean propertiesReadOnly;
-
private int deliveryCount;
private long deliveryId;
+
+ private transient boolean needToCopyHeader;
+ private transient boolean needToCopyBody;
+
+ public void beforeSend()
+ {
+ this.needToCopyHeader = true;
+
+ this.needToCopyBody = true;
+
+ this.propertiesReadOnly = false;
+
+ this.bodyReadOnly = false;
+ }
+
+ private transient boolean propertiesReadOnly;
+
protected transient boolean bodyReadOnly;
+
protected JBossMessage message;
-
// Constructors --------------------------------------------------
public MessageProxy()
{
}
+ /*
+ * Constructor for a new message
+ */
public MessageProxy(JBossMessage message)
{
- this.deliveryId = -1;
this.message = message;
- this.state = STATE_NEW;
- this.deliveryCount = 0;
+
+ this.needToCopyHeader = false;
+
+ this.needToCopyBody = false;
}
+ /*
+ * COnstructor for a message received by a consumer
+ */
public MessageProxy(long deliveryId, JBossMessage message, int deliveryCount)
{
this.deliveryId = deliveryId;
+
this.message = message;
- this.state = STATE_NEW;
+
this.deliveryCount = deliveryCount;
+
+ this.needToCopyHeader = true;
+
+ this.needToCopyBody = true;
+
+ this.propertiesReadOnly = true;
+
+ this.bodyReadOnly = true;
}
// Message implementation ----------------------------------------
@@ -249,7 +270,7 @@
public void clearProperties() throws JMSException
{
- propertiesClear();
+ headerChange();
message.clearProperties();
propertiesReadOnly = false;
}
@@ -276,6 +297,7 @@
public int getIntProperty(String name) throws JMSException
{
+ //JMSDeliveryCount is always dealt within inside the proxy
if ("JMSXDeliveryCount".equals(name))
{
return deliveryCount;
@@ -285,6 +307,7 @@
public long getLongProperty(String name) throws JMSException
{
+ //JMSDeliveryCount is always dealt within inside the proxy
if ("JMSXDeliveryCount".equals(name))
{
return deliveryCount;
@@ -304,6 +327,7 @@
public String getStringProperty(String name) throws JMSException
{
+ //JMSDeliveryCount is always dealt within inside the proxy
if ("JMSXDeliveryCount".equals(name))
{
return Integer.toString(deliveryCount);
@@ -325,7 +349,7 @@
{
if (propertiesReadOnly)
throw new MessageNotWriteableException("Properties are read-only");
- propertyChange();
+ headerChange();
message.setBooleanProperty(name, value);
}
@@ -333,7 +357,7 @@
{
if (propertiesReadOnly)
throw new MessageNotWriteableException("Properties are read-only");
- propertyChange();
+ headerChange();
message.setByteProperty(name, value);
}
@@ -341,7 +365,7 @@
{
if (propertiesReadOnly)
throw new MessageNotWriteableException("Properties are read-only");
- propertyChange();
+ headerChange();
message.setShortProperty(name, value);
}
@@ -349,7 +373,7 @@
{
if (propertiesReadOnly)
throw new MessageNotWriteableException("Properties are read-only");
- propertyChange();
+ headerChange();
message.setIntProperty(name, value);
}
@@ -357,7 +381,7 @@
{
if (propertiesReadOnly)
throw new MessageNotWriteableException("Properties are read-only");
- propertyChange();
+ headerChange();
message.setLongProperty(name, value);
}
@@ -365,7 +389,7 @@
{
if (propertiesReadOnly)
throw new MessageNotWriteableException("Properties are read-only");
- propertyChange();
+ headerChange();
message.setFloatProperty(name, value);
}
@@ -373,7 +397,7 @@
{
if (propertiesReadOnly)
throw new MessageNotWriteableException("Properties are read-only");
- propertyChange();
+ headerChange();
message.setDoubleProperty(name, value);
}
@@ -381,7 +405,7 @@
{
if (propertiesReadOnly)
throw new MessageNotWriteableException("Properties are read-only");
- propertyChange();
+ headerChange();
message.setStringProperty(name, value);
}
@@ -389,7 +413,7 @@
{
if (propertiesReadOnly)
throw new MessageNotWriteableException("Properties are read-only");
- propertyChange();
+ headerChange();
message.setObjectProperty(name, value);
}
@@ -404,7 +428,7 @@
public void clearBody() throws JMSException
{
- bodyClear();
+ bodyChange();
message.clearBody();
bodyReadOnly = false;
}
@@ -423,20 +447,6 @@
return delegate;
}
- public void setSent()
- {
- state = STATE_SENT;
- }
-
- public void setReceived()
- {
- state = STATE_RECEIVED;
-
- propertiesReadOnly = true;
-
- bodyReadOnly = true;
- }
-
public JBossMessage getMessage()
{
return message;
@@ -468,94 +478,34 @@
protected void headerChange() throws JMSException
{
- if ((isSent() || isReceived()))
+ if (needToCopyHeader)
{
- // A header value is to be changed - we must make a shallow copy of the message.
- // This basically only copies the headers
copyMessage();
}
}
- protected void copyMessage() throws JMSException
- {
- if (!messageCopied)
+ protected void bodyChange() throws JMSException
+ {
+ if (needToCopyBody)
{
- message = message.doShallowCopy();
- messageCopied = true;
+ headerChange();
+
+ message.copyPayload(message.getPayload());
+
+ needToCopyBody = false;
}
}
- public boolean isSent()
+ // Private -------------------------------------------------------
+
+ private void copyMessage() throws JMSException
{
- return state == STATE_SENT;
+ message = message.doCopy();
+
+ needToCopyHeader = false;
}
- public boolean isReceived()
- {
- return state == STATE_RECEIVED;
- }
- protected void propertyChange() throws JMSException
- {
- if (!propertiesCopied)
- {
- if (isSent())
- {
- //The message has been sent - we need to copy properties to avoid changing the properties
- //of the sent message
- copyMessage();
- message.setJMSProperties(new HashMap(message.getJMSProperties()));
-
- }
- else if (isReceived())
- {
- //No need to copy - any attempt to set read only props will throw an exception
- }
- }
- }
-
- protected void propertiesClear() throws JMSException
- {
- if (isSent() || isReceived())
- {
- copyMessage();
- message.setJMSProperties(new HashMap());
- propertiesCopied = true;
- }
- }
-
- protected void bodyClear() throws JMSException
- {
- if (isSent() || isReceived())
- {
- copyMessage();
- bodyCopied = true;
- }
- }
-
- protected void bodyChange() throws JMSException
- {
- if (isSent())
- {
- // The message has been sent - make a copy of the message to avoid changing the sent
- // messages payload
- copyMessage();
-
- if (!bodyCopied)
- {
- message.copyPayload(message.getPayload());
- bodyCopied = true;
- }
- }
- else if (isReceived())
- {
- // Do nothing - any attempt to change the payload of the message should throw an exception
- // (readonly)
- }
- }
-
- // Private -------------------------------------------------------
-
// Inner classes -------------------------------------------------
}
Modified: trunk/src/main/org/jboss/jms/selector/Selector.java
===================================================================
--- trunk/src/main/org/jboss/jms/selector/Selector.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/selector/Selector.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -30,8 +30,6 @@
import org.jboss.logging.Logger;
import org.jboss.messaging.core.Filter;
-import org.jboss.messaging.core.MessageReference;
-import org.jboss.messaging.core.Routable;
/**
@@ -119,30 +117,17 @@
return selector;
}
- public synchronized boolean accept(Routable routable)
+ public synchronized boolean accept(org.jboss.messaging.core.message.Message message)
{
try
- {
- org.jboss.messaging.core.Message m;
-
- //FIXME - We can get rid of this nasty comparisons once we change core
- //to only deal with MessageRefernce instances
- if (routable.isReference())
- {
- m = ((MessageReference)routable).getMessage();
- }
- else
- {
- m = (org.jboss.messaging.core.Message)routable;
- }
-
+ {
//Only accept JMS messages
- if (!(m instanceof Message))
+ if (!(message instanceof Message))
{
return false;
}
- Message mess = (Message)m;
+ Message mess = (Message)message;
// Set the identifiers values
Iterator i = identifiers.values().iterator();
Modified: trunk/src/main/org/jboss/jms/server/JMSCondition.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/JMSCondition.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/server/JMSCondition.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -21,7 +21,7 @@
*/
package org.jboss.jms.server;
-import org.jboss.messaging.core.MessageReference;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.contract.Condition;
/**
Modified: trunk/src/main/org/jboss/jms/server/ServerPeer.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/ServerPeer.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/server/ServerPeer.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -58,8 +58,8 @@
import org.jboss.messaging.core.Queue;
import org.jboss.messaging.core.memory.MemoryManager;
import org.jboss.messaging.core.memory.SimpleMemoryManager;
+import org.jboss.messaging.core.message.SimpleMessageStore;
import org.jboss.messaging.core.plugin.IDManager;
-import org.jboss.messaging.core.plugin.SimpleMessageStore;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
import org.jboss.messaging.core.plugin.contract.PostOffice;
Modified: trunk/src/main/org/jboss/jms/server/destination/ManagedQueue.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/destination/ManagedQueue.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/server/destination/ManagedQueue.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -28,8 +28,8 @@
import org.jboss.jms.selector.Selector;
import org.jboss.jms.server.messagecounter.MessageCounter;
import org.jboss.logging.Logger;
-import org.jboss.messaging.core.Message;
import org.jboss.messaging.core.Queue;
+import org.jboss.messaging.core.message.Message;
/**
* A ManagedQueue
Modified: trunk/src/main/org/jboss/jms/server/destination/ManagedTopic.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/destination/ManagedTopic.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/server/destination/ManagedTopic.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -31,8 +31,8 @@
import org.jboss.jms.server.messagecounter.MessageCounter;
import org.jboss.jms.util.MessageQueueNameHelper;
import org.jboss.logging.Logger;
-import org.jboss.messaging.core.Message;
import org.jboss.messaging.core.Queue;
+import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.plugin.postoffice.Binding;
/**
Modified: trunk/src/main/org/jboss/jms/server/endpoint/ServerBrowserEndpoint.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/endpoint/ServerBrowserEndpoint.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/server/endpoint/ServerBrowserEndpoint.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -35,7 +35,6 @@
import org.jboss.logging.Logger;
import org.jboss.messaging.core.Channel;
import org.jboss.messaging.core.Filter;
-import org.jboss.messaging.core.Routable;
/**
* Concrete implementation of BrowserEndpoint.
@@ -139,11 +138,11 @@
iterator = createIterator();
}
- Routable r = (Routable)iterator.next();
+ JBossMessage r = (JBossMessage)iterator.next();
if (trace) { log.trace(this + " returning " + r); }
- return (JBossMessage)r.getMessage();
+ return r;
}
catch (Throwable t)
{
@@ -179,7 +178,7 @@
{
if (iterator.hasNext())
{
- Message m = (Message)((Routable)iterator.next()).getMessage();
+ Message m = (Message)iterator.next();
messages.add(m);
i++;
}
Modified: trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionEndpoint.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionEndpoint.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionEndpoint.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -52,8 +52,8 @@
import org.jboss.jms.util.ToString;
import org.jboss.jms.wireformat.Dispatcher;
import org.jboss.logging.Logger;
-import org.jboss.messaging.core.MessageReference;
-import org.jboss.messaging.core.Routable;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.plugin.contract.PostOffice;
import org.jboss.messaging.core.tx.MessagingXid;
@@ -631,7 +631,7 @@
// the "local" queues, to reduce clutter and unnecessary "pull policy" revving.
if (failedNodeID != null)
{
- msg.putHeader(Routable.FAILED_NODE_ID, failedNodeID);
+ msg.putHeader(Message.FAILED_NODE_ID, failedNodeID);
}
// We must reference the message *before* we send it the destination to be handled. This is
@@ -645,6 +645,13 @@
{
ref = ms.reference(msg);
+ long schedDeliveryTime = msg.getScheduledDeliveryTime();
+
+ if (schedDeliveryTime > 0)
+ {
+ ref.setScheduledDeliveryTime(schedDeliveryTime);
+ }
+
if (dest.isQueue())
{
if (!postOffice.route(ref, new JMSCondition(true, dest.getName()), tx))
Modified: trunk/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -27,7 +27,6 @@
import org.jboss.jms.destination.JBossDestination;
import org.jboss.jms.message.JBossMessage;
-import org.jboss.jms.message.MessageProxy;
import org.jboss.jms.selector.Selector;
import org.jboss.jms.server.ConnectionManager;
import org.jboss.jms.server.destination.TopicService;
@@ -39,11 +38,11 @@
import org.jboss.messaging.core.Channel;
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Queue;
import org.jboss.messaging.core.Receiver;
-import org.jboss.messaging.core.Routable;
import org.jboss.messaging.core.SimpleDelivery;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.contract.PostOffice;
import org.jboss.messaging.core.plugin.postoffice.Binding;
import org.jboss.messaging.core.tx.Transaction;
@@ -177,7 +176,7 @@
return null;
}
- if (ref.isExpired())
+ if (ref.getMessage().isExpired())
{
SimpleDelivery delivery = new SimpleDelivery(observer, ref, true);
@@ -206,7 +205,7 @@
if (trace) { log.trace(this + " has startStopLock lock, preparing the message for delivery"); }
- JBossMessage message = (JBossMessage)ref.getMessage();
+ Message message = ref.getMessage();
boolean selectorRejected = !this.accept(message);
@@ -220,20 +219,12 @@
long deliveryId =
sessionEndpoint.addDelivery(delivery, id, dlq, expiryQueue, redeliveryDelay);
- // We don't send the message as-is, instead we create a MessageProxy instance. This allows
- // local fields such as deliveryCount to be handled by the proxy but global data to be
- // fielded by the same underlying Message instance. This allows us to avoid expensive
- // copying of messages
-
- MessageProxy mp = JBossMessage.
- createThinDelegate(deliveryId, message, ref.getDeliveryCount());
-
// We send the message to the client on the current thread. The message is written onto the
// transport and then the thread returns immediately without waiting for a response.
Client callbackClient = callbackHandler.getCallbackClient();
- ClientDelivery del = new ClientDelivery(mp, id);
+ ClientDelivery del = new ClientDelivery(message, id, deliveryId, ref.getDeliveryCount());
Callback callback = new Callback(del);
@@ -296,7 +287,7 @@
// Filter implementation ------------------------------------------------------------------------
- public boolean accept(Routable r)
+ public boolean accept(Message msg)
{
boolean accept = true;
@@ -306,7 +297,7 @@
// we do not want to do the check twice
if (messageSelector != null)
{
- accept = messageSelector.accept(r);
+ accept = messageSelector.accept(msg);
if (trace) { log.trace("message selector " + (accept ? "accepts " : "DOES NOT accept ") + "the message"); }
}
@@ -316,7 +307,7 @@
{
if (noLocal)
{
- int conId = ((JBossMessage)r).getConnectionID();
+ int conId = ((JBossMessage)msg).getConnectionID();
if (trace) { log.trace("message connection id: " + conId + " current connection connection id: " + sessionEndpoint.getConnectionEndpoint().getConnectionID()); }
Modified: trunk/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -66,9 +66,9 @@
import org.jboss.messaging.core.Channel;
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Queue;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.IDManager;
import org.jboss.messaging.core.plugin.contract.ClusteredPostOffice;
import org.jboss.messaging.core.plugin.contract.MessageStore;
@@ -117,7 +117,7 @@
public static final String JBOSS_MESSAGING_ORIG_DESTINATION = "JBM_ORIG_DESTINATION";
- public static final String JBOSS_MESSAGING_ORIG_MESSAGEID = "JBM_ORIG_MESSAGEID";
+ public static final String JBOSS_MESSAGING_ORIG_MESSAGE_ID = "JBM_ORIG_MESSAGE_ID";
public static final String JBOSS_MESSAGING_ACTUAL_EXPIRY_TIME = "JBM_ACTUAL_EXPIRY";
@@ -973,7 +973,7 @@
//Note we check the flag *and* evaluate again, this is because the server and client clocks may
//be out of synch and don't want to send back to the client a message it thought it has sent to
//the expiry queue
- boolean expired = cancel.isExpired() || rec.del.getReference().isExpired();
+ boolean expired = cancel.isExpired() || rec.del.getReference().getMessage().isExpired();
//Note we check the flag *and* evaluate again, this is because the server value of maxDeliveries
//might get changed after the client has sent the cancel - and we don't want to end up cancelling
@@ -1031,22 +1031,20 @@
JBossMessage msg = ((JBossMessage)del.getReference().getMessage());
- JBossMessage copy = msg.doShallowCopy();
+ JBossMessage copy = msg.doCopy();
long newMessageId = sp.getMessageIDManager().getID();
copy.setMessageId(newMessageId);
- //reset delivery count and expiry
- copy.setDeliveryCount(0);
-
+ //reset expiry
copy.setExpiration(0);
String origMessageId = msg.getJMSMessageID();
String origDest = msg.getJMSDestination().toString();
- copy.setStringProperty(JBOSS_MESSAGING_ORIG_MESSAGEID, origMessageId);
+ copy.setStringProperty(JBOSS_MESSAGING_ORIG_MESSAGE_ID, origMessageId);
copy.setStringProperty(JBOSS_MESSAGING_ORIG_DESTINATION, origDest);
Modified: trunk/src/main/org/jboss/jms/server/plugin/JDBCJMSUserManager.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/plugin/JDBCJMSUserManager.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/server/plugin/JDBCJMSUserManager.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -68,7 +68,7 @@
protected Map getDefaultDMLStatements()
{
Map map = new LinkedHashMap();
- map.put("SELECT_PRECONF_CLIENTID", "SELECT CLIENTID FROM JMS_USER WHERE USERID=?");
+ map.put("SELECT_PRECONF_CLIENTID", "SELECT CLIENTID FROM JBM_USER WHERE USER_ID=?");
return map;
}
@@ -76,11 +76,11 @@
{
Map map = new LinkedHashMap();
map.put("CREATE_USER_TABLE",
- "CREATE TABLE JMS_USER (USERID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128)," +
- " PRIMARY KEY(USERID))");
+ "CREATE TABLE JBM_USER (USER_ID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128)," +
+ " PRIMARY KEY(USER_ID))");
map.put("CREATE_ROLE_TABLE",
- "CREATE TABLE JMS_ROLE (ROLEID VARCHAR(32) NOT NULL, USERID VARCHAR(32) NOT NULL," +
- " PRIMARY KEY(USERID, ROLEID))");
+ "CREATE TABLE JBM_ROLE (ROLE_ID VARCHAR(32) NOT NULL, USER_ID VARCHAR(32) NOT NULL," +
+ " PRIMARY KEY(USER_ID, ROLE_ID))");
return map;
}
Modified: trunk/src/main/org/jboss/jms/server/remoting/JMSWireFormat.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/remoting/JMSWireFormat.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/server/remoting/JMSWireFormat.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -195,16 +195,12 @@
packet = (ClientDelivery)callback.getParameter();
- ((ClientDelivery)packet).setRemotingSessionID(req.getSessionId());
-
if (trace) { log.trace("Message delivery callback"); }
}
else if (callback.getParameter() instanceof ConnectionFactoryUpdate)
{
packet = (ConnectionFactoryUpdate)callback.getParameter();
- ((ConnectionFactoryUpdate)packet).setRemotingSessionID(req.getSessionId());
-
if (trace) { log.trace("Connection factory update callback"); }
}
}
@@ -240,6 +236,12 @@
// List of polled Callbacks, this is how messages are delivered when using
// polled callbacks e.g. the HTTP transport
+ //Sanity check
+ if (((List)param).isEmpty())
+ {
+ log.error("Got a polled callback list - but it is empty!!!");
+ }
+
packet = new PolledCallbacksDelivery((List)param, resp.getSessionId());
}
else
Modified: trunk/src/main/org/jboss/jms/tx/ClientTransaction.java
===================================================================
--- trunk/src/main/org/jboss/jms/tx/ClientTransaction.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/tx/ClientTransaction.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -247,7 +247,7 @@
JBossMessage m = (JBossMessage)iter2.next();
out.writeByte(m.getType());
-
+
m.write(out);
}
@@ -276,7 +276,7 @@
state = in.readByte();
int numSessions = in.readInt();
-
+
//Read in as a list since we don't want the extra overhead of putting into a map
//which won't be used on the server side
sessionStatesList = new ArrayList(numSessions);
Modified: trunk/src/main/org/jboss/jms/tx/TransactionRequest.java
===================================================================
--- trunk/src/main/org/jboss/jms/tx/TransactionRequest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/tx/TransactionRequest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -26,6 +26,7 @@
import javax.transaction.xa.Xid;
+import org.jboss.logging.Logger;
import org.jboss.messaging.core.tx.MessagingXid;
import org.jboss.messaging.util.Streamable;
@@ -50,6 +51,8 @@
{
// Constants -----------------------------------------------------
+ private static final Logger log = Logger.getLogger(TransactionRequest.class);
+
public final static byte ONE_PHASE_COMMIT_REQUEST = 0;
public final static byte TWO_PHASE_PREPARE_REQUEST = 2;
public final static byte TWO_PHASE_COMMIT_REQUEST = 3;
Modified: trunk/src/main/org/jboss/jms/wireformat/CallbackSupport.java
===================================================================
--- trunk/src/main/org/jboss/jms/wireformat/CallbackSupport.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/wireformat/CallbackSupport.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -21,9 +21,6 @@
*/
package org.jboss.jms.wireformat;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
import org.jboss.jms.client.remoting.CallbackManager;
import org.jboss.remoting.InvocationRequest;
import org.jboss.remoting.callback.Callback;
@@ -41,13 +38,6 @@
*/
public abstract class CallbackSupport extends PacketSupport
{
- protected String remotingSessionID;
-
- public void setRemotingSessionID(String sessionID)
- {
- this.remotingSessionID = sessionID;
- }
-
public CallbackSupport()
{
}
@@ -57,18 +47,6 @@
super(id);
}
- public void read(DataInputStream is) throws Exception
- {
- remotingSessionID = is.readUTF();
- }
-
- public void write(DataOutputStream os) throws Exception
- {
- super.write(os);
-
- os.writeUTF(remotingSessionID);
- }
-
public Object getPayload()
{
// Basically remoting forces us to create this ridiculous pile of objects
@@ -82,7 +60,7 @@
OnewayInvocation oi = new OnewayInvocation(ii);
InvocationRequest request
- = new InvocationRequest(remotingSessionID, CallbackManager.JMS_CALLBACK_SUBSYSTEM,
+ = new InvocationRequest(null, CallbackManager.JMS_CALLBACK_SUBSYSTEM,
oi, ONE_WAY_METADATA, null, null);
return request;
Modified: trunk/src/main/org/jboss/jms/wireformat/ClientDelivery.java
===================================================================
--- trunk/src/main/org/jboss/jms/wireformat/ClientDelivery.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/wireformat/ClientDelivery.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -24,8 +24,8 @@
import java.io.DataInputStream;
import java.io.DataOutputStream;
-import org.jboss.jms.message.JBossMessage;
-import org.jboss.jms.message.MessageProxy;
+import org.jboss.logging.Logger;
+import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.message.MessageFactory;
/**
@@ -43,13 +43,20 @@
{
// Constants -----------------------------------------------------
+ private static final Logger log = Logger.getLogger(ClientDelivery.class);
+
+
// Static --------------------------------------------------------
// Attributes ----------------------------------------------------
- private MessageProxy msg;
+ private Message msg;
private int consumerId;
+
+ private long deliveryId;
+
+ private int deliveryCount;
// Constructors --------------------------------------------------
@@ -57,13 +64,17 @@
{
}
- public ClientDelivery(MessageProxy msg, int consumerId)
+ public ClientDelivery(Message msg, int consumerId, long deliveryId, int deliveryCount)
{
super (PacketSupport.CLIENT_DELIVERY);
this.msg = msg;
this.consumerId = consumerId;
+
+ this.deliveryId = deliveryId;
+
+ this.deliveryCount = deliveryCount;
}
// Streamable implementation
@@ -71,43 +82,41 @@
public void write(DataOutputStream out) throws Exception
{
+
super.write(out);
out.writeInt(consumerId);
-
- out.writeByte(msg.getMessage().getType());
- out.writeInt(msg.getDeliveryCount());
-
- out.writeLong(msg.getDeliveryId());
+ out.writeInt(deliveryCount);
+
+ out.writeLong(deliveryId);
+
+ out.writeByte(msg.getType());
+
+ msg.write(out);
- msg.getMessage().write(out);
-
out.flush();
}
public void read(DataInputStream in) throws Exception
{
- super.read(in);
-
consumerId = in.readInt();
+
+ deliveryCount = in.readInt();
+
+ deliveryId = in.readLong();
+
byte type = in.readByte();
+
+ msg = MessageFactory.createMessage(type);
- int deliveryCount = in.readInt();
-
- long deliveryId = in.readLong();
-
- JBossMessage m = (JBossMessage)MessageFactory.createMessage(type);
-
- m.read(in);
-
- msg = JBossMessage.createThinDelegate(deliveryId, m, deliveryCount);
+ msg.read(in);
}
// Public --------------------------------------------------------
- public MessageProxy getMessage()
+ public Message getMessage()
{
return msg;
}
@@ -116,6 +125,16 @@
{
return consumerId;
}
+
+ public long getDeliveryId()
+ {
+ return deliveryId;
+ }
+
+ public int getDeliveryCount()
+ {
+ return deliveryCount;
+ }
public String toString()
{
Modified: trunk/src/main/org/jboss/jms/wireformat/ConnectionFactoryUpdate.java
===================================================================
--- trunk/src/main/org/jboss/jms/wireformat/ConnectionFactoryUpdate.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/wireformat/ConnectionFactoryUpdate.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -117,9 +117,7 @@
// ---------------------------------------------------------------
public void read(DataInputStream is) throws Exception
- {
- super.read(is);
-
+ {
int len = is.readInt();
delegates = new ClientConnectionFactoryDelegate[len];
Modified: trunk/src/main/org/jboss/jms/wireformat/ConnectionSendTransactionRequest.java
===================================================================
--- trunk/src/main/org/jboss/jms/wireformat/ConnectionSendTransactionRequest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/wireformat/ConnectionSendTransactionRequest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -26,6 +26,7 @@
import org.jboss.jms.server.endpoint.ConnectionEndpoint;
import org.jboss.jms.tx.TransactionRequest;
+import org.jboss.logging.Logger;
/**
*
@@ -39,6 +40,9 @@
*/
public class ConnectionSendTransactionRequest extends RequestSupport
{
+ private static final Logger log = Logger.getLogger(ConnectionSendTransactionRequest.class);
+
+
private TransactionRequest req;
private boolean retry;
@@ -87,7 +91,7 @@
{
super.write(os);
- req.write(os);
+ req.write(os);
os.writeBoolean(retry);
Modified: trunk/src/main/org/jboss/jms/wireformat/PolledCallbacksDelivery.java
===================================================================
--- trunk/src/main/org/jboss/jms/wireformat/PolledCallbacksDelivery.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/wireformat/PolledCallbacksDelivery.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -27,9 +27,7 @@
import java.util.Iterator;
import java.util.List;
-import org.jboss.jms.message.JBossMessage;
-import org.jboss.jms.message.MessageProxy;
-import org.jboss.messaging.core.message.MessageFactory;
+import org.jboss.logging.Logger;
import org.jboss.remoting.InvocationResponse;
import org.jboss.remoting.callback.Callback;
@@ -44,6 +42,9 @@
*/
public class PolledCallbacksDelivery extends PacketSupport
{
+ private static final Logger log = Logger.getLogger(PolledCallbacksDelivery.class);
+
+
private List callbacks;
private String sessionID;
@@ -71,22 +72,13 @@
for (int i = 0; i < len; i++)
{
- int consumerId = is.readInt();
+ //Read the method id int - we just throw it away
+ is.readInt();
- byte type = is.readByte();
+ ClientDelivery delivery = new ClientDelivery();
- int deliveryCount = is.readInt();
+ delivery.read(is);
- long deliveryId = is.readLong();
-
- JBossMessage msg = (JBossMessage)MessageFactory.createMessage(type);
-
- msg.read(is);
-
- MessageProxy mp = JBossMessage.createThinDelegate(deliveryId, msg, deliveryCount);
-
- ClientDelivery delivery = new ClientDelivery(mp, consumerId);
-
Callback cb = new Callback(delivery);
callbacks.add(cb);
@@ -98,9 +90,9 @@
super.write(os);
os.writeUTF(sessionID);
-
+
os.writeInt(callbacks.size());
-
+
Iterator iter = callbacks.iterator();
while (iter.hasNext())
@@ -109,17 +101,7 @@
ClientDelivery cd = (ClientDelivery)cb.getParameter();
- os.writeInt(cd.getConsumerId());
-
- MessageProxy mp = cd.getMessage();
-
- os.writeByte(mp.getMessage().getType());
-
- os.writeInt(mp.getDeliveryCount());
-
- os.writeLong(mp.getDeliveryId());
-
- mp.getMessage().write(os);
+ cd.write(os);
}
os.flush();
Modified: trunk/src/main/org/jboss/jms/wireformat/SessionSendRequest.java
===================================================================
--- trunk/src/main/org/jboss/jms/wireformat/SessionSendRequest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/jms/wireformat/SessionSendRequest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -27,6 +27,7 @@
import org.jboss.jms.message.JBossMessage;
import org.jboss.jms.server.endpoint.SessionEndpoint;
+import org.jboss.logging.Logger;
import org.jboss.messaging.core.message.MessageFactory;
/**
@@ -41,6 +42,9 @@
*/
public class SessionSendRequest extends RequestSupport
{
+ private static final Logger log = Logger.getLogger(SessionSendRequest.class);
+
+
private JBossMessage msg;
private boolean retry;
Modified: trunk/src/main/org/jboss/messaging/core/ChannelSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/ChannelSupport.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/ChannelSupport.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -30,6 +30,7 @@
import org.jboss.jms.server.MyTimeoutFactory;
import org.jboss.logging.Logger;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
import org.jboss.messaging.core.tx.Transaction;
@@ -205,7 +206,7 @@
MessageReference ref = del.getReference();
- if (ref.isReliable())
+ if (ref.getMessage().isReliable())
{
pm.updateDeliveryCount(this.channelID, ref);
}
@@ -504,7 +505,7 @@
MessageReference ref = (MessageReference)liter.next();
- if (ref.getMessageID() == id.longValue())
+ if (ref.getMessage().getMessageID() == id.longValue())
{
liter.remove();
@@ -598,7 +599,7 @@
synchronized (refLock)
{
- messageRefs.addFirst(ref, ref.getPriority());
+ messageRefs.addFirst(ref, ref.getMessage().getPriority());
}
if (trace) { log.trace(this + " added " + ref + " back into state"); }
@@ -748,17 +749,7 @@
ref = ref.copy();
try
- {
- if (ref.isReliable() && !recoverable)
- {
- // Reliable reference in a non recoverable channel. We handle it as a non reliable
- // reference. It's important that we set it to non reliable otherwise if the channel
- // pages and is non recoverable a reliable ref will be paged in the database as reliable
- // which makes them hard to remove on server restart. If we always page them as
- // unreliable then it is easy to remove them.
- ref.setReliable(false);
- }
-
+ {
if (tx == null)
{
// Don't even attempt synchronous delivery for a reliable message when we have an
@@ -766,14 +757,14 @@
// into the situation where we need to reliably store an active delivery of a reliable
// message, which in these conditions cannot be done.
- if (ref.isReliable() && !acceptReliableMessages)
+ if (ref.getMessage().isReliable() && !acceptReliableMessages)
{
log.error("Cannot handle reliable message " + ref +
" because the channel has a non-recoverable state!");
return null;
}
- if (persist && ref.isReliable() && recoverable)
+ if (persist && ref.getMessage().isReliable() && recoverable)
{
// Reliable message in a recoverable state - also add to db
if (trace) { log.trace(this + " adding " + ref + " to database non-transactionally"); }
@@ -805,7 +796,7 @@
{
if (trace) { log.trace(this + " adding " + ref + " to state " + (tx == null ? "non-transactionally" : "in transaction: " + tx)); }
- if (ref.isReliable() && !acceptReliableMessages)
+ if (ref.getMessage().isReliable() && !acceptReliableMessages)
{
// this transaction has no chance to succeed, since a reliable
// message cannot be
@@ -823,7 +814,7 @@
if (trace) { log.trace(this + " added transactionally " + ref + " in memory"); }
}
- if (persist && ref.isReliable() && recoverable)
+ if (persist && ref.getMessage().isReliable() && recoverable)
{
// Reliable message in a recoverable state - also add to db
if (trace) { log.trace(this + " adding " + ref + (tx == null ? " to database non-transactionally" : " in transaction: " + tx)); }
@@ -880,7 +871,7 @@
{
if (tx == null)
{
- if (persist && recoverable && d.getReference().isReliable())
+ if (persist && recoverable && d.getReference().getMessage().isReliable())
{
pm.removeReference(channelID, d.getReference(), null);
}
@@ -895,7 +886,7 @@
if (trace) { log.trace(this + " added " + d + " to memory on transaction " + tx); }
- if (recoverable && d.getReference().isReliable())
+ if (recoverable && d.getReference().getMessage().isReliable())
{
pm.removeReference(channelID, d.getReference(), tx);
}
@@ -933,13 +924,13 @@
protected void addReferenceInMemory(MessageReference ref) throws Exception
{
- if (ref.isReliable() && !acceptReliableMessages)
+ if (ref.getMessage().isReliable() && !acceptReliableMessages)
{
throw new IllegalStateException("Reliable reference " + ref +
" cannot be added to non-recoverable state");
}
- messageRefs.addLast(ref, ref.getPriority());
+ messageRefs.addLast(ref, ref.getMessage().getPriority());
if (trace){ log.trace(this + " added " + ref + " non-transactionally in memory"); }
}
Modified: trunk/src/main/org/jboss/messaging/core/Delivery.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/Delivery.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/Delivery.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -21,6 +21,7 @@
*/
package org.jboss.messaging.core;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.tx.Transaction;
/**
Modified: trunk/src/main/org/jboss/messaging/core/Filter.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/Filter.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/Filter.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -21,6 +21,8 @@
*/
package org.jboss.messaging.core;
+import org.jboss.messaging.core.message.Message;
+
/**
* A filter encapsulates the logic of whether to accept a message or not. Filters are used when
* browsing to restrict the messages browsed, or when routing messages.
@@ -34,11 +36,11 @@
public interface Filter
{
/**
- * Tests whether the routable should be accepted.
+ * Tests whether the message should be accepted.
*
- * @return true if the Filter accepts the routable - i.e. let's it pass.
+ * @return true if the Filter accepts the message - i.e. let's it pass.
*/
- boolean accept(Routable routable);
+ boolean accept(Message message);
String getFilterString();
}
Deleted: trunk/src/main/org/jboss/messaging/core/Message.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/Message.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/Message.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -1,51 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * 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;
-
-import java.io.Serializable;
-
-/**
- * A message is a routable instance that has a payload. The payload is opaque to the messaging
- * system.
- *
- * When implementing this interface, make sure you override equals() and hashCode() such that two
- * Message instances with equals IDs are equal.
- *
- * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
- * @author <a href="mailto:tim.fox"jboss.com">Tim Fox</a>
- * @version <tt>$Revision$</tt>
- *
- * $Id$
- */
-public interface Message extends Routable
-{
- Serializable getPayload();
-
- byte[] getPayloadAsByteArray();
-
- boolean isPersisted();
-
- void setPersisted(boolean persisted);
-
- byte getType();
-
-}
Deleted: trunk/src/main/org/jboss/messaging/core/MessageReference.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/MessageReference.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/MessageReference.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -1,44 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * 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;
-
-/**
- * A "lightweight" message representative.
- *
- * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision$</tt>
- *
- * $Id$
- */
-public interface MessageReference extends Routable
-{
- int getInMemoryChannelCount();
-
- long getPagingOrder();
-
- void setPagingOrder(long order);
-
- void releaseMemoryReference();
-
- MessageReference copy();
-}
Modified: trunk/src/main/org/jboss/messaging/core/PagingChannelSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/PagingChannelSupport.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/PagingChannelSupport.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -28,6 +28,8 @@
import java.util.Map;
import org.jboss.logging.Logger;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
import org.jboss.messaging.core.plugin.contract.PersistenceManager.InitialLoadInfo;
@@ -296,8 +298,9 @@
// Must flush the down cache first
flushDownCache();
- List refInfos = pm.getPagedReferenceInfos(channelID, firstPagingOrder, number);
+ List refInfos = pm.getPagedReferenceInfos(channelID, firstPagingOrder, number);
+
Map refMap = processReferences(refInfos);
boolean loadedReliable = false;
@@ -313,7 +316,7 @@
MessageReference ref = addFromRefInfo(info, refMap);
- if (recoverable && ref.isReliable())
+ if (recoverable && ref.getMessage().isReliable())
{
loadedReliable = true;
}
@@ -340,7 +343,7 @@
// the store otherwise they may get loaded again, the next time we do a load
// We can't delete them since they're reliable and haven't been acked yet
- pm.updateReliableReferencesNotPagedInRange(channelID, firstPagingOrder, firstPagingOrder + number - 1, number - unreliableNumber);
+ pm.updateReferencesNotPagedInRange(channelID, firstPagingOrder, firstPagingOrder + number - 1, number - unreliableNumber);
}
firstPagingOrder += number;
@@ -420,7 +423,7 @@
{
if (paging)
{
- if (ref.isReliable() && !acceptReliableMessages)
+ if (ref.getMessage().isReliable() && !acceptReliableMessages)
{
throw new IllegalStateException("Reliable reference " + ref +
" cannot be added to non-recoverable state");
@@ -499,7 +502,7 @@
{
MessageReference ref = (MessageReference) iter.next();
- if (ref.isReliable() && recoverable)
+ if (ref.getMessage().isReliable() && recoverable)
{
toUpdate.add(ref);
}
@@ -549,18 +552,10 @@
ref.setScheduledDeliveryTime(info.getScheduledDelivery());
- //We ignore the reliable field from the message - this is because reliable might be true on the message
- //but this is a non recoverable state
-
- //TODO - Really the message shouldn't have a reliable field at all,
- //Reliability is an attribute of the message reference, not the message
-
- ref.setReliable(info.isReliable());
-
//Schedule the delivery if necessary, or just add to the in memory queue
if (!checkAndSchedule(ref))
{
- messageRefs.addLast(ref, ref.getPriority());
+ messageRefs.addLast(ref, ref.getMessage().getPriority());
}
return ref;
Modified: trunk/src/main/org/jboss/messaging/core/Receiver.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/Receiver.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/Receiver.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -21,6 +21,7 @@
*/
package org.jboss.messaging.core;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.tx.Transaction;
/**
Deleted: trunk/src/main/org/jboss/messaging/core/Routable.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/Routable.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/Routable.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -1,146 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * 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;
-
-import java.io.Serializable;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.messaging.util.Streamable;
-
-/**
- * An atomic, self containted unit of data that is being routed by the messaging system.
- *
- * Each routable maintains a set of headers. Various messaging components can attach or remove
- * headers, primarily for message flow management purposes.
- *
- * @see org.jboss.messaging.core.Message
- * @see org.jboss.messaging.core.MessageReference
- *
- * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision$</tt>
- *
- * $Id$
- */
-public interface Routable extends Streamable
-{
- static final String REMOTE_ROUTABLE = "REMOTE_ROUTABLE";
- static final String REPLICATOR_ID = "REPLICATOR_ID";
- static final String COLLECTOR_ID = "COLLECTOR_ID";
-
- static final String FAILED_NODE_ID = "FAILED_NODE_ID";
-
- long getMessageID();
-
- /**
- * If it is a Message instance, then it returns itself, otherwise it will return the Message
- * corresponding to this MessageReference.
- */
- Message getMessage(); // TODO 55 Shouldn't this method be on MessageReference interface rather than this interface??
-
- boolean isReference();
-
- /**
- * @return true if the delivery must be guaranteed for this routable, false othewise.
- */
- boolean isReliable();
-
- void setReliable(boolean reliable);
-
- /**
- * @return the time (in GMT milliseconds) when this routable expires and must be removed
- * from the system. A zero value means this routable never expires.
- */
- long getExpiration();
-
- boolean isExpired();
-
- void setExpiration(long expiration);
-
-
- /**
- *
- * @return The time in the future that delivery will be delayed until, or zero if
- * no scheduled delivery will occur
- */
- long getScheduledDeliveryTime();
-
- void setScheduledDeliveryTime(long scheduledDeliveryTime);
-
-
- /**
- * @return the time (in GMT milliseconds) when this routable was delivered to the provider.
- */
- long getTimestamp();
-
- byte getPriority();
-
- void setPriority(byte priority);
-
- /**
- * @return the number of times delivery has been attempted for this routable
- */
- int getDeliveryCount();
-
- void setDeliveryCount(int deliveryCount);
-
- /**
- * Binds a header. If the header map previously contained a mapping for this name, the old value
- * is replaced by the specified value.
- *
- * @return the value associated with the name or null if there is no mapping for the name. A null
- * can also indicate that the header map previously associated null with the specified
- * name.
- */
- Serializable putHeader(String name, Serializable value);
-
- /**
- * Returns the value corresponding to the header name. Returns null if the map contains no
- * mapping for the name. A return value of null does not necessarily indicate that the map
- * contains no mapping for the name; it's also possible that the map explicitly maps the name to
- * null. The containsHeader() operation may be used to distinguish these two cases.
- *
- * @return the value associated with the header, or null if there is no mapping for the header.
- */
- Serializable getHeader(String name);
-
- /**
- * Removes the header.
- *
- * @return previous value associated with the header, or null if there was no mapping.
- */
- Serializable removeHeader(String name);
-
- /**
- * Returns true if the Routable contains the specified header.
- */
- boolean containsHeader(String name);
-
- /**
- * Returns a copy of the header name set.
- */
- Set getHeaderNames();
-
- Map getHeaders();
-
-}
Modified: trunk/src/main/org/jboss/messaging/core/SimpleDelivery.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/SimpleDelivery.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/SimpleDelivery.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -22,6 +22,7 @@
package org.jboss.messaging.core;
import org.jboss.logging.Logger;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.tx.Transaction;
/**
Modified: trunk/src/main/org/jboss/messaging/core/local/FirstReceiverPointToPointRouter.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/local/FirstReceiverPointToPointRouter.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/local/FirstReceiverPointToPointRouter.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -28,10 +28,10 @@
import org.jboss.logging.Logger;
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Receiver;
import org.jboss.messaging.core.Router;
import org.jboss.messaging.core.SimpleDelivery;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.tx.Transaction;
/**
Modified: trunk/src/main/org/jboss/messaging/core/local/PagingFilteredQueue.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/local/PagingFilteredQueue.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/local/PagingFilteredQueue.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -25,10 +25,10 @@
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
import org.jboss.messaging.core.Filter;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.PagingChannelSupport;
import org.jboss.messaging.core.Queue;
import org.jboss.messaging.core.SimpleDelivery;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
import org.jboss.messaging.core.tx.Transaction;
@@ -123,7 +123,7 @@
public Delivery handle(DeliveryObserver sender, MessageReference ref, Transaction tx)
{
- if (filter == null || filter.accept(ref))
+ if (filter == null || filter.accept(ref.getMessage()))
{
return super.handle(sender, ref, tx);
}
Modified: trunk/src/main/org/jboss/messaging/core/local/RoundRobinPointToPointRouter.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/local/RoundRobinPointToPointRouter.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/local/RoundRobinPointToPointRouter.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -27,10 +27,10 @@
import org.jboss.logging.Logger;
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Receiver;
import org.jboss.messaging.core.Router;
import org.jboss.messaging.core.SimpleDelivery;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.tx.Transaction;
/**
Modified: trunk/src/main/org/jboss/messaging/core/message/CoreMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/CoreMessage.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/message/CoreMessage.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -46,7 +46,7 @@
public CoreMessage()
{
}
-
+
public CoreMessage(long messageID,
boolean reliable,
long expiration,
@@ -55,7 +55,7 @@
Map headers,
byte[] payload)
{
- super(messageID, reliable, expiration, timestamp, priority, 0, 0, headers, payload);
+ super(messageID, reliable, expiration, timestamp, priority, headers, payload);
}
// Public --------------------------------------------------------
Copied: trunk/src/main/org/jboss/messaging/core/message/Message.java (from rev 2182, trunk/src/main/org/jboss/messaging/core/Message.java)
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/Message.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/message/Message.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -0,0 +1,123 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * 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.message;
+
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.messaging.util.Streamable;
+
+/**
+ * A message is a routable instance that has a payload. The payload is opaque to the messaging
+ * system.
+ *
+ * When implementing this interface, make sure you override equals() and hashCode() such that two
+ * Message instances with equals IDs are equal.
+ *
+ * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
+ * @author <a href="mailto:tim.fox"jboss.com">Tim Fox</a>
+ * @version <tt>$Revision$</tt>
+ *
+ * $Id$
+ */
+public interface Message extends Streamable
+{
+ static final String FAILED_NODE_ID = "FAILED_NODE_ID";
+
+ long getMessageID();
+
+ /**
+ * @return true if the delivery must be guaranteed for this routable, false otherwise.
+ */
+ boolean isReliable();
+
+ /**
+ * @return the time (in GMT milliseconds) when this routable expires and must be removed
+ * from the system. A zero value means this routable never expires.
+ */
+ long getExpiration();
+
+ boolean isExpired();
+
+ void setExpiration(long expiration);
+
+ /**
+ * @return the time (in GMT milliseconds) when this routable was delivered to the provider.
+ */
+ long getTimestamp();
+
+ byte getPriority();
+
+ void setPriority(byte priority);
+
+ /**
+ * Binds a header. If the header map previously contained a mapping for this name, the old value
+ * is replaced by the specified value.
+ *
+ * @return the value associated with the name or null if there is no mapping for the name. A null
+ * can also indicate that the header map previously associated null with the specified
+ * name.
+ */
+ Object putHeader(String name, Object value);
+
+ /**
+ * Returns the value corresponding to the header name. Returns null if the map contains no
+ * mapping for the name. A return value of null does not necessarily indicate that the map
+ * contains no mapping for the name; it's also possible that the map explicitly maps the name to
+ * null. The containsHeader() operation may be used to distinguish these two cases.
+ *
+ * @return the value associated with the header, or null if there is no mapping for the header.
+ */
+ Object getHeader(String name);
+
+ /**
+ * Removes the header.
+ *
+ * @return previous value associated with the header, or null if there was no mapping.
+ */
+ Object removeHeader(String name);
+
+ /**
+ * Returns true if the Routable contains the specified header.
+ */
+ boolean containsHeader(String name);
+
+ void setHeaders(Map headers);
+
+ /**
+ * Returns a copy of the header name set.
+ */
+ Set getHeaderNames();
+
+ Map getHeaders();
+
+ Object getPayload();
+
+ byte[] getPayloadAsByteArray();
+
+ boolean isPersisted();
+
+ void setPersisted(boolean persisted);
+
+ byte getType();
+
+}
Modified: trunk/src/main/org/jboss/messaging/core/message/MessageFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/MessageFactory.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/message/MessageFactory.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -21,17 +21,14 @@
*/
package org.jboss.messaging.core.message;
-import java.util.HashMap;
import java.util.Map;
-import org.jboss.jms.destination.JBossDestination;
import org.jboss.jms.message.JBossBytesMessage;
import org.jboss.jms.message.JBossMapMessage;
import org.jboss.jms.message.JBossMessage;
import org.jboss.jms.message.JBossObjectMessage;
import org.jboss.jms.message.JBossStreamMessage;
import org.jboss.jms.message.JBossTextMessage;
-import org.jboss.messaging.core.Message;
/**
* @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
@@ -50,34 +47,38 @@
{
Message m = null;
- if (type == JBossMessage.TYPE)
+ if (type == JBossMessage.TYPE) //1
{
m = new JBossMessage();
}
- else if (type == JBossObjectMessage.TYPE)
+ else if (type == JBossObjectMessage.TYPE) //2
{
m = new JBossObjectMessage();
}
- else if (type == JBossTextMessage.TYPE)
+ else if (type == JBossTextMessage.TYPE) //3
{
m = new JBossTextMessage();
}
- else if (type == JBossBytesMessage.TYPE)
+ else if (type == JBossBytesMessage.TYPE) //4
{
m = new JBossBytesMessage();
}
- else if (type == JBossMapMessage.TYPE)
+ else if (type == JBossMapMessage.TYPE) //5
{
m = new JBossMapMessage();
}
- else if (type == JBossStreamMessage.TYPE)
+ else if (type == JBossStreamMessage.TYPE) //6
{
m = new JBossStreamMessage();
}
- else if (type == CoreMessage.TYPE)
+ else if (type == CoreMessage.TYPE) //127
{
m = new CoreMessage();
}
+ else
+ {
+ throw new IllegalArgumentException("Invalid type " + type);
+ }
return m;
}
@@ -90,16 +91,9 @@
long expiration,
long timestamp,
byte priority,
- Map coreHeaders,
- byte[] payloadAsByteArray,
- byte type,
- String jmsType,
- String correlationID,
- byte[] correlationIDBytes,
- JBossDestination destination,
- JBossDestination replyTo,
- long scheduledDeliveryTime,
- HashMap jmsProperties)
+ Map headers,
+ byte[] payload,
+ byte type)
{
Message m = null;
@@ -108,49 +102,43 @@
{
case JBossMessage.TYPE:
{
- m = new JBossMessage(messageID, reliable, expiration, timestamp, priority, coreHeaders,
- payloadAsByteArray, jmsType, correlationID, correlationIDBytes,
- destination, replyTo, jmsProperties);
+ m = new JBossMessage(messageID, reliable, expiration, timestamp, priority, headers,
+ payload);
break;
}
case JBossObjectMessage.TYPE:
{
- m = new JBossObjectMessage(messageID, reliable, expiration, timestamp, priority, coreHeaders,
- payloadAsByteArray, jmsType, correlationID, correlationIDBytes,
- destination, replyTo, jmsProperties);
+ m = new JBossObjectMessage(messageID, reliable, expiration, timestamp, priority, headers,
+ payload);
break;
}
case JBossTextMessage.TYPE:
{
- m = new JBossTextMessage(messageID, reliable, expiration, timestamp, priority, coreHeaders,
- payloadAsByteArray, jmsType, correlationID, correlationIDBytes,
- destination, replyTo, jmsProperties);
+ m = new JBossTextMessage(messageID, reliable, expiration, timestamp, priority, headers,
+ payload);
break;
}
case JBossBytesMessage.TYPE:
{
- m = new JBossBytesMessage(messageID, reliable, expiration, timestamp, priority, coreHeaders,
- payloadAsByteArray, jmsType, correlationID, correlationIDBytes,
- destination, replyTo, jmsProperties);
+ m = new JBossBytesMessage(messageID, reliable, expiration, timestamp, priority, headers,
+ payload);
break;
}
case JBossMapMessage.TYPE:
{
- m = new JBossMapMessage(messageID, reliable, expiration, timestamp, priority, coreHeaders,
- payloadAsByteArray, jmsType, correlationID, correlationIDBytes,
- destination, replyTo, jmsProperties);
+ m = new JBossMapMessage(messageID, reliable, expiration, timestamp, priority, headers,
+ payload);
break;
}
case JBossStreamMessage.TYPE:
{
- m = new JBossStreamMessage(messageID, reliable, expiration, timestamp, priority, coreHeaders,
- payloadAsByteArray, jmsType, correlationID, correlationIDBytes,
- destination, replyTo, jmsProperties);
+ m = new JBossStreamMessage(messageID, reliable, expiration, timestamp, priority, headers,
+ payload);
break;
}
case CoreMessage.TYPE:
{
- m = new CoreMessage(messageID, reliable, expiration, timestamp, priority, coreHeaders, payloadAsByteArray);
+ m = new CoreMessage(messageID, reliable, expiration, timestamp, priority, headers, payload);
break;
}
default:
Copied: trunk/src/main/org/jboss/messaging/core/message/MessageHolder.java (from rev 2182, trunk/src/main/org/jboss/messaging/core/plugin/MessageHolder.java)
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/MessageHolder.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/message/MessageHolder.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -0,0 +1,81 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * 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.message;
+
+
+/**
+ *
+ * A MessageHolder.
+ *
+ * @author <a href="tim.fox at jboss.com">Tim Fox</a>
+ * @version <tt>$Revision$</tt>
+ *
+ * $Id$
+ */
+class MessageHolder
+{
+ /*
+ * The number of channels *currently in memory* that hold a reference to the message
+ * We need this so we know when to evict the message from the store (when it reaches zero)
+ * Note that we also maintain a persistent channel count on the message itself.
+ * This is the total number of channels whether loaded in memory or not that hold a reference to the
+ * message and is needed to know when it is safe to remove the message from the db
+ */
+ private int inMemoryChannelCount;
+
+ private Message msg;
+
+ private SimpleMessageStore ms;
+
+ public MessageHolder(Message msg, SimpleMessageStore ms)
+ {
+ this.msg = msg;
+ this.ms = ms;
+ }
+
+ public synchronized void incrementInMemoryChannelCount()
+ {
+ inMemoryChannelCount++;
+ }
+
+ public synchronized void decrementInMemoryChannelCount()
+ {
+ inMemoryChannelCount--;
+
+ if (inMemoryChannelCount == 0)
+ {
+ // can remove the message from the message store
+ ms.forgetMessage(msg.getMessageID());
+ }
+ }
+
+ public synchronized int getInMemoryChannelCount()
+ {
+ return inMemoryChannelCount;
+ }
+
+ public Message getMessage()
+ {
+ return msg;
+ }
+}
Copied: trunk/src/main/org/jboss/messaging/core/message/MessageReference.java (from rev 2182, trunk/src/main/org/jboss/messaging/core/MessageReference.java)
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/MessageReference.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/message/MessageReference.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * 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.message;
+
+
+/**
+ * A reference to a message.
+ *
+ *
+ * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @version <tt>$Revision$</tt>
+ *
+ * $Id$
+ */
+public interface MessageReference
+{
+ long getPagingOrder();
+
+ void setPagingOrder(long order);
+
+ void releaseMemoryReference();
+
+ MessageReference copy();
+
+ Message getMessage();
+
+ /**
+ *
+ * @return The time in the future that delivery will be delayed until, or zero if
+ * no scheduled delivery will occur
+ */
+ long getScheduledDeliveryTime();
+
+ void setScheduledDeliveryTime(long scheduledDeliveryTime);
+
+ /**
+ * @return the number of times delivery has been attempted for this routable
+ */
+ int getDeliveryCount();
+
+ void setDeliveryCount(int deliveryCount);
+
+
+
+}
Modified: trunk/src/main/org/jboss/messaging/core/message/MessageSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/MessageSupport.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/message/MessageSupport.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -26,9 +26,11 @@
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.Serializable;
+import java.util.HashMap;
import java.util.Map;
+import java.util.Set;
-import org.jboss.messaging.core.Message;
+import org.jboss.logging.Logger;
import org.jboss.messaging.util.StreamUtils;
@@ -41,14 +43,31 @@
*
* $Id$
*/
-public abstract class MessageSupport extends RoutableSupport implements Message
+public abstract class MessageSupport implements Message
{
// Constants -----------------------------------------------------
+
+ private static final Logger log = Logger.getLogger(MessageSupport.class);
// Attributes ----------------------------------------------------
+ private boolean trace = log.isTraceEnabled();
+
+ protected long messageID;
+
+ protected boolean reliable;
+
+ /** GMT milliseconds at which this message expires. 0 means never expires **/
+ protected long expiration;
+
+ protected long timestamp;
+
+ protected Map headers;
+
+ protected byte priority;
+
// Must be hidden from subclasses
- private transient Serializable payload;
+ private transient Object payload;
// Must be hidden from subclasses
private byte[] payloadAsByteArray;
@@ -57,84 +76,138 @@
// Constructors --------------------------------------------------
- /**
- * Required by externalization.
+ /*
+ * Construct a message for deserialization or streaming
*/
public MessageSupport()
{
}
- /**
- * @param messageID
+ /*
+ * Construct a message using default values
*/
public MessageSupport(long messageID)
{
- super(messageID);
+ this(messageID, false, 0, System.currentTimeMillis(), (byte)4, null, null);
}
- public MessageSupport(long messageID, Serializable payload)
+ /*
+ * Construct a message using specified values
+ */
+ public MessageSupport(long messageID,
+ boolean reliable,
+ long expiration,
+ long timestamp,
+ byte priority,
+ Map headers,
+ byte[] payloadAsByteArray)
{
- super(messageID);
- this.payload = payload;
+ this.messageID = messageID;
+ this.reliable = reliable;
+ this.expiration = expiration;
+ this.timestamp = timestamp;
+ this.priority = priority;
+ if (headers == null)
+ {
+ this.headers = new HashMap();
+ }
+ else
+ {
+ this.headers = new HashMap(headers);
+ }
+
+ this.payloadAsByteArray = payloadAsByteArray;
}
-
- public MessageSupport(long messageID, boolean reliable, Serializable payload)
+
+ /*
+ * Copy constructor
+ *
+ * Does a shallow copy of the payload
+ */
+ protected MessageSupport(MessageSupport that)
{
- this(messageID, reliable, Long.MAX_VALUE, payload);
+ this.messageID = that.messageID;
+ this.reliable = that.reliable;
+ this.expiration = that.expiration;
+ this.timestamp = that.timestamp;
+ this.headers = new HashMap(that.headers);
+ this.priority = that.priority;
+ this.payload = that.payload;
+ this.payloadAsByteArray = that.payloadAsByteArray;
}
- public MessageSupport(long messageID, boolean reliable)
+ // Message implementation ----------------------------------------
+
+ public long getMessageID()
{
- this(messageID, reliable, Long.MAX_VALUE, null);
+ return messageID;
}
- public MessageSupport(long messageID, boolean reliable, long timeToLive)
+ public boolean isReliable()
{
- this(messageID, reliable, timeToLive, null);
+ return reliable;
}
- public MessageSupport(long messageID,
- boolean reliable,
- long timeToLive,
- Serializable payload)
+ public long getExpiration()
{
- super(messageID, reliable, timeToLive);
- this.payload = payload;
+ return expiration;
}
+
+ public void setExpiration(long expiration)
+ {
+ this.expiration = expiration;
+ }
- /*
- * This constructor is used to create a message from persistent storage
- */
- public MessageSupport(long messageID,
- boolean reliable,
- long expiration,
- long timestamp,
- byte priority,
- int deliveryCount,
- long scheduledDeliveryTime,
- Map headers,
- byte[] payloadAsByteArray)
+ public long getTimestamp()
{
- super(messageID, reliable, expiration, timestamp, priority, deliveryCount, scheduledDeliveryTime, headers);
- this.payloadAsByteArray = payloadAsByteArray;
+ return timestamp;
}
+
+ public Object putHeader(String name, Object value)
+ {
+ return headers.put(name, value);
+ }
- protected MessageSupport(MessageSupport that)
+ public Object getHeader(String name)
{
- super(that);
- this.payload = that.payload;
- this.payloadAsByteArray = that.payloadAsByteArray;
+ return headers.get(name);
}
- // Routable implementation ---------------------------------------
+ public Object removeHeader(String name)
+ {
+ return headers.remove(name);
+ }
- public Message getMessage()
+ public boolean containsHeader(String name)
{
- return this;
+ return headers.containsKey(name);
}
- // Message implementation ----------------------------------------
-
+ public Set getHeaderNames()
+ {
+ return headers.keySet();
+ }
+
+ public Map getHeaders()
+ {
+ return headers;
+ }
+
+ public void setHeaders(Map headers)
+ {
+ this.headers = headers;
+ }
+
+ public byte getPriority()
+ {
+ return priority;
+ }
+
+ public void setPriority(byte priority)
+ {
+ this.priority = priority;
+ }
+
public boolean isReference()
{
return false;
@@ -181,7 +254,7 @@
* Warning! Calling getPayload will cause the payload to be deserialized so should not be called
* on the server.
*/
- public synchronized Serializable getPayload()
+ public synchronized Object getPayload()
{
if (payload != null)
{
@@ -235,6 +308,23 @@
this.persisted = persisted;
}
+ public boolean isExpired()
+ {
+ if (expiration == 0)
+ {
+ return false;
+ }
+ long overtime = System.currentTimeMillis() - expiration;
+ if (overtime >= 0)
+ {
+ // discard it
+ if (trace) { log.trace(this + " expired by " + overtime + " ms"); }
+
+ return true;
+ }
+ return false;
+ }
+
// Public --------------------------------------------------------
@@ -252,15 +342,6 @@
return that.messageID == this.messageID;
}
- /**
- * @return a reference of the internal header map.
- */
- public Map getHeaders()
- {
- return headers;
- }
-
-
public int hashCode()
{
return (int)((this.messageID >>> 32) ^ this.messageID);
@@ -271,17 +352,30 @@
return "M["+messageID+"]";
}
+
+
// Streamable implementation ---------------------------------
-
+
public void write(DataOutputStream out) throws Exception
{
- super.write(out);
+ out.writeLong(messageID);
+ out.writeBoolean(reliable);
+
+ out.writeLong(expiration);
+
+ out.writeLong(timestamp);
+
+ StreamUtils.writeMap(out, headers, true);
+
+ out.writeByte(priority);
+
byte[] bytes = getPayloadAsByteArray();
if (bytes != null)
{
out.writeInt(bytes.length);
+
out.write(bytes);
}
else
@@ -292,8 +386,18 @@
public void read(DataInputStream in) throws Exception
{
- super.read(in);
+ messageID = in.readLong();
+
+ reliable = in.readBoolean();
+ expiration = in.readLong();
+
+ timestamp = in.readLong();
+
+ headers = StreamUtils.readMap(in, true);
+
+ priority = in.readByte();
+
int length = in.readInt();
if (length == 0)
@@ -304,6 +408,7 @@
else
{
payloadAsByteArray = new byte[length];
+
in.readFully(payloadAsByteArray);
}
}
@@ -316,7 +421,7 @@
* Override this if you want more sophisticated payload externalization.
* @throws Exception TODO
*/
- protected void writePayload(DataOutputStream out, Serializable thePayload) throws Exception
+ protected void writePayload(DataOutputStream out, Object thePayload) throws Exception
{
StreamUtils.writeObject(out, thePayload, true, true);
}
@@ -325,10 +430,10 @@
* Override this if you want more sophisticated payload externalization.
* @throws Exception TODO
*/
- protected Serializable readPayload(DataInputStream in, int length)
+ protected Object readPayload(DataInputStream in, int length)
throws Exception
{
- return (Serializable)StreamUtils.readObject(in, true);
+ return StreamUtils.readObject(in, true);
}
/**
Deleted: trunk/src/main/org/jboss/messaging/core/message/RoutableSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/RoutableSupport.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/message/RoutableSupport.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -1,304 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * 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.message;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.logging.Logger;
-import org.jboss.messaging.core.Routable;
-import org.jboss.messaging.util.StreamUtils;
-
-/**
- * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision$</tt>
- *
- * $Id$
- */
-public abstract class RoutableSupport implements Routable
-{
- // Constants -----------------------------------------------------
-
- private static final Logger log = Logger.getLogger(RoutableSupport.class);
-
- // Static --------------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- private boolean trace = log.isTraceEnabled();
-
- protected long messageID;
- protected boolean reliable;
- /** GMT milliseconds at which this message expires. 0 means never expires **/
- protected long expiration;
- protected long timestamp;
- protected Map headers;
- protected byte priority;
- protected int deliveryCount;
- protected long scheduledDeliveryTime;
-
- // Constructors --------------------------------------------------
-
- /**
- * Required by externalization.
- */
- public RoutableSupport()
- {
- }
-
- /**
- * Constructs a generic Routable that is not reliable and does not expire.
- */
- public RoutableSupport(long messageID)
- {
- this(messageID, false, Long.MAX_VALUE);
- }
-
- /**
- * Constructs a generic Routable that does not expire.
- */
- public RoutableSupport(long messageID, boolean reliable)
- {
- this(messageID, reliable, Long.MAX_VALUE);
- }
-
- public RoutableSupport(long messageID, boolean reliable, long timeToLive)
- {
- this(messageID,
- reliable,
- timeToLive == Long.MAX_VALUE ? 0 : System.currentTimeMillis() + timeToLive,
- System.currentTimeMillis(),
- (byte)4,
- 0,
- 0,
- null);
- }
-
- public RoutableSupport(long messageID,
- boolean reliable,
- long expiration,
- long timestamp,
- byte priority,
- int deliveryCount,
- long scheduledDeliveryTime,
- Map headers)
- {
- this.messageID = messageID;
- this.reliable = reliable;
- this.expiration = expiration;
- this.timestamp = timestamp;
- this.priority = priority;
- this.deliveryCount = deliveryCount;
- this.scheduledDeliveryTime = scheduledDeliveryTime;
- if (headers == null)
- {
- this.headers = new HashMap();
- }
- else
- {
- this.headers = new HashMap(headers);
- }
- }
-
- protected RoutableSupport(RoutableSupport other)
- {
- this.messageID = other.messageID;
- this.reliable = other.reliable;
- this.expiration = other.expiration;
- this.timestamp = other.timestamp;
- this.headers = new HashMap(other.headers);
- this.deliveryCount = other.deliveryCount;
- this.priority = other.priority;
- this.scheduledDeliveryTime = other.scheduledDeliveryTime;
- }
-
- // Routable implementation ---------------------------------------
-
- public long getMessageID()
- {
- return messageID;
- }
-
- public boolean isReliable()
- {
- return reliable;
- }
-
- public long getExpiration()
- {
- return expiration;
- }
-
- public void setExpiration(long expiration)
- {
- this.expiration = expiration;
- }
-
- public long getTimestamp()
- {
- return timestamp;
- }
-
- public void setReliable(boolean reliable)
- {
- this.reliable = reliable;
- }
-
- public int getDeliveryCount()
- {
- return deliveryCount;
- }
-
- public void incrementDeliveryCount()
- {
- deliveryCount++;
- }
-
- public void decrementDeliveryCount()
- {
- deliveryCount--;
- }
-
- public void setDeliveryCount(int deliveryCount)
- {
- this.deliveryCount = deliveryCount;
- }
-
- public Serializable putHeader(String name, Serializable value)
- {
- return (Serializable)headers.put(name, value);
- }
-
- public Serializable getHeader(String name)
- {
- return (Serializable)headers.get(name);
- }
-
- public Serializable removeHeader(String name)
- {
- return (Serializable)headers.remove(name);
- }
-
- public boolean containsHeader(String name)
- {
- return headers.containsKey(name);
- }
-
- public Set getHeaderNames()
- {
- return headers.keySet();
- }
-
- public Map getHeaders()
- {
- return headers;
- }
-
- public byte getPriority()
- {
- return priority;
- }
-
- public void setPriority(byte priority)
- {
- this.priority = priority;
- }
-
- public long getScheduledDeliveryTime()
- {
- return scheduledDeliveryTime;
- }
-
- public void setScheduledDeliveryTime(long scheduledDeliveryTime)
- {
- this.scheduledDeliveryTime = scheduledDeliveryTime;
- }
-
- // Streamable implementation ---------------------------------
-
- public void write(DataOutputStream out) throws Exception
- {
- out.writeLong(messageID);
- out.writeBoolean(reliable);
- out.writeLong(expiration);
- out.writeLong(timestamp);
- StreamUtils.writeMap(out, headers, true);
- out.writeByte(priority);
- out.writeInt(deliveryCount);
- out.writeLong(scheduledDeliveryTime);
- }
-
- public void read(DataInputStream in) throws Exception
- {
- messageID = in.readLong();
- reliable = in.readBoolean();
- expiration = in.readLong();
- timestamp = in.readLong();
- Map m = StreamUtils.readMap(in, true);
- if (!(m instanceof HashMap))
- {
- headers = new HashMap(m);
- }
- else
- {
- headers = (HashMap)m;
- }
- priority = in.readByte();
- deliveryCount = in.readInt();
- scheduledDeliveryTime = in.readLong();
- }
-
- // Public --------------------------------------------------------
-
- public boolean isExpired()
- {
- if (expiration == 0)
- {
- return false;
- }
- long overtime = System.currentTimeMillis() - expiration;
- if (overtime >= 0)
- {
- // discard it
- if (trace) { log.trace(this + " expired by " + overtime + " ms"); }
-
- return true;
- }
- return false;
- }
-
- public String toString()
- {
- StringBuffer sb = new StringBuffer("RoutableSupport[");
- sb.append(messageID);
- sb.append("]");
- return sb.toString();
- }
-
- // Protected -------------------------------------------------------
-
-}
Copied: trunk/src/main/org/jboss/messaging/core/message/SimpleMessageReference.java (from rev 2182, trunk/src/main/org/jboss/messaging/core/plugin/SimpleMessageReference.java)
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/SimpleMessageReference.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/message/SimpleMessageReference.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -0,0 +1,181 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * 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.message;
+
+import java.util.Map;
+
+import org.jboss.logging.Logger;
+import org.jboss.messaging.core.plugin.contract.MessageStore;
+
+/**
+ * A Simple MessageReference implementation.
+ *
+ * Note that we do not need WeakReferences to message/holder objects since with the new
+ * lazy loading schema we guarantee that if a message ref is in memory - it's corresponding message is
+ * in memory too
+ *
+ * @author <a href="mailto:tim.fox at jboss.com>Tim Fox</a>
+ * @version <tt>1.3</tt>
+ *
+ * SimpleMessageReference.java,v 1.3 2006/02/23 17:45:57 timfox Exp
+ */
+public class SimpleMessageReference implements MessageReference
+{
+ private static final Logger log = Logger.getLogger(SimpleMessageReference.class);
+
+ // Attributes ----------------------------------------------------
+
+ private boolean trace = log.isTraceEnabled();
+
+ protected transient MessageStore ms;
+
+ private MessageHolder holder;
+
+ private long pagingOrder = -1;
+
+ private boolean released;
+
+ private int deliveryCount;
+
+ private long scheduledDeliveryTime;
+
+
+ // Constructors --------------------------------------------------
+
+ /**
+ * Required by externalization.
+ */
+ public SimpleMessageReference()
+ {
+ if (trace) { log.trace("Creating using default constructor"); }
+ }
+
+ public SimpleMessageReference(SimpleMessageReference other)
+ {
+ this.ms = other.ms;
+
+ this.holder = other.holder;
+
+ this.pagingOrder = other.pagingOrder;
+
+ this.released = other.released;
+
+ this.deliveryCount = other.deliveryCount;
+
+ this.scheduledDeliveryTime = other.scheduledDeliveryTime;
+ }
+
+ protected SimpleMessageReference(MessageHolder holder, MessageStore ms)
+ {
+ this.holder = holder;
+
+ this.ms = ms;
+ }
+
+ // Message implementation ----------------------------------------
+
+ public boolean isReference()
+ {
+ return true;
+ }
+
+ // MessageReference implementation -------------------------------
+
+ public int getDeliveryCount()
+ {
+ return deliveryCount;
+ }
+
+ public void setDeliveryCount(int deliveryCount)
+ {
+ this.deliveryCount = deliveryCount;
+ }
+
+ public long getScheduledDeliveryTime()
+ {
+ return scheduledDeliveryTime;
+ }
+
+ public void setScheduledDeliveryTime(long scheduledDeliveryTime)
+ {
+ this.scheduledDeliveryTime = scheduledDeliveryTime;
+ }
+
+ public Message getMessage()
+ {
+ return holder.getMessage();
+ }
+
+ public void releaseMemoryReference()
+ {
+ if (released)
+ {
+ //Do nothing -
+ //It's possible releaseMemoryReference can be called more than once on a reference since it's
+ //allowable that acknowledge is called more than once for a delivery and each call will call this
+ //method - so we don't want to throw an exception
+ return;
+ }
+ holder.decrementInMemoryChannelCount();
+
+ released = true;
+ }
+
+ public int getInMemoryChannelCount()
+ {
+ return holder.getInMemoryChannelCount();
+ }
+
+ public long getPagingOrder()
+ {
+ return pagingOrder;
+ }
+
+ public void setPagingOrder(long order)
+ {
+ this.pagingOrder = order;
+ }
+
+ public MessageReference copy()
+ {
+ SimpleMessageReference ref = new SimpleMessageReference(this);
+
+ ref.holder.incrementInMemoryChannelCount();
+
+ return ref;
+ }
+
+ // Public --------------------------------------------------------
+
+ public String toString()
+ {
+ return "Reference[" + getMessage().getMessageID() + "]:" + (getMessage().isReliable() ? "RELIABLE" : "NON-RELIABLE");
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
+}
\ No newline at end of file
Copied: trunk/src/main/org/jboss/messaging/core/message/SimpleMessageStore.java (from rev 2182, trunk/src/main/org/jboss/messaging/core/plugin/SimpleMessageStore.java)
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/SimpleMessageStore.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/message/SimpleMessageStore.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -0,0 +1,173 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * 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.message;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.jboss.logging.Logger;
+import org.jboss.messaging.core.plugin.contract.MessageStore;
+
+/**
+ * A MessageStore implementation.
+ *
+ * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @version <tt>$Revision$</tt>
+ *
+ * $Id$
+ */
+public class SimpleMessageStore implements MessageStore
+{
+ // Constants -----------------------------------------------------
+
+ private static final Logger log = Logger.getLogger(SimpleMessageStore.class);
+
+ // Static --------------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+
+ private boolean trace = log.isTraceEnabled();
+
+ // <messageID - MessageHolder>
+ private Map messages;
+
+ // Constructors --------------------------------------------------
+
+ public SimpleMessageStore()
+ {
+ messages = new HashMap();
+
+ log.debug(this + " initialized");
+ }
+
+ // MessageStore implementation ---------------------------
+
+ public Object getInstance()
+ {
+ return this;
+ }
+
+ // TODO If we can assume that the message is not known to the store before
+ // (true when sending messages)
+ // Then we can avoid synchronizing on this and use a ConcurrentHashmap
+ // Which will give us much better concurrency for many threads
+ public MessageReference reference(Message m)
+ {
+ MessageHolder holder;
+
+ synchronized (this)
+ {
+ holder = (MessageHolder)messages.get(new Long(m.getMessageID()));
+
+ if (holder == null)
+ {
+ holder = addMessage(m);
+ }
+ }
+ holder.incrementInMemoryChannelCount();
+
+ MessageReference ref = new SimpleMessageReference(holder, this);
+
+ if (trace) { log.trace(this + " generated " + ref + " for " + m); }
+
+ return ref;
+ }
+
+ public MessageReference reference(long messageID)
+ {
+ MessageHolder holder;
+
+ synchronized (this)
+ {
+ holder = (MessageHolder)messages.get(new Long(messageID));
+ }
+
+ if (holder == null)
+ {
+ return null;
+ }
+
+ MessageReference ref = new SimpleMessageReference(holder, this);
+
+ if (trace) { log.trace(this + " generates " + ref + " for " + messageID); }
+
+ holder.incrementInMemoryChannelCount();
+
+ return ref;
+ }
+
+
+ public boolean forgetMessage(long messageID)
+ {
+ return messages.remove(new Long(messageID)) != null;
+ }
+
+ public int size()
+ {
+ return messages.size();
+ }
+
+ public List messageIds()
+ {
+ return new ArrayList(messages.keySet());
+ }
+
+ // MessagingComponent implementation --------------------------------
+
+ public void start() throws Exception
+ {
+ //NOOP
+ }
+
+ public void stop() throws Exception
+ {
+ //NOOP
+ }
+
+ // Public --------------------------------------------------------
+
+ public String toString()
+ {
+ return "MemoryStore[" + System.identityHashCode(this) + "]";
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ protected MessageHolder addMessage(Message m)
+ {
+ MessageHolder holder = new MessageHolder(m, this);
+
+ messages.put(new Long(m.getMessageID()), holder);
+
+ return holder;
+ }
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
+
+}
Modified: trunk/src/main/org/jboss/messaging/core/plugin/JDBCPersistenceManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/JDBCPersistenceManager.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/JDBCPersistenceManager.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -49,21 +49,16 @@
import javax.transaction.TransactionManager;
import javax.transaction.xa.Xid;
-import org.jboss.jms.destination.JBossDestination;
-import org.jboss.jms.destination.JBossQueue;
-import org.jboss.jms.destination.JBossTopic;
-import org.jboss.jms.message.JBossMessage;
import org.jboss.logging.Logger;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
-import org.jboss.messaging.core.message.CoreMessage;
+import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.message.MessageFactory;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.message.MessageSupport;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
+import org.jboss.messaging.core.tx.MessagingXid;
import org.jboss.messaging.core.tx.PreparedTxInfo;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.messaging.core.tx.TxCallback;
-import org.jboss.messaging.core.tx.MessagingXid;
import org.jboss.messaging.util.JDBCUtil;
import org.jboss.messaging.util.StreamUtils;
import org.jboss.messaging.util.Util;
@@ -158,10 +153,7 @@
}
wrap.end();
}
-
- //We can't remnove unreliable data since it might introduce holes into the paging order
- //removeUnreliableMessageData();
-
+
log.debug(this + " started");
}
@@ -177,13 +169,13 @@
public List getMessageChannelPairRefsForTx(long transactionId) throws Exception
{
- String sql = this.getSQLStatement("SELECT_MESSAGEID_FOR_REF");
+ String sql = this.getSQLStatement("SELECT_MESSAGE_ID_FOR_REF");
return getMessageChannelPair(sql, transactionId);
}
public List getMessageChannelPairAcksForTx(long transactionId) throws Exception
{
- String sql = this.getSQLStatement("SELECT_MESSAGEID_FOR_ACK");
+ String sql = this.getSQLStatement("SELECT_MESSAGE_ID_FOR_ACK");
return getMessageChannelPair(sql, transactionId);
}
@@ -425,7 +417,7 @@
numParams = size % maxParams;
}
StringBuffer buff = new StringBuffer(getSQLStatement("LOAD_MESSAGES"));
- buff.append(" WHERE ").append(getSQLStatement("MESSAGEID_COLUMN")).append(" IN (");
+ buff.append(" WHERE ").append(getSQLStatement("MESSAGE_ID_COLUMN")).append(" IN (");
for (int i = 0; i < numParams; i++)
{
buff.append("?");
@@ -454,83 +446,27 @@
rs = ps.executeQuery();
while (rs.next())
- {
-
-// "SELECT MESSAGEID, RELIABLE, EXPIRATION, TIMESTAMP, " +
-// "PRIORITY, COREHEADERS, PAYLOAD, CHANNELCOUNT, TYPE, JMSTYPE, CORRELATIONID, " +
-// "CORRELATIONID_BYTES, DESTINATION, REPLYTO, JMSPROPERTIES " +
-// "FROM JMS_MESSAGE"
-
-
+ {
long messageId = rs.getLong(1);
+
boolean reliable = rs.getString(2).equals("Y");
+
long expiration = rs.getLong(3);
+
long timestamp = rs.getLong(4);
- byte priority = rs.getByte(5);
- byte[] bytes = getBytes(rs, 6);
- HashMap coreHeaders = bytesToMap(bytes);
- byte[] payload = getBytes(rs, 7);
-
- //TODO - We are mixing concerns here
- //The basic JDBCPersistencManager should *only* know about core messages - not
- //JBossMessages - we should subclass JBDCPersistenceManager and the JBossMessage
- //specific code in a subclass
+ byte priority = rs.getByte(5);
- byte type = rs.getByte(8);
+ byte[] bytes = getBytes(rs, 6);
- Message m;
+ HashMap headers = bytesToMap(bytes);
- if (type != CoreMessage.TYPE)
- {
- //JBossMessage
- String jmsType = rs.getString(9);
- String correlationID = rs.getString(10);
- byte[] correlationIDBytes = rs.getBytes(11);
- String destination = rs.getString(12);
- String replyTo = rs.getString(13);
- boolean replyToExists = !rs.wasNull();
- bytes = getBytes(rs, 14);
- HashMap jmsProperties = bytesToMap(bytes);
-
- JBossDestination dest;
- if (destination.charAt(0) == 'Q')
- {
- dest = new JBossQueue(destination.substring(1, destination.length()));
- }
- else
- {
- dest = new JBossTopic(destination.substring(1, destination.length()));
- }
-
- JBossDestination replyToDest = null;
-
- if (replyToExists)
- {
- if (replyTo.charAt(0) == 'Q')
- {
- replyToDest = new JBossQueue(replyTo.substring(1, replyTo.length()));
- }
- else
- {
- replyToDest = new JBossTopic(replyTo.substring(1, replyTo.length()));
- }
- }
-
- m = MessageFactory.createMessage(messageId, reliable, expiration, timestamp, priority,
- coreHeaders, payload,
- type, jmsType, correlationID, correlationIDBytes,
- dest, replyToDest, 0,
- jmsProperties);
- }
- else
- {
- m = MessageFactory.createMessage(messageId, reliable, expiration, timestamp, priority,
- coreHeaders, payload, type,
- null, null, null, null, null, 0, null);
- }
+ byte[] payload = getBytes(rs, 7);
+ byte type = rs.getByte(8);
+ Message m = MessageFactory.createMessage(messageId, reliable, expiration, timestamp, priority,
+ headers, payload, type);
msgs.add(m);
}
@@ -620,7 +556,7 @@
{
psInsertReference = conn.prepareStatement(getSQLStatement("INSERT_MESSAGE_REF"));
psInsertMessage = conn.prepareStatement(getSQLStatement("INSERT_MESSAGE"));
- psUpdateMessage = conn.prepareStatement(getSQLStatement("INC_CHANNELCOUNT"));
+ psUpdateMessage = conn.prepareStatement(getSQLStatement("INC_CHANNEL_COUNT"));
}
while (iter.hasNext())
@@ -658,7 +594,7 @@
if (!usingBatchUpdates)
{
psInsertMessage = conn.prepareStatement(getSQLStatement("INSERT_MESSAGE"));
- psUpdateMessage = conn.prepareStatement(getSQLStatement("INC_CHANNELCOUNT"));
+ psUpdateMessage = conn.prepareStatement(getSQLStatement("INC_CHANNEL_COUNT"));
}
//Maybe we need to persist the message itself
@@ -765,7 +701,7 @@
{
int[] rowsMessage = updateWithRetryBatch(psUpdateMessage);
- if (trace) { logBatchUpdate(getSQLStatement("INC_CHANNELCOUNT"), rowsMessage, "updated"); }
+ if (trace) { logBatchUpdate(getSQLStatement("INC_CHANNEL_COUNT"), rowsMessage, "updated"); }
}
psInsertReference.close();
@@ -861,7 +797,7 @@
{
psDeleteReference = conn.prepareStatement(getSQLStatement("DELETE_MESSAGE_REF"));
psDeleteMessage = conn.prepareStatement(getSQLStatement("DELETE_MESSAGE"));
- psUpdateMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNELCOUNT"));
+ psUpdateMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNEL_COUNT"));
}
while (iter.hasNext())
@@ -892,7 +828,7 @@
if (!usingBatchUpdates)
{
psDeleteMessage = conn.prepareStatement(getSQLStatement("DELETE_MESSAGE"));
- psUpdateMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNELCOUNT"));
+ psUpdateMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNEL_COUNT"));
}
Message m = ref.getMessage();
@@ -938,7 +874,7 @@
rowsReference = updateWithRetryBatch(psUpdateMessage);
- if (trace) { logBatchUpdate(getSQLStatement("DEC_CHANNELCOUNT"), rowsReference, "updated"); }
+ if (trace) { logBatchUpdate(getSQLStatement("DEC_CHANNEL_COUNT"), rowsReference, "updated"); }
rowsReference = updateWithRetryBatch(psDeleteMessage);
@@ -1011,9 +947,9 @@
}
}
- public void updateReliableReferencesNotPagedInRange(long channelID, long orderStart, long orderEnd, long num) throws Exception
+ public void updateReferencesNotPagedInRange(long channelID, long orderStart, long orderEnd, long num) throws Exception
{
- if (trace) { log.trace("Updating reliable references for channel " + channelID + " between " + orderStart + " and " + orderEnd); }
+ if (trace) { log.trace("Updating paaged references for channel " + channelID + " between " + orderStart + " and " + orderEnd); }
Connection conn = null;
PreparedStatement ps = null;
@@ -1025,7 +961,7 @@
{
conn = ds.getConnection();
- ps = conn.prepareStatement(getSQLStatement("UPDATE_RELIABLE_REFS_NOT_PAGED"));
+ ps = conn.prepareStatement(getSQLStatement("UPDATE_REFS_NOT_PAGED"));
ps.setLong(1, orderStart);
@@ -1041,7 +977,7 @@
{
int rows = updateWithRetry(ps);
- if (trace) { log.trace(JDBCUtil.statementToString(getSQLStatement("UPDATE_RELIABLE_REFS_NOT_PAGED"), new Long(channelID),
+ if (trace) { log.trace(JDBCUtil.statementToString(getSQLStatement("UPDATE_REFS_NOT_PAGED"), new Long(channelID),
new Long(orderStart), new Long(orderEnd)) + " updated " + rows + " rows"); }
if (tries > 0)
{
@@ -1137,7 +1073,7 @@
psUpdateReference.setLong(1, ref.getPagingOrder());
- psUpdateReference.setLong(2, ref.getMessageID());
+ psUpdateReference.setLong(2, ref.getMessage().getMessageID());
psUpdateReference.setLong(3, channelID);
@@ -1229,8 +1165,7 @@
long msgId = rs.getLong(1);
int deliveryCount = rs.getInt(2);
int pageOrd = rs.getInt(3);
- boolean reliable = rs.getString(4).equals("Y");
- long sched = rs.getLong(5);
+ long sched = rs.getLong(4);
//Sanity check
if (pageOrd != ord)
@@ -1238,7 +1173,7 @@
throw new IllegalStateException("Unexpected pageOrd: " + pageOrd + " expected: " + ord);
}
- ReferenceInfo ri = new ReferenceInfo(msgId, deliveryCount, reliable, sched);
+ ReferenceInfo ri = new ReferenceInfo(msgId, deliveryCount, sched);
refs.add(ri);
ord++;
@@ -1352,10 +1287,9 @@
{
long msgId = rs.getLong(1);
int deliveryCount = rs.getInt(2);
- boolean reliable = rs.getString(3).equals("Y");
- long sched = rs.getLong(4);
+ long sched = rs.getLong(3);
- ReferenceInfo ri = new ReferenceInfo(msgId, deliveryCount, reliable, sched);
+ ReferenceInfo ri = new ReferenceInfo(msgId, deliveryCount, sched);
if (count < fullSize)
{
@@ -1470,7 +1404,7 @@
else
{
//Update the message's channel count
- psMessage = conn.prepareStatement(getSQLStatement("INC_CHANNELCOUNT"));
+ psMessage = conn.prepareStatement(getSQLStatement("INC_CHANNEL_COUNT"));
incrementChannelCount(m, psMessage);
}
@@ -1541,13 +1475,13 @@
try
{
- psReference = conn.prepareStatement(getSQLStatement("UPDATE_DELIVERYCOUNT"));
+ psReference = conn.prepareStatement(getSQLStatement("UPDATE_DELIVERY_COUNT"));
psReference.setInt(1, ref.getDeliveryCount());
psReference.setLong(2, channelID);
- psReference.setLong(3, ref.getMessageID());
+ psReference.setLong(3, ref.getMessage().getMessageID());
int rows = updateWithRetry(psReference);
@@ -1630,7 +1564,7 @@
//Update the messages channel count
- psUpdate = conn.prepareStatement(getSQLStatement("DEC_CHANNELCOUNT"));
+ psUpdate = conn.prepareStatement(getSQLStatement("DEC_CHANNEL_COUNT"));
decrementChannelCount(m, psUpdate);
@@ -1787,7 +1721,7 @@
{
conn = ds.getConnection();
- st = conn.prepareStatement(getSQLStatement("SELECT_EXISTS_REF_MESSAGEID"));
+ st = conn.prepareStatement(getSQLStatement("SELECT_EXISTS_REF_MESSAGE_ID"));
st.setLong(1, messageID);
rs = st.executeQuery();
@@ -1928,7 +1862,7 @@
{
psReference = conn.prepareStatement(getSQLStatement("INSERT_MESSAGE_REF"));
psInsertMessage = conn.prepareStatement(getSQLStatement("INSERT_MESSAGE"));
- psIncMessage = conn.prepareStatement(getSQLStatement("INC_CHANNELCOUNT"));
+ psIncMessage = conn.prepareStatement(getSQLStatement("INC_CHANNEL_COUNT"));
}
for(Iterator i = refsToAdd.iterator(); i.hasNext(); )
@@ -1963,7 +1897,7 @@
if (!batch)
{
psInsertMessage = conn.prepareStatement(getSQLStatement("INSERT_MESSAGE"));
- psIncMessage = conn.prepareStatement(getSQLStatement("INC_CHANNELCOUNT"));
+ psIncMessage = conn.prepareStatement(getSQLStatement("INC_CHANNEL_COUNT"));
}
boolean added;
@@ -2030,7 +1964,7 @@
if (messageUpdatesInBatch)
{
int[] rowsMessage = updateWithRetryBatch(psIncMessage);
- if (trace) { logBatchUpdate(getSQLStatement("INC_CHANNELCOUNT"), rowsMessage, "updated"); }
+ if (trace) { logBatchUpdate(getSQLStatement("INC_CHANNEL_COUNT"), rowsMessage, "updated"); }
}
psReference.close();
@@ -2051,7 +1985,7 @@
{
psReference = conn.prepareStatement(getSQLStatement("DELETE_MESSAGE_REF"));
psDeleteMessage = conn.prepareStatement(getSQLStatement("DELETE_MESSAGE"));
- psDecMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNELCOUNT"));
+ psDecMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNEL_COUNT"));
}
@@ -2081,7 +2015,7 @@
if (!batch)
{
psDeleteMessage = conn.prepareStatement(getSQLStatement("DELETE_MESSAGE"));
- psDecMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNELCOUNT"));
+ psDecMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNEL_COUNT"));
}
Message m = pair.ref.getMessage();
@@ -2124,7 +2058,7 @@
rows = updateWithRetryBatch(psDecMessage);
- if (trace) { logBatchUpdate(getSQLStatement("DEC_CHANNELCOUNT"), rows, "updated"); }
+ if (trace) { logBatchUpdate(getSQLStatement("DEC_CHANNEL_COUNT"), rows, "updated"); }
rows = updateWithRetryBatch(psDeleteMessage);
@@ -2256,7 +2190,7 @@
if (batch)
{
psDeleteMessage = conn.prepareStatement(getSQLStatement("DELETE_MESSAGE"));
- psUpdateMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNELCOUNT"));
+ psUpdateMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNEL_COUNT"));
}
iter = refsToRemove.iterator();
@@ -2269,7 +2203,7 @@
if (!batch)
{
psDeleteMessage = conn.prepareStatement(getSQLStatement("DELETE_MESSAGE"));
- psUpdateMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNELCOUNT"));
+ psUpdateMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNEL_COUNT"));
}
Message m = ref.getMessage();
@@ -2311,7 +2245,7 @@
{
int[] rows = updateWithRetryBatch(psUpdateMessage);
- if (trace) { logBatchUpdate(getSQLStatement("DEC_CHANNELCOUNT"), rows, "updated"); }
+ if (trace) { logBatchUpdate(getSQLStatement("DEC_CHANNEL_COUNT"), rows, "updated"); }
psUpdateMessage.close();
psUpdateMessage = null;
@@ -2420,7 +2354,7 @@
{
psReference = conn.prepareStatement(getSQLStatement("INSERT_MESSAGE_REF"));
psInsertMessage = conn.prepareStatement(getSQLStatement("INSERT_MESSAGE"));
- psUpdateMessage = conn.prepareStatement(getSQLStatement("INC_CHANNELCOUNT"));
+ psUpdateMessage = conn.prepareStatement(getSQLStatement("INC_CHANNEL_COUNT"));
}
while (iter.hasNext())
@@ -2451,7 +2385,7 @@
if (!batch)
{
psInsertMessage = conn.prepareStatement(getSQLStatement("INSERT_MESSAGE"));
- psUpdateMessage = conn.prepareStatement(getSQLStatement("INC_CHANNELCOUNT"));
+ psUpdateMessage = conn.prepareStatement(getSQLStatement("INC_CHANNEL_COUNT"));
}
Message m = pair.ref.getMessage();
@@ -2525,7 +2459,7 @@
{
int[] rowsMessage = updateWithRetryBatch(psUpdateMessage);
- if (trace) { logBatchUpdate(getSQLStatement("INC_CHANNELCOUNT"), rowsMessage, "updated"); }
+ if (trace) { logBatchUpdate(getSQLStatement("INC_CHANNEL_COUNT"), rowsMessage, "updated"); }
}
psReference.close();
@@ -2679,7 +2613,7 @@
if (batch)
{
psDeleteMessage = conn.prepareStatement(getSQLStatement("DELETE_MESSAGE"));
- psUpdateMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNELCOUNT"));
+ psUpdateMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNEL_COUNT"));
}
while (iter.hasNext())
@@ -2689,7 +2623,7 @@
if (!batch)
{
psDeleteMessage = conn.prepareStatement(getSQLStatement("DELETE_MESSAGE"));
- psUpdateMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNELCOUNT"));
+ psUpdateMessage = conn.prepareStatement(getSQLStatement("DEC_CHANNEL_COUNT"));
}
Message m = pair.ref.getMessage();
@@ -2731,7 +2665,7 @@
{
int[] rows = updateWithRetryBatch(psUpdateMessage);
- if (trace) { logBatchUpdate(getSQLStatement("DEC_CHANNELCOUNT"), rows, "updated"); }
+ if (trace) { logBatchUpdate(getSQLStatement("DEC_CHANNEL_COUNT"), rows, "updated"); }
rows = updateWithRetryBatch(psDeleteMessage);
@@ -2882,7 +2816,7 @@
if (trace) { log.trace("adding " + ref + " to channel " + channelID); }
ps.setLong(1, channelID);
- ps.setLong(2, ref.getMessageID());
+ ps.setLong(2, ref.getMessage().getMessageID());
ps.setNull(3, Types.BIGINT);
ps.setString(4, "C");
ps.setLong(5, getOrdering());
@@ -2895,8 +2829,7 @@
ps.setNull(6, Types.BIGINT);
}
ps.setInt(7, ref.getDeliveryCount());
- ps.setString(8, ref.isReliable() ? "Y" : "N");
- ps.setLong(9, ref.getScheduledDeliveryTime());
+ ps.setLong(8, ref.getScheduledDeliveryTime());
}
protected void removeReference(long channelID, MessageReference ref, PreparedStatement ps)
@@ -2904,7 +2837,7 @@
{
if (trace) { log.trace("removing " + ref + " from channel " + channelID); }
- ps.setLong(1, ref.getMessageID());
+ ps.setLong(1, ref.getMessage().getMessageID());
ps.setLong(2, channelID);
}
@@ -2914,14 +2847,13 @@
if (trace) { log.trace("adding " + ref + " to channel " + channelID + (tx == null ? " non-transactionally" : " on transaction: " + tx)); }
ps.setLong(1, channelID);
- ps.setLong(2, ref.getMessageID());
+ ps.setLong(2, ref.getMessage().getMessageID());
ps.setLong(3, tx.getId());
ps.setString(4, "+");
ps.setLong(5, getOrdering());
ps.setNull(6, Types.BIGINT);
ps.setInt(7, ref.getDeliveryCount());
- ps.setString(8, ref.isReliable() ? "Y" : "N");
- ps.setLong(9, ref.getScheduledDeliveryTime());
+ ps.setLong(8, ref.getScheduledDeliveryTime());
}
protected void prepareToRemoveReference(long channelID, MessageReference ref, Transaction tx, PreparedStatement ps)
@@ -2934,7 +2866,7 @@
}
ps.setLong(1, tx.getId());
- ps.setLong(2, ref.getMessageID());
+ ps.setLong(2, ref.getMessage().getMessageID());
ps.setLong(3, channelID);
}
@@ -3064,20 +2996,10 @@
DataInputStream dais = new DataInputStream(bis);
- Map m = StreamUtils.readMap(dais, true);
+ HashMap map = StreamUtils.readMap(dais, true);
dais.close();
-
- HashMap map;
- if (!(m instanceof HashMap))
- {
- map = new HashMap(m);
- }
- else
- {
- map = (HashMap) m;
- }
-
+
return map;
}
@@ -3106,7 +3028,7 @@
ps.setLong(4, m.getTimestamp());
ps.setByte(5, m.getPriority());
- //Core headers
+ //headers
byte[] bytes = mapToBytes(((MessageSupport) m).getHeaders());
if (bytes != null)
{
@@ -3117,8 +3039,6 @@
ps.setNull(6, Types.LONGVARBINARY);
}
- // now set the fields from org.jboss.messaging.core.Message
-
byte[] payload = m.getPayloadAsByteArray();
if (payload != null)
{
@@ -3130,79 +3050,9 @@
}
//The number of channels that hold a reference to the message - initially always 1
- ps.setInt(8, 1);
+ ps.setInt(8, 1);
- //Now set the fields from org.joss.jms.message.JBossMessage if appropriate
-
- //TODO - We are mixing concerns here
- //The basic JDBCPersistencManager should *only* know about core messages - not
- //JBossMessages - we should subclass JBDCPersistenceManager and the JBossMessage
- //specific code in a subclass
- if (m instanceof JBossMessage)
- {
- JBossMessage jbm = (JBossMessage) m;
-
- ps.setByte(9, jbm.getType());
- if (jbm.getJMSType() != null)
- {
- ps.setString(10, jbm.getJMSType());
- }
- else
- {
- ps.setNull(10, Types.VARCHAR);
- }
- if (jbm.getJMSCorrelationID() != null)
- {
- ps.setString(11, jbm.getJMSCorrelationID());
- }
- else
- {
- ps.setNull(11, Types.VARCHAR);
- }
- if (jbm.getJMSCorrelationIDAsBytes() != null)
- {
- ps.setBytes(12, jbm.getJMSCorrelationIDAsBytes());
- }
- else
- {
- ps.setNull(12, Types.BINARY);
- }
-
- JBossDestination jbd = (JBossDestination) jbm.getJMSDestination();
-
- ps.setString(13, (jbd.isQueue() ? "Q" : "T") + jbd);
-
- JBossDestination replyTo = (JBossDestination) jbm.getJMSReplyTo();
- if (replyTo == null)
- {
- ps.setNull(14, Types.BIGINT);
- }
- else
- {
- ps.setString(14, (replyTo.isQueue() ? "Q" : "T") + replyTo);
- }
-
- //jms properties
- bytes = mapToBytes(jbm.getJMSProperties());
- if (bytes != null)
- {
- setBytes(ps, 15, bytes);
- }
- else
- {
- ps.setNull(15, Types.LONGVARBINARY);
- }
- }
- else
- {
- ps.setByte(9, m.getType());
- ps.setNull(10, Types.VARCHAR);
- ps.setNull(11, Types.VARCHAR);
- ps.setNull(12, Types.BINARY);
- ps.setNull(13, Types.BIGINT);
- ps.setNull(14, Types.BIGINT);
- ps.setNull(15, Types.LONGVARBINARY);
- }
+ ps.setByte(9, m.getType());
}
/**
@@ -3343,31 +3193,28 @@
Map map = new LinkedHashMap();
//Message reference
map.put("CREATE_MESSAGE_REFERENCE",
- "CREATE TABLE JMS_MESSAGE_REFERENCE (CHANNELID BIGINT, " +
- "MESSAGEID BIGINT, TRANSACTIONID BIGINT, STATE CHAR(1), ORD BIGINT, PAGE_ORD BIGINT, " +
- "DELIVERYCOUNT INTEGER, RELIABLE CHAR(1), LOADED CHAR(1), SCHED_DELIVERY BIGINT, PRIMARY KEY(CHANNELID, MESSAGEID))"); //CHANGED
- map.put("CREATE_IDX_MESSAGE_REF_TX", "CREATE INDEX JMS_MESSAGE_REF_TX ON JMS_MESSAGE_REFERENCE (TRANSACTIONID)");
- map.put("CREATE_IDX_MESSAGE_REF_ORD", "CREATE INDEX JMS_MESSAGE_REF_ORD ON JMS_MESSAGE_REFERENCE (ORD)");
- map.put("CREATE_IDX_MESSAGE_REF_PAGE_ORD", "CREATE INDEX JMS_MESSAGE_REF__PAGE_ORD ON JMS_MESSAGE_REFERENCE (PAGE_ORD)");
- map.put("CREATE_IDX_MESSAGE_REF_MESSAGEID", "CREATE INDEX JMS_MESSAGE_REF_MESSAGEID ON JMS_MESSAGE_REFERENCE (MESSAGEID)");
- map.put("CREATE_IDX_MESSAGE_REF_RELIABLE", "CREATE INDEX JMS_MESSAGE_REF_RELIABLE ON JMS_MESSAGE_REFERENCE (RELIABLE)");
- map.put("CREATE_IDX_MESSAGE_REF_SCHED_DELIVERY", "CREATE INDEX JMS_MESSAGE_REF_SCHED_DELIVERY ON JMS_MESSAGE_REFERENCE (SCHED_DELIVERY)");
+ "CREATE TABLE JBM_MSG_REF (CHANNEL_ID BIGINT, " +
+ "MESSAGE_ID BIGINT, TRANSACTION_ID BIGINT, STATE CHAR(1), ORD BIGINT, PAGE_ORD BIGINT, " +
+ "DELIVERY_COUNT INTEGER, LOADED CHAR(1), SCHED_DELIVERY BIGINT, PRIMARY KEY(CHANNEL_ID, MESSAGE_ID))"); //CHANGED
+ map.put("CREATE_IDX_MESSAGE_REF_TX", "CREATE INDEX JBM_MSG_REF_TX ON JBM_MSG_REF (TRANSACTION_ID)");
+ map.put("CREATE_IDX_MESSAGE_REF_ORD", "CREATE INDEX JBM_MSG_REF_ORD ON JBM_MSG_REF (ORD)");
+ map.put("CREATE_IDX_MESSAGE_REF_PAGE_ORD", "CREATE INDEX JBM_MSG_REF__PAGE_ORD ON JBM_MSG_REF (PAGE_ORD)");
+ map.put("CREATE_IDX_MESSAGE_REF_MESSAGE_ID", "CREATE INDEX JBM_MSG_REF_MESSAGE_ID ON JBM_MSG_REF (MESSAGE_ID)");
+ map.put("CREATE_IDX_MESSAGE_REF_SCHED_DELIVERY", "CREATE INDEX JBM_MSG_REF_SCHED_DELIVERY ON JBM_MSG_REF (SCHED_DELIVERY)");
//Message
map.put("CREATE_MESSAGE",
- "CREATE TABLE JMS_MESSAGE (MESSAGEID BIGINT, RELIABLE CHAR(1), " +
- "EXPIRATION BIGINT, TIMESTAMP BIGINT, PRIORITY TINYINT, COREHEADERS LONGVARBINARY, " +
- "PAYLOAD LONGVARBINARY, CHANNELCOUNT INTEGER, TYPE TINYINT, JMSTYPE VARCHAR(255), CORRELATIONID VARCHAR(255), " +
- "CORRELATIONID_BYTES VARBINARY(254), DESTINATION VARCHAR(255), REPLYTO VARCHAR(255), " +
- "JMSPROPERTIES LONGVARBINARY, " +
- "PRIMARY KEY (MESSAGEID))");
+ "CREATE TABLE JBM_MSG (MESSAGE_ID BIGINT, RELIABLE CHAR(1), " +
+ "EXPIRATION BIGINT, TIMESTAMP BIGINT, PRIORITY TINYINT, HEADERS LONGVARBINARY, " +
+ "PAYLOAD LONGVARBINARY, CHANNEL_COUNT INTEGER, TYPE TINYINT, " +
+ "PRIMARY KEY (MESSAGE_ID))");
//Transaction
map.put("CREATE_TRANSACTION",
- "CREATE TABLE JMS_TRANSACTION (" +
- "TRANSACTIONID BIGINT, BRANCH_QUAL VARBINARY(254), " +
- "FORMAT_ID INTEGER, GLOBAL_TXID VARBINARY(254), PRIMARY KEY (TRANSACTIONID))");
+ "CREATE TABLE JBM_TX (" +
+ "TRANSACTION_ID BIGINT, BRANCH_QUAL VARBINARY(254), " +
+ "FORMAT_ID INTEGER, GLOBAL_TXID VARBINARY(254), PRIMARY KEY (TRANSACTION_ID))");
//Counter
map.put("CREATE_COUNTER",
- "CREATE TABLE JMS_COUNTER (NAME VARCHAR(255), NEXT_ID BIGINT, PRIMARY KEY(NAME))");
+ "CREATE TABLE JBM_COUNTER (NAME VARCHAR(255), NEXT_ID BIGINT, PRIMARY KEY(NAME))");
return map;
}
@@ -3376,59 +3223,58 @@
Map map = new LinkedHashMap();
//Message reference
map.put("INSERT_MESSAGE_REF",
- "INSERT INTO JMS_MESSAGE_REFERENCE (CHANNELID, MESSAGEID, TRANSACTIONID, STATE, ORD, PAGE_ORD, DELIVERYCOUNT, RELIABLE, SCHED_DELIVERY) " +
- "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"); //CHANGED
- map.put("DELETE_MESSAGE_REF", "DELETE FROM JMS_MESSAGE_REFERENCE WHERE MESSAGEID=? AND CHANNELID=? AND STATE='C'");
+ "INSERT INTO JBM_MSG_REF (CHANNEL_ID, MESSAGE_ID, TRANSACTION_ID, STATE, ORD, PAGE_ORD, DELIVERY_COUNT, SCHED_DELIVERY) " +
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
+ map.put("DELETE_MESSAGE_REF", "DELETE FROM JBM_MSG_REF WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'");
map.put("UPDATE_MESSAGE_REF",
- "UPDATE JMS_MESSAGE_REFERENCE SET TRANSACTIONID=?, STATE='-' " +
- "WHERE MESSAGEID=? AND CHANNELID=? AND STATE='C'");
- map.put("UPDATE_PAGE_ORDER", "UPDATE JMS_MESSAGE_REFERENCE SET PAGE_ORD = ? WHERE MESSAGEID=? AND CHANNELID=?");
- map.put("COMMIT_MESSAGE_REF1", "UPDATE JMS_MESSAGE_REFERENCE SET STATE='C', TRANSACTIONID = NULL WHERE TRANSACTIONID=? AND STATE='+'");
- map.put("COMMIT_MESSAGE_REF2", "DELETE FROM JMS_MESSAGE_REFERENCE WHERE TRANSACTIONID=? AND STATE='-'");
- map.put("ROLLBACK_MESSAGE_REF1", "DELETE FROM JMS_MESSAGE_REFERENCE WHERE TRANSACTIONID=? AND STATE='+'");
- map.put("ROLLBACK_MESSAGE_REF2", "UPDATE JMS_MESSAGE_REFERENCE SET STATE='C', TRANSACTIONID = NULL WHERE TRANSACTIONID=? AND STATE='-'");
+ "UPDATE JBM_MSG_REF SET TRANSACTION_ID=?, STATE='-' " +
+ "WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'");
+ map.put("UPDATE_PAGE_ORDER", "UPDATE JBM_MSG_REF SET PAGE_ORD = ? WHERE MESSAGE_ID=? AND CHANNEL_ID=?");
+ map.put("COMMIT_MESSAGE_REF1", "UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='+'");
+ map.put("COMMIT_MESSAGE_REF2", "DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='-'");
+ map.put("ROLLBACK_MESSAGE_REF1", "DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='+'");
+ map.put("ROLLBACK_MESSAGE_REF2", "UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='-'");
map.put("LOAD_PAGED_REFS",
- "SELECT MESSAGEID, DELIVERYCOUNT, PAGE_ORD, RELIABLE, SCHED_DELIVERY FROM JMS_MESSAGE_REFERENCE " +
- "WHERE CHANNELID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD"); //CHANGED
+ "SELECT MESSAGE_ID, DELIVERY_COUNT, PAGE_ORD, SCHED_DELIVERY FROM JBM_MSG_REF " +
+ "WHERE CHANNEL_ID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD");
map.put("LOAD_UNPAGED_REFS",
- "SELECT MESSAGEID, DELIVERYCOUNT, RELIABLE, SCHED_DELIVERY FROM JMS_MESSAGE_REFERENCE WHERE STATE = 'C' " +
- "AND CHANNELID = ? AND PAGE_ORD IS NULL ORDER BY ORD"); //CHANGED
- map.put("UPDATE_RELIABLE_REFS_NOT_PAGED", "UPDATE JMS_MESSAGE_REFERENCE SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNELID=?");
- map.put("SELECT_MIN_MAX_PAGE_ORD", "SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID = ?");
- map.put("SELECT_EXISTS_REF", "SELECT MESSAGEID FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID = ? AND MESSAGEID = ?");
- map.put("SELECT_EXISTS_REF_MESSAGEID", "SELECT MESSAGEID FROM JMS_MESSAGE_REFERENCE WHERE MESSAGEID = ?");
- map.put("UPDATE_DELIVERYCOUNT", "UPDATE JMS_MESSAGE_REFERENCE SET DELIVERYCOUNT = ? WHERE CHANNELID = ? AND MESSAGEID = ?");
+ "SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY FROM JBM_MSG_REF WHERE STATE = 'C' " +
+ "AND CHANNEL_ID = ? AND PAGE_ORD IS NULL ORDER BY ORD");
+
+ map.put("UPDATE_REFS_NOT_PAGED", "UPDATE JBM_MSG_REF SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNEL_ID=?");
+ map.put("SELECT_MIN_MAX_PAGE_ORD", "SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JBM_MSG_REF WHERE CHANNEL_ID = ?");
+ map.put("SELECT_EXISTS_REF", "SELECT MESSAGE_ID FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND MESSAGE_ID = ?");
+ map.put("SELECT_EXISTS_REF_MESSAGE_ID", "SELECT MESSAGE_ID FROM JBM_MSG_REF WHERE MESSAGE_ID = ?");
+ map.put("UPDATE_DELIVERY_COUNT", "UPDATE JBM_MSG_REF SET DELIVERY_COUNT = ? WHERE CHANNEL_ID = ? AND MESSAGE_ID = ?");
//Message
map.put("LOAD_MESSAGES",
- "SELECT MESSAGEID, RELIABLE, EXPIRATION, TIMESTAMP, " +
- "PRIORITY, COREHEADERS, PAYLOAD, TYPE, JMSTYPE, CORRELATIONID, " +
- "CORRELATIONID_BYTES, DESTINATION, REPLYTO, JMSPROPERTIES " +
- "FROM JMS_MESSAGE");
+ "SELECT MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, " +
+ "PRIORITY, HEADERS, PAYLOAD, TYPE " +
+ "FROM JBM_MSG");
map.put("INSERT_MESSAGE",
- "INSERT INTO JMS_MESSAGE (MESSAGEID, RELIABLE, EXPIRATION, " +
- "TIMESTAMP, PRIORITY, COREHEADERS, PAYLOAD, CHANNELCOUNT, TYPE, JMSTYPE, CORRELATIONID, " +
- "CORRELATIONID_BYTES, DESTINATION, REPLYTO, JMSPROPERTIES) " +
- "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" );
- map.put("INC_CHANNELCOUNT", "UPDATE JMS_MESSAGE SET CHANNELCOUNT = CHANNELCOUNT + 1 WHERE MESSAGEID=?");
- map.put("DEC_CHANNELCOUNT", "UPDATE JMS_MESSAGE SET CHANNELCOUNT = CHANNELCOUNT - 1 WHERE MESSAGEID=?");
- map.put("DELETE_MESSAGE", "DELETE FROM JMS_MESSAGE WHERE MESSAGEID=? AND CHANNELCOUNT = 0");
- map.put("MESSAGEID_COLUMN", "MESSAGEID");
- map.put("MESSAGE_EXISTS", "SELECT MESSAGEID FROM JMS_MESSAGE WHERE MESSAGEID = ?");
+ "INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, " +
+ "TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, CHANNEL_COUNT, TYPE) " +
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)" );
+ map.put("INC_CHANNEL_COUNT", "UPDATE JBM_MSG SET CHANNEL_COUNT = CHANNEL_COUNT + 1 WHERE MESSAGE_ID=?");
+ map.put("DEC_CHANNEL_COUNT", "UPDATE JBM_MSG SET CHANNEL_COUNT = CHANNEL_COUNT - 1 WHERE MESSAGE_ID=?");
+ map.put("DELETE_MESSAGE", "DELETE FROM JBM_MSG WHERE MESSAGE_ID=? AND CHANNEL_COUNT = 0");
+ map.put("MESSAGE_ID_COLUMN", "MESSAGE_ID");
+ map.put("MESSAGE_EXISTS", "SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?");
//Transaction
map.put("INSERT_TRANSACTION",
- "INSERT INTO JMS_TRANSACTION (TRANSACTIONID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) " +
+ "INSERT INTO JBM_TX (TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) " +
"VALUES(?, ?, ?, ?)");
- map.put("DELETE_TRANSACTION", "DELETE FROM JMS_TRANSACTION WHERE TRANSACTIONID = ?");
- map.put("SELECT_PREPARED_TRANSACTIONS", "SELECT TRANSACTIONID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JMS_TRANSACTION");
- map.put("SELECT_MESSAGEID_FOR_REF", "SELECT MESSAGEID, CHANNELID FROM JMS_MESSAGE_REFERENCE WHERE TRANSACTIONID = ? AND STATE = '+' ORDER BY ORD");
- map.put("SELECT_MESSAGEID_FOR_ACK", "SELECT MESSAGEID, CHANNELID FROM JMS_MESSAGE_REFERENCE WHERE TRANSACTIONID = ? AND STATE = '-' ORDER BY ORD");
+ map.put("DELETE_TRANSACTION", "DELETE FROM JBM_TX WHERE TRANSACTION_ID = ?");
+ map.put("SELECT_PREPARED_TRANSACTIONS", "SELECT TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JBM_TX");
+ map.put("SELECT_MESSAGE_ID_FOR_REF", "SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '+' ORDER BY ORD");
+ map.put("SELECT_MESSAGE_ID_FOR_ACK", "SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '-' ORDER BY ORD");
//Counter
- map.put("UPDATE_COUNTER", "UPDATE JMS_COUNTER SET NEXT_ID = ? WHERE NAME=?");
- map.put("SELECT_COUNTER", "SELECT NEXT_ID FROM JMS_COUNTER WHERE NAME=?");
- map.put("INSERT_COUNTER", "INSERT INTO JMS_COUNTER (NAME, NEXT_ID) VALUES (?, ?)");
+ map.put("UPDATE_COUNTER", "UPDATE JBM_COUNTER SET NEXT_ID = ? WHERE NAME=?");
+ map.put("SELECT_COUNTER", "SELECT NEXT_ID FROM JBM_COUNTER WHERE NAME=?");
+ map.put("INSERT_COUNTER", "INSERT INTO JBM_COUNTER (NAME, NEXT_ID) VALUES (?, ?)");
//Other
- map.put("SELECT_ALL_CHANNELS", "SELECT DISTINCT(CHANNELID) FROM JMS_MESSAGE_REFERENCE");
+ map.put("SELECT_ALL_CHANNELS", "SELECT DISTINCT(CHANNEL_ID) FROM JBM_MSG_REF");
return map;
}
@@ -3740,8 +3586,8 @@
MessageReference ref1 = (MessageReference)o1;
MessageReference ref2 = (MessageReference)o2;
- long id1 = ref1.getMessageID();
- long id2 = ref2.getMessageID();
+ long id1 = ref1.getMessage().getMessageID();
+ long id2 = ref2.getMessage().getMessageID();
return (id1 < id2 ? -1 : (id1 == id2 ? 0 : 1));
}
Deleted: trunk/src/main/org/jboss/messaging/core/plugin/MessageHolder.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/MessageHolder.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/MessageHolder.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -1,82 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * 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.plugin;
-
-import org.jboss.messaging.core.Message;
-
-/**
- *
- * A MessageHolder.
- *
- * @author <a href="tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision$</tt>
- *
- * $Id$
- */
-class MessageHolder
-{
- /*
- * The number of channels *currently in memory* that hold a reference to the message
- * We need this so we know when to evict the message from the store (when it reaches zero)
- * Note that we also maintain a persistent channel count on the message itself.
- * This is the total number of channels whether loaded in memory or not that hold a reference to the
- * message and is needed to know when it is safe to remove the message from the db
- */
- private int inMemoryChannelCount;
-
- private Message msg;
-
- private SimpleMessageStore ms;
-
- public MessageHolder(Message msg, SimpleMessageStore ms)
- {
- this.msg = msg;
- this.ms = ms;
- }
-
- public synchronized void incrementInMemoryChannelCount()
- {
- inMemoryChannelCount++;
- }
-
- public synchronized void decrementInMemoryChannelCount()
- {
- inMemoryChannelCount--;
-
- if (inMemoryChannelCount == 0)
- {
- // can remove the message from the message store
- ms.forgetMessage(msg.getMessageID());
- }
- }
-
- public synchronized int getInMemoryChannelCount()
- {
- return inMemoryChannelCount;
- }
-
- public Message getMessage()
- {
- return msg;
- }
-}
Deleted: trunk/src/main/org/jboss/messaging/core/plugin/SimpleMessageReference.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/SimpleMessageReference.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/SimpleMessageReference.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -1,196 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * 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.plugin;
-
-import java.util.Map;
-
-import org.jboss.logging.Logger;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
-import org.jboss.messaging.core.message.RoutableSupport;
-import org.jboss.messaging.core.plugin.contract.MessageStore;
-
-/**
- * A Simple MessageReference implementation.
- *
- * Note that we do not need WeakReferences to message/holder objects since with the new
- * lazy loading schema we guarantee that if a message ref is in memory - it's corresponding message is
- * in memory too
- *
- * @author <a href="mailto:tim.fox at jboss.com>Tim Fox</a>
- * @version <tt>1.3</tt>
- *
- * SimpleMessageReference.java,v 1.3 2006/02/23 17:45:57 timfox Exp
- */
-public class SimpleMessageReference extends RoutableSupport implements MessageReference
-{
- private static final Logger log = Logger.getLogger(SimpleMessageReference.class);
-
- // Attributes ----------------------------------------------------
-
- private boolean trace = log.isTraceEnabled();
-
- protected transient MessageStore ms;
-
- private MessageHolder holder;
-
- private long pagingOrder = -1;
-
- private boolean released;
-
- // Constructors --------------------------------------------------
-
- /**
- * Required by externalization.
- */
- public SimpleMessageReference()
- {
- if (trace) { log.trace("Creating using default constructor"); }
- }
-
- /**
- * Creates a reference based on a given message.
- */
- public SimpleMessageReference(MessageHolder holder, MessageStore ms)
- {
- this(holder.getMessage().getMessageID(), holder.getMessage().isReliable(),
- holder.getMessage().getExpiration(), holder.getMessage().getTimestamp(),
- holder.getMessage().getHeaders(), holder.getMessage().getDeliveryCount(),
- holder.getMessage().getPriority(), holder.getMessage().getScheduledDeliveryTime(), ms);
-
- this.holder = holder;
- }
-
- /*
- * Creates a WeakMessageReference as a shallow copy of another
- * TODO - By using a proxy pattern similarly to how the MessageProxies are done
- * we can prevent unnecessary copying of MessageReference data since most of it is read only :)
- */
- public SimpleMessageReference(SimpleMessageReference other)
- {
- this(other.getMessageID(), other.isReliable(), other.getExpiration(),
- other.getTimestamp(), other.getHeaders(), other.getDeliveryCount(),
- other.getPriority(), other.getScheduledDeliveryTime(), other.ms);
-
- this.headers = other.headers;
- this.holder = other.holder;
- }
-
- protected SimpleMessageReference(long messageID, boolean reliable, long expiration,
- long timestamp, Map headers, int deliveryCount,
- byte priority, long scheduledDeliveryTime, MessageStore ms)
- {
- super(messageID, reliable, expiration, timestamp, priority, 0, scheduledDeliveryTime, headers);
- this.deliveryCount = deliveryCount;
- this.ms = ms;
- }
-
- // Message implementation ----------------------------------------
-
- public boolean isReference()
- {
- return true;
- }
-
- // MessageReference implementation -------------------------------
-
- public Message getMessage()
- {
- return holder.getMessage();
- }
-
- public void releaseMemoryReference()
- {
- if (released)
- {
- //Do nothing -
- //It's possible releaseMemoryReference can be called more than once on a reference since it's
- //allowable that acknowledge is called more than once for a delivery and each call will call this
- //method - so we don't want to throw an exception
- return;
- }
- holder.decrementInMemoryChannelCount();
-
- released = true;
- }
-
- public int getInMemoryChannelCount()
- {
- return holder.getInMemoryChannelCount();
- }
-
- public long getPagingOrder()
- {
- return pagingOrder;
- }
-
- public void setPagingOrder(long order)
- {
- this.pagingOrder = order;
- }
-
- public MessageReference copy()
- {
- SimpleMessageReference ref = new SimpleMessageReference(this);
-
- ref.holder.incrementInMemoryChannelCount();
-
- return ref;
- }
-
- // Public --------------------------------------------------------
-
- public boolean equals(Object o)
- {
- if (this == o)
- {
- return true;
- }
-
- if (!(o instanceof SimpleMessageReference))
- {
- return false;
- }
-
- SimpleMessageReference that = (SimpleMessageReference)o;
-
- return this.messageID == that.messageID;
- }
-
- public int hashCode()
- {
- return (int)((this.messageID >>> 32) ^ this.messageID);
- }
-
- public String toString()
- {
- return "Reference[" + messageID + "]:" + (isReliable() ? "RELIABLE" : "NON-RELIABLE");
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-}
\ No newline at end of file
Deleted: trunk/src/main/org/jboss/messaging/core/plugin/SimpleMessageStore.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/SimpleMessageStore.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/SimpleMessageStore.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -1,175 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * 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.plugin;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.jboss.logging.Logger;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
-import org.jboss.messaging.core.plugin.contract.MessageStore;
-
-/**
- * A MessageStore implementation.
- *
- * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision$</tt>
- *
- * $Id$
- */
-public class SimpleMessageStore implements MessageStore
-{
- // Constants -----------------------------------------------------
-
- private static final Logger log = Logger.getLogger(SimpleMessageStore.class);
-
- // Static --------------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- private boolean trace = log.isTraceEnabled();
-
- // <messageID - MessageHolder>
- private Map messages;
-
- // Constructors --------------------------------------------------
-
- public SimpleMessageStore()
- {
- messages = new HashMap();
-
- log.debug(this + " initialized");
- }
-
- // MessageStore implementation ---------------------------
-
- public Object getInstance()
- {
- return this;
- }
-
- // TODO If we can assume that the message is not known to the store before
- // (true when sending messages)
- // Then we can avoid synchronizing on this and use a ConcurrentHashmap
- // Which will give us much better concurrency for many threads
- public MessageReference reference(Message m)
- {
- MessageHolder holder;
-
- synchronized (this)
- {
- holder = (MessageHolder)messages.get(new Long(m.getMessageID()));
-
- if (holder == null)
- {
- holder = addMessage(m);
- }
- }
- holder.incrementInMemoryChannelCount();
-
- MessageReference ref = new SimpleMessageReference(holder, this);
-
- if (trace) { log.trace(this + " generated " + ref + " for " + m); }
-
- return ref;
- }
-
- public MessageReference reference(long messageID)
- {
- MessageHolder holder;
-
- synchronized (this)
- {
- holder = (MessageHolder)messages.get(new Long(messageID));
- }
-
- if (holder == null)
- {
- return null;
- }
-
- MessageReference ref = new SimpleMessageReference(holder, this);
-
- if (trace) { log.trace(this + " generates " + ref + " for " + messageID); }
-
- holder.incrementInMemoryChannelCount();
-
- return ref;
- }
-
-
- public boolean forgetMessage(long messageID)
- {
- return messages.remove(new Long(messageID)) != null;
- }
-
- public int size()
- {
- return messages.size();
- }
-
- public List messageIds()
- {
- return new ArrayList(messages.keySet());
- }
-
- // MessagingComponent implementation --------------------------------
-
- public void start() throws Exception
- {
- //NOOP
- }
-
- public void stop() throws Exception
- {
- //NOOP
- }
-
- // Public --------------------------------------------------------
-
- public String toString()
- {
- return "MemoryStore[" + System.identityHashCode(this) + "]";
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- protected MessageHolder addMessage(Message m)
- {
- MessageHolder holder = new MessageHolder(m, this);
-
- messages.put(new Long(m.getMessageID()), holder);
-
- return holder;
- }
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-
-}
Modified: trunk/src/main/org/jboss/messaging/core/plugin/contract/Condition.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/contract/Condition.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/contract/Condition.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -21,7 +21,7 @@
*/
package org.jboss.messaging.core.plugin.contract;
-import org.jboss.messaging.core.MessageReference;
+import org.jboss.messaging.core.message.MessageReference;
/**
* A Condition
Modified: trunk/src/main/org/jboss/messaging/core/plugin/contract/MessageStore.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/contract/MessageStore.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/contract/MessageStore.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -6,8 +6,8 @@
*/
package org.jboss.messaging.core.plugin.contract;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
/**
* An interface to a referencing/dereferencing message store.
Modified: trunk/src/main/org/jboss/messaging/core/plugin/contract/PersistenceManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/contract/PersistenceManager.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/contract/PersistenceManager.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -22,10 +22,9 @@
package org.jboss.messaging.core.plugin.contract;
import java.util.List;
-import java.util.Map;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.tx.Transaction;
/**
@@ -65,7 +64,7 @@
void updatePageOrder(long channelID, List references) throws Exception;
- void updateReliableReferencesNotPagedInRange(long channelID, long orderStart, long orderEnd, long num) throws Exception;
+ void updateReferencesNotPagedInRange(long channelID, long orderStart, long orderEnd, long num) throws Exception;
List getPagedReferenceInfos(long channelID, long orderStart, long number) throws Exception;
@@ -118,18 +117,14 @@
private int deliveryCount;
- private boolean reliable;
-
private long scheduledDelivery;
- public ReferenceInfo(long msgId, int deliveryCount, boolean reliable, long scheduledDelivery)
+ public ReferenceInfo(long msgId, int deliveryCount, long scheduledDelivery)
{
this.messageId = msgId;
this.deliveryCount = deliveryCount;
- this.reliable = reliable;
-
this.scheduledDelivery = scheduledDelivery;
}
@@ -143,11 +138,6 @@
return deliveryCount;
}
- public boolean isReliable()
- {
- return reliable;
- }
-
public long getScheduledDelivery()
{
return scheduledDelivery;
Modified: trunk/src/main/org/jboss/messaging/core/plugin/contract/PostOffice.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/contract/PostOffice.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/contract/PostOffice.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,8 +23,8 @@
import java.util.Collection;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Queue;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.postoffice.Binding;
import org.jboss.messaging.core.tx.Transaction;
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/DefaultPostOffice.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/DefaultPostOffice.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/DefaultPostOffice.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -44,9 +44,10 @@
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.Filter;
import org.jboss.messaging.core.FilterFactory;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Queue;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.MessageReference;
+import org.jboss.messaging.core.message.SimpleMessageReference;
import org.jboss.messaging.core.plugin.JDBCSupport;
import org.jboss.messaging.core.plugin.contract.ClusteredPostOffice;
import org.jboss.messaging.core.plugin.contract.Condition;
@@ -301,7 +302,7 @@
{
boolean startInternalTx = false;
- if (tx == null && ref.isReliable())
+ if (tx == null && ref.getMessage().isReliable())
{
if (bd.getDurableCount() > 1)
{
@@ -435,7 +436,7 @@
out.println("<tr><td>Reference#</td><td>Message</td></tr>");
for (Iterator i = undelivered.iterator();i.hasNext();)
{
- MessageReference reference = (MessageReference)i.next();
+ SimpleMessageReference reference = (SimpleMessageReference)i.next();
out.println("<tr><td>" + reference.getInMemoryChannelCount() +
"</td><td>" + reference.getMessage() +"</td></tr>");
}
@@ -878,7 +879,7 @@
Map map = new LinkedHashMap();
map.put("INSERT_BINDING",
- "INSERT INTO JMS_POSTOFFICE (" +
+ "INSERT INTO JBM_POSTOFFICE (" +
"POSTOFFICE_NAME, " +
"NODE_ID, " +
"QUEUE_NAME, " +
@@ -890,7 +891,7 @@
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
map.put("DELETE_BINDING",
- "DELETE FROM JMS_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?");
+ "DELETE FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?");
map.put("LOAD_BINDINGS",
"SELECT " +
@@ -901,7 +902,7 @@
"CHANNEL_ID, " +
"IS_FAILED_OVER, " +
"FAILED_NODE_ID " +
- "FROM JMS_POSTOFFICE WHERE POSTOFFICE_NAME = ?");
+ "FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME = ?");
return map;
}
@@ -910,7 +911,7 @@
{
Map map = new LinkedHashMap();
map.put("CREATE_POSTOFFICE_TABLE",
- "CREATE TABLE JMS_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255), NODE_ID INTEGER," +
+ "CREATE TABLE JBM_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255), NODE_ID INTEGER," +
"QUEUE_NAME VARCHAR(1023), CONDITION VARCHAR(1023), " +
"SELECTOR VARCHAR(1023), CHANNEL_ID BIGINT, IS_FAILED_OVER CHAR(1), " +
"FAILED_NODE_ID INTEGER)");
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/CastMessagesCallback.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/CastMessagesCallback.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/CastMessagesCallback.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -26,7 +26,7 @@
import java.util.Map;
import org.jboss.logging.Logger;
-import org.jboss.messaging.core.Message;
+import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.plugin.contract.Condition;
import org.jboss.messaging.core.tx.TransactionException;
import org.jboss.messaging.core.tx.TxCallback;
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -55,8 +55,8 @@
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.Filter;
import org.jboss.messaging.core.FilterFactory;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Queue;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.contract.ClusteredPostOffice;
import org.jboss.messaging.core.plugin.contract.Condition;
import org.jboss.messaging.core.plugin.contract.ConditionFactory;
@@ -631,7 +631,7 @@
}
}
- public void routeFromCluster(org.jboss.messaging.core.Message message,
+ public void routeFromCluster(org.jboss.messaging.core.message.Message message,
String routingKeyText,
Map queueNameNodeIdMap) throws Exception
{
@@ -938,7 +938,7 @@
}
public void handleMessagePullResult(int remoteNodeId, long holdingTxId,
- String queueName, org.jboss.messaging.core.Message message) throws Throwable
+ String queueName, org.jboss.messaging.core.message.Message message) throws Throwable
{
if (trace) { log.trace(this.currentNodeId + " handling pull result " + message + " for " + queueName); }
@@ -1092,7 +1092,7 @@
{
if (trace) { log.trace(this + " found " + cb); }
- if (tx == null && ref.isReliable())
+ if (tx == null && ref.getMessage().isReliable())
{
if (!(cb.getDurableCount() == 0 ||
(cb.getDurableCount() == 1 && cb.getLocalDurableCount() == 1)))
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultRouter.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultRouter.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultRouter.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -28,9 +28,9 @@
import org.jboss.logging.Logger;
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Receiver;
-import org.jboss.messaging.core.Routable;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.tx.Transaction;
/**
@@ -91,7 +91,7 @@
// If the message arrived over a failed-over connection, try to send the message to its
// corresponding "failed-over" queue.
- Integer failedNodeID = (Integer)ref.getHeader(Routable.FAILED_NODE_ID);
+ Integer failedNodeID = (Integer)ref.getMessage().getHeader(Message.FAILED_NODE_ID);
if (failedNodeID != null)
{
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/LocalClusteredQueue.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/LocalClusteredQueue.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/LocalClusteredQueue.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -25,6 +25,8 @@
import org.jboss.logging.Logger;
import org.jboss.messaging.core.*;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
import org.jboss.messaging.core.plugin.contract.PostOffice;
@@ -146,7 +148,7 @@
{
if (trace) { log.trace(this + " handling " + ref + " from cluster"); }
- if (filter != null && !filter.accept(ref))
+ if (filter != null && !filter.accept(ref.getMessage()))
{
Delivery del = new SimpleDelivery(this, ref, true, false);
@@ -393,7 +395,7 @@
name,
del.getReference().getMessage());
- if (!del.getReference().isReliable())
+ if (!del.getReference().getMessage().isReliable())
{
//We can ack it now
del.acknowledge(null);
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/MessageHolder.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/MessageHolder.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/MessageHolder.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -25,7 +25,7 @@
import java.io.DataOutputStream;
import java.util.Map;
-import org.jboss.messaging.core.Message;
+import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.message.MessageFactory;
import org.jboss.messaging.util.StreamUtils;
import org.jboss.messaging.util.Streamable;
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/MessageRequest.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/MessageRequest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/MessageRequest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -25,7 +25,7 @@
import java.io.DataOutputStream;
import java.util.Map;
-import org.jboss.messaging.core.Message;
+import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.message.MessageFactory;
import org.jboss.messaging.util.StreamUtils;
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PostOfficeInternal.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PostOfficeInternal.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PostOfficeInternal.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -25,7 +25,7 @@
import java.util.List;
import java.util.Map;
-import org.jboss.messaging.core.Message;
+import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.plugin.contract.ClusteredPostOffice;
/**
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PullMessageResultRequest.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PullMessageResultRequest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PullMessageResultRequest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -25,7 +25,7 @@
import java.io.DataOutputStream;
import org.jboss.logging.Logger;
-import org.jboss.messaging.core.Message;
+import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.message.MessageFactory;
/**
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PullMessagesRequest.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PullMessagesRequest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PullMessagesRequest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -119,7 +119,7 @@
//We store the channelID of one of the channels that the message was persisted in
//it doesn't matter which one since they were all inserted in the same tx
- if (office.referenceExistsInStorage(checkChannelID, reliableDelivery.getReference().getMessageID()))
+ if (office.referenceExistsInStorage(checkChannelID, reliableDelivery.getReference().getMessage().getMessageID()))
{
//We should rollback
return false;
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/RemoteQueueStub.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/RemoteQueueStub.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/RemoteQueueStub.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -28,9 +28,9 @@
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
import org.jboss.messaging.core.Filter;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Receiver;
import org.jboss.messaging.core.SimpleDelivery;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
import org.jboss.messaging.core.tx.Transaction;
@@ -86,13 +86,13 @@
{
if (trace) { log.trace(this + " handling " + reference); }
- if (filter != null && !filter.accept(reference))
+ if (filter != null && !filter.accept(reference.getMessage()))
{
if (trace) { log.trace(this + " rejecting " + reference + " because it doesn't match filter"); }
return new SimpleDelivery(this, reference, false, false);
}
- if (recoverable && reference.isReliable())
+ if (recoverable && reference.getMessage().isReliable())
{
try
{
@@ -144,7 +144,7 @@
public void acknowledge(Delivery d, Transaction tx) throws Throwable
{
- if (recoverable && d.getReference().isReliable())
+ if (recoverable && d.getReference().getMessage().isReliable())
{
pm.removeReference(this.channelID, d.getReference(), tx);
}
Modified: trunk/src/main/org/jboss/messaging/core/tx/TransactionRepository.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/tx/TransactionRepository.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/core/tx/TransactionRepository.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -30,10 +30,10 @@
import org.jboss.logging.Logger;
import org.jboss.messaging.core.Delivery;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Queue;
import org.jboss.messaging.core.SimpleDelivery;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.IDManager;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.plugin.contract.MessagingComponent;
@@ -315,7 +315,7 @@
Queue queue = binding.getQueue();
- if (trace) log.trace("Destination for message[ID=" + ref.getMessageID() + "] is: " + queue);
+ if (trace) log.trace("Destination for message[ID=" + ref.getMessage().getMessageID() + "] is: " + queue);
queue.handle(null, ref, tx);
}
@@ -367,7 +367,7 @@
Queue queue = binding.getQueue();
- if (trace) log.trace("Destination for message[ID=" + ref.getMessageID() + "] is: " + queue);
+ if (trace) log.trace("Destination for message[ID=" + ref.getMessage().getMessageID() + "] is: " + queue);
//Create a new delivery - note that it must have a delivery observer otherwise acknowledge will fail
Delivery del = new SimpleDelivery(queue, ref);
Modified: trunk/src/main/org/jboss/messaging/util/StreamUtils.java
===================================================================
--- trunk/src/main/org/jboss/messaging/util/StreamUtils.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/src/main/org/jboss/messaging/util/StreamUtils.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -36,11 +36,10 @@
import java.util.Map;
import java.util.Set;
+import org.jboss.jms.destination.JBossDestination;
import org.jboss.serial.io.JBossObjectInputStream;
import org.jboss.serial.io.JBossObjectOutputStream;
-
-
/**
* A StreamUtils
*
@@ -82,6 +81,8 @@
public static final byte SERIALIZABLE = 12;
+ public static final byte DESTINATION = 13;
+
private static boolean useJBossSerialization = false;
public static void setUseJBossSerialization(boolean use)
@@ -114,6 +115,11 @@
value = in.readUTF();
}
break;
+ case DESTINATION:
+ {
+ value = JBossDestination.readDestination(in);
+ break;
+ }
case MAP:
{
value = readMap(in, false);
@@ -164,7 +170,6 @@
}
value = (Serializable)ois.readObject();
- ois.close();
break;
}
default :
@@ -197,6 +202,11 @@
out.writeUTF((String)object);
}
}
+ else if (object instanceof JBossDestination)
+ {
+ out.writeByte(DESTINATION);
+ JBossDestination.writeDestination(out, (JBossDestination)object);
+ }
else if (containerTypes && object instanceof Map)
{
out.writeByte(MAP);
@@ -264,7 +274,7 @@
}
oos.writeObject(object);
- oos.close();
+ oos.flush();
}
else
{
@@ -310,21 +320,11 @@
}
else
{
- if (!(me.getKey() instanceof Serializable))
- {
- throw new IOException("Key in map must be Serializable: " + me.getKey());
- }
- writeObject(out, (Serializable)me.getKey(), false, false);
+ writeObject(out, me.getKey(), false, false);
}
-
- Object value = me.getValue();
- if (value != null && !(value instanceof Serializable))
- {
- throw new IOException("Value in map must be Serializable: " + value);
- }
-
+
// write the value
- writeObject(out, (Serializable)value, false, false);
+ writeObject(out, me.getValue(), false, false);
}
}
Modified: trunk/tests/build.xml
===================================================================
--- trunk/tests/build.xml 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/build.xml 2007-02-08 10:50:26 UTC (rev 2202)
@@ -366,10 +366,13 @@
default remoting configuration (socket)
-->
<antcall target="remote-tests"/>
+ <!--
<antcall target="remote-tests">
<param name="test.remoting" value="http"/>
</antcall>
+ -->
<antcall target="clustering-tests"/>
+
</target>
<target name="http-tests" depends="tests-jar, prepare-testdirs, clear-test-logs">
@@ -635,6 +638,9 @@
<fileset dir="${build.tests.classes}">
<include name="**/jms/**/*Test.class"/>
<include name="**/thirdparty/**/*Test.class"/>
+
+ <exclude name="**/jms/bridge/**/*Test.class"/>
+
<exclude name="**/messaging/graveyard/**/*Test.class"/>
<exclude name="**/jms/WireFormatTest.class"/>
<exclude name="**/jms/stress/**"/>
Modified: trunk/tests/etc/log4j.xml
===================================================================
--- trunk/tests/etc/log4j.xml 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/etc/log4j.xml 2007-02-08 10:50:26 UTC (rev 2202)
@@ -47,8 +47,8 @@
</category>
<category name="org.jboss.remoting">
- <!-- <priority value="TRACE" class="org.jboss.logging.XLevel"/> -->
- <priority value="DEBUG"/>
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ <!-- <priority value="DEBUG"/> -->
</category>
<category name="org.jboss">
@@ -82,7 +82,8 @@
</category>
<category name="org.jboss.jms.server.remoting.JMSWireFormat">
- <priority value="DEBUG"/>
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ <!-- <priority value="DEBUG"/> -->
</category>
<root>
Modified: trunk/tests/src/org/jboss/test/messaging/MessagingTestCase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/MessagingTestCase.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/MessagingTestCase.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -181,7 +181,7 @@
try
{
conn = ds.getConnection();
- String sql = "SELECT * FROM JMS_POSTOFFICE";
+ String sql = "SELECT * FROM JBM_POSTOFFICE";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
@@ -232,7 +232,7 @@
try
{
conn = ds.getConnection();
- String sql = "SELECT * FROM JMS_MESSAGE_REFERENCE";
+ String sql = "SELECT * FROM JBM_MSG_REF";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
@@ -245,7 +245,7 @@
ps.close();
- ps = conn.prepareStatement("SELECT * FROM JMS_MESSAGE");
+ ps = conn.prepareStatement("SELECT * FROM JBM_MSG");
rs = ps.executeQuery();
Modified: trunk/tests/src/org/jboss/test/messaging/core/BrokenReceiver.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/BrokenReceiver.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/BrokenReceiver.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -27,9 +27,9 @@
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Receiver;
import org.jboss.messaging.core.SimpleDelivery;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.tx.Transaction;
Modified: trunk/tests/src/org/jboss/test/messaging/core/SimpleChannel.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/SimpleChannel.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/SimpleChannel.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -16,8 +16,8 @@
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
import org.jboss.messaging.core.Filter;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Receiver;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.messaging.util.NotYetImplementedException;
Modified: trunk/tests/src/org/jboss/test/messaging/core/SimpleCondition.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/SimpleCondition.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/SimpleCondition.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -21,7 +21,7 @@
*/
package org.jboss.test.messaging.core;
-import org.jboss.messaging.core.MessageReference;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.contract.Condition;
/**
Modified: trunk/tests/src/org/jboss/test/messaging/core/SimpleDeliveryTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/SimpleDeliveryTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/SimpleDeliveryTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -24,9 +24,9 @@
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
import org.jboss.messaging.core.SimpleDelivery;
+import org.jboss.messaging.core.message.SimpleMessageStore;
import org.jboss.messaging.core.plugin.IDManager;
import org.jboss.messaging.core.plugin.JDBCPersistenceManager;
-import org.jboss.messaging.core.plugin.SimpleMessageStore;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.messaging.core.tx.TransactionRepository;
Modified: trunk/tests/src/org/jboss/test/messaging/core/SimpleFilter.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/SimpleFilter.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/SimpleFilter.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -22,7 +22,7 @@
package org.jboss.test.messaging.core;
import org.jboss.messaging.core.Filter;
-import org.jboss.messaging.core.Routable;
+import org.jboss.messaging.core.message.Message;
/**
* A SimpleFilter
@@ -42,9 +42,9 @@
this.idMatch = idMatch;
}
- public boolean accept(Routable routable)
+ public boolean accept(Message message)
{
- return routable.getMessageID() == idMatch;
+ return message.getMessageID() == idMatch;
}
public String getFilterString()
Modified: trunk/tests/src/org/jboss/test/messaging/core/SimpleReceiver.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/SimpleReceiver.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/SimpleReceiver.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -31,11 +31,10 @@
import org.jboss.messaging.core.Channel;
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Receiver;
-import org.jboss.messaging.core.Routable;
import org.jboss.messaging.core.SimpleDelivery;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.messaging.core.tx.TxCallback;
import org.jboss.util.id.GUID;
@@ -296,7 +295,7 @@
}
}
- public void acknowledge(Routable r, Transaction tx) throws Throwable
+ public void acknowledge(Message r, Transaction tx) throws Throwable
{
log.debug(this + " acknowledging " + r);
@@ -336,7 +335,7 @@
}
}
- public void cancel(Routable r) throws Throwable
+ public void cancel(Message r) throws Throwable
{
Object[] touple = null;
Delivery d = null;
Modified: trunk/tests/src/org/jboss/test/messaging/core/local/RoundRobinPointToPointRouterTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/local/RoundRobinPointToPointRouterTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/local/RoundRobinPointToPointRouterTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,14 +23,18 @@
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Receiver;
import org.jboss.messaging.core.Router;
import org.jboss.messaging.core.SimpleDelivery;
import org.jboss.messaging.core.local.RoundRobinPointToPointRouter;
-import org.jboss.messaging.core.plugin.SimpleMessageReference;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
+import org.jboss.messaging.core.message.SimpleMessageReference;
+import org.jboss.messaging.core.message.SimpleMessageStore;
+import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.test.messaging.MessagingTestCase;
+import org.jboss.test.messaging.util.CoreMessageFactory;
/**
* @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -45,6 +49,8 @@
// Static --------------------------------------------------------
// Attributes ----------------------------------------------------
+
+ protected MessageStore ms;
// Constructors --------------------------------------------------
@@ -58,11 +64,17 @@
public void setUp() throws Exception
{
super.setUp();
+
+ ms = new SimpleMessageStore();
+
+ ms.start();
}
public void tearDown() throws Exception
{
super.tearDown();
+
+ ms.stop();
}
// Public --------------------------------------------------------
@@ -82,8 +94,10 @@
router.add(receivers[i]);
}
- MessageReference ref = new SimpleMessageReference();
+ Message msg = CoreMessageFactory.createCoreMessage(123, true, null);
+ MessageReference ref = ms.reference(msg);
+
Delivery del = router.handle(null, ref, null);
assertNotNull(del);
checkReceiverGotRef(receivers, 0);
@@ -173,8 +187,10 @@
receivers[9].closed = true;
- MessageReference ref = new SimpleMessageReference();
+ Message msg = CoreMessageFactory.createCoreMessage(123, true, null);
+ MessageReference ref = ms.reference(msg);
+
Delivery del = router.handle(null, ref, null);
assertNotNull(del);
checkReceiverGotRef(receivers, 0);
@@ -246,8 +262,10 @@
}
- MessageReference ref = new SimpleMessageReference();
+ Message msg = CoreMessageFactory.createCoreMessage(123, true, null);
+ MessageReference ref = ms.reference(msg);
+
Delivery del = router.handle(null, ref, null);
assertNull(del);
@@ -283,8 +301,10 @@
receivers[9].selectorMatches = false;
- MessageReference ref = new SimpleMessageReference();
+ Message msg = CoreMessageFactory.createCoreMessage(123, true, null);
+ MessageReference ref = ms.reference(msg);
+
Delivery del = router.handle(null, ref, null);
assertNotNull(del);
checkReceiverGotRef(receivers, 0);
@@ -355,8 +375,10 @@
}
- MessageReference ref = new SimpleMessageReference();
+ Message msg = CoreMessageFactory.createCoreMessage(123, true, null);
+ MessageReference ref = ms.reference(msg);
+
Delivery del = router.handle(null, ref, null);
assertNotNull(del);
assertFalse(del.isSelectorAccepted());
@@ -375,8 +397,10 @@
{
Router router = new RoundRobinPointToPointRouter();
- MessageReference ref = new SimpleMessageReference();
+ Message msg = CoreMessageFactory.createCoreMessage(123, true, null);
+ MessageReference ref = ms.reference(msg);
+
Delivery del = router.handle(null, ref, null);
assertNull(del);
@@ -403,7 +427,12 @@
public void run()
{
// sends the message to the router on a separate thread
- router.handle(null, new SimpleMessageReference(), null);
+
+ Message msg = CoreMessageFactory.createCoreMessage(123, true, null);
+
+ MessageReference ref = ms.reference(msg);
+
+ router.handle(null, ref, null);
}
}, "Message sending thread");
Modified: trunk/tests/src/org/jboss/test/messaging/core/local/base/PagingFilteredQueueTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/local/base/PagingFilteredQueueTestBase.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/local/base/PagingFilteredQueueTestBase.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -28,14 +28,14 @@
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.Filter;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Receiver;
import org.jboss.messaging.core.local.PagingFilteredQueue;
import org.jboss.messaging.core.message.CoreMessage;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
+import org.jboss.messaging.core.message.SimpleMessageStore;
import org.jboss.messaging.core.plugin.IDManager;
import org.jboss.messaging.core.plugin.JDBCPersistenceManager;
-import org.jboss.messaging.core.plugin.SimpleMessageStore;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
import org.jboss.messaging.core.tx.Transaction;
@@ -159,8 +159,7 @@
Object o = j.next();
Message m = (Message)o;
-
- if (a[i].getMessageID() == m.getMessageID() &&
+ if (a[i].getMessage().getMessageID() == m.getMessageID() &&
m.getPayload().equals(a[i].getMessage().getPayload()))
{
j.remove();
@@ -187,7 +186,7 @@
Delivery d = (Delivery)j.next();
MessageReference ref = d.getReference();
- if (a[i].getReference().getMessageID() == ref.getMessageID())
+ if (a[i].getReference().getMessage().getMessageID() == ref.getMessage().getMessageID())
{
j.remove();
break;
@@ -541,6 +540,8 @@
MessageReference ref = createReference(0, true, "payload");
SimpleDeliveryObserver observer = new SimpleDeliveryObserver();
+
+ log.info("ref is reliable:" + ref.getMessage().isReliable());
// non-transacted send, reliable message, one message
Delivery delivery = queue.handle(observer, ref, null);
Modified: trunk/tests/src/org/jboss/test/messaging/core/message/CoreMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/message/CoreMessageTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/message/CoreMessageTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -21,7 +21,7 @@
*/
package org.jboss.test.messaging.core.message;
-import org.jboss.test.messaging.core.message.base.MessageSupportTestBase;
+import org.jboss.test.messaging.core.message.base.RoutableSupportTestBase;
import org.jboss.test.messaging.util.CoreMessageFactory;
@@ -31,7 +31,7 @@
*
* $Id$
*/
-public class CoreMessageTest extends MessageSupportTestBase
+public class CoreMessageTest extends RoutableSupportTestBase
{
// Constants -----------------------------------------------------
@@ -54,7 +54,7 @@
protected void setUp() throws Exception
{
- rs = CoreMessageFactory.createCoreMessage(0);
+ ms = CoreMessageFactory.createCoreMessage(0);
super.setUp();
@@ -64,7 +64,7 @@
protected void tearDown() throws Exception
{
super.tearDown();
- rs = null;
+ ms = null;
}
// Private -------------------------------------------------------
Modified: trunk/tests/src/org/jboss/test/messaging/core/message/JBossMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/message/JBossMessageTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/message/JBossMessageTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -24,7 +24,7 @@
import org.jboss.jms.message.JBossMessage;
import org.jboss.messaging.core.message.MessageFactory;
import org.jboss.messaging.core.message.MessageSupport;
-import org.jboss.test.messaging.core.message.base.MessageSupportTestBase;
+import org.jboss.test.messaging.core.message.base.RoutableSupportTestBase;
/**
@@ -33,7 +33,7 @@
*
* $Id$
*/
-public class JBossMessageTest extends MessageSupportTestBase
+public class JBossMessageTest extends RoutableSupportTestBase
{
// Constants -----------------------------------------------------
@@ -56,9 +56,8 @@
protected void setUp() throws Exception
{
- rs = (MessageSupport)MessageFactory.createMessage(0, false, 0, 0, (byte)4, null,
- null, JBossMessage.TYPE,
- null, null, null, null, null, 0, null);
+ ms = (MessageSupport)MessageFactory.createMessage(0, false, 0, 0, (byte)4, null,
+ null, JBossMessage.TYPE);
super.setUp();
log.debug("setup done");
}
@@ -66,7 +65,7 @@
protected void tearDown() throws Exception
{
super.tearDown();
- rs = null;
+ ms = null;
}
// Private -------------------------------------------------------
Deleted: trunk/tests/src/org/jboss/test/messaging/core/message/SimpleMessageReferenceTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/message/SimpleMessageReferenceTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/message/SimpleMessageReferenceTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -1,93 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* 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.test.messaging.core.message;
-
-import java.util.Set;
-
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.message.RoutableSupport;
-import org.jboss.messaging.core.plugin.SimpleMessageReference;
-import org.jboss.messaging.core.plugin.SimpleMessageStore;
-import org.jboss.messaging.core.plugin.contract.MessageStore;
-import org.jboss.test.messaging.core.message.base.RoutableSupportTestBase;
-import org.jboss.test.messaging.util.CoreMessageFactory;
-
-/**
- * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
- * @version <tt>$Revision$</tt>
- *
- * $Id$
- */
-public class SimpleMessageReferenceTest extends RoutableSupportTestBase
-{
- // Constants -----------------------------------------------------
-
- // Static --------------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- public SimpleMessageReferenceTest(String name)
- {
- super(name);
- }
-
- // Public --------------------------------------------------------
-
- public void testHeader()
- {
- SimpleMessageReference ref = (SimpleMessageReference)rs;
- Set headerNames = ref.getHeaderNames();
- assertTrue(headerNames.contains("headerName01"));
- assertEquals("headerValue01", ref.getHeader("headerName01"));
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- protected void setUp() throws Exception
- {
- Message m = CoreMessageFactory.createCoreMessage(0);
- m.putHeader("headerName01", "headerValue01");
-
- MessageStore ms = new SimpleMessageStore();
-
- rs = (RoutableSupport)ms.reference(m);
-
- super.setUp();
-
- log.debug("setup done");
- }
-
- protected void tearDown() throws Exception
- {
- super.tearDown();
- rs = null;
- }
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-
-}
Deleted: trunk/tests/src/org/jboss/test/messaging/core/message/base/MessageSupportTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/message/base/MessageSupportTestBase.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/message/base/MessageSupportTestBase.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -1,65 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* 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.test.messaging.core.message.base;
-
-/**
- * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
- * @version <tt>$Revision$</tt>
- *
- * $Id$
- */
-public class MessageSupportTestBase extends RoutableSupportTestBase
-{
- // Constants -----------------------------------------------------
-
- // Static --------------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- public MessageSupportTestBase(String name)
- {
- super(name);
- }
-
- // Public --------------------------------------------------------
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- protected void setUp() throws Exception
- {
- super.setUp();
- }
-
- protected void tearDown() throws Exception
- {
- super.tearDown();
- }
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-
-}
Modified: trunk/tests/src/org/jboss/test/messaging/core/message/base/RoutableSupportTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/message/base/RoutableSupportTestBase.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/message/base/RoutableSupportTestBase.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -21,8 +21,8 @@
*/
package org.jboss.test.messaging.core.message.base;
+import org.jboss.messaging.core.message.MessageSupport;
import org.jboss.test.messaging.MessagingTestCase;
-import org.jboss.messaging.core.message.RoutableSupport;
/**
@@ -39,7 +39,7 @@
// Attributes ----------------------------------------------------
- protected RoutableSupport rs;
+ protected MessageSupport ms;
// Constructors --------------------------------------------------
@@ -52,11 +52,11 @@
public void testNullAsHeaderValue() throws Exception
{
- rs.putHeader("someHeader", null);
- assertTrue(rs.containsHeader("someHeader"));
- assertNull(rs.getHeader("someHeader"));
- assertNull(rs.removeHeader("someHeader"));
- assertFalse(rs.containsHeader("someHeader"));
+ ms.putHeader("someHeader", null);
+ assertTrue(ms.containsHeader("someHeader"));
+ assertNull(ms.getHeader("someHeader"));
+ assertNull(ms.removeHeader("someHeader"));
+ assertFalse(ms.containsHeader("someHeader"));
}
// Package protected ---------------------------------------------
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_2PCTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_2PCTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_2PCTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,9 +23,9 @@
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.test.messaging.util.CoreMessageFactory;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_NTTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_NTTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_NTTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,9 +23,9 @@
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_TTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_TTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_TTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,9 +23,9 @@
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.test.messaging.util.CoreMessageFactory;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_2PCTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_2PCTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_2PCTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,9 +23,9 @@
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.test.messaging.util.CoreMessageFactory;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_NTTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_NTTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_NTTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,9 +23,9 @@
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_TTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_TTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_TTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,9 +23,9 @@
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.test.messaging.util.CoreMessageFactory;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/PagingTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/PagingTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/PagingTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,8 +23,8 @@
import org.jboss.messaging.core.local.PagingFilteredQueue;
import org.jboss.messaging.core.message.CoreMessage;
+import org.jboss.messaging.core.message.SimpleMessageStore;
import org.jboss.messaging.core.plugin.JDBCPersistenceManager;
-import org.jboss.messaging.core.plugin.SimpleMessageStore;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
import org.jboss.test.messaging.MessagingTestCase;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_2PCTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_2PCTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_2PCTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,10 +23,10 @@
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.SimpleDelivery;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.test.messaging.util.CoreMessageFactory;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_NTTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_NTTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_NTTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,10 +23,10 @@
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.SimpleDelivery;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_TTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_TTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_TTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,10 +23,10 @@
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.SimpleDelivery;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.test.messaging.util.CoreMessageFactory;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_2PCTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_2PCTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_2PCTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,10 +23,10 @@
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.SimpleDelivery;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.test.messaging.util.CoreMessageFactory;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_NTTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_NTTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_NTTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,10 +23,10 @@
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.SimpleDelivery;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_TTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_TTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_TTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,10 +23,10 @@
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.SimpleDelivery;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.test.messaging.util.CoreMessageFactory;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_ReloadTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_ReloadTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_ReloadTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,12 +23,12 @@
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
+import org.jboss.messaging.core.message.SimpleMessageStore;
import org.jboss.messaging.core.plugin.JDBCPersistenceManager;
import org.jboss.messaging.core.plugin.LockMap;
-import org.jboss.messaging.core.plugin.SimpleMessageStore;
import org.jboss.messaging.core.tx.TransactionRepository;
import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/base/PagingStateTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/base/PagingStateTestBase.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/base/PagingStateTestBase.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -35,12 +35,12 @@
import org.jboss.messaging.core.Channel;
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Receiver;
import org.jboss.messaging.core.SimpleDelivery;
+import org.jboss.messaging.core.message.MessageReference;
+import org.jboss.messaging.core.message.SimpleMessageStore;
import org.jboss.messaging.core.plugin.IDManager;
import org.jboss.messaging.core.plugin.JDBCPersistenceManager;
-import org.jboss.messaging.core.plugin.SimpleMessageStore;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.messaging.core.tx.TransactionRepository;
@@ -138,7 +138,7 @@
while (iter.hasNext())
{
Long id = (Long)iter.next();
- assertEquals(refs[i].getMessageID(), id.longValue());
+ assertEquals(refs[i].getMessage().getMessageID(), id.longValue());
i++;
}
}
@@ -183,7 +183,7 @@
return null;
}
- assertEquals(refs[consumeCount + count].getMessageID(), ref.getMessageID());
+ assertEquals(refs[consumeCount + count].getMessage().getMessageID(), ref.getMessage().getMessageID());
SimpleDelivery del = new SimpleDelivery(observer, ref);
@@ -429,7 +429,7 @@
List msgIds = new ArrayList();
String sql =
- "SELECT MESSAGEID, ORD, PAGE_ORD FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID=? ORDER BY ORD";
+ "SELECT MESSAGE_ID, ORD, PAGE_ORD FROM JBM_MSG_REF WHERE CHANNEL_ID=? ORDER BY ORD";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setLong(1, channelId);
@@ -472,7 +472,7 @@
List msgIds = new ArrayList();
String sql =
- "SELECT MESSAGEID, ORD, PAGE_ORD FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID=? ORDER BY PAGE_ORD";
+ "SELECT MESSAGE_ID, ORD, PAGE_ORD FROM JBM_MSG_REF WHERE CHANNEL_ID=? ORDER BY PAGE_ORD";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setLong(1, channelId);
@@ -512,8 +512,8 @@
Connection conn = ds.getConnection();
String sql =
- "SELECT MESSAGEID FROM JMS_MESSAGE_REFERENCE WHERE " +
- "CHANNELID=? AND PAGE_ORD IS NOT NULL ORDER BY PAGE_ORD";
+ "SELECT MESSAGE_ID FROM JBM_MSG_REF WHERE " +
+ "CHANNEL_ID=? AND PAGE_ORD IS NOT NULL ORDER BY PAGE_ORD";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setLong(1, channelId);
@@ -552,7 +552,7 @@
mgr.begin();
Connection conn = ds.getConnection();
- String sql = "SELECT MESSAGEID FROM JMS_MESSAGE ORDER BY MESSAGEID";
+ String sql = "SELECT MESSAGE_ID FROM JBM_MSG ORDER BY MESSAGE_ID";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/JDBCPersistenceManagerTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/JDBCPersistenceManagerTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/JDBCPersistenceManagerTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -37,11 +37,11 @@
import javax.transaction.xa.Xid;
import org.jboss.messaging.core.Channel;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
+import org.jboss.messaging.core.message.SimpleMessageStore;
import org.jboss.messaging.core.plugin.IDManager;
import org.jboss.messaging.core.plugin.JDBCPersistenceManager;
-import org.jboss.messaging.core.plugin.SimpleMessageStore;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
import org.jboss.messaging.core.tx.Transaction;
@@ -350,56 +350,56 @@
List refIds = getReferenceIds(channel1.getChannelID());
assertNotNull(refIds);
assertEquals(10, refIds.size());
- assertTrue(refIds.contains(new Long(ref1.getMessageID())));
- assertTrue(refIds.contains(new Long(ref2.getMessageID())));
- assertTrue(refIds.contains(new Long(ref3.getMessageID())));
- assertTrue(refIds.contains(new Long(ref4.getMessageID())));
- assertTrue(refIds.contains(new Long(ref5.getMessageID())));
- assertTrue(refIds.contains(new Long(ref6.getMessageID())));
- assertTrue(refIds.contains(new Long(ref7.getMessageID())));
- assertTrue(refIds.contains(new Long(ref8.getMessageID())));
- assertTrue(refIds.contains(new Long(ref9.getMessageID())));
- assertTrue(refIds.contains(new Long(ref10.getMessageID())));
+ assertTrue(refIds.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref2.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref3.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref4.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref5.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref6.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref7.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref8.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref9.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref10.getMessage().getMessageID())));
refIds = getReferenceIds(channel2.getChannelID());
assertNotNull(refIds);
assertEquals(5, refIds.size());
- assertTrue(refIds.contains(new Long(ref11.getMessageID())));
- assertTrue(refIds.contains(new Long(ref12.getMessageID())));
- assertTrue(refIds.contains(new Long(ref13.getMessageID())));
- assertTrue(refIds.contains(new Long(ref14.getMessageID())));
- assertTrue(refIds.contains(new Long(ref15.getMessageID())));
+ assertTrue(refIds.contains(new Long(ref11.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref12.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref13.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref14.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref15.getMessage().getMessageID())));
List msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(10, msgs.size());
- assertTrue(msgs.contains(new Long(ref1.getMessageID())));
- assertTrue(msgs.contains(new Long(ref2.getMessageID())));
- assertTrue(msgs.contains(new Long(ref3.getMessageID())));
- assertTrue(msgs.contains(new Long(ref4.getMessageID())));
- assertTrue(msgs.contains(new Long(ref5.getMessageID())));
- assertTrue(msgs.contains(new Long(ref6.getMessageID())));
- assertTrue(msgs.contains(new Long(ref7.getMessageID())));
- assertTrue(msgs.contains(new Long(ref8.getMessageID())));
- assertTrue(msgs.contains(new Long(ref9.getMessageID())));
- assertTrue(msgs.contains(new Long(ref10.getMessageID())));
+ assertTrue(msgs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref2.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref3.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref4.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref5.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref6.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref7.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref8.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref9.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref10.getMessage().getMessageID())));
List msgIds = new ArrayList();
- msgIds.add(new Long(ref3.getMessageID()));
- msgIds.add(new Long(ref4.getMessageID()));
- msgIds.add(new Long(ref7.getMessageID()));
- msgIds.add(new Long(ref9.getMessageID()));
- msgIds.add(new Long(ref1.getMessageID()));
+ msgIds.add(new Long(ref3.getMessage().getMessageID()));
+ msgIds.add(new Long(ref4.getMessage().getMessageID()));
+ msgIds.add(new Long(ref7.getMessage().getMessageID()));
+ msgIds.add(new Long(ref9.getMessage().getMessageID()));
+ msgIds.add(new Long(ref1.getMessage().getMessageID()));
List ms = pm.getMessages(msgIds);
assertNotNull(ms);
assertEquals(5, ms.size());
- assertTrue(containsMessage(ms, ref3.getMessageID()));
- assertTrue(containsMessage(ms, ref4.getMessageID()));
- assertTrue(containsMessage(ms, ref7.getMessageID()));
- assertTrue(containsMessage(ms, ref9.getMessageID()));
- assertTrue(containsMessage(ms, ref1.getMessageID()));
+ assertTrue(containsMessage(ms, ref3.getMessage().getMessageID()));
+ assertTrue(containsMessage(ms, ref4.getMessage().getMessageID()));
+ assertTrue(containsMessage(ms, ref7.getMessage().getMessageID()));
+ assertTrue(containsMessage(ms, ref9.getMessage().getMessageID()));
+ assertTrue(containsMessage(ms, ref1.getMessage().getMessageID()));
refs = new ArrayList();
refs.add(ref12);
@@ -411,23 +411,23 @@
refIds = getReferenceIds(channel2.getChannelID());
assertNotNull(refIds);
assertEquals(1, refIds.size());
- assertTrue(refIds.contains(new Long(ref11.getMessageID())));
+ assertTrue(refIds.contains(new Long(ref11.getMessage().getMessageID())));
ms = getMessageIds();
assertNotNull(ms);
assertEquals(10, ms.size());
- assertTrue(msgs.contains(new Long(ref1.getMessageID())));
- assertTrue(msgs.contains(new Long(ref2.getMessageID())));
- assertTrue(msgs.contains(new Long(ref3.getMessageID())));
- assertTrue(msgs.contains(new Long(ref4.getMessageID())));
- assertTrue(msgs.contains(new Long(ref5.getMessageID())));
- assertTrue(msgs.contains(new Long(ref6.getMessageID())));
- assertTrue(msgs.contains(new Long(ref7.getMessageID())));
- assertTrue(msgs.contains(new Long(ref8.getMessageID())));
- assertTrue(msgs.contains(new Long(ref9.getMessageID())));
- assertTrue(msgs.contains(new Long(ref10.getMessageID())));
+ assertTrue(msgs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref2.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref3.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref4.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref5.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref6.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref7.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref8.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref9.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref10.getMessage().getMessageID())));
refs = new ArrayList();
@@ -439,13 +439,13 @@
refIds = getReferenceIds(channel1.getChannelID());
assertNotNull(refIds);
assertEquals(7, refIds.size());
- assertTrue(refIds.contains(new Long(ref4.getMessageID())));
- assertTrue(refIds.contains(new Long(ref5.getMessageID())));
- assertTrue(refIds.contains(new Long(ref6.getMessageID())));
- assertTrue(refIds.contains(new Long(ref7.getMessageID())));
- assertTrue(refIds.contains(new Long(ref8.getMessageID())));
- assertTrue(refIds.contains(new Long(ref9.getMessageID())));
- assertTrue(refIds.contains(new Long(ref10.getMessageID())));
+ assertTrue(refIds.contains(new Long(ref4.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref5.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref6.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref7.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref8.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref9.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref10.getMessage().getMessageID())));
ms = getMessageIds();
@@ -453,14 +453,14 @@
assertNotNull(ms);
assertEquals(8, ms.size());
- assertTrue(msgs.contains(new Long(ref1.getMessageID())));
- assertTrue(msgs.contains(new Long(ref4.getMessageID())));
- assertTrue(msgs.contains(new Long(ref5.getMessageID())));
- assertTrue(msgs.contains(new Long(ref6.getMessageID())));
- assertTrue(msgs.contains(new Long(ref7.getMessageID())));
- assertTrue(msgs.contains(new Long(ref8.getMessageID())));
- assertTrue(msgs.contains(new Long(ref9.getMessageID())));
- assertTrue(msgs.contains(new Long(ref10.getMessageID())));
+ assertTrue(msgs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref4.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref5.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref6.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref7.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref8.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref9.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref10.getMessage().getMessageID())));
refs = new ArrayList();
refs.add(ref11);
@@ -534,16 +534,16 @@
assertEquals(10, refInfos.size());
- assertEquals(ref1.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(0)).getMessageId());
- assertEquals(ref2.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(1)).getMessageId());
- assertEquals(ref3.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(2)).getMessageId());
- assertEquals(ref4.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(3)).getMessageId());
- assertEquals(ref5.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(4)).getMessageId());
- assertEquals(ref6.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(5)).getMessageId());
- assertEquals(ref7.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(6)).getMessageId());
- assertEquals(ref8.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(7)).getMessageId());
- assertEquals(ref9.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(8)).getMessageId());
- assertEquals(ref10.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(9)).getMessageId());
+ assertEquals(ref1.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(0)).getMessageId());
+ assertEquals(ref2.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(1)).getMessageId());
+ assertEquals(ref3.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(2)).getMessageId());
+ assertEquals(ref4.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(3)).getMessageId());
+ assertEquals(ref5.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(4)).getMessageId());
+ assertEquals(ref6.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(5)).getMessageId());
+ assertEquals(ref7.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(6)).getMessageId());
+ assertEquals(ref8.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(7)).getMessageId());
+ assertEquals(ref9.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(8)).getMessageId());
+ assertEquals(ref10.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(9)).getMessageId());
refInfos = pm.getPagedReferenceInfos(channel.getChannelID(), 3, 5);
@@ -551,13 +551,13 @@
assertEquals(5, refInfos.size());
- assertEquals(ref4.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(0)).getMessageId());
- assertEquals(ref5.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(1)).getMessageId());
- assertEquals(ref6.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(2)).getMessageId());
- assertEquals(ref7.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(3)).getMessageId());
- assertEquals(ref8.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(4)).getMessageId());
+ assertEquals(ref4.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(0)).getMessageId());
+ assertEquals(ref5.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(1)).getMessageId());
+ assertEquals(ref6.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(2)).getMessageId());
+ assertEquals(ref7.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(3)).getMessageId());
+ assertEquals(ref8.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(4)).getMessageId());
- pm.updateReliableReferencesNotPagedInRange(channel.getChannelID(), 0, 3, 4);
+ pm.updateReferencesNotPagedInRange(channel.getChannelID(), 0, 3, 4);
refInfos = pm.getPagedReferenceInfos(channel.getChannelID(), 5, 5);
@@ -565,11 +565,11 @@
assertEquals(5, refInfos.size());
- assertEquals(ref6.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(0)).getMessageId());
- assertEquals(ref7.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(1)).getMessageId());
- assertEquals(ref8.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(2)).getMessageId());
- assertEquals(ref9.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(3)).getMessageId());
- assertEquals(ref10.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(4)).getMessageId());
+ assertEquals(ref6.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(0)).getMessageId());
+ assertEquals(ref7.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(1)).getMessageId());
+ assertEquals(ref8.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(2)).getMessageId());
+ assertEquals(ref9.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(3)).getMessageId());
+ assertEquals(ref10.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(4)).getMessageId());
}
public void testGetMessages() throws Throwable
@@ -605,47 +605,47 @@
List refIds = getReferenceIds(channel.getChannelID());
assertNotNull(refIds);
assertEquals(10, refIds.size());
- assertTrue(refIds.contains(new Long(ref1.getMessageID())));
- assertTrue(refIds.contains(new Long(ref2.getMessageID())));
- assertTrue(refIds.contains(new Long(ref3.getMessageID())));
- assertTrue(refIds.contains(new Long(ref4.getMessageID())));
- assertTrue(refIds.contains(new Long(ref5.getMessageID())));
- assertTrue(refIds.contains(new Long(ref6.getMessageID())));
- assertTrue(refIds.contains(new Long(ref7.getMessageID())));
- assertTrue(refIds.contains(new Long(ref8.getMessageID())));
- assertTrue(refIds.contains(new Long(ref9.getMessageID())));
- assertTrue(refIds.contains(new Long(ref10.getMessageID())));
+ assertTrue(refIds.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref2.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref3.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref4.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref5.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref6.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref7.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref8.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref9.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref10.getMessage().getMessageID())));
List msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(10, msgs.size());
- assertTrue(msgs.contains(new Long(ref1.getMessageID())));
- assertTrue(msgs.contains(new Long(ref2.getMessageID())));
- assertTrue(msgs.contains(new Long(ref3.getMessageID())));
- assertTrue(msgs.contains(new Long(ref4.getMessageID())));
- assertTrue(msgs.contains(new Long(ref5.getMessageID())));
- assertTrue(msgs.contains(new Long(ref6.getMessageID())));
- assertTrue(msgs.contains(new Long(ref7.getMessageID())));
- assertTrue(msgs.contains(new Long(ref8.getMessageID())));
- assertTrue(msgs.contains(new Long(ref9.getMessageID())));
- assertTrue(msgs.contains(new Long(ref10.getMessageID())));
+ assertTrue(msgs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref2.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref3.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref4.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref5.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref6.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref7.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref8.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref9.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref10.getMessage().getMessageID())));
List msgIds = new ArrayList();
- msgIds.add(new Long(ref3.getMessageID()));
- msgIds.add(new Long(ref4.getMessageID()));
- msgIds.add(new Long(ref7.getMessageID()));
- msgIds.add(new Long(ref9.getMessageID()));
- msgIds.add(new Long(ref1.getMessageID()));
+ msgIds.add(new Long(ref3.getMessage().getMessageID()));
+ msgIds.add(new Long(ref4.getMessage().getMessageID()));
+ msgIds.add(new Long(ref7.getMessage().getMessageID()));
+ msgIds.add(new Long(ref9.getMessage().getMessageID()));
+ msgIds.add(new Long(ref1.getMessage().getMessageID()));
List ms = pm.getMessages(msgIds);
assertNotNull(ms);
assertEquals(5, ms.size());
- assertTrue(containsMessage(ms, ref3.getMessageID()));
- assertTrue(containsMessage(ms, ref4.getMessageID()));
- assertTrue(containsMessage(ms, ref7.getMessageID()));
- assertTrue(containsMessage(ms, ref9.getMessageID()));
- assertTrue(containsMessage(ms, ref1.getMessageID()));
+ assertTrue(containsMessage(ms, ref3.getMessage().getMessageID()));
+ assertTrue(containsMessage(ms, ref4.getMessage().getMessageID()));
+ assertTrue(containsMessage(ms, ref7.getMessage().getMessageID()));
+ assertTrue(containsMessage(ms, ref9.getMessage().getMessageID()));
+ assertTrue(containsMessage(ms, ref1.getMessage().getMessageID()));
}
@@ -694,16 +694,16 @@
assertNotNull(refInfos);
assertEquals(10, refInfos.size());
- assertEquals(ref1.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(0)).getMessageId());
- assertEquals(ref2.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(1)).getMessageId());
- assertEquals(ref3.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(2)).getMessageId());
- assertEquals(ref4.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(3)).getMessageId());
- assertEquals(ref5.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(4)).getMessageId());
- assertEquals(ref6.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(5)).getMessageId());
- assertEquals(ref7.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(6)).getMessageId());
- assertEquals(ref8.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(7)).getMessageId());
- assertEquals(ref9.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(8)).getMessageId());
- assertEquals(ref10.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(9)).getMessageId());
+ assertEquals(ref1.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(0)).getMessageId());
+ assertEquals(ref2.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(1)).getMessageId());
+ assertEquals(ref3.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(2)).getMessageId());
+ assertEquals(ref4.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(3)).getMessageId());
+ assertEquals(ref5.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(4)).getMessageId());
+ assertEquals(ref6.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(5)).getMessageId());
+ assertEquals(ref7.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(6)).getMessageId());
+ assertEquals(ref8.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(7)).getMessageId());
+ assertEquals(ref9.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(8)).getMessageId());
+ assertEquals(ref10.getMessage().getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(9)).getMessageId());
}
@@ -754,46 +754,46 @@
List refIds = getReferenceIds(channel.getChannelID());
assertNotNull(refIds);
assertEquals(10, refIds.size());
- assertTrue(refIds.contains(new Long(ref1.getMessageID())));
- assertTrue(refIds.contains(new Long(ref2.getMessageID())));
- assertTrue(refIds.contains(new Long(ref3.getMessageID())));
- assertTrue(refIds.contains(new Long(ref4.getMessageID())));
- assertTrue(refIds.contains(new Long(ref5.getMessageID())));
- assertTrue(refIds.contains(new Long(ref6.getMessageID())));
- assertTrue(refIds.contains(new Long(ref7.getMessageID())));
- assertTrue(refIds.contains(new Long(ref8.getMessageID())));
- assertTrue(refIds.contains(new Long(ref9.getMessageID())));
- assertTrue(refIds.contains(new Long(ref10.getMessageID())));
+ assertTrue(refIds.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref2.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref3.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref4.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref5.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref6.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref7.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref8.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref9.getMessage().getMessageID())));
+ assertTrue(refIds.contains(new Long(ref10.getMessage().getMessageID())));
List msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(10, msgs.size());
- assertTrue(msgs.contains(new Long(ref1.getMessageID())));
- assertTrue(msgs.contains(new Long(ref2.getMessageID())));
- assertTrue(msgs.contains(new Long(ref3.getMessageID())));
- assertTrue(msgs.contains(new Long(ref4.getMessageID())));
- assertTrue(msgs.contains(new Long(ref5.getMessageID())));
- assertTrue(msgs.contains(new Long(ref6.getMessageID())));
- assertTrue(msgs.contains(new Long(ref7.getMessageID())));
- assertTrue(msgs.contains(new Long(ref8.getMessageID())));
- assertTrue(msgs.contains(new Long(ref9.getMessageID())));
- assertTrue(msgs.contains(new Long(ref10.getMessageID())));
+ assertTrue(msgs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref2.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref3.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref4.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref5.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref6.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref7.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref8.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref9.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref10.getMessage().getMessageID())));
List msgIds = new ArrayList();
- msgIds.add(new Long(ref3.getMessageID()));
- msgIds.add(new Long(ref4.getMessageID()));
- msgIds.add(new Long(ref7.getMessageID()));
- msgIds.add(new Long(ref9.getMessageID()));
- msgIds.add(new Long(ref1.getMessageID()));
+ msgIds.add(new Long(ref3.getMessage().getMessageID()));
+ msgIds.add(new Long(ref4.getMessage().getMessageID()));
+ msgIds.add(new Long(ref7.getMessage().getMessageID()));
+ msgIds.add(new Long(ref9.getMessage().getMessageID()));
+ msgIds.add(new Long(ref1.getMessage().getMessageID()));
List ms = pm.getMessages(msgIds);
assertNotNull(ms);
assertEquals(5, ms.size());
- assertTrue(containsMessage(ms, ref3.getMessageID()));
- assertTrue(containsMessage(ms, ref4.getMessageID()));
- assertTrue(containsMessage(ms, ref7.getMessageID()));
- assertTrue(containsMessage(ms, ref9.getMessageID()));
- assertTrue(containsMessage(ms, ref1.getMessageID()));
+ assertTrue(containsMessage(ms, ref3.getMessage().getMessageID()));
+ assertTrue(containsMessage(ms, ref4.getMessage().getMessageID()));
+ assertTrue(containsMessage(ms, ref7.getMessage().getMessageID()));
+ assertTrue(containsMessage(ms, ref9.getMessage().getMessageID()));
+ assertTrue(containsMessage(ms, ref1.getMessage().getMessageID()));
}
@@ -878,13 +878,11 @@
//Attributes from org.jboss.messaging.core.Message
assertEquals(m1.getMessageID(), m2.getMessageID());
- assertEquals(m1.isReference(), m2.isReference());
assertEquals(m1.isReliable(), m2.isReliable());
assertEquals(m1.getExpiration(), m2.getExpiration());
assertEquals(m1.isExpired(), m2.isExpired());
assertEquals(m1.getTimestamp(), m2.getTimestamp());
assertEquals(m1.getPriority(), m2.getPriority());
- assertEquals(m1.getDeliveryCount(), m2.getDeliveryCount());
Map m1Headers = m1.getHeaders();
Map m2Headers = m2.getHeaders();
checkMapsEquivalent(m1Headers, m2Headers);
@@ -1211,14 +1209,14 @@
List refs = getReferenceIds(channel.getChannelID());
assertNotNull(refs);
assertEquals(2, refs.size());
- assertTrue(refs.contains(new Long(ref1.getMessageID())));
- assertTrue(refs.contains(new Long(ref2.getMessageID())));
+ assertTrue(refs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(refs.contains(new Long(ref2.getMessage().getMessageID())));
List msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(2, msgs.size());
- assertTrue(msgs.contains(new Long(ref1.getMessageID())));
- assertTrue(msgs.contains(new Long(ref2.getMessageID())));
+ assertTrue(msgs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref2.getMessage().getMessageID())));
log.debug("ref1 and ref2 are there");
@@ -1235,14 +1233,14 @@
refs = getReferenceIds(channel.getChannelID());
assertNotNull(refs);
assertEquals(2, refs.size());
- assertTrue(refs.contains(new Long(ref1.getMessageID())));
- assertTrue(refs.contains(new Long(ref2.getMessageID())));
+ assertTrue(refs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(refs.contains(new Long(ref2.getMessage().getMessageID())));
msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(2, msgs.size());
- assertTrue(msgs.contains(new Long(ref1.getMessageID())));
- assertTrue(msgs.contains(new Long(ref2.getMessageID())));
+ assertTrue(msgs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref2.getMessage().getMessageID())));
//commit transaction
tx.commit();
@@ -1253,16 +1251,16 @@
refs = getReferenceIds(channel.getChannelID());
assertNotNull(refs);
assertEquals(3, refs.size());
- assertTrue(refs.contains(new Long(ref3.getMessageID())));
- assertTrue(refs.contains(new Long(ref4.getMessageID())));
- assertTrue(refs.contains(new Long(ref5.getMessageID())));
+ assertTrue(refs.contains(new Long(ref3.getMessage().getMessageID())));
+ assertTrue(refs.contains(new Long(ref4.getMessage().getMessageID())));
+ assertTrue(refs.contains(new Long(ref5.getMessage().getMessageID())));
msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(3, msgs.size());
- assertTrue(msgs.contains(new Long(ref3.getMessageID())));
- assertTrue(msgs.contains(new Long(ref4.getMessageID())));
- assertTrue(msgs.contains(new Long(ref5.getMessageID())));
+ assertTrue(msgs.contains(new Long(ref3.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref4.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref5.getMessage().getMessageID())));
}
protected void doTransactionRollback(boolean xa, boolean batch) throws Throwable
@@ -1310,14 +1308,14 @@
List refs = getReferenceIds(channel.getChannelID());
assertNotNull(refs);
assertEquals(2, refs.size());
- assertTrue(refs.contains(new Long(ref1.getMessageID())));
- assertTrue(refs.contains(new Long(ref2.getMessageID())));
+ assertTrue(refs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(refs.contains(new Long(ref2.getMessage().getMessageID())));
List msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(2, msgs.size());
- assertTrue(msgs.contains(new Long(ref1.getMessageID())));
- assertTrue(msgs.contains(new Long(ref2.getMessageID())));
+ assertTrue(msgs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref2.getMessage().getMessageID())));
@@ -1334,14 +1332,14 @@
refs = getReferenceIds(channel.getChannelID());
assertNotNull(refs);
assertEquals(2, refs.size());
- assertTrue(refs.contains(new Long(ref1.getMessageID())));
- assertTrue(refs.contains(new Long(ref2.getMessageID())));
+ assertTrue(refs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(refs.contains(new Long(ref2.getMessage().getMessageID())));
msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(2, msgs.size());
- assertTrue(msgs.contains(new Long(ref1.getMessageID())));
- assertTrue(msgs.contains(new Long(ref2.getMessageID())));
+ assertTrue(msgs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref2.getMessage().getMessageID())));
//rollback transaction
tx.rollback();
@@ -1349,14 +1347,14 @@
refs = getReferenceIds(channel.getChannelID());
assertNotNull(refs);
assertEquals(2, refs.size());
- assertTrue(refs.contains(new Long(ref1.getMessageID())));
- assertTrue(refs.contains(new Long(ref2.getMessageID())));
+ assertTrue(refs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(refs.contains(new Long(ref2.getMessage().getMessageID())));
msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(2, msgs.size());
- assertTrue(msgs.contains(new Long(ref1.getMessageID())));
- assertTrue(msgs.contains(new Long(ref2.getMessageID())));
+ assertTrue(msgs.contains(new Long(ref1.getMessage().getMessageID())));
+ assertTrue(msgs.contains(new Long(ref2.getMessage().getMessageID())));
}
@@ -1371,7 +1369,7 @@
mgr.begin();
Connection conn = ds.getConnection();
- String sql = "SELECT MESSAGEID FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID=? ORDER BY ORD";
+ String sql = "SELECT MESSAGE_ID FROM JBM_MSG_REF WHERE CHANNEL_ID=? ORDER BY ORD";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setLong(1, channelId);
@@ -1409,7 +1407,7 @@
mgr.begin();
Connection conn = ds.getConnection();
- String sql = "SELECT MESSAGEID FROM JMS_MESSAGE ORDER BY MESSAGEID";
+ String sql = "SELECT MESSAGE_ID FROM JBM_MSG ORDER BY MESSAGE_ID";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/SimpleMessageStoreTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/SimpleMessageStoreTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/SimpleMessageStoreTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,7 +23,7 @@
import org.jboss.test.messaging.core.plugin.base.MessageStoreTestBase;
import org.jboss.logging.Logger;
-import org.jboss.messaging.core.plugin.SimpleMessageStore;
+import org.jboss.messaging.core.message.SimpleMessageStore;
/**
* @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/base/MessageStoreTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/base/MessageStoreTestBase.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/base/MessageStoreTestBase.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -25,11 +25,11 @@
import java.util.Iterator;
import java.util.Map;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.test.messaging.MessagingTestCase;
import org.jboss.test.messaging.tools.jmx.ServiceContainer;
import org.jboss.test.messaging.util.CoreMessageFactory;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.contract.MessageStore;
@@ -66,16 +66,15 @@
*/
public static void assertCorrectReference(MessageReference ref, Message m)
{
- assertTrue(ref.isReference());
- assertEquals(m.getMessageID(), ref.getMessageID());
- assertEquals(m.isReliable(), ref.isReliable());
- assertEquals(m.getExpiration(), ref.getExpiration());
- assertEquals(m.getTimestamp(), ref.getTimestamp());
- assertEquals(m.getPriority(), ref.getPriority());
+ assertEquals(m.getMessageID(), ref.getMessage().getMessageID());
+ assertEquals(m.isReliable(), ref.getMessage().isReliable());
+ assertEquals(m.getExpiration(), ref.getMessage().getExpiration());
+ assertEquals(m.getTimestamp(), ref.getMessage().getTimestamp());
+ assertEquals(m.getPriority(), ref.getMessage().getPriority());
assertEquals(0, ref.getDeliveryCount());
Map messageHeaders = m.getHeaders();
- Map refHeaders = ref.getHeaders();
+ Map refHeaders = ref.getMessage().getHeaders();
assertEquals(messageHeaders.size(), refHeaders.size());
for(Iterator i = messageHeaders.keySet().iterator(); i.hasNext(); )
@@ -322,11 +321,11 @@
MessageReference ref = ms.reference(m);
assertCorrectReference(ref, m);
- MessageReference ref2 = ms.reference(ref.getMessageID());
+ MessageReference ref2 = ms.reference(ref.getMessage().getMessageID());
assertNotNull(ref2);
assertCorrectReference(ref2, m);
- MessageReference ref3 = ms.reference(ref.getMessageID());
+ MessageReference ref3 = ms.reference(ref.getMessage().getMessageID());
assertNotNull(ref3);
assertCorrectReference(ref3, m);
@@ -334,7 +333,7 @@
ref2.releaseMemoryReference();
ref3.releaseMemoryReference();
- MessageReference ref4 = ms.reference(ref.getMessageID());
+ MessageReference ref4 = ms.reference(ref.getMessage().getMessageID());
assertNull(ref4);
}
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/base/PostOfficeTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/base/PostOfficeTestBase.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/base/PostOfficeTestBase.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -26,12 +26,12 @@
import org.jboss.jms.server.QueuedExecutorPool;
import org.jboss.messaging.core.FilterFactory;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Queue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
+import org.jboss.messaging.core.message.SimpleMessageStore;
import org.jboss.messaging.core.plugin.IDManager;
import org.jboss.messaging.core.plugin.JDBCPersistenceManager;
-import org.jboss.messaging.core.plugin.SimpleMessageStore;
import org.jboss.messaging.core.plugin.contract.Condition;
import org.jboss.messaging.core.plugin.contract.ConditionFactory;
import org.jboss.messaging.core.plugin.contract.MessageStore;
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/DefaultPostOfficeTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/DefaultPostOfficeTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/DefaultPostOfficeTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -25,9 +25,9 @@
import java.util.Iterator;
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.contract.PostOffice;
import org.jboss.messaging.core.plugin.postoffice.Binding;
import org.jboss.messaging.core.tx.Transaction;
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOfficeTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOfficeTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOfficeTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -25,9 +25,9 @@
import java.util.Iterator;
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.contract.ClusteredPostOffice;
import org.jboss.messaging.core.plugin.postoffice.Binding;
import org.jboss.messaging.core.plugin.postoffice.cluster.LocalClusteredQueue;
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultMessagePullPolicyTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultMessagePullPolicyTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultMessagePullPolicyTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -28,8 +28,8 @@
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
import org.jboss.messaging.core.Filter;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Receiver;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.postoffice.cluster.ClusteredQueue;
import org.jboss.messaging.core.plugin.postoffice.cluster.DefaultMessagePullPolicy;
import org.jboss.messaging.core.plugin.postoffice.cluster.MessagePullPolicy;
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultRouterTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultRouterTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultRouterTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -28,10 +28,10 @@
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
import org.jboss.messaging.core.Filter;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Receiver;
import org.jboss.messaging.core.SimpleDelivery;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.postoffice.cluster.ClusterRouter;
import org.jboss.messaging.core.plugin.postoffice.cluster.ClusteredQueue;
import org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouter;
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RecoveryTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RecoveryTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RecoveryTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,8 +23,8 @@
import java.util.List;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice;
import org.jboss.messaging.core.plugin.postoffice.cluster.LocalClusteredQueue;
import org.jboss.messaging.core.tx.Transaction;
@@ -117,8 +117,7 @@
for (int i = 0; i < NUM_MESSAGES; i++)
{
- Message msg = CoreMessageFactory.createCoreMessage(i);
- msg.setReliable(true);
+ Message msg = CoreMessageFactory.createCoreMessage(i, true, null);
MessageReference ref = ms.reference(msg);
@@ -256,8 +255,7 @@
for (int i = 0; i < NUM_MESSAGES; i++)
{
- Message msg = CoreMessageFactory.createCoreMessage(i);
- msg.setReliable(true);
+ Message msg = CoreMessageFactory.createCoreMessage(i, true, null);
MessageReference ref = ms.reference(msg);
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RedistributionWithDefaultMessagePullPolicyTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RedistributionWithDefaultMessagePullPolicyTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RedistributionWithDefaultMessagePullPolicyTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -28,10 +28,10 @@
import org.jboss.messaging.core.Channel;
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.DeliveryObserver;
-import org.jboss.messaging.core.Message;
-import org.jboss.messaging.core.MessageReference;
import org.jboss.messaging.core.Receiver;
import org.jboss.messaging.core.SimpleDelivery;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice;
import org.jboss.messaging.core.plugin.postoffice.cluster.LocalClusteredQueue;
import org.jboss.messaging.core.plugin.postoffice.cluster.DefaultMessagePullPolicy;
@@ -146,8 +146,7 @@
true, true, (QueuedExecutor) pool.get(), -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("queue1"), queue2);
- Message msg = CoreMessageFactory.createCoreMessage(1);
- msg.setReliable(true);
+ Message msg = CoreMessageFactory.createCoreMessage(1, true, null);
MessageReference ref = ms.reference(msg);
@@ -245,8 +244,7 @@
true, true, (QueuedExecutor) pool.get(), -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("queue1"), queue2);
- Message msg = CoreMessageFactory.createCoreMessage(1);
- msg.setReliable(true);
+ Message msg = CoreMessageFactory.createCoreMessage(1, true, null);
MessageReference ref = ms.reference(msg);
@@ -350,8 +348,7 @@
true, true, (QueuedExecutor) pool.get(), -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("queue1"), queue2);
- Message msg = CoreMessageFactory.createCoreMessage(1);
- msg.setReliable(true);
+ Message msg = CoreMessageFactory.createCoreMessage(1, true, null);
MessageReference ref = ms.reference(msg);
@@ -451,8 +448,7 @@
true, true, (QueuedExecutor) pool.get(), -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("queue1"), queue2);
- Message msg = CoreMessageFactory.createCoreMessage(1);
- msg.setReliable(true);
+ Message msg = CoreMessageFactory.createCoreMessage(1, true, null);
MessageReference ref = ms.reference(msg);
Modified: trunk/tests/src/org/jboss/test/messaging/jms/DLQTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/DLQTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/jms/DLQTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -459,7 +459,7 @@
//Check the headers
String origDest = tm.getStringProperty(ServerSessionEndpoint.JBOSS_MESSAGING_ORIG_DESTINATION);
- String origMessageId = tm.getStringProperty(ServerSessionEndpoint.JBOSS_MESSAGING_ORIG_MESSAGEID);
+ String origMessageId = tm.getStringProperty(ServerSessionEndpoint.JBOSS_MESSAGING_ORIG_MESSAGE_ID);
assertEquals(queue.toString(), origDest);
Modified: trunk/tests/src/org/jboss/test/messaging/jms/ExpiryQueueTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/ExpiryQueueTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/jms/ExpiryQueueTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -409,7 +409,7 @@
//Check the headers
String origDest = tm.getStringProperty(ServerSessionEndpoint.JBOSS_MESSAGING_ORIG_DESTINATION);
- String origMessageId = tm.getStringProperty(ServerSessionEndpoint.JBOSS_MESSAGING_ORIG_MESSAGEID);
+ String origMessageId = tm.getStringProperty(ServerSessionEndpoint.JBOSS_MESSAGING_ORIG_MESSAGE_ID);
long actualExpiryTime = tm.getLongProperty(ServerSessionEndpoint.JBOSS_MESSAGING_ACTUAL_EXPIRY_TIME);
Modified: trunk/tests/src/org/jboss/test/messaging/jms/MessageCleanupTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/MessageCleanupTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/jms/MessageCleanupTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -40,7 +40,7 @@
import javax.transaction.TransactionManager;
import org.jboss.jms.client.JBossConnectionFactory;
-import org.jboss.messaging.core.plugin.SimpleMessageStore;
+import org.jboss.messaging.core.message.SimpleMessageStore;
import org.jboss.test.messaging.MessagingTestCase;
import org.jboss.test.messaging.tools.ServerManagement;
import org.jboss.tm.TransactionManagerService;
@@ -330,7 +330,7 @@
mgr.begin();
java.sql.Connection conn = ds.getConnection();
- String sql = "SELECT MESSAGEID, ORD FROM JMS_MESSAGE_REFERENCE";
+ String sql = "SELECT MESSAGE_ID, ORD FROM JBM_MSG_REF";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
@@ -368,7 +368,7 @@
mgr.begin();
java.sql.Connection conn = ds.getConnection();
- String sql = "SELECT MESSAGEID FROM JMS_MESSAGE ORDER BY MESSAGEID";
+ String sql = "SELECT MESSAGE_ID FROM JBM_MSG ORDER BY MESSAGE_ID";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
Modified: trunk/tests/src/org/jboss/test/messaging/jms/MessageConsumerTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/MessageConsumerTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/jms/MessageConsumerTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -2455,13 +2455,11 @@
//Check messages have correct type after being resurrected from persistent storage
public void testPersistedMessageType() throws Exception
{
-
Connection theConn = null;
Connection theOtherConn = null;
try
{
-
theConn = cf.createConnection();
theConn.start();
@@ -2471,7 +2469,6 @@
MessageProducer theProducer = sessSend.createProducer(queue2);
theProducer.setDeliveryMode(DeliveryMode.PERSISTENT);
-
Message m = sessSend.createMessage();
m.setStringProperty("p1", "aardvark");
@@ -2489,7 +2486,6 @@
TextMessage tm = sessSend.createTextMessage("aardvark");
-
theProducer.send(m);
theProducer.send(bm);
theProducer.send(mm);
@@ -2499,7 +2495,6 @@
theConn.close();
-
theOtherConn = cf.createConnection();
theOtherConn.start();
@@ -2513,7 +2508,6 @@
assertNotNull(m2);
-
assertEquals("aardvark", m2.getStringProperty("p1"));
BytesMessage bm2 = (BytesMessage)theConsumer.receive(1500);
Modified: trunk/tests/src/org/jboss/test/messaging/jms/MessageProxyTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/MessageProxyTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/jms/MessageProxyTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -34,6 +34,7 @@
import javax.naming.InitialContext;
import org.jboss.jms.client.JBossConnectionFactory;
+import org.jboss.jms.destination.JBossQueue;
import org.jboss.jms.message.JBossMessage;
import org.jboss.jms.message.MessageProxy;
import org.jboss.test.messaging.MessagingTestCase;
@@ -213,8 +214,26 @@
}
- public void testCopyAfterSend() throws Exception
+
+ private void checkSameUnderlyingMessage(JBossMessage m1, JBossMessage m2, boolean same)
{
+ if ((m1 == m2) && (m1.getHeaders() == m2.getHeaders()) && !same)
+ {
+ fail("Underlying message not same");
+ }
+ }
+
+ private void checkSameBody(JBossMessage m1, JBossMessage m2, boolean same)
+ {
+ if ((m1.getPayload() == m2.getPayload()) && !same)
+ {
+ fail("Body not same");
+ }
+ }
+
+
+ public void testNewMessage() throws Exception
+ {
if (ServerManagement.isRemote())
{
return;
@@ -226,94 +245,106 @@
{
conn = cf.createConnection();
- conn.start();
-
Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer prod = sess.createProducer(queue);
+
prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+
+ MapMessage m = sess.createMapMessage();
- MessageConsumer cons = sess.createConsumer(queue);
+ JBossMessage check1 = ((MessageProxy)m).getMessage();
- MapMessage msent = sess.createMapMessage();
- msent.setString("map_entry", "map_value");
- msent.setStringProperty("property_entry", "property_value");
+ m.setString("map_entry", "map_value");
+ m.setStringProperty("property_entry", "property_value");
- prod.send(msent);
+ m.setJMSReplyTo(new JBossQueue("wibble"));
- MapMessage mrec = (MapMessage)cons.receive();
-
- //Underlying messages
- JBossMessage usent_1 = ((MessageProxy)msent).getMessage();
- JBossMessage urec_1 = ((MessageProxy)mrec).getMessage();
+ JBossMessage check2 = ((MessageProxy)m).getMessage();
- //The underlying message should be the same since we haven't changed it after sending or receiving
- assertTrue(usent_1 == urec_1);
+ checkSameUnderlyingMessage(check1, check2, true);
+ checkSameBody(check1, check2, true);
- //Now change a header in the sent message
- //The should cause the underlying message to be copied
- msent.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT);
+ prod.send(m);
- JBossMessage usent_2 = ((MessageProxy)msent).getMessage();
- JBossMessage urec_2 = ((MessageProxy)mrec).getMessage();
+ JBossMessage check3 = ((MessageProxy)m).getMessage();
- assertFalse(usent_2 == usent_1);
- assertTrue(usent_1 == urec_2);
- assertTrue(urec_1 == urec_2);
-
- //But the properties shouldn't be copied since we didn't change them
- assertTrue(usent_2.getJMSProperties() == usent_1.getJMSProperties());
- assertTrue(urec_2.getJMSProperties() == urec_1.getJMSProperties());
- assertTrue(usent_1.getJMSProperties() == urec_1.getJMSProperties());
+ //Underlying message should be the same before and after
+ checkSameUnderlyingMessage(check2, check3, true);
+ checkSameBody(check2, check3, true);
-
- //And the bodies shouldn't be copied since we didn't change it either
- assertTrue(usent_2.getPayload() == usent_1.getPayload());
- assertTrue(urec_2.getPayload() == urec_1.getPayload());
- assertTrue(usent_1.getPayload() == urec_1.getPayload());
+ prod.send(m);
- //Now we change a property
- msent.setIntProperty("my_int_prop", 123);
+ JBossMessage check4 = ((MessageProxy)m).getMessage();
- JBossMessage usent_3 = ((MessageProxy)msent).getMessage();
- JBossMessage urec_3 = ((MessageProxy)mrec).getMessage();
+ assertFalse(check3.getMessageID() == check4.getMessageID());
+
+ //The underlying message should now be different
+ checkSameUnderlyingMessage(check3, check4, false);
+
+ //But the body should be the same
+ checkSameBody(check3, check4, true);
+
+ prod.send(m);
+
+ JBossMessage check5 = ((MessageProxy)m).getMessage();
+
+ // The message should be different
+ assertFalse(check4.getMessageID() == check5.getMessageID());
+
+ checkSameUnderlyingMessage(check4, check5, false);
+
+ //But the body should be the same
+ checkSameBody(check4, check5, true);
+
+ //Now set another header
+
+ m.setJMSType("type123");
+
+ JBossMessage check6 = ((MessageProxy)m).getMessage();
+
+
+ //The message should be different
+ checkSameUnderlyingMessage(check5, check6, false);
+
+ //But the body should be the same
+ checkSameBody(check5, check6, true);
+
+ prod.send(m);
+
+ JBossMessage check7 = ((MessageProxy)m).getMessage();
- //It shouldn't cause a copy of the whole message again
- assertTrue(usent_3 == usent_2);
- assertTrue(urec_3 == urec_2);
+ //The message should be the same
- //But the properties should be copied in the sent message but not the received
+ checkSameUnderlyingMessage(check6, check7, true);
- Map sentProps = usent_3.getJMSProperties();
- Map recProps = urec_3.getJMSProperties();
+ // But the body should be the same
+ checkSameBody(check6, check7, true);
- assertFalse (sentProps == usent_1.getJMSProperties());
- assertTrue (recProps == urec_1.getJMSProperties());
+ // Set the body
+ m.setString("key1", "blah");
+ JBossMessage check8 = ((MessageProxy)m).getMessage();
+ //The message should be the same
- //Body should be the same
- assertTrue(usent_3.getPayload() == usent_1.getPayload());
- assertTrue(urec_3.getPayload() == urec_1.getPayload());
+ checkSameUnderlyingMessage(check7, check8, true);
- //Now we change the body
- msent.setString("new_map_prop", "hello");
+ // But the body should not be the same
+ checkSameBody(check7, check8, false);
- JBossMessage usent_4 = ((MessageProxy)msent).getMessage();
- JBossMessage urec_4 = ((MessageProxy)mrec).getMessage();
+ //And the body not the same
- //It shouldn't cause a copy of the whole message again
- assertTrue(usent_4 == usent_3);
- assertTrue(urec_4 == urec_3);
+ checkSameUnderlyingMessage(check7, check8, false);
- //The properties should not be copied again
- assertTrue (usent_4.getJMSProperties() == sentProps);
- assertTrue (urec_4.getJMSProperties() == recProps);
+ prod.send(m);
- //Body should be copied in the sent but not the received
- assertFalse(usent_4.getPayload() == usent_1.getPayload());
- assertTrue(urec_4.getPayload() == urec_1.getPayload());
-
+ JBossMessage check9 = ((MessageProxy)m).getMessage();
+
+ //The message should be the same
+
+ checkSameUnderlyingMessage(check8, check9, true);
+
}
finally
{
@@ -322,10 +353,10 @@
conn.close();
}
}
-
}
- public void testCopyAfterReceive() throws Exception
+
+ public void testReceivedMessage() throws Exception
{
if (ServerManagement.isRemote())
{
@@ -345,87 +376,99 @@
MessageProducer prod = sess.createProducer(queue);
prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+
+ MapMessage m = sess.createMapMessage();
MessageConsumer cons = sess.createConsumer(queue);
- MapMessage msent = sess.createMapMessage();
- msent.setString("map_entry", "map_value");
- msent.setStringProperty("property_entry", "property_value");
+ prod.send(m);
- prod.send(msent);
+ m = (MapMessage)cons.receive(2000);
- MapMessage mrec = (MapMessage)cons.receive();
-
- //Underlying messages
- JBossMessage usent_1 = ((MessageProxy)msent).getMessage();
- JBossMessage urec_1 = ((MessageProxy)mrec).getMessage();
+ assertNotNull(m);
+
+ JBossMessage check1 = ((MessageProxy)m).getMessage();
- //The underlying message should be the same since we haven't changed it after sending or receiving
- assertTrue(usent_1 == urec_1);
+ prod.send(m);
- //Now change a header in the received message
- //The should cause the underlying message to be copied
- mrec.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT);
+ JBossMessage check3 = ((MessageProxy)m).getMessage();
- JBossMessage usent_2 = ((MessageProxy)msent).getMessage();
- JBossMessage urec_2 = ((MessageProxy)mrec).getMessage();
+ //Underlying message should be different
+ checkSameUnderlyingMessage(check1, check3, true);
+ checkSameBody(check1, check3, true);
- assertTrue(usent_2 == usent_1);
- assertFalse(urec_1 == urec_2);
-
- //But the properties shouldn't be copied since we didn't change them
- assertTrue(usent_2.getJMSProperties() == usent_1.getJMSProperties());
- assertTrue(urec_2.getJMSProperties() == urec_1.getJMSProperties());
- assertTrue(usent_1.getJMSProperties() == urec_1.getJMSProperties());
+ prod.send(m);
- //And the bodies shouldn't be copied since we didn't change it either
- assertTrue(usent_2.getPayload() == usent_1.getPayload());
+ JBossMessage check4 = ((MessageProxy)m).getMessage();
- assertTrue(urec_2.getPayload() == urec_1.getPayload());
- assertTrue(usent_1.getPayload() == urec_1.getPayload());
+ assertFalse(check3.getMessageID() == check4.getMessageID());
- //Now we change a property
- mrec.clearProperties();
- mrec.setIntProperty("my_int_prop", 123);
+ //The underlying message should now be different
+ checkSameUnderlyingMessage(check3, check4, false);
- JBossMessage usent_3 = ((MessageProxy)msent).getMessage();
- JBossMessage urec_3 = ((MessageProxy)mrec).getMessage();
+ //But the body should be the same
+ checkSameBody(check3, check4, true);
+
+ prod.send(m);
+
+ JBossMessage check5 = ((MessageProxy)m).getMessage();
+
+ // The message should be different
+ assertFalse(check4.getMessageID() == check5.getMessageID());
+
+ checkSameUnderlyingMessage(check4, check5, false);
+
+ //But the body should be the same
+ checkSameBody(check4, check5, true);
+
+ //Now set another header
+
+ m.setJMSType("type123");
+
+ JBossMessage check6 = ((MessageProxy)m).getMessage();
+
+
+ //The message should be different
+ checkSameUnderlyingMessage(check5, check6, false);
+
+ //But the body should be the same
+ checkSameBody(check5, check6, true);
+
+ prod.send(m);
+
+ JBossMessage check7 = ((MessageProxy)m).getMessage();
- //It shouldn't cause a copy of the whole message again
- assertTrue(usent_3 == usent_2);
- assertTrue(urec_3 == urec_2);
+ //The message should be the same
- //But the properties should be copied in the received message but not the sent
+ checkSameUnderlyingMessage(check6, check7, true);
- Map sentProps = usent_3.getJMSProperties();
- Map recProps = urec_3.getJMSProperties();
+ // But the body should be the same
+ checkSameBody(check6, check7, true);
- assertTrue (sentProps == usent_1.getJMSProperties());
- assertFalse (recProps == urec_1.getJMSProperties());
+ // Set the body
+ m.setString("key1", "blah");
- //Body should be the same
- assertTrue(usent_3.getPayload() == usent_1.getPayload());
- assertTrue(urec_3.getPayload() == urec_1.getPayload());
+ JBossMessage check8 = ((MessageProxy)m).getMessage();
- //Now we change the body
- mrec.clearBody();
- mrec.setString("new_map_prop", "hello");
+ //The message should be the same
- JBossMessage usent_4 = ((MessageProxy)msent).getMessage();
- JBossMessage urec_4 = ((MessageProxy)mrec).getMessage();
+ checkSameUnderlyingMessage(check7, check8, true);
- //It shouldn't cause a copy of the whole message again
- assertTrue(usent_4 == usent_3);
- assertTrue(urec_4 == urec_3);
+ // But the body should not be the same
+ checkSameBody(check7, check8, false);
- //The properties should not be copied again
- assertTrue (usent_4.getJMSProperties() == sentProps);
- assertTrue (urec_4.getJMSProperties() == recProps);
+ //And the body not the same
- //Body should be copied in the received but not the sent
- assertTrue(usent_4.getPayload() == usent_1.getPayload());
- assertFalse(urec_4.getPayload() == urec_1.getPayload());
-
+ checkSameUnderlyingMessage(check7, check8, false);
+
+ prod.send(m);
+
+ JBossMessage check9 = ((MessageProxy)m).getMessage();
+
+ //The message should be the same
+
+ checkSameUnderlyingMessage(check8, check9, true);
+
}
finally
{
@@ -434,7 +477,6 @@
conn.close();
}
}
-
}
Modified: trunk/tests/src/org/jboss/test/messaging/jms/ReferencingTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/ReferencingTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/jms/ReferencingTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -31,7 +31,8 @@
import org.jboss.jms.client.JBossConnectionFactory;
import org.jboss.jms.message.MessageProxy;
-import org.jboss.messaging.core.MessageReference;
+import org.jboss.messaging.core.message.MessageReference;
+import org.jboss.messaging.core.message.SimpleMessageReference;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.test.messaging.MessagingTestCase;
import org.jboss.test.messaging.tools.ServerManagement;
@@ -189,7 +190,7 @@
MessageReference ref = store.reference(((MessageProxy)m2).getMessage().getMessageID());
- assertEquals(((MessageProxy)m).getMessage().getMessageID(), ref.getMessageID());
+ assertEquals(((MessageProxy)m).getMessage().getMessageID(), ref.getMessage().getMessageID());
ref.releaseMemoryReference();
@@ -229,7 +230,7 @@
MessageReference ref = store.reference(((MessageProxy)m2).getMessage().getMessageID());
- assertEquals(((MessageProxy)m).getMessage().getMessageID(), ref.getMessageID());
+ assertEquals(((MessageProxy)m).getMessage().getMessageID(), ref.getMessage().getMessageID());
ref.releaseMemoryReference();
@@ -269,7 +270,7 @@
MessageReference ref = store.reference(((MessageProxy)m2).getMessage().getMessageID());
- assertEquals(((MessageProxy)m).getMessage().getMessageID(), ref.getMessageID());
+ assertEquals(((MessageProxy)m).getMessage().getMessageID(), ref.getMessage().getMessageID());
ref.releaseMemoryReference();
@@ -282,7 +283,7 @@
ref = store.reference(((MessageProxy)m2).getMessage().getMessageID());
- assertEquals(((MessageProxy)m).getMessage().getMessageID(), ref.getMessageID());
+ assertEquals(((MessageProxy)m).getMessage().getMessageID(), ref.getMessage().getMessageID());
ref.releaseMemoryReference();
@@ -319,17 +320,17 @@
assertNotNull(m2);
assertEquals(m.getText(), m2.getText());
- MessageReference ref = store.reference(((MessageProxy)m2).getMessage().getMessageID());
+ SimpleMessageReference ref = (SimpleMessageReference)store.reference(((MessageProxy)m2).getMessage().getMessageID());
assertEquals(2, ref.getInMemoryChannelCount());
- assertEquals(((MessageProxy)m).getMessage().getMessageID(), ref.getMessageID());
+ assertEquals(((MessageProxy)m).getMessage().getMessageID(), ref.getMessage().getMessageID());
ref.releaseMemoryReference();
sess.commit();
- ref = store.reference(((MessageProxy)m2).getMessage().getMessageID());
+ ref = (SimpleMessageReference)store.reference(((MessageProxy)m2).getMessage().getMessageID());
assertNull(ref);
conn.close();
@@ -360,7 +361,7 @@
assertEquals(m.getText(), m2.getText());
MessageReference ref = store.reference(((MessageProxy)m2).getMessage().getMessageID());
- assertEquals(((MessageProxy)m).getMessage().getMessageID(), ref.getMessageID());
+ assertEquals(((MessageProxy)m).getMessage().getMessageID(), ref.getMessage().getMessageID());
ref.releaseMemoryReference();
@@ -372,7 +373,7 @@
assertEquals(m.getText(), m3.getText());
ref = store.reference(((MessageProxy)m3).getMessage().getMessageID());
- assertEquals(((MessageProxy)m).getMessage().getMessageID(), ref.getMessageID());
+ assertEquals(((MessageProxy)m).getMessage().getMessageID(), ref.getMessage().getMessageID());
ref.releaseMemoryReference();
Modified: trunk/tests/src/org/jboss/test/messaging/jms/message/MessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/message/MessageTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/jms/message/MessageTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -82,8 +82,7 @@
m.setJMSCorrelationID("correlationID777");
m.setJMSReplyTo(new JBossQueue("ReplyToQueue"));
m.setJMSDestination(new JBossQueue("DestinationQueue"));
- m.setJMSDeliveryMode(DeliveryMode.PERSISTENT);
- m.setJMSRedelivered(true);
+ m.setJMSDeliveryMode(DeliveryMode.PERSISTENT);
m.setJMSExpiration(987654321l);
m.setJMSPriority(9);
m.setBooleanProperty("booleanProperty", true);
@@ -148,7 +147,7 @@
assertEquals(m1.getJMSReplyTo(), m2.getJMSReplyTo());
assertEquals(m1.getJMSDestination(), m2.getJMSDestination());
assertEquals(m1.getJMSDeliveryMode(), m2.getJMSDeliveryMode());
- assertEquals(m1.getJMSRedelivered(), m2.getJMSRedelivered());
+ //We don't check redelivered since this is always dealt with on the proxy
assertEquals(m1.getJMSType(), m2.getJMSType());
assertEquals(m1.getJMSExpiration(), m2.getJMSExpiration());
assertEquals(m1.getJMSPriority(), m2.getJMSPriority());
@@ -715,7 +714,7 @@
propNames.add(propName);
}
- assertEquals(9, propNames.size());
+ assertEquals(8, propNames.size());
assertTrue(propNames.contains("myBool"));
assertTrue(propNames.contains("myByte"));
@@ -984,8 +983,6 @@
m2.clearProperties();
Enumeration en2 = m2.getPropertyNames();
- assertTrue(en2.hasMoreElements());
- en2.nextElement();
assertFalse(en2.hasMoreElements());
Modified: trunk/tests/src/org/jboss/test/messaging/jms/persistence/BytesMessagePersistenceManagerTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/persistence/BytesMessagePersistenceManagerTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/jms/persistence/BytesMessagePersistenceManagerTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,10 +23,8 @@
import java.util.HashMap;
-import org.jboss.jms.destination.JBossQueue;
import org.jboss.jms.message.JBossBytesMessage;
-import org.jboss.messaging.core.Message;
-import org.jboss.util.id.GUID;
+import org.jboss.messaging.core.message.Message;
/**
@@ -61,8 +59,6 @@
{
HashMap coreHeaders = generateFilledMap(true);
- HashMap jmsProperties = generateFilledMap(false);
-
JBossBytesMessage m =
new JBossBytesMessage(i,
reliable,
@@ -70,14 +66,13 @@
System.currentTimeMillis(),
i,
coreHeaders,
- null,
- i % 2 == 0 ? new GUID().toString() : null,
- genCorrelationID(i),
- i % 3 == 2 ? randByteArray(50) : null,
- new JBossQueue("testDestination"),
- new JBossQueue("testReplyTo"),
- jmsProperties);
+ null);
+ setDestination(m, i);
+ setReplyTo(m, i);
+ m.setJMSType("testType");
+ setCorrelationID(m, i);
+
m.writeBoolean(randBool().booleanValue());
m.writeByte(randByte().byteValue());
m.writeBytes(randByteArray(500));
Modified: trunk/tests/src/org/jboss/test/messaging/jms/persistence/MapMessagePersistenceManagerTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/persistence/MapMessagePersistenceManagerTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/jms/persistence/MapMessagePersistenceManagerTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -25,10 +25,8 @@
import java.util.HashMap;
import java.util.Map;
-import org.jboss.jms.destination.JBossQueue;
import org.jboss.jms.message.JBossMapMessage;
-import org.jboss.messaging.core.Message;
-import org.jboss.util.id.GUID;
+import org.jboss.messaging.core.message.Message;
/**
@@ -61,9 +59,7 @@
protected Message createMessage(byte i, boolean reliable) throws Exception
{
HashMap coreHeaders = generateFilledMap(true);
-
- HashMap jmsProperties = generateFilledMap(false);
-
+
JBossMapMessage m =
new JBossMapMessage(i,
reliable,
@@ -71,14 +67,13 @@
System.currentTimeMillis(),
i,
coreHeaders,
- null,
- i % 2 == 0 ? new GUID().toString() : null,
- genCorrelationID(i),
- i % 3 == 2 ? randByteArray(50) : null,
- new JBossQueue("testDestination"),
- new JBossQueue("testReplyTo"),
- jmsProperties);
+ null);
+ setDestination(m, i);
+ setReplyTo(m, i);
+ m.setJMSType("testType");
+ setCorrelationID(m, i);
+
Map map = generateFilledMap(true);
m.setPayload((Serializable)map);
return m;
Modified: trunk/tests/src/org/jboss/test/messaging/jms/persistence/MessagePersistenceManagerTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/persistence/MessagePersistenceManagerTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/jms/persistence/MessagePersistenceManagerTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,9 +23,13 @@
import java.util.HashMap;
+import javax.jms.JMSException;
+
+import org.jboss.jms.destination.JBossDestination;
import org.jboss.jms.destination.JBossQueue;
+import org.jboss.jms.destination.JBossTopic;
import org.jboss.jms.message.JBossMessage;
-import org.jboss.messaging.core.Message;
+import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.plugin.JDBCPersistenceManager;
import org.jboss.test.messaging.core.plugin.JDBCPersistenceManagerTest;
import org.jboss.test.messaging.tools.ServerManagement;
@@ -120,40 +124,77 @@
protected Message createMessage(byte i, boolean reliable) throws Exception
{
HashMap coreHeaders = generateFilledMap(true);
-
- HashMap jmsProperties = generateFilledMap(false);
-
- JBossMessage jbm =
+
+ JBossMessage m =
new JBossMessage(i,
reliable,
System.currentTimeMillis() + 1000 * 60 * 60,
System.currentTimeMillis(),
i,
coreHeaders,
- null,
- i % 2 == 0 ? new GUID().toString() : null,
- genCorrelationID(i),
- i % 3 == 2 ? randByteArray(50) : null,
- new JBossQueue("testDestination"),
- new JBossQueue("testReplyTo"),
- jmsProperties);
+ null);
- jbm.setPayload(new WibblishObject());
+ setDestination(m, i);
+ setReplyTo(m, i);
+ m.setJMSType("testType");
+ setCorrelationID(m, i);
- return jbm;
+ m.setPayload(new WibblishObject());
+
+ return m;
}
- protected String genCorrelationID(int i)
+ protected void setDestination(JBossMessage m, int i) throws JMSException
{
+ JBossDestination dest = null;
+ String name = new GUID().toString();
+ if (i % 2 == 0)
+ {
+ dest = new JBossQueue(name);
+ }
+ else if (i % 2 == 1)
+ {
+ dest = new JBossTopic(name);
+ }
+ m.setJMSDestination(dest);
+ }
+
+ protected void setReplyTo(JBossMessage m, int i) throws JMSException
+ {
+ JBossDestination dest = null;
+ String name = new GUID().toString();
if (i % 3 == 0)
+ {
+ dest = new JBossQueue(name);
+ }
+ else if (i % 3 == 1)
{
- return null;
+ dest = new JBossTopic(name);
+ }
+ else if (i % 3 == 2)
+ {
+ return;
+ }
+ m.setJMSDestination(dest);
+ }
+
+ protected void setCorrelationID(JBossMessage m, int i) throws JMSException
+ {
+ if (i % 3 == 0)
+ {
+ // Do nothing
+ return;
}
else if (i % 3 == 1)
{
- return new GUID().toString();
+ String id = new GUID().toString();
+ m.setJMSCorrelationID(id);
}
- return null;
+ else if (i % 3 == 2)
+ {
+ byte[] bytes = new GUID().toString().getBytes();
+ m.setJMSCorrelationIDAsBytes(bytes);
+ }
}
Modified: trunk/tests/src/org/jboss/test/messaging/jms/persistence/ObjectMessagePersistenceManagerTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/persistence/ObjectMessagePersistenceManagerTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/jms/persistence/ObjectMessagePersistenceManagerTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,10 +23,8 @@
import java.util.HashMap;
-import org.jboss.jms.destination.JBossQueue;
import org.jboss.jms.message.JBossObjectMessage;
-import org.jboss.messaging.core.Message;
-import org.jboss.util.id.GUID;
+import org.jboss.messaging.core.message.Message;
/**
@@ -60,8 +58,6 @@
protected Message createMessage(byte i, boolean reliable) throws Exception
{
HashMap coreHeaders = generateFilledMap(true);
-
- HashMap jmsProperties = generateFilledMap(false);
JBossObjectMessage m =
new JBossObjectMessage(i,
@@ -70,13 +66,13 @@
System.currentTimeMillis(),
i,
coreHeaders,
- null,
- i % 2 == 0 ? new GUID().toString() : null,
- genCorrelationID(i),
- i % 3 == 2 ? randByteArray(50) : null,
- new JBossQueue("testDestination"),
- new JBossQueue("testReplyTo"),
- jmsProperties);
+ null);
+
+ setDestination(m, i);
+ setReplyTo(m, i);
+ m.setJMSType("testType");
+ setCorrelationID(m, i);
+
m.setPayload(new WibblishObject());
return m;
}
Modified: trunk/tests/src/org/jboss/test/messaging/jms/persistence/StreamMessagePersistenceManagerTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/persistence/StreamMessagePersistenceManagerTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/jms/persistence/StreamMessagePersistenceManagerTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -24,10 +24,8 @@
import java.util.ArrayList;
import java.util.HashMap;
-import org.jboss.jms.destination.JBossQueue;
import org.jboss.jms.message.JBossStreamMessage;
-import org.jboss.messaging.core.Message;
-import org.jboss.util.id.GUID;
+import org.jboss.messaging.core.message.Message;
/**
@@ -62,8 +60,6 @@
{
HashMap coreHeaders = generateFilledMap(true);
- HashMap jmsProperties = generateFilledMap(false);
-
JBossStreamMessage m =
new JBossStreamMessage(i,
reliable,
@@ -71,13 +67,13 @@
System.currentTimeMillis(),
i,
coreHeaders,
- null,
- i % 2 == 0 ? new GUID().toString() : null,
- genCorrelationID(i),
- i % 3 == 2 ? randByteArray(50) : null,
- new JBossQueue("testDestination"),
- new JBossQueue("testReplyTo"),
- jmsProperties);
+ null);
+
+ setDestination(m, i);
+ setReplyTo(m, i);
+ m.setJMSType("testType");
+ setCorrelationID(m, i);
+
m.setPayload(new ArrayList());
m.writeBoolean(randBool().booleanValue());
m.writeByte(randByte().byteValue());
Modified: trunk/tests/src/org/jboss/test/messaging/jms/persistence/TextMessagePersistenceManagerTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/persistence/TextMessagePersistenceManagerTest.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/jms/persistence/TextMessagePersistenceManagerTest.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -23,10 +23,8 @@
import java.util.HashMap;
-import org.jboss.jms.destination.JBossQueue;
import org.jboss.jms.message.JBossTextMessage;
-import org.jboss.messaging.core.Message;
-import org.jboss.util.id.GUID;
+import org.jboss.messaging.core.message.Message;
/**
@@ -60,9 +58,7 @@
protected Message createMessage(byte i, boolean reliable) throws Exception
{
HashMap coreHeaders = generateFilledMap(true);
-
- HashMap jmsProperties = generateFilledMap(false);
-
+
JBossTextMessage m =
new JBossTextMessage(i,
reliable,
@@ -70,13 +66,13 @@
System.currentTimeMillis(),
i,
coreHeaders,
- null,
- i % 2 == 0 ? new GUID().toString() : null,
- genCorrelationID(i),
- i % 3 == 2 ? randByteArray(50) : null,
- new JBossQueue("testDestination"),
- new JBossQueue("testReplyTo"),
- jmsProperties);
+ null);
+
+ setDestination(m, i);
+ setReplyTo(m, i);
+ m.setJMSType("testType");
+ setCorrelationID(m, i);
+
m.setText(randString(10000));
return m;
}
Modified: trunk/tests/src/org/jboss/test/messaging/tools/jmx/ServiceContainer.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/tools/jmx/ServiceContainer.java 2007-02-07 17:31:13 UTC (rev 2201)
+++ trunk/tests/src/org/jboss/test/messaging/tools/jmx/ServiceContainer.java 2007-02-08 10:50:26 UTC (rev 2202)
@@ -1407,58 +1407,65 @@
Connection conn = ds.getConnection();
- String sql = "DELETE FROM JMS_POSTOFFICE";
+ String sql = "DELETE FROM JBM_POSTOFFICE";
PreparedStatement ps = conn.prepareStatement(sql);
int rows = ps.executeUpdate();
- log.debug("JMS_POSTOFFICE: deleted " + rows);
+ log.debug("JBM_POSTOFFICE: deleted " + rows);
ps.close();
- sql = "DELETE FROM JMS_MESSAGE_REFERENCE";
+ sql = "DELETE FROM JBM_MSG_REF";
ps = conn.prepareStatement(sql);
rows = ps.executeUpdate();
- log.debug("JMS_MESSAGE_REFERENCE: deleted " + rows);
+ log.debug("JBM_MSG_REF: deleted " + rows);
ps.close();
- sql = "DELETE FROM JMS_MESSAGE";
+ sql = "DELETE FROM JBM_MSG";
ps = conn.prepareStatement(sql);
rows = ps.executeUpdate();
- log.debug("JMS_MESSAGE: deleted " + rows);
+ log.debug("JBM_MSG: deleted " + rows);
ps.close();
- sql = "DELETE FROM JMS_TRANSACTION";
+ sql = "DELETE FROM JBM_TX";
ps = conn.prepareStatement(sql);
rows = ps.executeUpdate();
- log.debug("JMS_TRANSACTION: deleted " + rows);
+ log.debug("JBM_TX: deleted " + rows);
ps.close();
- sql = "DELETE FROM JMS_COUNTER";
+ sql = "DELETE FROM JBM_COUNTER";
ps = conn.prepareStatement(sql);
rows = ps.executeUpdate();
- log.debug("JMS_COUNTER: deleted " + rows);
+ log.debug("JBM_COUNTER: deleted " + rows);
ps.close();
- sql = "DELETE FROM JMS_USER";
+ sql = "DELETE FROM JBM_USER";
ps = conn.prepareStatement(sql);
rows = ps.executeUpdate();
- log.debug("JMS_USER: deleted " + rows);
+ log.debug("JBM_USER: deleted " + rows);
+
+ sql = "DELETE FROM JBM_ROLE";
+ ps = conn.prepareStatement(sql);
+ rows = ps.executeUpdate();
+
+ log.debug("JBM_ROLE: deleted " + rows);
+
ps.close();
conn.close();
More information about the jboss-cvs-commits
mailing list