Commit Graph

390 Commits

Author SHA1 Message Date
nathan
401b7e31e4 cleaned up comments, readme, and method parameters 2016-02-09 02:53:00 +01:00
nathan
d0fb78e129 Added comments, fixed missing generics for java6 compilation 2016-02-09 01:47:09 +01:00
nathan
4686461bc7 Tweaked publication/dispatch and which threads (if async) get the subscriptions for the messages (previously, the calling thread did this. NOW whatever thread the dispatcher is in does this 2016-02-08 02:12:27 +01:00
nathan
95697164f5 ALL UNIT TESTS PASS. Fixed issues with handling subtypes (wasn't checking if we handle the type in addition to if subtypes are accepted. Because the class hierarchy doesn't always match subscription registered type, this was necessary. 2016-02-08 01:21:32 +01:00
nathan
49933e9219 Fixed issues with dead message publication - we now detect if there are listeners are actually subscribed, and publish dead messages when there are none detected. Primary subscriptions/superSubscriptions are now 'gotten' by the calling thread (DeadMessage subscriptions are 'gotten' lazily. Error handling is now improved - a single error in a collection of "same type" subscriptions will not cause all of them to abort (only the currently called method will). 2016-02-07 19:32:24 +01:00
nathan
8747aec23f code polish. Cleaned up documentation. Removed requirement to "start" the messagebus 2016-02-07 18:19:26 +01:00
nathan
10e2d52103 code polish 2016-02-07 17:02:51 +01:00
nathan
11afd3d721 Added support for Weak references in subscriptions (for when a container is used, like spring, and we want to use automatic memory management for subs that might no longer exist in the parent container 2016-02-07 02:48:08 +01:00
nathan
4e39acdd02 Cleaned up DeadMessages 2016-02-07 00:24:27 +01:00
nathan
72641a57f2 comment cleanup 2016-02-07 00:23:33 +01:00
nathan
0ae980319b Cleaned up synchrony start/shutdown. Removed start (it was unnecessary), and shutdown now waits for threads to stop 2016-02-07 00:22:54 +01:00
nathan
89f47fdd8a Code polish/cleanup 2016-02-07 00:10:42 +01:00
nathan
4d5b53fa36 Cleaned up sync/async publication 2016-02-06 23:40:58 +01:00
nathan
969e21d762 Code polish and comments 2016-02-06 21:11:48 +01:00
nathan
7e262d1f0c Cleaned up multi-subs and multi-super-subs 2016-02-06 21:05:37 +01:00
nathan
c323e29287 comments/polish 2016-02-06 16:23:14 +01:00
nathan
d31e27eadd WIP - polishing 2016-02-06 16:15:16 +01:00
nathan
3226d8ae20 Moved performance tests into separate project 2016-02-06 02:54:35 +01:00
nathan
7822448427 code polish 2016-02-06 01:07:32 +01:00
nathan
b2cbd9c084 Moved ConcurrentSet entries/etc into subscription -> BEST performance for subscription iteration w/o GC 2016-01-27 12:54:57 +01:00
nathan
618e4034f2 renamed package 2016-01-27 00:43:16 +01:00
nathan
3483205dfd cleaned up unitests 2016-01-25 15:07:57 +01:00
nathan
d84098fe9d Merge branch 'single_writer_wip_subscriptions' into single_writer
# Conflicts:
#	src/dorkbox/util/messagebus/subscription/Subscription.java
#	src/dorkbox/util/messagebus/subscription/SubscriptionManager.java
2016-01-25 15:00:56 +01:00
nathan
992b8f2f3b Supersubs now working w/ unit tests. wip multimessages. performancetest still fails w/ current subscription add() method 2016-01-25 14:56:54 +01:00
nathan
b4247731db WIP, getting subscriptions to use the single writer principle 2016-01-25 12:24:41 +01:00
nathan
61f7cd26b1 GREAT performance. Added IdentityMap to ReflectionUtils annotations collector 2016-01-20 15:14:06 +01:00
nathan
61756547bb Code cleanup 2016-01-20 13:48:47 +01:00
nathan
3674d6031b WIP single writer principle. have subsPerMessage + subsPerSuperMessage working 2016-01-20 13:35:33 +01:00
nathan
9e06d16855 WIP - getting system to arrays instead of lists 2016-01-20 01:56:39 +01:00
nathan
0401a6a164 WIP - single writer principle. Disruptor added, WIP optimizing data structures for hit on writer, instead of reader 2016-01-19 00:12:10 +01:00
nathan
e8efa4390b polish and reasonable performance. 2016-01-15 23:35:20 +01:00
nathan
eae63b3f8a GREAT performance with Disruptor values tweaked. WIP getting all collections lock-free 2016-01-15 02:26:23 +01:00
nathan
0ed9b1b243 Fixed issues with varity argumuent subscriptions, cleaned up model, removed "FirstArg" publisher (didn't make any sense. Publication should always use all arguments) 2016-01-14 15:08:49 +01:00
nathan
be960b6913 Fixed up FirstArgSubscriber, code polish 2016-01-14 00:51:46 +01:00
nathan
1863df8db4 Lessen the stack size 2016-01-13 23:40:53 +01:00
nathan
4a42f395a6 Added disruptor - AWESOME fast in speed tests. Has problems because of pub/sub lock contention when used in MessageBus 2016-01-13 18:05:43 +01:00
nathan
712b0d8265 Code polish 2016-01-13 10:56:17 +01:00
nathan
69701fbbd9 Merge remote-tracking branch 'origin/master' 2015-11-02 02:38:40 +01:00
nathan
240b8640d0 Moved multinode back to public (necessary for unit tests) 2015-10-30 22:46:51 +01:00
nathan
4187a42e86 Moved multinode back to public (necessary for unit tests) 2015-10-30 22:29:25 +01:00
nathan
e854c247ad Updated license info 2015-10-30 13:41:28 +01:00
nathan
57cd06d164 Updated license info. Updated jctools MPMC array queue 2015-10-30 13:31:13 +01:00
nathan
68dc22b736 fixed generics 2015-07-22 10:37:40 +02:00
nathan
4e75e28802 Updated to use non-deprecated junit. added missing generic parameters 2015-07-07 00:36:23 +02:00
nathan
d57dca4226 Updated license, updated utilities (BigEndian byte utils) 2015-06-29 15:08:32 +02:00
nathan
5432dc3085 Added dist/lib jars 2015-06-29 01:46:43 +02:00
nathan
c8cfcb3ae1 Added license info 2015-06-29 01:46:30 +02:00
nathan
8f312a8012 Added intellij support. Compiled as java6, supports java8 ConcurrentHashMap 2015-06-28 00:16:38 +02:00
nathan
894da4c980 Changed visibility of queue. Made node items private 2015-06-26 20:59:43 +02:00
nathan
a1922ff788 Code polish and refactor to support multiple types of publishing and subscribing 2015-06-20 01:53:32 +02:00