You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by si...@apache.org on 2016/03/16 04:44:59 UTC

[49/49] bookkeeper git commit: BOOKKEEPER-769: Remove the Hedwig Code

BOOKKEEPER-769: Remove the Hedwig Code

- Remove code directories for Hedwig code
- Remove code directories under compat
- Remove Hedwig related documentation
- Remove references to Hedwig code in pom files

* There is an unrelated findbugs violation in BookieWatcher which is not related to this change
* There were flaky tests that failed locally but passed when I reran them

Author: Robin Dhamankar <ro...@Robins-MacBook-Air.local>

Reviewers: Sijie Guo <si...@apache.org>

Closes #27 from robindh/RemoveHedwig


Project: http://git-wip-us.apache.org/repos/asf/bookkeeper/repo
Commit: http://git-wip-us.apache.org/repos/asf/bookkeeper/commit/9a8d62b1
Tree: http://git-wip-us.apache.org/repos/asf/bookkeeper/tree/9a8d62b1
Diff: http://git-wip-us.apache.org/repos/asf/bookkeeper/diff/9a8d62b1

Branch: refs/heads/master
Commit: 9a8d62b1d1231f2fe6feca7e0c407a426a1278d5
Parents: 410ff72
Author: Robin Dhamankar <ro...@apache.org>
Authored: Tue Mar 15 20:43:54 2016 -0700
Committer: Sijie Guo <si...@apache.org>
Committed: Tue Mar 15 20:43:54 2016 -0700

