merging #98 - ARTEMIS-163 Simplification of the native layer
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/8182f8bd Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/8182f8bd Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/8182f8bd Branch: refs/heads/master Commit: 8182f8bd2d1b7d9165fd300d37b4dca75194acc5 Parents: 661f695 6fe9e0e Author: Andy Taylor <[email protected]> Authored: Thu Jul 30 10:07:18 2015 +0100 Committer: Andy Taylor <[email protected]> Committed: Thu Jul 30 10:07:18 2015 +0100 ---------------------------------------------------------------------- .gitignore | 2 +- CMakeLists.txt | 18 + README.md | 2 +- .../activemq/artemis/cli/commands/Create.java | 90 +- .../cli/commands/tools/CompactJournal.java | 6 +- .../cli/commands/tools/DecodeJournal.java | 4 +- .../cli/commands/tools/EncodeJournal.java | 6 +- .../cli/commands/tools/XmlDataExporter.java | 6 +- .../cli/commands/util/SyncCalculation.java | 190 ++++ .../artemis/cli/commands/etc/broker.xml | 1 + .../commands/etc/journal-buffer-settings.txt | 8 + .../apache/activemq/cli/test/ArtemisTest.java | 23 +- .../activemq/cli/test/StreamClassPathTest.java | 1 + .../artemis/api/core/ActiveMQNativeIOError.java | 5 + .../journal/JMSJournalStorageManagerImpl.java | 6 +- .../artemis/core/asyncio/AIOCallback.java | 33 - .../artemis/core/asyncio/AsynchronousFile.java | 58 - .../artemis/core/asyncio/BufferCallback.java | 27 - .../core/asyncio/IOExceptionListener.java | 22 - .../core/asyncio/impl/ActiveMQFileLock.java | 47 - .../core/asyncio/impl/AsynchronousFileImpl.java | 822 -------------- .../artemis/core/io/AbstractSequentialFile.java | 407 +++++++ .../core/io/AbstractSequentialFileFactory.java | 224 ++++ .../activemq/artemis/core/io/DummyCallback.java | 49 + .../activemq/artemis/core/io/IOCallback.java | 33 + .../core/io/IOCriticalErrorListener.java | 25 + .../artemis/core/io/IOExceptionListener.java | 22 + .../artemis/core/io/SequentialFile.java | 116 ++ .../artemis/core/io/SequentialFileFactory.java | 91 ++ .../artemis/core/io/aio/AIOSequentialFile.java | 333 ++++++ .../core/io/aio/AIOSequentialFileFactory.java | 531 +++++++++ .../artemis/core/io/aio/ActiveMQFileLock.java | 47 + .../artemis/core/io/buffer/TimedBuffer.java | 558 ++++++++++ .../core/io/buffer/TimedBufferObserver.java | 53 + .../artemis/core/io/nio/NIOSequentialFile.java | 393 +++++++ .../core/io/nio/NIOSequentialFileFactory.java | 168 +++ .../artemis/core/journal/IOAsyncTask.java | 27 - .../artemis/core/journal/IOCompletion.java | 4 +- .../core/journal/IOCriticalErrorListener.java | 22 - .../activemq/artemis/core/journal/Journal.java | 1 + .../artemis/core/journal/SequentialFile.java | 129 --- .../core/journal/SequentialFileFactory.java | 89 -- .../core/journal/impl/AIOSequentialFile.java | 326 ------ .../journal/impl/AIOSequentialFileFactory.java | 358 ------ .../journal/impl/AbstractJournalUpdateTask.java | 8 +- .../journal/impl/AbstractSequentialFile.java | 407 ------- .../impl/AbstractSequentialFileFactory.java | 218 ---- .../core/journal/impl/DummyCallback.java | 48 - .../core/journal/impl/FileWrapperJournal.java | 2 +- .../artemis/core/journal/impl/JournalBase.java | 1 + .../core/journal/impl/JournalCompactor.java | 6 +- .../artemis/core/journal/impl/JournalFile.java | 2 +- .../core/journal/impl/JournalFileImpl.java | 2 +- .../journal/impl/JournalFilesRepository.java | 8 +- .../artemis/core/journal/impl/JournalImpl.java | 28 +- .../core/journal/impl/NIOSequentialFile.java | 404 ------- .../journal/impl/NIOSequentialFileFactory.java | 168 --- .../core/journal/impl/SyncSpeedTest.java | 354 ------ .../artemis/core/journal/impl/TimedBuffer.java | 558 ---------- .../core/journal/impl/TimedBufferObserver.java | 52 - .../core/journal/impl/TransactionCallback.java | 12 +- .../artemis/core/io/aio/CallbackOrderTest.java | 97 ++ .../artemis/maven/ActiveMQCreatePlugin.java | 1 + artemis-native/bin/libartemis-native-32.so | Bin 44082 -> 22260 bytes artemis-native/bin/libartemis-native-64.so | Bin 46624 -> 23984 bytes artemis-native/pom.xml | 24 + artemis-native/src/main/c/AIOController.cpp | 63 -- artemis-native/src/main/c/AIOController.h | 51 - artemis-native/src/main/c/AIOException.h | 75 -- artemis-native/src/main/c/AsyncFile.cpp | 348 ------ artemis-native/src/main/c/AsyncFile.h | 93 -- artemis-native/src/main/c/CMakeLists.txt | 26 +- artemis-native/src/main/c/CallbackAdapter.h | 42 - artemis-native/src/main/c/JAIODatatypes.h | 28 - .../src/main/c/JNICallbackAdapter.cpp | 62 -- artemis-native/src/main/c/JNICallbackAdapter.h | 66 -- .../src/main/c/JNI_AsynchronousFileImpl.cpp | 377 ------- artemis-native/src/main/c/JavaUtilities.cpp | 62 -- artemis-native/src/main/c/JavaUtilities.h | 26 - artemis-native/src/main/c/LockClass.h | 39 - artemis-native/src/main/c/Version.h | 24 - artemis-native/src/main/c/exception_helper.h | 23 + ...che_activemq_artemis_jlibaio_LibaioContext.c | 710 ++++++++++++ .../activemq/artemis/core/libaio/Native.java | 74 -- .../activemq/artemis/jlibaio/LibaioContext.java | 446 ++++++++ .../activemq/artemis/jlibaio/LibaioFile.java | 152 +++ .../activemq/artemis/jlibaio/NativeLogger.java | 51 + .../activemq/artemis/jlibaio/SubmitInfo.java | 25 + .../activemq/artemis/jlibaio/package-info.java | 24 + .../artemis/jlibaio/util/CallbackCache.java | 93 ++ .../jlibaio/test/CallbackCachelTest.java | 112 ++ .../artemis/jlibaio/test/LibaioTest.java | 859 +++++++++++++++ .../plug/ProtonSessionIntegrationCallback.java | 4 +- .../core/protocol/mqtt/MQTTPublishManager.java | 4 +- .../openwire/OpenWireProtocolManager.java | 4 +- .../protocol/stomp/StompProtocolManager.java | 4 +- .../deployers/impl/FileConfigurationParser.java | 2 +- .../artemis/core/paging/PagingManager.java | 2 +- .../artemis/core/paging/PagingStore.java | 2 +- .../artemis/core/paging/PagingStoreFactory.java | 2 +- .../cursor/impl/PageSubscriptionImpl.java | 6 +- .../activemq/artemis/core/paging/impl/Page.java | 4 +- .../core/paging/impl/PagingStoreFactoryNIO.java | 8 +- .../core/paging/impl/PagingStoreImpl.java | 10 +- .../core/persistence/OperationContext.java | 4 +- .../core/persistence/StorageManager.java | 6 +- .../impl/journal/DescribeJournal.java | 8 +- .../impl/journal/JournalStorageManager.java | 33 +- .../impl/journal/LargeServerMessageImpl.java | 2 +- .../impl/journal/LargeServerMessageInSync.java | 4 +- .../impl/journal/OperationContextImpl.java | 12 +- .../nullpm/NullStorageLargeServerMessage.java | 2 +- .../impl/nullpm/NullStorageManager.java | 8 +- .../core/postoffice/impl/PostOfficeImpl.java | 6 +- .../core/ServerSessionPacketHandler.java | 4 +- .../core/replication/ReplicatedJournal.java | 2 +- .../core/replication/ReplicationEndpoint.java | 6 +- .../core/replication/ReplicationManager.java | 2 +- .../core/server/ActiveMQServerLogger.java | 10 +- .../artemis/core/server/LargeServerMessage.java | 2 +- .../core/server/cluster/impl/Redistributor.java | 4 +- .../server/impl/AIOFileLockNodeManager.java | 29 +- .../core/server/impl/ActiveMQServerImpl.java | 18 +- .../artemis/core/server/impl/QueueImpl.java | 4 +- .../core/server/impl/ServerSessionImpl.java | 4 +- .../core/transaction/impl/TransactionImpl.java | 8 +- .../artemis/tests/util/ActiveMQTestBase.java | 66 +- .../tests/util/ColocatedActiveMQServer.java | 7 +- .../integration/client/HangConsumerTest.java | 6 +- .../integration/client/JournalCrashTest.java | 4 +- .../client/LibaioDependencyCheckTest.java | 4 +- .../tests/integration/client/PagingTest.java | 8 +- .../client/RedeliveryConsumerTest.java | 4 +- .../integration/cluster/bridge/BridgeTest.java | 6 +- .../journal/AIOImportExportTest.java | 6 +- .../journal/AIOJournalCompactTest.java | 6 +- .../integration/journal/AIOJournalImplTest.java | 10 +- .../journal/AIOSequentialFileFactoryTest.java | 10 +- .../journal/NIOBufferedJournalCompactTest.java | 6 +- .../journal/NIOImportExportTest.java | 6 +- .../journal/NIOJournalCompactTest.java | 16 +- .../integration/journal/NIOJournalImplTest.java | 6 +- .../journal/NIONoBufferJournalImplTest.java | 6 +- ...NIONonBufferedSequentialFileFactoryTest.java | 6 +- .../journal/NIOSequentialFileFactoryTest.java | 6 +- .../journal/ValidateTransactionHealthTest.java | 15 +- .../management/ActiveMQServerControlTest.java | 12 +- .../replication/ReplicationTest.java | 16 +- .../integration/server/FileLockTimeoutTest.java | 4 +- .../journal/FakeJournalImplTest.java | 2 +- .../journal/JournalImplTestUnit.java | 13 +- .../journal/RealJournalImplAIOTest.java | 6 +- .../journal/RealJournalImplNIOTest.java | 6 +- .../AIOAllPossibilitiesCompactStressTest.java | 6 +- .../AIOMultiThreadCompactorStressTest.java | 2 +- .../stress/journal/AddAndRemoveStressTest.java | 16 +- .../stress/journal/CompactingStressTest.java | 12 +- .../JournalCleanupCompactStressTest.java | 50 +- .../stress/journal/MixupCompactorTestBase.java | 6 +- .../NIOMultiThreadCompactorStressTest.java | 8 +- .../core/journal/impl/AIOJournalImplTest.java | 6 +- .../core/journal/impl/FakeJournalImplTest.java | 2 +- .../core/journal/impl/JournalImplTestUnit.java | 15 +- .../core/journal/impl/NIOJournalImplTest.java | 6 +- .../tests/unit/core/asyncio/AIOTestBase.java | 18 +- .../unit/core/asyncio/AsynchronousFileTest.java | 1015 ------------------ .../MultiThreadAsynchronousFileTest.java | 81 +- .../journal/impl/AlignedJournalImplTest.java | 14 +- .../unit/core/journal/impl/CleanBufferTest.java | 16 +- .../core/journal/impl/FakeJournalImplTest.java | 2 +- .../impl/FakeSequentialFileFactoryTest.java | 2 +- .../core/journal/impl/FileFactoryTestBase.java | 18 +- .../core/journal/impl/JournalImplTestBase.java | 6 +- .../core/journal/impl/JournalImplTestUnit.java | 9 +- .../unit/core/journal/impl/ReclaimerTest.java | 2 +- .../impl/SequentialFileFactoryTestBase.java | 52 +- .../unit/core/journal/impl/TimedBufferTest.java | 26 +- .../impl/fakes/FakeSequentialFileFactory.java | 84 +- .../tests/unit/core/paging/impl/PageTest.java | 18 +- .../core/paging/impl/PagingStoreImplTest.java | 14 +- .../impl/BatchIDGeneratorUnitTest.java | 4 +- .../impl/OperationContextUnitTest.java | 8 +- .../unit/core/server/impl/FileLockTest.java | 4 +- 183 files changed, 6522 insertions(+), 7227 deletions(-) ----------------------------------------------------------------------
