-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/6277/
-----------------------------------------------------------
(Updated Nov. 15, 2012, 9:10 a.m.)
Review request for bookkeeper.
Changes
-------
The jms diffs (they were dropped from earlier comment for some reason - which
contains only server changes).
Description
-------
Add support for JMS provider conforming to 1.1 as detailed in BOOKKEEPER-312.
The limitations are (as detailed in the bug) :
0) Due to lack of proper support for consume in face of disconnect, some tests
fail - this has to be addressed in hedwig independent of this bug.
1) Need better ways to connect to server - currently it is (sort of) hardcoded
via property file(s).
Also, need better ways to authorize to server (assuming hedwig supports this).
A subsequent bug can extend/enhance the provider to add support for this (JAAS
or whatever is expected to be supported).
2) No support for Queue's.
3) No support for noLocal : simulating it in provider.
4) We do not support NON_PERSISTENT delivery mode.
5) Calling unsubscribe on a durable subscription will fail if it was NOT
created in the current session.
6) Explicit session recovery is not supported.
and so setting the JMSRedelivered flag is simulated (best case effort).
7) Hedwig only supports marking all messages until seq-id as received : while
JMS indicates ability to acknowledge individual messages.
This distinction is currently unsupported.
8) JMS spec requires
"A connection's delivery of incoming messages can be temporarily stopped
using its stop() method. It can be restarted using its start() method. When the
connection is stopped, delivery to all the connection’s MessageConsumers is
inhibited: synchronous receives block, and messages are not delivered to
MessageListeners."
We honor this for undelivered messages from server - but if stop is called
while there are pending messages yet to be delivered to a listener (or buffered
in subscriber for receive), then they will be delivered irrespective of stop().
This addresses bug BOOKKEEPER-312.
https://issues.apache.org/jira/browse/BOOKKEEPER-312
Diffs (updated)
-----
hedwig-client-jms/pom.xml PRE-CREATION
hedwig-client-jms/src/main/grammar/javacc/readme.html PRE-CREATION
hedwig-client-jms/src/main/grammar/javacc/selector_grammar.jjt PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/ConnectionImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/ConnectionMetaDataImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/DebugUtil.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/LRUCacheMap.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/LRUCacheSet.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/MessagingSessionFacade.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/Mutable.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/SessionImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/StateManager.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/jndi/HedwigInitialContext.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/jndi/HedwigInitialContextFactory.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/jndi/package-info.html
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/message/BytesMessageImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/message/MapMessageImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/message/MessageImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/message/MessageUtil.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/message/ObjectMessageImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/message/StreamMessageImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/message/TextMessageImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/message/header/JmsHeader.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/message/header/MetadataProcessor.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/message/package-info.html
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/package-info.html
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/BinaryArithmeticFunction.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/BinaryExprFunction.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/ExprFunction.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/InterpretSelectorParserVisitor.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/LogicalComparisonFunction.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/MyNode.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/PropertyExprFunction.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/SelectorConstant.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/SelectorEvalState.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/SelectorEvaluationException.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/TreeDumperSelectorParserVisitor.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/UnaryArithmeticFunction.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/UnaryExprFunction.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/ValueComparisonFunction.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/selector/package-info.html
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/spi/HedwigConnectionFactoryImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/spi/HedwigConnectionImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/spi/HedwigMessagingSessionFacade.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/spi/MessageConsumerImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/spi/MessageProducerImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/spi/QueueSessionImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/spi/TopicPublisherImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/spi/TopicSessionImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/spi/TopicSubscriberImpl.java
PRE-CREATION
hedwig-client-jms/src/main/java/org/apache/hedwig/jms/spi/package-info.html
PRE-CREATION
hedwig-client-jms/src/main/protobuf/JmsHeader.proto PRE-CREATION
hedwig-client-jms/src/main/resources/log4j.properties PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/AutoFailTestSupport.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/CombinationTestSupport.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/ConnectionCleanupTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/ConsumerReceiveWithTimeoutTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/ExpiryHogTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JMSConsumerTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JMSDurableTopicRedeliverTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JMSIndividualAckTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JMSMessageTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JMSUsecaseTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsAutoAckListenerTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsAutoAckTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsBenchmark.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsClientAckListenerTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsClientAckTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsConnectionStartStopTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsConsumerResetActiveListenerTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsCreateConsumerInOnMessageTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsDurableTopicSelectorTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsDurableTopicSendReceiveTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsDurableTopicTransactionTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsMultipleClientsTestSupport.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsRedeliveredTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsRollbackRedeliveryTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsSendReceiveTestSupport.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsSendReceiveWithMessageExpirationTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsSendWithAsyncCallbackTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsTestSupport.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsTopicCompositeSendReceiveTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsTopicRedeliverTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsTopicSelectorTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsTopicSendReceiveSubscriberTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsTopicSendReceiveTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsTopicSendReceiveWithTwoConnectionsTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsTopicSendReceiveWithTwoConnectionsWithJMXTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsTopicSendSameMessageTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsTopicTransactionTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/JmsTransactionTestSupport.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/LoadTestBurnIn.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/MessageListenerRedeliveryTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/RedeliveryPolicyTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/TestSupport.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/TimeStampTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/demo/SimpleConsumer.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/demo/SimpleProducer.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/load/LoadClient.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/load/LoadController.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/load/LoadTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/ConnectionChurnTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/InactiveDurableTopicTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/NetworkedSyncTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/NumberOfDestinationsTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/PerfConsumer.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/PerfProducer.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/PerfRate.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/SimpleDurableTopicNetworkTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/SimpleDurableTopicTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/SimpleNetworkTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/SimpleNonPersistentTopicTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/SimpleTopicTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/SlowConsumer.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/SlowConsumerTopicTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/perf/SlowDurableConsumerTopicTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/test/JmsResourceProvider.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/test/JmsSendReceiveTestSupport.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/test/JmsTopicSendReceiveTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/test/JmsTopicSendReceiveWithTwoConnectionsAndByteSelectorTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/test/JmsTopicSendReceiveWithTwoConnectionsTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/test/TestSupport.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/test/rollback/DelegatingTransactionalMessageListener.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/ChangeSentMessageTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/ChangeSessionDeliveryModeTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/CompositeConsumeTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/CompositePublishTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/ConcurrentProducerDurableConsumerTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/DiscriminatingConsumerLoadTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/DispatchMultipleConsumersTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/DurableConsumerCloseAndReconnectTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/DurableSubProcessTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/DurableSubSelectorDelayTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/DurableSubscriptionHangTestCase.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/MyObject.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/NonBlockingConsumerRedeliveryTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/ObjectMessageNotSerializableTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/ProducerConsumerTestSupport.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/PublishOnDurableTopicConsumedMessageTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/PublishOnTopicConsumedMessageTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/SubscribeClosePublishThenConsumeTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/TestSupport.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/TopicRedeliverTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/TransactionRollbackOrderTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/usecases/TransactionTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/util/ConsumerThread.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/util/DefaultTestAppender.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/util/IdGenerator.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/util/MessageIdList.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/util/ProducerThread.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/util/SimplePojo.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/activemq/util/Wait.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/hedwig/JmsTestBase.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/hedwig/jms/BasicJMSTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/hedwig/jms/selector/BasicSelectorGrammarTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/hedwig/jms/selector/activemq/SelectorParserTest.java
PRE-CREATION
hedwig-client-jms/src/test/java/org/apache/hedwig/jms/selector/activemq/SelectorTest.java
PRE-CREATION
Diff: https://reviews.apache.org/r/6277/diff/
Testing
-------
Thanks,
Mridul