----------------------------------------------------------------------
 README                                          |    25 +-
 bookkeeper-server/conf/log4j.properties         |     4 -
 .../bookkeeper/net/BookieSocketAddress.java     |     2 +-
 .../bookkeeper/client/LedgerCloseTest.java      |     3 +-
 compat-deps/hedwig-server-compat-4.0.0/pom.xml  |    97 -
 compat-deps/hedwig-server-compat-4.1.0/pom.xml  |    97 -
 compat-deps/hedwig-server-compat-4.2.0/pom.xml  |    97 -
 compat-deps/pom.xml                             |     3 -
 doc/hedwigBuild.textile                         |    38 -
 doc/hedwigConsole.textile                       |   187 -
 doc/hedwigDesign.textile                        |    72 -
 doc/hedwigDocs.textile                          |    31 -
 doc/hedwigJMX.textile                           |    32 -
 doc/hedwigMessageFilter.textile                 |    76 -
 doc/hedwigMetadata.textile                      |   123 -
 doc/hedwigParams.textile                        |    92 -
 doc/hedwigUser.textile                          |    63 -
 doc/index.textile                               |     2 -
 doc/metastore.textile                           |     6 +-
 formatter.xml                                   |     2 +-
 hedwig-client-jms/pom.xml                       |   301 -
 .../src/main/grammar/javacc/readme.html         |    26 -
 .../main/grammar/javacc/selector_grammar.jjt    |   689 -
 .../org/apache/hedwig/jms/ConnectionImpl.java   |   476 -
 .../hedwig/jms/ConnectionMetaDataImpl.java      |    77 -
 .../java/org/apache/hedwig/jms/DebugUtil.java   |    69 -
 .../java/org/apache/hedwig/jms/LRUCacheMap.java |   104 -
 .../java/org/apache/hedwig/jms/LRUCacheSet.java |   115 -
 .../hedwig/jms/MessagingSessionFacade.java      |   421 -
 .../java/org/apache/hedwig/jms/Mutable.java     |    61 -
 .../java/org/apache/hedwig/jms/SessionImpl.java |  2009 --
 .../org/apache/hedwig/jms/StateManager.java     |   179 -
 .../hedwig/jms/jndi/HedwigInitialContext.java   |   106 -
 .../jms/jndi/HedwigInitialContextFactory.java   |    33 -
 .../apache/hedwig/jms/jndi/package-info.html    |    65 -
 .../hedwig/jms/message/BytesMessageImpl.java    |   657 -
 .../hedwig/jms/message/MapMessageImpl.java      |   295 -
 .../apache/hedwig/jms/message/MessageImpl.java  |   872 -
 .../apache/hedwig/jms/message/MessageUtil.java  |   444 -
 .../hedwig/jms/message/ObjectMessageImpl.java   |   168 -
 .../hedwig/jms/message/StreamMessageImpl.java   |   752 -
 .../hedwig/jms/message/TextMessageImpl.java     |   135 -
 .../hedwig/jms/message/header/JmsHeader.java    |  1126 --
 .../jms/message/header/MetadataProcessor.java   |   163 -
 .../apache/hedwig/jms/message/package-info.html |    29 -
 .../org/apache/hedwig/jms/package-info.html     |    92 -
 .../jms/selector/BinaryArithmeticFunction.java  |   184 -
 .../hedwig/jms/selector/BinaryExprFunction.java |    51 -
 .../hedwig/jms/selector/ExprFunction.java       |    25 -
 .../InterpretSelectorParserVisitor.java         |   180 -
 .../jms/selector/LogicalComparisonFunction.java |    64 -
 .../org/apache/hedwig/jms/selector/MyNode.java  |   101 -
 .../jms/selector/PropertyExprFunction.java      |   512 -
 .../hedwig/jms/selector/SelectorConstant.java   |   187 -
 .../hedwig/jms/selector/SelectorEvalState.java  |    56 -
 .../selector/SelectorEvaluationException.java   |    39 -
 .../TreeDumperSelectorParserVisitor.java        |   261 -
 .../jms/selector/UnaryArithmeticFunction.java   |    73 -
 .../hedwig/jms/selector/UnaryExprFunction.java  |    65 -
 .../jms/selector/ValueComparisonFunction.java   |   329 -
 .../hedwig/jms/selector/package-info.html       |    35 -
 .../jms/spi/HedwigConnectionFactoryImpl.java    |    64 -
 .../hedwig/jms/spi/HedwigConnectionImpl.java    |   164 -
 .../jms/spi/HedwigMessagingSessionFacade.java   |   624 -
 .../hedwig/jms/spi/MessageConsumerImpl.java     |    74 -
 .../hedwig/jms/spi/MessageProducerImpl.java     |   117 -
 .../apache/hedwig/jms/spi/QueueSessionImpl.java |    84 -
 .../hedwig/jms/spi/TopicPublisherImpl.java      |   226 -
 .../apache/hedwig/jms/spi/TopicSessionImpl.java |    76 -
 .../hedwig/jms/spi/TopicSubscriberImpl.java     |   323 -
 .../org/apache/hedwig/jms/spi/package-info.html |    30 -
 .../src/main/protobuf/JmsHeader.proto           |    54 -
 .../src/main/resources/findbugsExclude.xml      |    48 -
 .../src/main/resources/log4j.properties         |    35 -
 .../apache/activemq/AutoFailTestSupport.java    |   153 -
 .../apache/activemq/CombinationTestSupport.java |   250 -
 .../apache/activemq/ConnectionCleanupTest.java  |    73 -
 .../ConsumerReceiveWithTimeoutTest.java         |    84 -
 .../java/org/apache/activemq/ExpiryHogTest.java |    61 -
 .../org/apache/activemq/JMSConsumerTest.java    |   936 -
 .../activemq/JMSDurableTopicRedeliverTest.java  |    76 -
 .../apache/activemq/JMSIndividualAckTest.java   |   165 -
 .../org/apache/activemq/JMSMessageTest.java     |   504 -
 .../org/apache/activemq/JMSUsecaseTest.java     |   109 -
 .../apache/activemq/JmsAutoAckListenerTest.java |    77 -
 .../org/apache/activemq/JmsAutoAckTest.java     |    75 -
 .../java/org/apache/activemq/JmsBenchmark.java  |   204 -
 .../activemq/JmsClientAckListenerTest.java      |   127 -
 .../org/apache/activemq/JmsClientAckTest.java   |   148 -
 .../activemq/JmsConnectionStartStopTest.java    |   169 -
 .../JmsConsumerResetActiveListenerTest.java     |   157 -
 .../JmsCreateConsumerInOnMessageTest.java       |    96 -
 .../activemq/JmsDurableTopicSelectorTest.java   |    26 -
 .../JmsDurableTopicSendReceiveTest.java         |    87 -
 .../JmsDurableTopicTransactionTest.java         |    38 -
 .../activemq/JmsMultipleClientsTestSupport.java |   281 -
 .../org/apache/activemq/JmsRedeliveredTest.java |   380 -
 .../activemq/JmsRollbackRedeliveryTest.java     |   339 -
 .../activemq/JmsSendReceiveTestSupport.java     |   234 -
 ...JmsSendReceiveWithMessageExpirationTest.java |   239 -
 .../activemq/JmsSendWithAsyncCallbackTest.java  |   107 -
 .../org/apache/activemq/JmsTestSupport.java     |   174 -
 .../JmsTopicCompositeSendReceiveTest.java       |   101 -
 .../apache/activemq/JmsTopicRedeliverTest.java  |   176 -
 .../apache/activemq/JmsTopicSelectorTest.java   |   212 -
 .../JmsTopicSendReceiveSubscriberTest.java      |    33 -
 .../activemq/JmsTopicSendReceiveTest.java       |    95 -
 ...sTopicSendReceiveWithTwoConnectionsTest.java |   116 -
 ...endReceiveWithTwoConnectionsWithJMXTest.java |    28 -
 .../activemq/JmsTopicSendSameMessageTest.java   |    46 -
 .../activemq/JmsTopicTransactionTest.java       |    36 -
 .../activemq/JmsTransactionTestSupport.java     |   692 -
 .../org/apache/activemq/LoadTestBurnIn.java     |   164 -
 .../activemq/MessageListenerRedeliveryTest.java |   193 -
 .../apache/activemq/RedeliveryPolicyTest.java   |   145 -
 .../java/org/apache/activemq/TestSupport.java   |   151 -
 .../java/org/apache/activemq/TimeStampTest.java |    91 -
 .../apache/activemq/demo/SimpleConsumer.java    |   129 -
 .../apache/activemq/demo/SimpleProducer.java    |   138 -
 .../org/apache/activemq/load/LoadClient.java    |   222 -
 .../apache/activemq/load/LoadController.java    |    98 -
 .../java/org/apache/activemq/load/LoadTest.java |   127 -
 .../activemq/perf/ConnectionChurnTest.java      |    77 -
 .../activemq/perf/InactiveDurableTopicTest.java |   171 -
 .../apache/activemq/perf/NetworkedSyncTest.java |   212 -
 .../activemq/perf/NumberOfDestinationsTest.java |    88 -
 .../org/apache/activemq/perf/PerfConsumer.java  |   139 -
 .../org/apache/activemq/perf/PerfProducer.java  |   125 -
 .../java/org/apache/activemq/perf/PerfRate.java |    78 -
 .../perf/SimpleDurableTopicNetworkTest.java     |    50 -
 .../activemq/perf/SimpleDurableTopicTest.java   |    63 -
 .../apache/activemq/perf/SimpleNetworkTest.java |    79 -
 .../perf/SimpleNonPersistentTopicTest.java      |    37 -
 .../apache/activemq/perf/SimpleTopicTest.java   |   181 -
 .../org/apache/activemq/perf/SlowConsumer.java  |    47 -
 .../activemq/perf/SlowConsumerTopicTest.java    |    56 -
 .../perf/SlowDurableConsumerTopicTest.java      |    38 -
 .../activemq/test/JmsResourceProvider.java      |   237 -
 .../test/JmsSendReceiveTestSupport.java         |   273 -
 .../activemq/test/JmsTopicSendReceiveTest.java  |   116 -
 ...veWithTwoConnectionsAndByteSelectorTest.java |    35 -
 ...sTopicSendReceiveWithTwoConnectionsTest.java |   129 -
 .../org/apache/activemq/test/TestSupport.java   |   261 -
 .../DelegatingTransactionalMessageListener.java |    71 -
 .../usecases/ChangeSentMessageTest.java         |    62 -
 .../usecases/ChangeSessionDeliveryModeTest.java |    72 -
 .../activemq/usecases/CompositeConsumeTest.java |    73 -
 .../activemq/usecases/CompositePublishTest.java |   145 -
 .../ConcurrentProducerDurableConsumerTest.java  |   413 -
 .../DiscriminatingConsumerLoadTest.java         |   322 -
 .../usecases/DispatchMultipleConsumersTest.java |   214 -
 .../DurableConsumerCloseAndReconnectTest.java   |   192 -
 .../usecases/DurableSubProcessTest.java         |   628 -
 .../usecases/DurableSubSelectorDelayTest.java   |   256 -
 .../DurableSubscriptionHangTestCase.java        |   119 -
 .../org/apache/activemq/usecases/MyObject.java  |    73 -
 .../NonBlockingConsumerRedeliveryTest.java      |   340 -
 .../ObjectMessageNotSerializableTest.java       |   241 -
 .../usecases/ProducerConsumerTestSupport.java   |    54 -
 ...ublishOnDurableTopicConsumedMessageTest.java |    27 -
 .../PublishOnTopicConsumedMessageTest.java      |    66 -
 .../SubscribeClosePublishThenConsumeTest.java   |   107 -
 .../apache/activemq/usecases/TestSupport.java   |   157 -
 .../activemq/usecases/TopicRedeliverTest.java   |   300 -
 .../usecases/TransactionRollbackOrderTest.java  |   161 -
 .../activemq/usecases/TransactionTest.java      |   120 -
 .../apache/activemq/util/ConsumerThread.java    |    86 -
 .../activemq/util/DefaultTestAppender.java      |    82 -
 .../org/apache/activemq/util/IdGenerator.java   |    29 -
 .../org/apache/activemq/util/MessageIdList.java |   267 -
 .../apache/activemq/util/ProducerThread.java    |    87 -
 .../org/apache/activemq/util/SimplePojo.java    |    77 -
 .../java/org/apache/activemq/util/Wait.java     |    40 -
 .../java/org/apache/hedwig/JmsTestBase.java     |    95 -
 .../org/apache/hedwig/jms/BasicJMSTest.java     |   337 -
 .../jms/selector/BasicSelectorGrammarTest.java  |   376 -
 .../selector/activemq/SelectorParserTest.java   |    46 -
 .../jms/selector/activemq/SelectorTest.java     |   399 -
 hedwig-client/conf/hw_client.conf               |    22 -
 hedwig-client/pom.xml                           |   142 -
 hedwig-client/src/main/cpp/Makefile.am          |    44 -
 hedwig-client/src/main/cpp/README               |    38 -
 hedwig-client/src/main/cpp/aminclude.am         |   186 -
 hedwig-client/src/main/cpp/c-doc.Doxyfile       |  1267 --
 hedwig-client/src/main/cpp/configure.ac         |    49 -
 hedwig-client/src/main/cpp/hedwig-0.1.pc.in     |    30 -
 .../src/main/cpp/inc/hedwig/callback.h          |    84 -
 hedwig-client/src/main/cpp/inc/hedwig/client.h  |    98 -
 .../src/main/cpp/inc/hedwig/exceptions.h        |    57 -
 hedwig-client/src/main/cpp/inc/hedwig/publish.h |    72 -
 .../src/main/cpp/inc/hedwig/subscribe.h         |    71 -
 hedwig-client/src/main/cpp/lib/Makefile.am      |    32 -
 hedwig-client/src/main/cpp/lib/channel.cpp      |   801 -
 hedwig-client/src/main/cpp/lib/channel.h        |   438 -
 hedwig-client/src/main/cpp/lib/client.cpp       |    66 -
 hedwig-client/src/main/cpp/lib/clientimpl.cpp   |   738 -
 hedwig-client/src/main/cpp/lib/clientimpl.h     |   493 -
 hedwig-client/src/main/cpp/lib/data.cpp         |   277 -
 hedwig-client/src/main/cpp/lib/data.h           |   131 -
 .../src/main/cpp/lib/eventdispatcher.cpp        |   131 -
 .../src/main/cpp/lib/eventdispatcher.h          |    87 -
 hedwig-client/src/main/cpp/lib/exceptions.cpp   |    31 -
 .../main/cpp/lib/filterablemessagehandler.cpp   |    45 -
 .../src/main/cpp/lib/filterablemessagehandler.h |    49 -
 .../main/cpp/lib/multiplexsubscriberimpl.cpp    |   566 -
 .../src/main/cpp/lib/multiplexsubscriberimpl.h  |   193 -
 .../src/main/cpp/lib/publisherimpl.cpp          |   134 -
 hedwig-client/src/main/cpp/lib/publisherimpl.h  |    66 -
 .../src/main/cpp/lib/simplesubscriberimpl.cpp   |   495 -
 .../src/main/cpp/lib/simplesubscriberimpl.h     |   196 -
 .../src/main/cpp/lib/subscriberimpl.cpp         |   687 -
 hedwig-client/src/main/cpp/lib/subscriberimpl.h |   338 -
 hedwig-client/src/main/cpp/lib/util.cpp         |   183 -
 hedwig-client/src/main/cpp/lib/util.h           |   128 -
 hedwig-client/src/main/cpp/m4/ax_boost_asio.m4  |   111 -
 hedwig-client/src/main/cpp/m4/ax_boost_base.m4  |   252 -
 .../src/main/cpp/m4/ax_boost_thread.m4          |   149 -
 hedwig-client/src/main/cpp/m4/ax_doxygen.m4     |   533 -
 hedwig-client/src/main/cpp/m4/gtest.m4          |    74 -
 hedwig-client/src/main/cpp/scripts/log4cxx.conf |    44 -
 .../src/main/cpp/scripts/network-delays.sh      |    68 -
 .../src/main/cpp/scripts/server-control.sh      |   170 -
 hedwig-client/src/main/cpp/scripts/tester.sh    |   175 -
 hedwig-client/src/main/cpp/test/Makefile.am     |    47 -
 hedwig-client/src/main/cpp/test/main.cpp        |    88 -
 .../src/main/cpp/test/messageboundtest.cpp      |   216 -
 .../src/main/cpp/test/messagefiltertest.cpp     |   248 -
 .../src/main/cpp/test/multiplextest.cpp         |   418 -
 hedwig-client/src/main/cpp/test/publishtest.cpp |   318 -
 hedwig-client/src/main/cpp/test/pubsubtest.cpp  |   735 -
 .../src/main/cpp/test/subscribetest.cpp         |   253 -
 hedwig-client/src/main/cpp/test/test.sh         |    21 -
 .../src/main/cpp/test/throttledeliverytest.cpp  |   159 -
 hedwig-client/src/main/cpp/test/util.h          |   201 -
 hedwig-client/src/main/cpp/test/utiltest.cpp    |    74 -
 .../org/apache/hedwig/client/HedwigClient.java  |    72 -
 .../org/apache/hedwig/client/api/Client.java    |    42 -
 .../hedwig/client/api/MessageHandler.java       |    48 -
 .../org/apache/hedwig/client/api/Publisher.java |    89 -
 .../apache/hedwig/client/api/Subscriber.java    |   380 -
 .../client/benchmark/BenchmarkPublisher.java    |   144 -
 .../client/benchmark/BenchmarkSubscriber.java   |   148 -
 .../hedwig/client/benchmark/BenchmarkUtils.java |   191 -
 .../client/benchmark/BenchmarkWorker.java       |    46 -
 .../client/benchmark/HedwigBenchmark.java       |   165 -
 .../hedwig/client/conf/ClientConfiguration.java |   171 -
 .../hedwig/client/data/MessageConsumeData.java  |    56 -
 .../apache/hedwig/client/data/PubSubData.java   |   179 -
 .../hedwig/client/data/TopicSubscriber.java     |    74 -
 .../AlreadyStartDeliveryException.java          |    36 -
 .../InvalidSubscriberIdException.java           |    37 -
 .../exceptions/NoResponseHandlerException.java  |    34 -
 .../client/exceptions/ResubscribeException.java |    34 -
 .../exceptions/ServerRedirectLoopException.java |    38 -
 .../TooManyServerRedirectsException.java        |    39 -
 .../handlers/AbstractResponseHandler.java       |   156 -
 .../CloseSubscriptionResponseHandler.java       |    78 -
 .../client/handlers/MessageConsumeCallback.java |   117 -
 .../hedwig/client/handlers/PubSubCallback.java  |    94 -
 .../client/handlers/PublishResponseHandler.java |    69 -
 .../handlers/SubscribeResponseHandler.java      |   180 -
 .../handlers/UnsubscribeResponseHandler.java    |    80 -
 .../hedwig/client/netty/CleanupChannelMap.java  |   183 -
 .../client/netty/FilterableMessageHandler.java  |    70 -
 .../apache/hedwig/client/netty/HChannel.java    |    54 -
 .../hedwig/client/netty/HChannelManager.java    |   160 -
 .../hedwig/client/netty/HedwigClientImpl.java   |   128 -
 .../hedwig/client/netty/HedwigPublisher.java    |   151 -
 .../hedwig/client/netty/HedwigSubscriber.java   |   422 -
 .../apache/hedwig/client/netty/NetUtils.java    |   221 -
 .../client/netty/SubscriptionEventEmitter.java  |    50 -
 .../client/netty/VoidCallbackAdapter.java       |    42 -
 .../netty/impl/AbstractHChannelManager.java     |   622 -
 .../impl/AbstractSubscribeResponseHandler.java  |   365 -
 .../client/netty/impl/ActiveSubscriber.java     |   382 -
 .../impl/ClientChannelPipelineFactory.java      |    72 -
 .../client/netty/impl/DefaultServerChannel.java |    92 -
 .../client/netty/impl/HChannelHandler.java      |   280 -
 .../hedwig/client/netty/impl/HChannelImpl.java  |   371 -
 .../NonSubscriptionChannelPipelineFactory.java  |    47 -
 .../client/netty/impl/ResubscribeCallback.java  |   108 -
 .../hedwig/client/netty/impl/WriteCallback.java |   111 -
 .../multiplex/MultiplexHChannelManager.java     |   314 -
 .../MultiplexSubscribeResponseHandler.java      |   129 -
 ...iplexSubscriptionChannelPipelineFactory.java |    49 -
 .../impl/simple/SimpleHChannelManager.java      |   358 -
 .../simple/SimpleSubscribeResponseHandler.java  |   273 -
 ...impleSubscriptionChannelPipelineFactory.java |    47 -
 .../hedwig/client/netty/package-info.java       |    89 -
 .../client/ssl/SslClientContextFactory.java     |    41 -
 .../hedwig/client/ssl/SslContextFactory.java    |    66 -
 .../hedwig/conf/AbstractConfiguration.java      |    63 -
 .../hedwig/filter/ClientMessageFilter.java      |    24 -
 .../apache/hedwig/filter/MessageFilterBase.java |    50 -
 .../apache/hedwig/filter/PipelineFilter.java    |    72 -
 .../hedwig/filter/ServerMessageFilter.java      |    47 -
 .../java/org/apache/hedwig/util/Callback.java   |    47 -
 .../org/apache/hedwig/util/CallbackUtils.java   |   183 -
 .../apache/hedwig/util/ConcurrencyUtils.java    |    49 -
 .../java/org/apache/hedwig/util/Either.java     |    50 -
 .../java/org/apache/hedwig/util/FileUtils.java  |    98 -
 .../apache/hedwig/util/HedwigSocketAddress.java |   143 -
 .../java/org/apache/hedwig/util/Option.java     |    43 -
 .../main/java/org/apache/hedwig/util/Pair.java  |    42 -
 .../java/org/apache/hedwig/util/PathUtils.java  |    56 -
 .../hedwig/util/SubscriptionListener.java       |    44 -
 .../java/org/apache/hedwig/util/VarArgs.java    |    26 -
 .../org/apache/hedwig/util/TestFileUtils.java   |    41 -
 .../hedwig/util/TestHedwigSocketAddress.java    |   104 -
 .../org/apache/hedwig/util/TestPathUtils.java   |    54 -
 hedwig-protocol/pom.xml                         |   116 -
 .../hedwig/exceptions/PubSubException.java      |   254 -
 .../apache/hedwig/protocol/PubSubProtocol.java  | 16883 -----------------
 .../apache/hedwig/protoextensions/MapUtils.java |    74 -
 .../hedwig/protoextensions/MessageIdUtils.java  |   153 -
 .../protoextensions/PubSubResponseUtils.java    |    68 -
 .../protoextensions/SubscriptionStateUtils.java |   100 -
 .../src/main/protobuf/PubSubProtocol.proto      |   313 -
 .../src/main/resources/findbugsExclude.xml      |    23 -
 hedwig-server/bin/hedwig                        |   205 -
 hedwig-server/bin/hedwig-daemon.sh              |   163 -
 hedwig-server/conf/hw_region_client.conf        |    42 -
 hedwig-server/conf/hw_server.conf               |   168 -
 hedwig-server/conf/hwenv.sh                     |    56 -
 hedwig-server/conf/log4j.properties             |    78 -
 hedwig-server/pom.xml                           |   294 -
 .../org/apache/hedwig/admin/HedwigAdmin.java    |   547 -
 .../hedwig/admin/console/HedwigCommands.java    |   437 -
 .../hedwig/admin/console/HedwigConsole.java     |  1038 -
 .../admin/console/JLineHedwigCompletor.java     |   104 -
 .../apache/hedwig/admin/console/ReadTopic.java  |   332 -
 .../apache/hedwig/data/MessageFormatter.java    |   123 -
 .../server/benchmark/AbstractBenchmark.java     |   106 -
 .../server/benchmark/BookieBenchmark.java       |   107 -
 .../server/benchmark/BookkeeperBenchmark.java   |    94 -
 .../hedwig/server/benchmark/FakeBookie.java     |   101 -
 .../server/common/ByteStringInterner.java       |    38 -
 .../server/common/ServerConfiguration.java      |   666 -
 .../common/TerminateJVMExceptionHandler.java    |    32 -
 .../hedwig/server/common/TopicOpQueuer.java     |   111 -
 .../hedwig/server/common/UnexpectedError.java   |    35 -
 .../hedwig/server/delivery/ChannelEndPoint.java |    90 -
 .../server/delivery/DeliveryCallback.java       |    27 -
 .../server/delivery/DeliveryEndPoint.java       |    28 -
 .../hedwig/server/delivery/DeliveryManager.java |    92 -
 .../server/delivery/FIFODeliveryManager.java    |   978 -
 .../hedwig/server/handlers/BaseHandler.java     |    67 -
 .../handlers/ChannelDisconnectListener.java     |    29 -
 .../handlers/CloseSubscriptionHandler.java      |   105 -
 .../hedwig/server/handlers/ConsumeHandler.java  |    72 -
 .../apache/hedwig/server/handlers/Handler.java  |    37 -
 .../server/handlers/NettyHandlerBean.java       |    47 -
 .../server/handlers/NettyHandlerMXBean.java     |    31 -
 .../hedwig/server/handlers/PublishHandler.java  |    90 -
 .../server/handlers/SubscribeHandler.java       |   221 -
 .../handlers/SubscriptionChannelManager.java    |   213 -
 .../server/handlers/UnsubscribeHandler.java     |   105 -
 .../hedwig/server/jmx/HedwigJMXService.java     |    37 -
 .../hedwig/server/jmx/HedwigMBeanInfo.java      |    27 -
 .../hedwig/server/jmx/HedwigMBeanRegistry.java  |    48 -
 .../hedwig/server/meta/FactoryLayout.java       |   167 -
 .../server/meta/MetadataManagerFactory.java     |   213 -
 .../server/meta/MsMetadataManagerFactory.java   |   867 -
 .../server/meta/SubscriptionDataManager.java    |   158 -
 .../server/meta/TopicOwnershipManager.java      |    93 -
 .../server/meta/TopicPersistenceManager.java    |    96 -
 .../server/meta/ZkMetadataManagerFactory.java   |   840 -
 .../hedwig/server/netty/PubSubServer.java       |   535 -
 .../hedwig/server/netty/PubSubServerBean.java   |    83 -
 .../hedwig/server/netty/PubSubServerMXBean.java |    63 -
 .../netty/PubSubServerPipelineFactory.java      |    76 -
 .../apache/hedwig/server/netty/ServerStats.java |   202 -
 .../hedwig/server/netty/UmbrellaHandler.java    |   155 -
 .../BookkeeperPersistenceManager.java           |  1263 --
 .../hedwig/server/persistence/CacheKey.java     |    74 -
 .../hedwig/server/persistence/CacheValue.java   |   101 -
 .../server/persistence/CancelScanRequest.java   |    27 -
 .../hedwig/server/persistence/Factory.java      |    22 -
 .../persistence/LocalDBPersistenceManager.java  |   491 -
 .../hedwig/server/persistence/MapMethods.java   |    62 -
 .../server/persistence/PersistRequest.java      |    59 -
 .../server/persistence/PersistenceManager.java  |    99 -
 .../PersistenceManagerWithRangeScan.java        |    27 -
 .../server/persistence/RangeScanRequest.java    |    77 -
 .../server/persistence/ReadAheadCache.java      |   865 -
 .../server/persistence/ReadAheadCacheBean.java  |    64 -
 .../persistence/ReadAheadCacheMXBean.java       |    45 -
 .../hedwig/server/persistence/ScanCallback.java |    63 -
 .../persistence/ScanCallbackWithContext.java    |    54 -
 .../hedwig/server/persistence/ScanRequest.java  |    64 -
 .../hedwig/server/proxy/ChannelTracker.java     |   132 -
 .../apache/hedwig/server/proxy/HedwigProxy.java |   182 -
 .../proxy/ProxyCloseSubscriptionHandler.java    |    70 -
 .../hedwig/server/proxy/ProxyConfiguration.java |    36 -
 .../server/proxy/ProxyConsumeHandler.java       |    58 -
 .../hedwig/server/proxy/ProxyPublishHander.java |    62 -
 .../server/proxy/ProxyStartDeliveryHandler.java |   132 -
 .../server/proxy/ProxyStopDeliveryHandler.java  |    74 -
 .../server/proxy/ProxySubscribeHandler.java     |    86 -
 .../server/proxy/ProxyUnsubscribeHandler.java   |    74 -
 .../hedwig/server/regions/HedwigHubClient.java  |    48 -
 .../server/regions/HedwigHubClientFactory.java  |    74 -
 .../server/regions/HedwigHubSubscriber.java     |    86 -
 .../hedwig/server/regions/RegionManager.java    |   355 -
 .../server/ssl/SslServerContextFactory.java     |    53 -
 .../AbstractSubscriptionManager.java            |   798 -
 .../subscriptions/AllToAllTopologyFilter.java   |    75 -
 .../InMemorySubscriptionManager.java            |   128 -
 .../InMemorySubscriptionState.java              |   198 -
 .../subscriptions/MMSubscriptionManager.java    |   138 -
 .../SubscriptionEventListener.java              |    57 -
 .../subscriptions/SubscriptionManager.java      |   123 -
 .../server/topics/AbstractTopicManager.java     |   314 -
 .../apache/hedwig/server/topics/HubInfo.java    |   162 -
 .../apache/hedwig/server/topics/HubLoad.java    |   137 -
 .../hedwig/server/topics/HubServerManager.java  |   124 -
 .../hedwig/server/topics/MMTopicManager.java    |   359 -
 .../server/topics/TopicBasedLoadShedder.java    |   151 -
 .../hedwig/server/topics/TopicManager.java      |   107 -
 .../topics/TopicOwnershipChangeListener.java    |    28 -
 .../topics/TrivialOwnAllTopicManager.java       |    58 -
 .../server/topics/ZkHubServerManager.java       |   470 -
 .../hedwig/server/topics/ZkTopicManager.java    |   345 -
 .../hedwig/zookeeper/SafeAsynBKCallback.java    |   104 -
 .../hedwig/zookeeper/SafeAsyncCallback.java     |    35 -
 .../hedwig/zookeeper/SafeAsyncZKCallback.java   |    98 -
 .../org/apache/hedwig/zookeeper/ZkUtils.java    |   117 -
 .../src/main/resources/LICENSE.bin.txt          |   302 -
 hedwig-server/src/main/resources/NOTICE.bin.txt |    40 -
 .../src/main/resources/findbugsExclude.xml      |    25 -
 hedwig-server/src/main/resources/p12.pass       |     1 -
 hedwig-server/src/main/resources/server.p12     |   Bin 3925 -> 0 bytes
 .../java/org/apache/hedwig/HelperMethods.java   |    58 -
 .../java/org/apache/hedwig/StubCallback.java    |    51 -
 .../org/apache/hedwig/StubScanCallback.java     |    57 -
 .../apache/hedwig/client/TestPubSubClient.java  |   708 -
 .../hedwig/client/TestSubAfterCloseSub.java     |   209 -
 .../hedwig/client/netty/TestMultiplexing.java   |   439 -
 .../apache/hedwig/server/HedwigHubTestBase.java |   192 -
 .../hedwig/server/HedwigRegionTestBase.java     |   282 -
 .../hedwig/server/LoggingExceptionHandler.java  |    35 -
 .../server/PubSubServerStandAloneTestBase.java  |    98 -
 .../hedwig/server/TestBackwardCompat.java       |  1320 --
 .../hedwig/server/TestPubSubServerStartup.java  |   138 -
 .../server/delivery/StubDeliveryManager.java    |    90 -
 .../delivery/TestFIFODeliveryManager.java       |   298 -
 .../server/delivery/TestThrottlingDelivery.java |   375 -
 .../hedwig/server/filter/TestMessageFilter.java |   415 -
 .../hedwig/server/handlers/TestBaseHandler.java |   116 -
 .../server/handlers/TestSubUnsubHandler.java    |   178 -
 .../server/integration/TestHedwigHub.java       |   777 -
 .../server/integration/TestHedwigHubProxy.java  |    36 -
 .../integration/TestHedwigHubRegular.java       |    36 -
 .../server/integration/TestHedwigHubSSL.java    |    36 -
 .../server/integration/TestHedwigRegion.java    |   304 -
 .../meta/MetadataManagerFactoryTestCase.java    |    78 -
 .../hedwig/server/meta/TestFactoryLayout.java   |    83 -
 .../hedwig/server/meta/TestMetadataManager.java |   365 -
 .../server/meta/TestMetadataManagerFactory.java |   299 -
 .../hedwig/server/netty/TestPubSubServer.java   |   265 -
 .../hedwig/server/netty/TestServerStats.java    |    41 -
 .../server/netty/WriteRecordingChannel.java     |   175 -
 .../server/persistence/BookKeeperTestBase.java  |   267 -
 .../MessageBoundedPersistenceTest.java          |   288 -
 .../persistence/StubPersistenceManager.java     |   137 -
 .../server/persistence/StubScanCallback.java    |    48 -
 .../TestBookKeeperPersistenceManager.java       |   798 -
 ...estBookKeeperPersistenceManagerBlackBox.java |    79 -
 ...estBookkeeperPersistenceManagerWhiteBox.java |   355 -
 .../hedwig/server/persistence/TestDeadlock.java |   276 -
 .../TestLocalDBPersistenceManagerBlackBox.java  |    53 -
 .../TestPersistenceManagerBlackBox.java         |   305 -
 .../persistence/TestReadAheadCacheBlackBox.java |    57 -
 .../persistence/TestReadAheadCacheWhiteBox.java |   302 -
 .../subscriptions/StubSubscriptionManager.java  |    55 -
 .../TestMMSubscriptionManager.java              |   214 -
 .../TestUpdateSubscriptionState.java            |   250 -
 .../hedwig/server/topics/StubTopicManager.java  |    64 -
 .../topics/TestConcurrentTopicAcquisition.java  |   208 -
 .../hedwig/server/topics/TestHubInfo.java       |    62 -
 .../hedwig/server/topics/TestHubLoad.java       |    60 -
 .../server/topics/TestMMTopicManager.java       |   354 -
 .../topics/TestTopicBasedLoadShedder.java       |   194 -
 .../server/topics/TestZkTopicManager.java       |   376 -
 .../apache/hedwig/zookeeper/TestZkUtils.java    |    47 -
 .../hedwig/zookeeper/ZooKeeperTestBase.java     |    94 -
 .../src/test/resources/log4j.properties         |    72 -
 pom.xml                                         |    11 +-
 488 files changed, 11 insertions(+), 104529 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/README
----------------------------------------------------------------------
diff --git a/README b/README
index 33f7540..654b370 100644
--- a/README
+++ b/README
@@ -6,7 +6,6 @@ Requirements:
 * Unix System
 * JDK 1.6
 * Maven 3.0
-* Autotools (if compiling native hedwig client)
 * Internet connection for first build (to fetch all dependencies)
 
 -------------------------------------------------------------------------------
@@ -16,19 +15,11 @@ The BookKeeper project contains:
  - bookkeeper-benchmark         (Benchmark suite for testing BookKeeper performance)
  - bookkeeper-stats             (BookKeeper stats library)
  - bookkeeper-stats-providers   (BookKeeper stats providers)
- - hedwig-protocol              (Hedwig network protocol)
- - hedwig-server                (Hedwig server)
- - hedwig-client                (Hedwig client library)
- - hedwig-client-jms            (Hedwig client jms library)
 
 BookKeeper is a system to reliably log streams of records. It is designed to 
 store  write ahead logs, such as those found in database or database like 
 applications.
 
-Hedwig is a publish-subscribe system designed to carry large amounts of data 
-across the internet in a guaranteed-delivery fashion from those who produce 
-it (publishers) to those who are interested in it (subscribers).
-
 --------------------------------------------------------------------------------
 How do I build?
 
@@ -59,9 +50,10 @@ How do I build?
 --------------------------------------------------------------------------------
 How do I run the services?
 
- Running a Hedwig service requires a running BookKeeper service, which in turn
- requires a running ZooKeeper service (see http://zookeeper.apache.org). To 
- start a bookkeeper service quickly for testing, run:
+ Running BookKeeper service, requires a running ZooKeeper service 
+ (see http://zookeeper.apache.org). 
+
+ To start a bookkeeper service quickly for testing, run:
    
    $ bookkeeper-server/bin/bookkeeper localbookie 10
 
@@ -74,15 +66,6 @@ How do I run the services?
 
    $ bookkeeper-server/bin/bookkeeper bookie
 
- Once you have at least 3 bookies runnings, you can start some Hedwig hubs. A 
- hub is a machines which is responsible for a set of topics in the pubsub 
- system. The service automatically distributes the topics among the hubs. 
- To start a hedwig hub:
-
-   $ hedwig-server/bin/hedwig server
-
  You can get more help on using these commands by running:
 
    $ bookkeeper-server/bin/bookkeeper help
-       and
-   $ hedwig-server/bin/hedwig help

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/bookkeeper-server/conf/log4j.properties
----------------------------------------------------------------------
diff --git a/bookkeeper-server/conf/log4j.properties b/bookkeeper-server/conf/log4j.properties
index 1dadb3d..b0dd95f 100644
--- a/bookkeeper-server/conf/log4j.properties
+++ b/bookkeeper-server/conf/log4j.properties
@@ -19,10 +19,6 @@
 #
 #
 
-#
-# Hedwig Logging Configuration
-#
-
 # Format is "<default threshold> (, <appender>)+
 
 # DEFAULT: console appender only

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/BookieSocketAddress.java
----------------------------------------------------------------------
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/BookieSocketAddress.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/BookieSocketAddress.java
index 7877333..b0d0327 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/BookieSocketAddress.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/BookieSocketAddress.java
@@ -83,7 +83,7 @@ public class BookieSocketAddress {
         return sb.toString();
     }
 
-    // Implement an equals method comparing two HedwigSocketAddress objects.
+    // Implement an equals method comparing two BookiSocketAddress objects.
     @Override
     public boolean equals(Object obj) {
         if (!(obj instanceof BookieSocketAddress))

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerCloseTest.java
----------------------------------------------------------------------
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerCloseTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerCloseTest.java
index 6655e9e..a7bcf77 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerCloseTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerCloseTest.java
@@ -174,8 +174,7 @@ public class LedgerCloseTest extends BookKeeperClusterTestCase {
         addDoneLatch.countDown();
         // wait until entries failed due to UnauthorizedAccessException
         failedLatch.await();
-        // simulate the ownership of this ledger is transfer to another host (which is actually
-        // what we did in Hedwig).
+        // simulate the ownership of this ledger is transfer to another host
         LOG.info("Recover ledger {}.", lh.getId());
         ClientConfiguration newConf = new ClientConfiguration();
         newConf.addConfiguration(baseClientConf);

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/compat-deps/hedwig-server-compat-4.0.0/pom.xml
----------------------------------------------------------------------
diff --git a/compat-deps/hedwig-server-compat-4.0.0/pom.xml b/compat-deps/hedwig-server-compat-4.0.0/pom.xml
deleted file mode 100644
index 4e789d7..0000000
--- a/compat-deps/hedwig-server-compat-4.0.0/pom.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>compat-deps</artifactId>
-    <groupId>org.apache.bookkeeper</groupId>
-    <version>4.4.0-SNAPSHOT</version>
-  </parent>
-  <groupId>org.apache.bookkeeper</groupId>
-  <artifactId>hedwig-server-compat400</artifactId>
-  <version>4.0.0</version>
-  <name>hedwig-server-compat400</name>
-  <url>http://maven.apache.org</url>
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-  </properties>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.bookkeeper</groupId>
-      <artifactId>hedwig-server</artifactId>
-      <version>4.0.0</version>
-    </dependency>
-  </dependencies>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-        <version>1.5</version>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-            <configuration>
-              <createDependencyReducedPom>false</createDependencyReducedPom>
-              <artifactSet>
-                <includes>
-                  <include>org.apache.*:*</include>
-                  <include>org.jboss.*:*</include>
-                  <include>commons-*:*</include>
-                </includes>
-                <excludes>
-                  <exclude>commons-beanutils*:commons-beanutils*</exclude>
-                </excludes>
-              </artifactSet>
-              <relocations>
-                <relocation>
-                  <pattern>org.apache.commons</pattern>
-                  <shadedPattern>org.apache.hw_v4_0_0.commons</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.bookkeeper</pattern>
-                  <shadedPattern>org.apache.hw_v4_0_0.bookkeeper</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.zookeeper</pattern>
-                  <shadedPattern>org.apache.hw_v4_0_0.zookkeeper</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.hedwig</pattern>
-                  <shadedPattern>org.apache.hw_v4_0_0.hedwig</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.jute</pattern>
-                  <shadedPattern>org.apache.hw_v4_0_0.jute</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.jboss</pattern>
-                  <shadedPattern>org.jboss.hw_v4_0_0</shadedPattern>
-                </relocation>
-              </relocations>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/compat-deps/hedwig-server-compat-4.1.0/pom.xml
----------------------------------------------------------------------
diff --git a/compat-deps/hedwig-server-compat-4.1.0/pom.xml b/compat-deps/hedwig-server-compat-4.1.0/pom.xml
deleted file mode 100644
index f6f6630..0000000
--- a/compat-deps/hedwig-server-compat-4.1.0/pom.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>compat-deps</artifactId>
-    <groupId>org.apache.bookkeeper</groupId>
-    <version>4.4.0-SNAPSHOT</version>
-  </parent>
-  <groupId>org.apache.bookkeeper</groupId>
-  <artifactId>hedwig-server-compat410</artifactId>
-  <version>4.1.0</version>
-  <name>hedwig-server-compat410</name>
-  <url>http://maven.apache.org</url>
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-  </properties>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.bookkeeper</groupId>
-      <artifactId>hedwig-server</artifactId>
-      <version>4.1.0</version>
-    </dependency>
-  </dependencies>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-        <version>1.5</version>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-            <configuration>
-              <createDependencyReducedPom>false</createDependencyReducedPom>
-              <artifactSet>
-                <includes>
-                  <include>org.apache.*:*</include>
-                  <include>org.jboss.*:*</include>
-                  <include>commons-*:*</include>
-                </includes>
-                <excludes>
-                  <exclude>commons-beanutils*:commons-beanutils*</exclude>
-                </excludes>
-              </artifactSet>
-              <relocations>
-                <relocation>
-                  <pattern>org.apache.commons</pattern>
-                  <shadedPattern>org.apache.hw_v4_1_0.commons</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.bookkeeper</pattern>
-                  <shadedPattern>org.apache.hw_v4_1_0.bookkeeper</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.zookeeper</pattern>
-                  <shadedPattern>org.apache.hw_v4_1_0.zookkeeper</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.hedwig</pattern>
-                  <shadedPattern>org.apache.hw_v4_1_0.hedwig</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.jute</pattern>
-                  <shadedPattern>org.apache.hw_v4_1_0.jute</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.jboss</pattern>
-                  <shadedPattern>org.jboss.hw_v4_1_0</shadedPattern>
-                </relocation>
-              </relocations>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/compat-deps/hedwig-server-compat-4.2.0/pom.xml
----------------------------------------------------------------------
diff --git a/compat-deps/hedwig-server-compat-4.2.0/pom.xml b/compat-deps/hedwig-server-compat-4.2.0/pom.xml
deleted file mode 100644
index 71f59ea..0000000
--- a/compat-deps/hedwig-server-compat-4.2.0/pom.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>compat-deps</artifactId>
-    <groupId>org.apache.bookkeeper</groupId>
-    <version>4.4.0-SNAPSHOT</version>
-  </parent>
-  <groupId>org.apache.bookkeeper</groupId>
-  <artifactId>hedwig-server-compat420</artifactId>
-  <version>4.2.0</version>
-  <name>hedwig-server-compat420</name>
-  <url>http://maven.apache.org</url>
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-  </properties>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.bookkeeper</groupId>
-      <artifactId>hedwig-server</artifactId>
-      <version>4.2.0</version>
-    </dependency>
-  </dependencies>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-        <version>1.5</version>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-            <configuration>
-              <createDependencyReducedPom>false</createDependencyReducedPom>
-              <artifactSet>
-                <includes>
-                  <include>org.apache.*:*</include>
-                  <include>org.jboss.*:*</include>
-                  <include>commons-*:*</include>
-                </includes>
-                <excludes>
-                  <exclude>commons-beanutils*:commons-beanutils*</exclude>
-                </excludes>
-              </artifactSet>
-              <relocations>
-                <relocation>
-                  <pattern>org.apache.commons</pattern>
-                  <shadedPattern>org.apache.hw_v4_2_0.commons</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.bookkeeper</pattern>
-                  <shadedPattern>org.apache.hw_v4_2_0.bookkeeper</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.zookeeper</pattern>
-                  <shadedPattern>org.apache.hw_v4_2_0.zookkeeper</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.hedwig</pattern>
-                  <shadedPattern>org.apache.hw_v4_2_0.hedwig</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.jute</pattern>
-                  <shadedPattern>org.apache.hw_v4_2_0.jute</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.jboss</pattern>
-                  <shadedPattern>org.jboss.hw_v4_2_0</shadedPattern>
-                </relocation>
-              </relocations>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/compat-deps/pom.xml
----------------------------------------------------------------------
diff --git a/compat-deps/pom.xml b/compat-deps/pom.xml
index ecee070..05d1373 100644
--- a/compat-deps/pom.xml
+++ b/compat-deps/pom.xml
@@ -34,9 +34,6 @@
     <module>bookkeeper-server-compat-4.0.0</module>
     <module>bookkeeper-server-compat-4.1.0</module>
     <module>bookkeeper-server-compat-4.2.0</module>
-    <module>hedwig-server-compat-4.0.0</module>
-    <module>hedwig-server-compat-4.1.0</module>
-    <module>hedwig-server-compat-4.2.0</module>
   </modules>
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/doc/hedwigBuild.textile
----------------------------------------------------------------------
diff --git a/doc/hedwigBuild.textile b/doc/hedwigBuild.textile
deleted file mode 100644
index bcecd99..0000000
--- a/doc/hedwigBuild.textile
+++ /dev/null
@@ -1,38 +0,0 @@
-Notice: Licensed under the Apache License, Version 2.0 (the "License");
-        you may not use this file except in compliance with the License. You may
-        obtain a copy of the License at "http://www.apache.org/licenses/LICENSE-2.0":http://www.apache.org/licenses/LICENSE-2.0.
-        .        
-        Unless required by applicable law or agreed to in writing,
-        software distributed under the License is distributed on an "AS IS"
-        BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-        implied. See the License for the specific language governing permissions
-        and limitations under the License.
-        .
-
-h1. Pre-requisites
-
-For the core itself:
-
-* JDK 6: "http://java.sun.com/":http://java.sun.com/. Ensure @$JAVA_HOME@ is correctly set.
-* Maven 2: "http://maven.apache.org/":http://maven.apache.org/.
-
-Hedwig has been tested on Windows XP, Linux 2.6, and OS X.
-
-h1. Command-Line Instructions
-
-From the top level bookkeeper directory, run @mvn package@. This will compile and package the jars necessary for running hedwig. 
-
-See the User's Guide for instructions on running and usage.
-
-h1. Eclipse Instructions
-
-To check out, build, and develop using Eclipse:
-
-# Install the Subclipse plugin. Update site: "http://subclipse.tigris.org/update_1.4.x":http://subclipse.tigris.org/update_1.4.x.
-# Install the Maven plugin. Update site: "http://m2eclipse.sonatype.org/update":http://m2eclipse.sonatype.org/update. From the list of packages available from this site, select everything under the &quot;Maven Integration&quot; category, and from the optional components select the ones with the word &quot;SCM&quot; in them.
-# Go to Preferences &gt; Team &gt; SVN. For the SVN interface, choose &quot;Pure Java&quot;.
-# Choose File &gt; New &gt; Project... &gt; Maven &gt; Checkout Maven Projects from SCM.
-# For the SCM URL type, choose SVN. For the URL, enter SVN URL. Maven will automatically create a top-level Eclipse project for each of the 4 Maven modules (recommended). If you want fewer top-level projects, uncheck the option of having a project for each module (under Advanced).
-
-You are now ready to run and debug the client and server code. See the User's Guide for instructions on running and usage.
-

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/doc/hedwigConsole.textile
----------------------------------------------------------------------
diff --git a/doc/hedwigConsole.textile b/doc/hedwigConsole.textile
deleted file mode 100644
index b37d20c..0000000
--- a/doc/hedwigConsole.textile
+++ /dev/null
@@ -1,187 +0,0 @@
-Title:        Hedwig Console
-Notice: Licensed under the Apache License, Version 2.0 (the "License");
-        you may not use this file except in compliance with the License. You may
-        obtain a copy of the License at "http://www.apache.org/licenses/LICENSE-2.0":http://www.apache.org/licenses/LICENSE-2.0.
-        .
-        .        
-        Unless required by applicable law or agreed to in writing,
-        software distributed under the License is distributed on an "AS IS"
-        BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-        implied. See the License for the specific language governing permissions
-        and limitations under the License.
-        .
-        .
-
-h1. Hedwig Console
-
-Apache Hedwig provides a console client, which allows users and administrators to interact with a hedwig cluster. 
-
-h2. Connecting to hedwig cluster
-
-Hedwig console client is shipped with hedwig server package.
-
-p. To start the console client:
-
- @hedwig-server/bin/hedwig console@
-
-p. By default, the console client connects to hub server on localhost. If you want the console client to connect to a different hub server, you can override following environment variables.
-
-| @HEDWIG_CONSOLE_SERVER_CONF@ | Path of a hub server configuration file. Override to make hedwig console client connect to correct zookeeper cluster. |
-| @HEDWIG_CONSOLE_CLIENT_CONF@ | Path of a hedwig client configuration file. Override to make hedwig console client communicate with correct hub servers. |
-
-p. Once connected, you should see something like:
-
-<pre>
-Connecting to zookeeper/bookkeeper using HedwigAdmin
-
-Connecting to default hub server localhost/127.0.0.1:4080
-Welcome to Hedwig!
-JLine support is enabled
-JLine history support is enabled
-[hedwig: (standalone) 16] 
-</pre>
-
-p. From the shell, type __help__ to get a list of commands that can be executed from the client:
-
-<pre>
-[hedwig: (standalone) 16] help
-HedwigConsole [options] [command] [args]
-
-Available commands:
-        pub
-        sub
-        closesub
-        unsub
-        rmsub
-        consume
-        consumeto
-        pubsub
-        show
-        describe
-        readtopic
-        set
-        history
-        redo
-        help
-        quit
-        exit
-
-Finished 0.0020 s.
-</pre>
-
-p. If you want to know detail usage for each command, type __help {command}__ in the shell. For example:
-
-<pre>
-[hedwig: (standalone) 17] help pub
-pub: Publish a message to a topic in Hedwig
-usage: pub {topic} {message}
-
-  {topic}   : topic name.
-              any printable string without spaces.
-  {message} : message body.
-              remaining arguments are used as message body to publish.
-
-Finished 0.0 s.
-</pre>
-
-h2. Commands
-
-All the available commands provided in hedwig console could be categorized into three groups. They are __interactive commands__, __admin commands__, __utility commands__.
-
-h3. Interactive Commands
-
-p. Interactive commands are used by users to communicate with a hedwig cluster. They are __pub__, __sub__, __closesub__, __unsub__, __consume__ and __consumeto__.
-
-p. These commands are quite simple and have same semantics as the API provided in hedwig client.
-
-h3.  Admin Commands
-
-p. Admin commands are used by administrators to operate or debug a hedwig cluster. They are __show__, __describe__, __pubsub__ and __readtopic__.
-
-p. __show__ is used to list all available hub servers or topics in the cluster.
-
-p. You could use __show__ to list hub servers to know how many hub servers are alive in the cluster.
-
-<pre>
-[hedwig: (standalone) 27] show hubs
-Available Hub Servers:
-        192.168.1.102:4080:9876 :       0
-Finished 0.0040 s.
-</pre>
-
-p. Also, you could use __show__ to list all topics. If you have a lot of topics on the clusters, this command will take a long time to run.
-
-<pre>
-[hedwig: (standalone) 28] show topics
-Topic List:
-[mytopic]
-Finished 0.0020 s.
-</pre>
-
-p. To see the details of a topic, run __describe__. This shows the metadata of a topic, including topic owner, persistence info, subscriptions info.
-
-<pre>
-[hedwig: (standalone) 43] describe topic mytopic
-===== Topic Information : mytopic =====
-
-Owner : 192.168.1.102:4080:9876
-
->>> Persistence Info <<<
-Ledger 3 [ 1 ~ 9 ]
-
->>> Subscription Info <<<
-Subscriber mysub : consumeSeqId: local:0
-
-Finished 0.011 s.
-</pre>
-
-p. When you are run the __describe__ command, you should keep in mind that __describe__ command reads the metadata from __ZooKeeper__ directly, so the subscription info might not be completely up to date due to the fact that hub servers update the subscription metadata lazily.
-
-p. The __readtopic__ command is useful to see which messages have not been consumed by the client.
-
-<pre>
-[hedwig: (standalone) 46] readtopic mytopic
-
->>>>> Ledger 3 [ 1 ~ 9] <<<<<
-
----------- MSGID=LOCAL(1) ----------
-MsgId:     LOCAL(1)
-SrcRegion: standalone
-Message:
-
-hello
-
----------- MSGID=LOCAL(2) ----------
-MsgId:     LOCAL(2)
-SrcRegion: standalone
-Message:
-
-hello 2
-
----------- MSGID=LOCAL(3) ----------
-MsgId:     LOCAL(3)
-SrcRegion: standalone
-Message:
-
-hello 3
-
-...
-</pre>
-
-p. __pubsub__ is another useful command for administrators. It can be used to test availability and functionality of a cluster. It generates a temporary subscriber id with the current timestamp, subscribes to the given topic using generated subscriber id, publishes a message to given topic and testes whether the subscriber received the message.
-
-<pre>
-[hedwig: (standalone) 48] pubsub testtopic testsub- 10 test message for availability
-Starting PUBSUB test ...
-Sub topic testtopic, subscriber id testsub--1338126964504
-Pub topic testtopic : test message for availability-1338126964504
-Received message : test message for availability-1338126964504
-PUBSUB SUCCESS. TIME: 377 MS
-Finished 0.388 s.
-</pre>
-
-h3. Utility Commands
-
-p. Utility Commands are __help__, __history__, __redo__, __quit__ and __exit__.
-
-p. __quit__ and __exit__ are used to exit console, while __history__ and __redo__ are used to manage the history of commands executed in the shell.

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/doc/hedwigDesign.textile
----------------------------------------------------------------------
diff --git a/doc/hedwigDesign.textile b/doc/hedwigDesign.textile
deleted file mode 100644
index e56c0d1..0000000
--- a/doc/hedwigDesign.textile
+++ /dev/null
@@ -1,72 +0,0 @@
-Notice: Licensed under the Apache License, Version 2.0 (the "License");
-        you may not use this file except in compliance with the License. You may
-        obtain a copy of the License at "http://www.apache.org/licenses/LICENSE-2.0":http://www.apache.org/licenses/LICENSE-2.0.
-        .        
-        Unless required by applicable law or agreed to in writing,
-        software distributed under the License is distributed on an "AS IS"
-        BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-        implied. See the License for the specific language governing permissions
-        and limitations under the License.
-        .
-
-h1. Style
-
-We have provided an Eclipse Formatter file @formatter.xml@ with all the formatting conventions currently used in the project. Highlights include no tabs, 4-space indentation, and 120-char width. Please respect this so as to reduce the amount of formatting-related noise produced in commits.
-
-h1. Static Analysis
-
-We would like to use static analysis tools PMD and FindBugs to maintain code quality. However, we have not yet arrived at a consensus on what rules to adhere to, and what to ignore.
-
-h1. Netty Notes
-
-The asynchronous network IO infrastructure that Hedwig uses is "Netty":http://www.jboss.org/netty. Here are some notes on Netty's concurrency architecture and its filter pipeline design.
-
-h2. Concurrency Architecture
-
-After calling @ServerBootstrap.bind()@, Netty starts a boss thread (@NioServerSocketPipelineSink.Boss@) that just accepts new connections and registers them with one of the workers from the @NioWorker@ pool in round-robin fashion (pool size defaults to CPU count). Each worker runs its own select loop over just the set of keys that have been registered with it. Workers start lazily on demand and run only so long as there are interested fd's/keys. All selected events are handled in the same thread and sent up the pipeline attached to the channel (this association is established by the boss as soon as a new connection is accepted).
-
-All workers, and the boss, run via the executor thread pool; hence, the executor must support at least two simultaneous threads.
-
-h2. Handler Pipeline
-
-A pipeline implements the intercepting filter pattern. A pipeline is a sequence of handlers. Whenever a packet is read from the wire, it travels up the stream, stopping at each handler that can handle upstream events. Vice-versa for writes. Between each filter, control flows back through the centralized pipeline, and a linked list of contexts keeps track of where we are in the pipeline (one context object per handler).
-
-
-h1. Pseudocode
-
-This summarizes the control flow through the system.
-
-h2. publish
-
-Need to document
-
-h2. subscribe
-
-Need to document
-
-h1. ReadAhead Cache
-
-The delivery manager class is responsible for pushing published messages from the hubs to the subscribers. The most common case is that all subscribers are connected and either caught up, or close to the tail end of the topic. In this case, we don't want the delivery manager to be polling bookkeeper for any newly arrived messages on the topic; new messages should just be pushed to the delivery manager. However, there is also the uncommon case when a subscriber is behind, and messages must be pulled from Bookkeeper.
-
-Since all publishes go through the hub, it is possible to cache the recently published messages in the hub, and then the delivery manager won't have to make the trip to bookkeeper to get the messages but instead get them from local process memory.
-
-These ideas of push, pull, and caching are unified in the following way: - A hub has a cache of messages
-
-* When the delivery manager wants to deliver a message, it asks the cache for it. There are 3 cases:
-* The message is available in the cache, in which case it is given to the delivery manager
-* The message is not present in the cache and the seq-id of the message is beyond the last message published on that topic (this happens if the subscriber is totally caught up for that topic). In this case, a stub is put in the cache in order to notify the delivery manager when that message does happen to be published.
-* The message is not in the cache but has been published to the topic. In this case, a stub is put in the cache, and a read is issued to bookkeeper.
-* Whenever a message is published, it is cached. If there is a stub already in the cache for that message, the delivery manager is notified.
-* Whenever a message is read from bookkeeper, it is cached. There must be a stub for that message (since reads to bookkeeper are issued only after putting a stub), so the delivery manager is notified.
-* The cache does readahead, i.e., if a message requested by the delivery manager is not in the cache, a stub is established not only for that message, but also for the next n messages where n is configurable (default 10). On a cache hit, we look ahead n/2 messages, and if that message is not present, we establish another n/2 stubs. In short, we always ensure that the next n stubs are always established.
-* Over time, the cache will grow in size. There are 2 pruning mechanisms:
-* Once all subscribers have consumed up to a particular seq-id, they notify the cache, and all messages up to that seq-id are pruned from the cache.
-* If the above pruning is not working (e.g., because some subscribers are down), the cache will eventually hit its size limit which is configurable
- (default, half of maximum jvm heap size). At this point, messages are just pruned in FIFO order. We use the size of the blobs in the message for estimating the cache size. The assumption is that that size will dominate over fixed, object-level size overheads.
-* Stubs are not purged because according to the above simplification, they are of 0 size.
-
-h1. Scalability Bottlenecks Down the Road
-
-* Currently each topic subscription is served on a different channel. The number of channels will become a bottleneck at higher channels. We should switch to an architecture, where multiple topic subscriptions between the same client, hub pair should be served on the same channel. We can have commands to start, stop subscriptions sent all the way to the server (right now these are local).
-* Publishes for a topic are serialized through a hub, to get ordering guarantees. Currently, all subscriptions to that topic are served from the same hub. If we start having large number of subscribers to heavy-volume topics, the outbound bandwidth at the hub, or the CPU at that hub might become the bottleneck. In that case, we can setup other regions through which the messages are routed (this hierarchical scheme) reduces bandwidth requirements at any single node. It should be possible to do this entirely through configuration.
-

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/doc/hedwigDocs.textile
----------------------------------------------------------------------
diff --git a/doc/hedwigDocs.textile b/doc/hedwigDocs.textile
deleted file mode 100644
index 06075c0..0000000
--- a/doc/hedwigDocs.textile
+++ /dev/null
@@ -1,31 +0,0 @@
-Title:     Hedwig Documentation
-Notice:    Licensed to the Apache Software Foundation (ASF) under one
-           or more contributor license agreements.  See the NOTICE file
-           distributed with this work for additional information
-           regarding copyright ownership.  The ASF licenses this file
-           to you under the Apache License, Version 2.0 (the
-           "License"); you may not use this file except in compliance
-           with the License.  You may obtain a copy of the License at
-           .
-             http://www.apache.org/licenses/LICENSE-2.0
-           .
-           Unless required by applicable law or agreed to in writing,
-           software distributed under the License is distributed on an
-           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-           KIND, either express or implied.  See the License for the
-           specific language governing permissions and limitations
-           under the License.
-
-h1. Apache Hedwig documentation
-
-* "Building Hedwig, or how to set up Hedwig":./hedwigBuild.html
-* "User's Guide, or how to program against the Hedwig API and how to run it":./hedwigUser.html
-* "Developer's Guide, or Hedwig internals and hacking details":./hedwigDesign.html
-* "Configuration parameters":./hedwigParams.html
-* "Message Filtering":./hedwigMessageFilter.html
-* "Hedwig Metadata Management":./hedwigMetadata.html
-
-h2. Hedwig Admin & Ops
-
-* "Hedwig Console":./hedwigConsole.html
-* "Hedwig JMX":./hedwigJMX.html

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/doc/hedwigJMX.textile
----------------------------------------------------------------------
diff --git a/doc/hedwigJMX.textile b/doc/hedwigJMX.textile
deleted file mode 100644
index 4c69499..0000000
--- a/doc/hedwigJMX.textile
+++ /dev/null
@@ -1,32 +0,0 @@
-Title:        Hedwig JMX
-Notice: Licensed under the Apache License, Version 2.0 (the "License");
-        you may not use this file except in compliance with the License. You may
-        obtain a copy of the License at "http://www.apache.org/licenses/LICENSE-2.0":http://www.apache.org/licenses/LICENSE-2.0.
-        .
-        .        
-        Unless required by applicable law or agreed to in writing,
-        software distributed under the License is distributed on an "AS IS"
-        BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-        implied. See the License for the specific language governing permissions
-        and limitations under the License.
-        .
-        .
-
-h1. JMX
-
-Apache Hedwig has extensive support for JMX, which allows viewing and managing a hedwig cluster.
-
-This document assumes that you have basic knowledge of JMX. See "Sun JMX Technology":http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/ page to get started with JMX.
-
-See the "JMX Management Guide":http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html for details on setting up local and remote management of VM instances. By default the included __hedwig__ script supports only local management - review the linked document to enable support for remote management (beyond the scope of this document).
-
-__Hub Server__ is a JMX manageable server, which registers the proper MBeans during initialization to support JMX monitoring and management of the instance.
-
-h1. Hub Server MBean Reference
-
-This table details JMX for a hub server.
-
-| _.MBean | _.MBean Object Name | _.Description |
-| PubSubServer | PubSubServer | Represents a hub server. It is the root MBean for hub server, which includes statistics for a hub server. E.g. number packets sent/received/redirected, and statistics for pub/sub/unsub/consume operations. |
-| NettyHandlers | NettyHandler | Provide statistics for netty handlers. Currently it just returns number of subscription channels established to a hub server. |
-| ReadAheadCache | ReadAheadCache | Provide read ahead cache statistics. |

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/doc/hedwigMessageFilter.textile
----------------------------------------------------------------------
diff --git a/doc/hedwigMessageFilter.textile b/doc/hedwigMessageFilter.textile
deleted file mode 100644
index d5ca21f..0000000
--- a/doc/hedwigMessageFilter.textile
+++ /dev/null
@@ -1,76 +0,0 @@
-Title:        Hedwig Message Filter
-Notice: Licensed under the Apache License, Version 2.0 (the "License");
-        you may not use this file except in compliance with the License. You may
-        obtain a copy of the License at "http://www.apache.org/licenses/LICENSE-2.0":http://www.apache.org/licenses/LICENSE-2.0.
-        .
-        .
-        Unless required by applicable law or agreed to in writing,
-        software distributed under the License is distributed on an "AS IS"
-        BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-        implied. See the License for the specific language governing permissions
-        and limitations under the License.
-        .
-        .
-
-h1. Message Filter
-
-Apache Hedwig provides an efficient mechanism for supporting application-defined __message filtering__.
-
-h2. Message
-
-Most message-oriented middleware (MOM) products treat messages as lightweight entities that consist of a header and a payload. The header contains fields used for message routing and identification; the payload contains the application data being sent.
-
-Hedwig messages follow a similar template, being composed of following parts:
-
-* @Header@ - All messages support both system defined fields and application defined property values. Properties provide an efficient mechanism for supporting application-defined message filtering.
-* @Body@ - Hedwig considers the message body as a opaque binary blob.
-* @SrcRegion@ - Indicates where the message comes from.
-* @MessageSeqId@ - The unique message sequence id assigned by Hedwig.
-
-h3. Message Header Properties
-
-A __Message__ object contains a built-in facility for supporting application-defined property values. In effect, this provides a mechanism for adding application-specific header fields to a message.
-
-By using properties and  __message filters__, an application can have Hedwig select, or filter, messages on its behalf using application-specific criteria.
-
-Property names must be a __String__ and must not be null, while property values are binary blobs. The flexibility of binary blobs allows applications to define their own serialize/deserialize functions, allowing structured data to be stored in the message header.
-
-h2. Message Filter
-
-A __Message Filter__ allows an application to specify, via header properties, the messages it is interested in. Only messages which pass validation of a __Message Filter__, specified by a subscriber, are be delivered to the subscriber.
-
-A message filter could be run either on the __server side__ or on the __client side__. For both __server side__ and __client side__, a __Message Filter__ implementation needs to implement the following two interfaces:
-
-* @setSubscriptionPreferences(topic, subscriberId, preferences)@: The __subscription preferences__ of the subscriber will be passed to message filter when it was attached to its subscription either on the server-side or on the client-side.
-* @testMessage(message)@: Used to test whether a particular message passes the filter or not.
-
-The __subscription preferences__ are used to specify the messages that the user is interested in. The __message filter__ uses the __subscription preferences__ to decide which messages are passed to the user.
-
-Take a book store(using topic __BookStore__) as an example:
-
-# User A may only care about History books. He subscribes to __BookStore__ with his custom preferences : type="History".
-# User B may only care about Romance books. He subscribes to __BookStore__ with his custom preferences : type="Romance".
-# A new book arrives at the book store; a message is sent to __BookStore__ with type="History" in its header
-# The message is then delivered to __BookStore__'s subscribers.
-# Subscriber A filters the message by checking messages' header to accept those messages whose type is "History".
-# Subscriber B filters out the message, as the type does not match its preferences.
-
-h3. Client Message Filter.
-
-A __ClientMessageFilter__ runs on the client side. Each subscriber can write its own filter and pass it as a parameter when starting delivery ( __startDelivery(topic, subscriberId, messageHandler, messageFilter)__ ).
-
-h3. Server Message Filter.
-
-A __ServerMessageFilter__ runs on the server side (a hub server). A hub server instantiates a server message filter, by means of reflection, using the message filter class specified in the subscription preferences which are provided by the subscriber. Since __ServerMessageFilter__s run on the hub server, all filtered-out messages are never delivered to client, reducing unnecessary network traffic. Hedwig uses a implementation of __ServerMessageFilter__ to filter unnecessary message deliveries between regions.
-
-Since hub servers use reflection to instantiate a __ServerMessageFilter__, an implementation of __ServerMessageFilter__ needs to implement two additional methods:
-
-* @initialize(conf)@: Initialize the message filter before filtering messages.
-* @uninitialize()@: Uninitialize the message filter to release resources used by the message filter.
-
-For the hub server to load the message filter, the implementation class must be in the server's classpath at startup.
-
-h3. Which message filter should be used?
-
-It depends on application requirements. Using a __ServerMessageFilter__ will reduce network traffic by filtering unnecessary messages, but it would compete for resources on the hub server(CPU, memory, etc). Conversely, __ClientMessageFilter__s have the advantage of inducing no extra load on the hub server, but at the price of higher network utilization. A filter can be installed both at the server side and on the client; Hedwig does not restrict this.
-

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/9a8d62b1/doc/hedwigMetadata.textile
----------------------------------------------------------------------
diff --git a/doc/hedwigMetadata.textile b/doc/hedwigMetadata.textile
deleted file mode 100644
index 1add816..0000000
--- a/doc/hedwigMetadata.textile
+++ /dev/null
@@ -1,123 +0,0 @@
-Title:        Hedwig Metadata Management
-Notice: Licensed under the Apache License, Version 2.0 (the "License");
-        you may not use this file except in compliance with the License. You may
-        obtain a copy of the License at "http://www.apache.org/licenses/LICENSE-2.0":http://www.apache.org/licenses/LICENSE-2.0.
-        .
-        .
-        Unless required by applicable law or agreed to in writing,
-        software distributed under the License is distributed on an "AS IS"
-        BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-        implied. See the License for the specific language governing permissions
-        and limitations under the License.
-        .
-        .
-
-h1. Metadata Management
-
-There are two classes of metadata that need to be managed in Hedwig: one is the __list of available hubs__, which is used to track server availability (ZooKeeper is designed naturally for this); while the other is for data structures to track __topic states__ and __subscription states__. This second class can be handled by any key/value store which provides ah __CAS (Compare And Set)__ operation. The metadata in this class are:
-
-* @Topic Ownership@: tracks which hub server is assigned to serve requests for a specific topic.
-* @Topic Persistence Info@: records what __bookkeeper ledgers__ are used to store messages for a specific topic and their message id ranges.
-* @Subscription Data@: records the preferences and subscription state for a specific subscription (topic, subscriber).
-
-Each kind of metadata is handled by a specific metadata manager. They are __TopicOwnershipManager__, __TopicPersistenceManager__ and __SubscriptionDataManager__.
-
-h2. Topic Ownership Management
-
-There are two ways to management topic ownership. One is leveraging ZooKeeper's ephemeral znodes to record the topic's owner info as a child ephemeral znode under its topic znode. When a hub server, owning a specific topic, crashes, the ephemeral znode which signifies topic ownership will be deleted due to the loss of the zookeeper session. Other hubs can then be assigned the ownership of the topic. The other one is to leverage the __CAS__ operation provided by key/value stores to do leader election. __CAS__ doesn't require the underlying key/value store to provide functionality similar to ZooKeeper's ephemeral nodes. With __CAS__ it is possible to guarantee that only one hub server gains the ownership for a specific topic, which is more scalable and generic solution.
-
-The implementation of a __TopicOwnershipManager__ is required to implement following methods:
-
-<pre><code>
-
-public void readOwnerInfo(ByteString topic, Callback<Versioned<HubInfo>> callback, Object ctx);
-
-public void writeOwnerInfo(ByteString topic, HubInfo owner, Version version,
-                           Callback<Version> callback, Object ctx);
-
-public void deleteOwnerInfo(ByteString topic, Version version,
-                            Callback<Void> callback, Object ctx);
-
-</code></pre>
-
-* @readOwnerInfo@: Read the owner info from the underlying key/value store. The implementation should take the responsibility of deserializing the metadata into a __HubInfo__ object identifying a hub server. Also, its current __version__ needs to be returned for future updates. If there is no owner info found for a topic, null value is returned.
-
-* @writeOwnerInfo@: Write the owner info into the underlying key/value store with the given __version__. If the current __version__ in underlying key/value store doesn't equal to the provided __version__, the write should be rejected with __BadVersionException__. The new __version__ should be returned for a successful write. __NoTopicOwnerInfoException__ is returned if no owner info found for a topic.
-
-* @deleteOwnerInfo@: Delete the owner info from key/value store with the given __version__. The owner info should be removed if the current __version__ in key/value store is equal to the provided __version__. Otherwise, the deletion should be rejected with __BadVersionException__. __NoTopicOwnerInfoException__ is returned if no owner info is found for the topic.
-
-h2. Topic Persistence Info Management
-
-Similar as __TopicOwnershipManager__, an implementation of __TopicPersistenceManager__ is required to implement READ/WRITE/DELETE interfaces as below:
-
-<pre><code>
-public void readTopicPersistenceInfo(ByteString topic,
-                                     Callback<Versioned<LedgerRanges>> callback, Object ctx);
-
-public void writeTopicPersistenceInfo(ByteString topic, LedgerRanges ranges, Version version,
-                                      Callback<Version> callback, Object ctx);
-
-public void deleteTopicPersistenceInfo(ByteString topic, Version version,
-                                       Callback<Void> callback, Object ctx);
-</code></pre>
-
-* @readTopicPersistenceInfo@: Read the persistence info from the underlying key/value store. The implementation should take the responsibility of deserializing the metadata into a __LedgerRanges__ object includes the ledgers used to store messages. Also, its current __version__ needs to be returned for future updates. If there is no persistence info found for a topic, a null value is returned.
-
-* @writeTopicPersistenceInfo@: Write the persistence info into the underlying key/value store with the given __version__. If the current __version__ in the underlying key/value store doesn't equal the provided __version__, the write should be rejected with __BadVersionException__. The new __version__ should be returned on a successful write. __NoTopicPersistenceInfoException__ is returned if no persistence info is found for a topic.
-
-* @deleteTopicPersistenceInfo@: Delete the persistence info from the key/value store with the given __version__. The owner info should be removed if the current __version__ in the key/value store equals the provided __version__. Otherwise, the deletion should be rejected with __BadVersionException__. __NoTopicPersistenceInfoException__ is returned if no persistence info is found for a topic.
-
-h2. Subscription Data Management
-
-__SubscriptionDataManager__ has similar READ/CREATE/WRITE/DELETE interfaces as other managers. Besides that, the implementation needs to implement __READ SUBSCRIPTIONS__ interface, which is to fetch all the subscriptions for a given topic.
-
-<pre><code>
-public void createSubscriptionData(ByteString topic, ByteString subscriberId, SubscriptionData data,
-                                   Callback<Version> callback, Object ctx);
-
-public boolean isPartialUpdateSupported();
-
-public void updateSubscriptionData(ByteString topic, ByteString subscriberId, SubscriptionData dataToUpdate, 
-                                   Version version, Callback<Version> callback, Object ctx);
-
-public void replaceSubscriptionData(ByteString topic, ByteString subscriberId, SubscriptionData dataToReplace,
-                                    Version version, Callback<Version> callback, Object ctx);
-
-public void deleteSubscriptionData(ByteString topic, ByteString subscriberId, Version version,
-                                   Callback<Void> callback, Object ctx);
-
-public void readSubscriptionData(ByteString topic, ByteString subscriberId,
-                                 Callback<Versioned<SubscriptionData>> callback, Object ctx);
-
-public void readSubscriptions(ByteString topic, Callback<Map<ByteString, Versioned<SubscriptionData>>> cb,
-                              Object ctx);
-</code></pre>
-
-h3. Create/Update Subscriptions
-
-The metadata for a subscription includes two parts, one is preferences and the other one is subscription state. __SubscriptionPreferences__ tracks all the preferences for a subscriber (etc. Application could store its customized preferences for message filtering), while __SubscriptionState__ is used internally to track the message consumption state for a given subscriber. These two kinds of metadata are quite different: __SubscriptionPreferences__ is not updated
-frequently while __SubscriptionState__ is be updated frequently when messages are consumed. If the underlying key/value store supports independent field update for a given key (subscription), __SubscriptionPreferences__ and __SubscriptionState__ could be stored as two different fields for a given subscription. In this case __isPartialUpdateSupported__ should return true. Otherwise, __isPartialUpdateSupported__ should return false and the implementation should serialize/deserialize __SubscriptionData__ as an opaque blob.
-
-* @createSubscriptionData@: Create a subscription entry for a given topic. The initial __version__ would be returned for a success creation. __SubscriptionStateExistsException__ is returned if the subscription entry already exists.
-
-* @updateSubscriptionData/replaceSubscriptionData@: Update/replace the subscription data in the underlying key/value store with the given __version__. If the current __version__ in underlying key/value store doesn't equal to the provided __version__, the update should be rejected with __BadVersionException__. The new __version__ should be returned for a successful write. __NoSubscriptionStateException__ is returned if no subscription entry is found for a subscription (topic, subscriber).
-
-h3. Read Subscriptions
-
-* @readSubscriptionData@: Read the subscription data from the underlying key/value store. The implementation should take the responsibility of deserializing the metadata into a __SubscriptionData__ object including its preferences and subscription state. Also, its current __version__ needs to be returned for future updates. If there is no subscription data found for a subscription, a null value is returned.
-
-* @readSubscriptions@: Read all the subscription data from key/value store for a given topic. The implementation should take the responsibility of managing all subscription for a topic for efficient access.  An empty map is returned if there are no subscriptions found for a given topic.
-
-h3. Delete Subscription
-
-* @deleteSubscriptionData@: Delete the subscription data from the key/value store with given __version__ for a specific subscription (topic, subscriber). The subscription info should be removed if current __version__ in key/value store equals the provided __version__. Otherwise, the deletion should be rejected with __BadVersionException__. __NoSubscriptionStateException__ is returned if no subscription data is found for a subscription (topic, subscriber).
-
-h1. How to choose a key/value store for Hedwig.
-
-From the interface, several requirements needs to meet before picking up a key/value store for Hedwig:
-
-* @CAS@: The ability to do strict updates according to specific condition, i.e. a specific version (ZooKeeper) and same content (HBase).
-* @Optimized for Writes@: The metadata access pattern for Hedwig is read first and continuous updates.
-* @Optimized for retrieving all subscriptions for a topic@: Either hierarchical structures to maintain such relationships (ZooKeeper), or ordered key/value storage to cluster the subscription for a topic together, would provide efficient subscription data management.
-
-__ZooKeeper__ is the default implementation for Hedwig metadata management, which holds data in memory and provides filesystem-like namespace, meeting the above requirements. __ZooKeeper__ is suitable for most Hedwig usecases. However, if your application needs to manage millions of topics/subscriptions, a more scalable solution would be __HBase__, which also meet the above requirements.