Commit Graph

1158 Commits

Author SHA1 Message Date
Robinson
e0e8d06eaf
Added notifyError(global) and added array.remove 2023-03-01 12:46:12 +01:00
Robinson
f1e6df094d
Added another type for equality/hash. Fixed issues with event/message dispatch 2023-03-01 00:24:44 +01:00
Robinson
8cdf5781e2
code warnings 2023-03-01 00:22:46 +01:00
Robinson
3f48fcc313
Added defaults + checks for ResponseManager 2023-03-01 00:21:12 +01:00
Robinson
a7a606f1be
API/Code cleanup 2023-02-27 11:31:34 +01:00
Robinson
340dc4a36c
Cleaned API and logging 2023-02-27 11:09:33 +01:00
Robinson
e38ff52c08
Updated pub/sub API 2023-02-26 18:18:19 +01:00
Robinson
912a2f4c2a
Updated settings store for new API 2023-02-26 18:17:30 +01:00
Robinson
c8af0ba33b
Moved add() to companion object 2023-02-25 13:23:29 +01:00
Robinson
b65005828c
Use the windows hi-rez timer 2023-02-25 10:21:47 +01:00
Robinson
9969dcd9b8
AeronContext now implements Closable 2023-02-24 20:28:32 +01:00
Robinson
17ed752ec1
added support for debugging connections 2023-02-24 16:33:39 +01:00
Robinson
7fd5f4e577
Cleaned up comments 2023-02-23 20:54:30 +01:00
Robinson
389be7b6db
added equals/hashCode 2023-02-23 12:37:00 +01:00
Robinson
0866f1b6b8
Code cleanup 2023-02-21 19:39:51 +01:00
Robinson
6c433a918f
RemoteObject casting can now be inferred 2023-02-21 19:36:57 +01:00
Robinson
63f60a5f96
When closing a connection, we use the writeMutex instead of 'messagesInProgress' 2023-02-21 19:36:25 +01:00
Robinson
bb820b03b4
Starting the aeron driver ALWAYS happens since the handshake loop, within the try/catch 2023-02-20 20:57:04 +01:00
Robinson
a1a869346e
Updated log messages 2023-02-20 19:27:53 +01:00
Robinson
80e2a57d74
Cleaned API usage 2023-02-20 19:26:55 +01:00
Robinson
0753a08b9a
Updated comments and error messages 2023-02-20 19:26:21 +01:00
Robinson
8ae3f15f8e
Added support for IPC/UDP term buffer length (with the default the same as it was previously) 2023-02-16 21:43:45 +01:00
Robinson
3772de7cca
Updated log messages to be consistent between server/client 2023-02-16 00:50:32 +01:00
Robinson
b806ff43db
Fixed class visibility 2023-02-15 23:29:02 +01:00
Robinson
024ff53e20
Cleaned up duplicate aeron pub/sub logs 2023-02-15 23:28:45 +01:00
Robinson
c57f0564db
Added method parameter names 2023-02-15 23:28:15 +01:00
Robinson
ba3ea72369
Cleaned up comments 2023-02-15 23:27:11 +01:00
Robinson
bdb1386504
Cleaned up duplicate aeron pub/sub logs 2023-02-15 23:26:53 +01:00
Robinson
230ad249bd
Added ip address to logs for connect/disconnect/timeout/etc 2023-02-15 15:47:02 +01:00
Robinson
3064545645
Send buffer is smaller (1mb) 2023-02-15 15:22:49 +01:00
Robinson
76a96a89ef
Cleaned up stopping/starting the aeron driver 2023-02-15 01:15:51 +01:00
Robinson
73efd8d370
easier code to read 2023-02-15 01:15:05 +01:00
Robinson
9f42800d6a
updated version 2023-02-14 23:47:04 +01:00
Robinson
c289f02cb9
code/comment cleanup 2023-02-10 21:21:09 +01:00
Robinson
ee25f0d2ce
removed dead code 2023-02-10 21:20:34 +01:00
Robinson
1d30329383
Cleaned stacktraces in the client handshake 2023-02-10 21:20:27 +01:00
Robinson
1f562b880c
Cleaned up allocator constructor 2023-02-10 21:20:13 +01:00
Robinson
47d8956635
Make sure that registrations are rechecked for RMI implementations. 2023-02-09 00:44:57 +01:00
Robinson
488eda3fcc
Refactor serialization initialization and kryo usage.
StreamingManager has better security wrt session IDs
2023-02-08 22:56:23 +01:00
Robinson
47afe38dd2
transitive for kotlin logging util 2023-02-07 22:23:11 +01:00
Robinson
f6105a3b11
Updated version 2023-01-05 23:10:31 +01:00
Robinson
95b724c509
Shutdown the client Aeron instance (if it's the only one), if there is any kind of exception thrown during the connection process (not only on retry events) 2023-01-04 23:30:25 +01:00
Robinson
24a0a0d427
updated version 2022-12-17 23:49:36 +01:00
Robinson
e74f4a4e10
Pub/Sub are now closed when exceptions are thrown 2022-12-17 23:21:44 +01:00
Robinson
d408493907
v6.1 2022-12-17 22:24:33 +01:00
Robinson
88121bf0cc
WIP JPMS 2022-12-17 22:24:07 +01:00
Robinson
a311a47eaf
Added sync/async unit block for thread/concurrent safe sync/async calls 2022-12-16 00:01:11 +01:00
Robinson
48d4ba9b00
Moved idle strategy reset 2022-12-15 23:58:27 +01:00
Robinson
ad4073c632
close the sub/pub for a client when it fails to connect (prevent disk space leak) 2022-12-15 23:57:33 +01:00
Robinson
9689b3a1a7
renamed field 2022-12-15 23:55:40 +01:00
Robinson
6ea4c6477f
Suppress casting when returning kryo 2022-11-16 01:12:17 +01:00
Robinson
b94c55cd4f
Fixed compiler warnings 2022-11-15 00:18:18 +01:00
Robinson
7145c23692
Fixed kotlin smart cast 2022-11-12 00:38:23 +01:00
Robinson
c9eca33e89
Updated major version 2022-11-12 00:38:03 +01:00
Robinson
4454d2904e
EndPoint interaction on the network can be overridden for a 100% custom wire protocol 2022-10-02 15:03:28 +02:00
Robinson
700e3ecd7e
Cleaned up formatting/logic of common addresses. Fixed wildcard usage within pollers 2022-08-20 12:15:01 +02:00
Robinson
f7c6c88098
More thorough checking for ipv4 remotes when building connections 2022-08-20 11:11:06 +02:00
Robinson
77701e12c4
More specific variable name for ipv4 check 2022-08-20 11:10:19 +02:00
Robinson
5472a07079
Sending chunked data now creates fewer objects while sending. Updated unit test to use proper API 2022-08-19 23:39:54 +02:00
Robinson
48bedc04ca
Cleaned up isWildcard/isLocalhost. removed duplicate code 2022-08-19 23:33:02 +02:00
Robinson
f8e2a16a10
Updated version 2022-08-19 00:50:58 +02:00
Robinson
ba423e424f
imports 2022-08-19 00:50:26 +02:00
Robinson
4af38ef212
Back to suspending 2022-08-18 22:01:42 +02:00
Robinson
ae7c043240
Cleaned up logs 2022-08-18 22:00:54 +02:00
Robinson
7e7ccb41da
Fixed log info during memory leak check 2022-08-18 20:44:15 +02:00
Robinson
f384638b44
Cleaned up inet address formats 2022-08-18 12:38:44 +02:00
Robinson
9af89ebd0c
Updated comments 2022-08-18 12:38:24 +02:00
Robinson
fa95ddf56c
Added extra logs when DEBUG_CONNECTIONS is enabled 2022-08-18 10:18:48 +02:00
Robinson
bb499d1c0c
Cleaned up common code and log output 2022-08-18 09:43:38 +02:00
Robinson
2ef56be699
Cleaned up close methods 2022-08-10 14:45:16 +02:00
Robinson
a34308ea07
Added driver support for errors and loss statistics 2022-08-10 14:34:54 +02:00
Robinson
4f63dbc25c
Fixed typo in variable name 2022-08-10 14:34:36 +02:00
Robinson
5a047e2367
Added support for debugging connections 2022-08-10 14:34:09 +02:00
Robinson
f429ca1414
Updated version 2022-08-04 03:39:48 +02:00
Robinson
dad5cd90b0
Network now uses MDC + unique session id's to initiate/create connections. Prevents issues surrounding handshake conflicts. Now uses exclusive publications, also synchronizes on connection when sending data. Fixed issues when binding to IPv6 Wildcard IPs. RMI events will (attempt) to suppress errors when the connection is closed when the RMI waiter times out. 2022-08-04 03:39:14 +02:00
Robinson
8deee6c0a7
Make sure that the global disconnect handler is also called 2022-08-04 00:34:48 +02:00
Robinson
401f29a9a2
Updated version 2022-08-03 01:52:50 +02:00
Robinson
6d519227df
Fixed issues getting the subscription bind address. 2022-08-03 01:52:30 +02:00
Robinson
77957a8943
Updated version 2022-08-03 00:21:30 +02:00
Robinson
d70a7b1847
Fixed aeron directory typo 2022-08-03 00:21:15 +02:00
Robinson
1ad1110bc6
Updated version 2022-08-03 00:08:35 +02:00
Robinson
2e7c79c1c0
Fixed logging for aeron exceptions 2022-08-03 00:08:13 +02:00
Robinson
31cf33cfab
Updated version 2022-08-02 22:44:17 +02:00
Robinson
bfbd33db00
Cleaned up disconnect notification logic 2022-08-02 22:43:44 +02:00
Robinson
325b463c01
Cleaned up connection close events 2022-08-02 21:15:45 +02:00
Robinson
8bcbce019e
Cleaned up unused close features. 2022-08-02 21:14:54 +02:00
Robinson
736dafafa2
Added ability for the framework to optionally send a close() event to the remote end. This is not guaranteed to run, but is a hint to the remote endpoint what is going on, and to improve disconnect performance. 2022-08-02 21:13:39 +02:00
Robinson
eea68c059a
Moved closeForRestart() to public scope 2022-08-02 13:24:23 +02:00
Robinson
305d410071
Added support for restarting the network driver for the endpoints 2022-08-02 13:10:06 +02:00
Robinson
8e6a4bcf3c
Added support to start/stop the aeron driver 2022-08-02 12:43:05 +02:00
Robinson
20226468c4
Changed Aeron connections from MDC -> "normal" (so the network connections are initialized more like a standard UDP connection would be, instead of the more complicated MDC method 2022-08-02 12:11:36 +02:00
Robinson
d5397dde7b
Fixed comments. lowered poll frequency - changed function name 2022-08-02 12:04:09 +02:00
Robinson
ecdb762274
Removed un-needed 'suspend' modifiers 2022-08-01 22:13:07 +02:00
Robinson
c42c160652
Reverted change to handshake kryo (fix for dynamic class registration) 2022-07-29 05:00:41 +02:00
Robinson
70ebcdfdcf
Updated version 2022-07-29 04:52:52 +02:00
Robinson
b942c691fc
Changed aeron connections from MDC (similar to udp multicast), to single and unique connections. Fixed issues with duplicate handshake messages. Fixed issues when trying to connect too quickly. Sped up handshake a LOT when multiple clients are connecting. Dynamic class registrations (server-side only) broken 2022-07-29 04:52:11 +02:00
Robinson
3ef3d28d24
Removed coroutines from parts of the networking message processing. 2022-07-27 00:20:34 +02:00
Robinson
5c59a142ff
Updated version 2022-07-17 23:59:35 -04:00
Robinson
72b95b5cbe
Connection retries are SLIGHTLY slower than the aeron driver timeout. 2022-07-17 23:12:06 -04:00
Robinson
9073769e15
Better Logging during the connection handshake 2022-07-17 23:08:01 -04:00
Robinson
14aa087eda
Network dispatcher is now it's own thread pool, separate from the standard kotlin coroutine dispatcher (this was to prevent thread starvation) 2022-07-17 23:05:32 -04:00
Robinson
6ebd4afa90
Code cleanup. Aeron counters can now return null 2022-07-17 23:04:41 -04:00
Robinson
fb0e973cbf
Cleaned up comments surrounding the Aeron conductor thread factories 2022-07-17 23:03:53 -04:00
Robinson
f24b73f497
Exposed streamId, added better logging 2022-07-17 23:03:19 -04:00
Robinson
a552eb5fa7
Handshake now uses coroutines. Exposed Aeron init(), so it can be called externally to connect()/bind() methods 2022-07-17 23:02:52 -04:00
Robinson
d22bcb29ca
Formatting 2022-07-17 23:01:54 -04:00
Robinson
00b426fa18
Changed default socket options to 2mb 2022-07-16 10:25:37 -04:00
Robinson
440512aedc
AeronDriver now uses suspend instead of blocking 2022-07-16 10:25:15 -04:00
Robinson
c30e2cde4c
Better support for how we free resources on connection close 2022-07-15 08:15:40 -04:00
Robinson
9eb0bbee5f
Added suspend to initEndPoint 2022-07-15 00:59:17 -04:00
Robinson
165cfb9d7e
Cleaned up logging 2022-07-15 00:57:48 -04:00
Robinson
995f0b1795
Added toString 2022-07-15 00:57:32 -04:00
Robinson
21a6eceebd
Pulled out the aeron context into its own class 2022-07-13 22:57:40 -04:00
Robinson
7e60f6b64b
Code formatting 2022-07-13 22:54:22 -04:00
Robinson
e1db5c42a5
Removed DYNAMIC aeron control mode 2022-07-13 22:53:43 -04:00
Robinson
c8d9573bb9
code format 2022-07-13 22:53:25 -04:00
Robinson
6a466ae88a
Fixed errors with allocator memory leaks, added validation when server closes 2022-07-13 22:53:09 -04:00
Robinson
1d35827d16
added support for allocator size checks 2022-07-13 22:49:25 -04:00
Robinson
5b8268b2ea
compiler warnings 2022-07-12 22:21:59 -04:00
Robinson
3a43dea3ad
Added driver backlock information, cleaned how pub/sub are added to areon 2022-07-12 11:02:11 -04:00
Robinson
3893a9be5a
Added starting the aeron driver if necessary when clients are reconnecting 2022-07-12 10:56:47 -04:00
Robinson
ceb5fe208a
Inverted close check 2022-07-03 13:13:38 +02:00
Robinson
aea56477fa
Updated version 2022-06-29 21:56:35 +02:00
Robinson
55e777860b
Fixed streamed data chunk mis-alignment. 2022-06-29 21:56:12 +02:00
Robinson
1a6ac7048b
Random stream ID is unique per JVM now 2022-06-29 20:08:35 +02:00
Robinson
fafcb30e1a
Updated version 2022-06-29 19:38:29 +02:00
Robinson
09f367963f
Fixed race condition when we reassemble streaming/chunked data. 2022-06-29 19:38:10 +02:00
Robinson
683abcbe59
Updated version 2022-06-29 17:30:28 +02:00
Robinson
58eb8c2300
suspending cache addition for RMI waiters 2022-06-29 16:57:31 +02:00
Robinson
61aa509a17
Stream and Session ID allocation cannot be re-used so quickly, as ALL other IDs must first be used, before a previously used ID is reused. 2022-06-29 16:37:47 +02:00
Robinson
c6c3c4cc2e
Updated version 2022-06-27 15:32:00 +02:00
Robinson
f228bd1de3
Changed how handshake connection errors are managed 2022-06-27 15:31:40 +02:00
Robinson
da4dc4d9c9
Better handshake control during generic exceptions 2022-06-27 01:45:10 +02:00
Robinson
16119bdf7d
updated version 2022-06-27 01:43:50 +02:00
Robinson
3e092ffd54
Formatting and logging cleanup 2022-06-27 01:43:29 +02:00
Robinson
4a0357d92b
Added internal closeBlocking 2022-06-27 00:10:48 +02:00
Robinson
d734c2555a
Formatting 2022-06-26 23:49:56 +02:00
Robinson
cccb3b65ae
Added this qualifier 2022-06-26 23:49:49 +02:00
Robinson
20c528b563
Updated library + version 2022-06-24 23:04:37 +02:00
Robinson
0550661067
Updated version 2022-06-24 14:42:24 +02:00
Robinson
cd65d16e14
Added support for a stacktrace that is empty 2022-06-24 13:13:28 +02:00
Robinson
0df4eb872d
Added support for getting specific aeron driver information 2022-06-24 13:12:18 +02:00
Robinson
3ede82e43f
UDP MediaDriver does not recreate driver connections during handshake. Re-organized how aeron driver connections are established 2022-06-24 13:11:39 +02:00
Robinson
cb1cd0cec9
Updated version 2022-06-16 18:05:15 +02:00
Robinson
20fcabaf8a
Fixed issue with RMI from a server -> client, where the RMI proxy objects were getting overridden by different connections because the RMI object cache was shared between all connections in the server. 2022-06-16 18:04:52 +02:00
Robinson
b8acc6b2c0
Now fixed streaming message data when finished 2022-06-16 00:49:13 +02:00
Robinson
f0f7a5eba1
Updated version 2022-06-15 23:53:45 +02:00
Robinson
52ee92c025
Replaced SuspendWaiter with mutex 2022-06-15 23:53:26 +02:00
Robinson
9c754c9525
Updated version 2022-06-14 22:23:01 +02:00
Robinson
f1ffbb48f0
Added more connection exceptions for edge cases when a connection attempt to the server can fail. 2022-06-14 22:22:38 +02:00
Robinson
81e3f204df
Updated version 2022-06-14 19:25:16 +02:00
Robinson
5dd9f50a0c
Fixed client connect issue when trying to shutdown 2022-06-14 19:24:48 +02:00
Robinson
0d01b8d303
Updated version and dependencies 2022-06-14 12:22:53 +02:00
Robinson
bf3d7b2be8
Updated version 2022-06-11 23:55:24 +02:00
Robinson
c62296edec
Added extra constructor signature for logger name 2022-06-11 23:53:39 +02:00
Robinson
b07bf150f9
Added extra stacktrace checks 2022-06-11 23:53:08 +02:00
Robinson
5b2b43b73e
removed ping timeout 2022-06-11 23:52:33 +02:00
Robinson
3dd333269e
Response waiter is now volatile, as it's data is used by DIFFERENT coroutines. 2022-06-11 22:36:23 +02:00
Robinson
542b678531
Removed unnecessary comments 2022-06-11 22:35:45 +02:00
Robinson
95a3b4eb69
Added class simpleName to log messages. Added more comments 2022-06-11 22:35:00 +02:00
Robinson
29dec146aa
Changed streaming payload size (we let aeron manage fragmentation as much as possible, as they do it more efficiently than we can 2022-06-11 22:34:16 +02:00
Robinson
7394b6abe2
Cleaned up toString 2022-06-11 22:32:46 +02:00
Robinson
96a9e2c9bb
Fixed comment typo 2022-06-11 17:29:33 +02:00
Robinson
b43b3840ab
update comment 2022-06-11 17:04:21 +02:00
Robinson
456faf0575
Updated version 2022-06-08 00:28:02 +02:00
Robinson
38ec9e882b
Removed experimental coroutine 2022-06-08 00:27:30 +02:00
Robinson
27e8520eb5
Removed unused parameters 2022-06-08 00:27:03 +02:00
Robinson
fd4eb256db
Updated DNS signature for client connections 2022-06-08 00:25:01 +02:00
Robinson
5445c52212
Updated version 2022-06-06 17:18:46 +02:00
Robinson
e302b1e429
Fixed edge condition when notifyDisconnect() would get called 2x on a server 2022-06-06 17:18:38 +02:00
Robinson
e0570527ae
More explicit connection specific listnerer manager for disconnect events 2022-06-06 11:57:20 +02:00
Robinson
ab791af801
Now uses DNS for name resolution if the client connection is not an IP address. 2022-06-04 01:32:58 +02:00
Robinson
e4976e3a5a
Added better log info when reconnecting to a server 2022-06-01 23:52:52 +02:00
Robinson
c79c0b49c8
Updated version 2022-05-30 02:55:36 +02:00
Robinson
e8f7c8d8d3
Cleaned up log messages, cleaned up handshakes, cleaned up polling code. Added unit test for concurrent client connections 2022-05-30 02:55:07 +02:00
Robinson
08ecaaf1c7
Code cleanup 2022-05-30 02:43:41 +02:00
Robinson
261d50af9e
Updated libraries, must support java11 now (because of crypto) 2022-05-30 02:12:54 +02:00
Robinson
9eb2fd7d7f
Added support for explicit loopback IP notation 2022-05-28 12:16:05 +02:00
Robinson
506c98df8d
Added support for custom logger names 2022-05-28 12:15:45 +02:00
Robinson
6f1fdfcff9
Updated version 2022-04-13 16:22:57 +02:00
Robinson
dc1ba169c9
Fixed wrong casting of object type 2022-04-13 16:22:39 +02:00
Robinson
6d2ca63bc0
Updated version 2022-04-04 23:24:42 +02:00
Robinson
217d1c3b19
cleaned up stacktraces 2022-04-04 23:05:50 +02:00
Robinson
82fb4c4151
Cleaned up exceptions 2022-04-04 23:05:08 +02:00
Robinson
41ea4872be
Fixed IPC connection issue 2022-04-04 23:04:27 +02:00
Robinson
ac4afd3d50
Fixed seconds -> MS for RMI ping 2022-04-04 19:39:05 +02:00
Robinson
113de5d12e
cleanStackTraceInternal now cleans the stack track from all coroutine info for all dorkbox.network stack traces. 2022-04-04 16:32:19 +02:00
Robinson
533aec6c2d
Better insight when specific client/server connection errors occur. 2022-04-04 16:30:05 +02:00
Robinson
a0664f05b1
comment cleanup 2022-04-04 16:29:16 +02:00
Robinson
4e248a969f
Fixed naming consistancy with regards to MS and NANOS 2022-04-04 16:28:53 +02:00
Robinson
22e7acab46
Added a streaming protocol (currently in-memory only) for sending data that large, or generally exceeds aeron's max transmit payload size 2022-04-04 14:48:38 +02:00
Robinson
c2ea674989
Kotlin accessor 2022-04-04 14:34:30 +02:00
Robinson
0195ef3dc8
Exposed read/write buffers for kryo. Reading objects can return null 2022-04-04 14:33:48 +02:00
Robinson
a3bacf7b89
Kotlin replacement for math util 2022-04-04 14:33:12 +02:00
Robinson
4967faf212
Connection timeouts should use currentTimeMillis (not nanoTime!) 2022-04-02 13:24:26 +02:00
Robinson
b0dd85a8f9
Updated version 2022-03-29 00:40:18 +02:00
Robinson
dc28c3f9e8
Updated comments, guarantee that a return value is returned via send. Moved common method to object 2022-03-27 21:14:55 +02:00
Robinson
b0a29d6837
Code cleanup 2022-03-24 01:27:01 +01:00
Robinson
b597bcd497
Timeout is now in nanos, client connections time out differently now. 2022-03-24 01:26:44 +01:00
Robinson
5c854c4fab
Prevent multiple instances within the same JVM from trying to start aeron at the same time 2022-03-23 18:31:38 +01:00
Robinson
3cac148db6
Fixed sendBufferSize defaults. Explicitly not setting defaults if the context has been defined. 2022-03-21 13:41:46 +01:00
Robinson
a8dd406b40
Added ability to customize the dispatch for network events 2022-03-18 16:34:38 +01:00
Robinson
c836848f91
Comment cleanup 2022-03-15 20:45:00 +01:00
Robinson
4cd0a439a6
Fixed issues when sending serialized primatives for class registration 2022-03-15 15:11:53 +01:00
Robinson
5c6c52e8b9
more comments 2022-03-15 14:34:14 +01:00
Robinson
29d63a4268
Fixed server.onDisconnect() listener notification. 2022-03-15 14:33:58 +01:00
Robinson
04fa453ff3
Merge remote-tracking branch 'origin/master' 2022-03-15 12:53:53 +01:00
Robinson
9f350fa767
Added Aeron subscriberErrorHandler 2022-03-15 12:43:40 +01:00
Robinson
f741c8823c
Fixed IPC client handshake timeout 2022-03-15 11:44:39 +01:00
Robinson
871827d800
Fixed log typo 2022-03-15 10:32:06 +01:00
Robinson
67bf5e2b21
Fixed client handshake timeout 2022-03-15 10:27:21 +01:00
Robinson
1bdfe5edf3
Don't show macos performance hints more than once 2022-03-08 23:35:19 +01:00
Robinson
53a3ba0309
Use OS.TEMP_DIR instead of manually requesting it 2022-03-08 23:25:55 +01:00
Robinson
06be3bee28
Connection timeouts are now in seconds, instead of milliseconds 2022-03-08 08:41:06 +01:00
Robinson
2a14d09a2c
Updated to support the split of Utilities + OS project. 2022-03-05 22:50:17 +01:00
Robinson
975cd4fb01
updated version 2022-03-04 23:49:49 +01:00
Robinson
d8aab11fdb
Updated dependencies + version 2022-03-03 01:25:32 +01:00
Robinson
98f8ad794e
update dependencies 2022-03-03 01:23:07 +01:00
Robinson
7aaf06c7a5
Exception now properly thrown when a message cannot be sent. 2022-03-02 23:54:32 +01:00
Robinson
f68418c27c
Updated dependencies. 2021-10-01 11:34:45 +02:00
Robinson
1ea24f026a increment version 2021-08-23 01:08:30 -06:00
Robinson
c8f4ba2b01 Now using the storage project 2021-08-23 00:52:16 -06:00
Robinson
40fb0d8caf use ByteArray extension for hex instead 2021-08-23 00:48:39 -06:00
Robinson
a75ece2a39 Now use the storage project 2021-08-23 00:42:02 -06:00
Robinson
87338c6f24 Fixed typos 2021-08-23 00:39:13 -06:00
Robinson
d8107860e5 Fixed GCM, now use threadlocal for hashing 2021-08-23 00:38:55 -06:00
Robinson
e8a1a20a16 code cleanup 2021-08-20 08:50:51 -06:00
Robinson
07daeafa05 updated version, updated build dependencies 2021-08-19 00:15:32 -06:00
Robinson
7f16ebcac0 WIP storage sub-system 2021-08-19 00:13:47 -06:00
Robinson
6945a5cdbb Fixed issue when starting up after a forcefully terminated (previous) run. If the aeron CnC file is corrupted, delete and try again. 2021-08-18 13:37:23 -06:00
Robinson
5847ad14e3 Updated version 2021-07-26 20:42:55 +02:00
Robinson
6a7fe7b1dc Added support for filtering aeron driver exceptions, onError listeners are now notified if there is an aeron driver error. 2021-07-26 20:40:43 +02:00
Robinson
a4a3057f39 Added comments. Fixed onErrorGlobal (it is now a separate name, since the function signatures had issues), made it a unit function instead of method, so it can be passed around 2021-07-26 20:18:04 +02:00
Robinson
7908ef2593 Fixed comments, tweaked shutdown delay 2021-07-26 20:17:03 +02:00
Robinson
388e4bda60 connections are now created via a unit function instead of overriding the method. 2021-07-09 15:16:12 +02:00
Robinson
c725806727 Cleaned up heap vs stack access, fixed ping support, fixed coroutine errors during serialization 2021-07-08 14:33:24 +02:00
Robinson
632603c8c7 WIP RMI and message performance/ping testing 2021-07-07 21:32:36 +02:00
Robinson
33f3ca8ebc Supports the newest version of Aeron. Updated error log usage and notifications. Refactored RMI API (now RMI is accessible via '.rmi' calls). Updated unit tests. Added 'delete' to rmi methods (opposite of 'create'). 2021-07-07 00:04:47 +02:00
Robinson
b8caa3b7c9 WIP JPMS 2021-07-02 11:41:05 +02:00
Robinson
ad9729b0ff Added comments 2021-07-01 20:15:07 +02:00
Robinson
9d507f1937 Added more comments 2021-07-01 20:13:54 +02:00
Robinson
649148dc08 better error message 2021-07-01 09:30:09 +02:00
Robinson
e62f8eba2e Changed line endings to LF from CRLF 2021-06-28 15:27:35 +02:00
Robinson
b5f7c109b2 Fixed deprecated channel offer method 2021-06-27 20:51:58 +02:00
Robinson
ab2af26b48 Fixed JPMS object casting 2021-05-02 21:56:10 +02:00
Robinson
7c5a935105 Added server global RMI delete() 2021-05-01 00:19:21 +02:00
Robinson
5196fa2d66 updated version 2021-04-30 22:42:37 +02:00
Robinson
ef4b76d303 Changed scope for onMessage/disconnect/connect/etc callbacks from 'connection' -> 'this'. 2021-04-30 22:39:36 +02:00
Robinson
048b780e2f Added tests for restarting a client via client.close(). connection.close() with a onDisconnect listener also works. The instance that started the aeron instance, is the one that cleans it up 2021-04-30 21:18:57 +02:00
Robinson
ae53cc333e Moved class registration info to trace 2021-04-30 19:52:57 +02:00
Robinson
bfccc6f7a5 WIP removeObject 2021-04-30 18:22:25 +02:00
Robinson
beb99d42da Removed 'config.enableIpcForLoopback'. it's behavior was rolled into 'enableIpc' 2021-04-30 18:22:08 +02:00
Robinson
3a4f4ff4b3 removed unnecessary code 2021-04-30 18:21:26 +02:00
Robinson
4507cf9f87 Removed RemoteObject.close() 2021-04-30 18:21:01 +02:00
Robinson
0b95a4503d more info in comments 2021-04-30 18:19:46 +02:00
Robinson
dfaf583f4f Added extension function for "eventLoop" dispatch to coroutines 2021-04-30 18:15:54 +02:00
Robinson
cffca943f5 No longer using coroutines for adding publication/subscription and closing certain calsses. Better aeron error handling/reporting. Better aeron startup/shutdown. The pending connections cache no longer is ThreadSafe, and no longer is protected via RW lock. 2021-04-30 18:14:33 +02:00
Robinson
3f016672e6 WIP ping mangement 2021-04-30 14:58:49 +02:00
Robinson
a3c0d9881a Fixed unnecessary errors when calling "connection.close()" from inside an RMI method. 2021-04-30 14:26:04 +02:00
Robinson
e7d13520df Updated kryo comments 2021-04-29 19:45:56 +02:00
Robinson
ad06f768f8 Fixed state with driver already running during shutdown 2021-04-29 13:34:45 +02:00
Robinson
402c5a0ccd Fixed missing Inet4.toAddress conversion 2021-04-29 11:19:31 +02:00
Robinson
a3b5cbcc89 WIP ping functionality 2021-04-29 10:25:25 +02:00
Robinson
7a6926df93 Changed handshake write to be THREAD strategy instead of COROUTINE strategy 2021-04-29 10:04:53 +02:00
Robinson
47b63173ac Added cloneToNormal, which converts the coroutine strategy -> thread strategy 2021-04-29 10:04:02 +02:00
Robinson
1e077c2d98 Added ability to add to an endpoint configuration 2021-04-29 10:02:22 +02:00
Robinson
2828758fee Updated how to access storage (via a property now) 2021-04-29 10:01:07 +02:00
Robinson
f5ab178948 Suppressed errors when starting/stopping an endpoint VERY quickly (as usually done in unit tests). These warnings, while noramlly VERY important, can be safely ignored. 2021-04-29 09:59:42 +02:00
Robinson
841b9959ac Fixed issues when reconnecting. 'onDisconnect' is now guaranteed to be called before 'onConnect' 2021-04-29 02:10:34 +02:00
Robinson
6d70313687 aeron driver is now properly start during reconnect event 2021-04-29 01:48:29 +02:00
Robinson
52d5f4b189 proper inet address resolution 2021-04-29 01:48:04 +02:00
Robinson
8068b1a5df Added version info 2021-04-29 01:47:53 +02:00
Robinson
37fbfe6ac1 cleaned up stacktrace, code polish 2021-04-29 01:47:25 +02:00
Robinson
9c7fa4de8d MediaDriver + aeron states are now reset on close 2021-04-29 01:46:18 +02:00
Robinson
36318690a2 Cleaned up RMI response manager object construction 2021-04-28 11:19:55 +02:00
Robinson
e747b52373 WIP ping infrastructure 2021-04-28 11:19:13 +02:00
Robinson
32cd2822ee Changed session ID -> ID for RandomIdAllocator.kt 2021-04-28 11:18:34 +02:00
Robinson
31f559accc updated version 2021-04-27 14:20:51 +02:00
Robinson
ad1c2450b9 Fixed deprecated methods 2021-04-27 14:19:56 +02:00
Robinson
8d47b8b0b8 Fixed missing parameter 2021-04-27 14:17:19 +02:00
Robinson
c706969005 Fixed package name 2021-04-27 14:00:31 +02:00
Robinson
f53e705432 Fixed "fast" reconnect issues, where sometimes the media driver would be disconnected from the aeron driver 2021-04-27 13:57:47 +02:00
Robinson
9e0bc0da3e Fixed stackframe index 2021-04-27 13:31:54 +02:00
Robinson
ed76209925 Changed RMI object callback to only be "this", instead of passing the (internal) rmiID around. The RMI-ID is used for internal rmi messages, so that a request+response can be paired. 2021-04-27 13:31:18 +02:00
Robinson
09087b470a Stack frame cleanup removes ALL coroutines 2021-04-27 10:55:29 +02:00
Robinson
bb245e2f8e Code cleanup 2021-04-27 10:28:36 +02:00
Robinson
29b0ee8199 Fixed connection filter on connect 2021-04-27 10:28:18 +02:00
Robinson
ef598b0b72 WIP connection setup 2021-04-27 10:27:03 +02:00
Robinson
1765b4e367 Fixed server-client pair connection address info 2021-04-27 10:26:37 +02:00
Robinson
7d39f70450 Removed filter notify for IPC connections 2021-04-27 10:26:04 +02:00
Robinson
ea857da883 Better stack frame cleanup 2021-04-27 10:25:19 +02:00
Robinson
f3637219c3 Code polish/cleanup 2021-04-25 22:01:50 +02:00
Robinson
bcbdaf167f code/library cleanup 2021-04-24 00:09:11 +02:00
Robinson
dccc46d16b Updated to kotlin 2021-04-24 00:07:49 +02:00
Robinson
a229b85ee7 Rename .java to .kt 2021-04-24 00:07:48 +02:00
Robinson
5a7b6a159a Proper null checking 2021-04-24 00:07:26 +02:00
Robinson
3a9d63858f Converted to kotlin 2021-04-24 00:06:43 +02:00
Robinson
6f3615d211 Rename .java to .kt 2021-04-24 00:06:42 +02:00
Robinson
f60ec9d10f updated libraries, added updates 2021-04-09 20:24:45 +02:00
Robinson
bb77a17158 Removed unchecked cast suppression 2021-04-02 15:15:01 +02:00
Robinson
ec5dd55fee Moved unused code 2021-01-15 14:11:33 +01:00
Robinson
7ecb920ed0 Added type definitions and github links 2021-01-15 02:29:04 +01:00
Robinson
bda3082d41 Set field access scope to private 2021-01-15 02:21:21 +01:00
Robinson
47e202901a remove duplicated key strings, now uses common fields 2021-01-15 02:19:09 +01:00
nathan
96b4a78104 Updated to use the object pool. Release 5.0! 2020-10-06 02:08:12 +02:00
nathan
df1eab1509 Removed stack trace from internal logging on client handshake errors (they mean nothing, other than it's an exception and the message) 2020-09-29 21:43:39 +02:00
nathan
62dff03df9 Fixed issue with multi-client handshakes. Made error messages cleaner 2020-09-29 16:05:17 +02:00
nathan
f4401d425c Formatting 2020-09-29 15:26:40 +02:00
nathan
61260b02ce Updated comments 2020-09-29 14:38:06 +02:00
nathan
e5c35ea24e Async allocation and branch cleanup 2020-09-29 14:36:18 +02:00
nathan
cc9742fe14 Handshake validate is only done based on the one-time key (instead off session id) as the session ID was shared in some situations (the aeron session ID is not guarateed to be unique, unless it is manually set) 2020-09-28 16:30:38 +02:00
nathan
4dc58f2485 exposed secureRandom 2020-09-28 16:12:50 +02:00
nathan
1040cf14f5 Crypto code polish. wrapped crypto stuff in try/catch 2020-09-25 19:54:49 +02:00
nathan
2b2e185c4a Added settings store for server (in addition to the existing client one) 2020-09-25 19:54:27 +02:00
nathan
4fb5ec8517 Code polish. Added extra failure if registration data or public key data is null 2020-09-25 19:52:46 +02:00
nathan
21a84bb9d2 Fixed issue with getting private key (was getting public key instead) 2020-09-25 19:33:15 +02:00
nathan
dfec897f83 connectionTimeoutMS == 0, now (correctly) means wait forever 2020-09-25 18:32:18 +02:00
nathan
80c4ed6fcc Endpoint custom settingsStore can now be created (instead of just specifying a type) 2020-09-25 14:51:16 +02:00
nathan
816191a5b3 Marked methods final that should not be allowed to be overridden 2020-09-25 14:49:17 +02:00
nathan
1688a11000 Property Store only saves values if they have changed 2020-09-24 10:30:52 +02:00
nathan
09eb16f7b5 Added better connection check intervals and connection expiration timeouts 2020-09-23 22:32:29 +02:00
nathan
c869306ebe Added more log information when stopping the AeronMediaDriver. Code polish 2020-09-23 17:09:34 +02:00
nathan
93e406289c Fixed issues with connection handshake with the same computer, on multiple clients. 2020-09-23 17:08:25 +02:00
nathan
8605040819 Safer closing of the aeron client during close process 2020-09-23 16:59:58 +02:00
nathan
0b12f36507 improved close() messages/meanings in log 2020-09-23 15:52:45 +02:00
nathan
a4ccbd4b6a Cleaned up comments. Cleaned up forEachConnection() (it's only on server now) 2020-09-22 21:06:31 +02:00
nathan
0a3a08fb8f code polish 2020-09-22 21:05:50 +02:00
nathan
d7eef22091 Added sub/pub retries for both UDP and IPC 2020-09-22 21:01:06 +02:00
nathan
a82c5724f5 Added IPC addPub/Sub retries when aeron is restarted to quickly 2020-09-22 19:42:46 +02:00
nathan
af7e35fcf9 Changed client.send() to return true/false if the message was sent, added client.sendWithException() to throw an exception if the message was unable to be sent 2020-09-22 19:42:04 +02:00
nathan
c6e12e7872 Fixed IPC auto-fallback connection issues 2020-09-22 19:41:19 +02:00
nathan
56fc7e54f1 Fixed IPv6 connection issue 2020-09-22 19:40:56 +02:00
nathan
e035d86ee0 Added forEachConnection() method to run a function callback against each connection 2020-09-22 19:39:24 +02:00
nathan
ed60b68e77 Updated aeron (and other libraries) to fix IPv6 bug (removed class override) 2020-09-22 17:24:35 +02:00
nathan
64a36cb4f8 code polish to more straightforward logic 2020-09-22 17:05:49 +02:00
nathan
7d67cc86b7 Renaming RmiResponseManager for a more general use case (ResponseManager) 2020-09-22 17:05:25 +02:00
nathan
8f39813ccf Renamed RmiWaiter -> ResponseWaiter 2020-09-21 01:42:31 +02:00
nathan
04ca513cc3 suppressed experimental warnings 2020-09-19 22:07:38 +02:00
nathan
7ae3762603 Code polish 2020-09-19 22:07:09 +02:00
nathan
5017437a7a Updated networkutils, code polish 2020-09-19 22:06:54 +02:00
nathan
2429810fd7 Correct usage of no host name 2020-09-19 22:06:30 +02:00
nathan
dc30c18e97 Changed how internal storage operates (major performance improvement), added more types of storage. Set the default to PropertyStore (so settings are saved in a property file) 2020-09-19 19:41:39 +02:00
nathan
50783a7ae9 reworked how stopDriver operates 2020-09-19 19:38:55 +02:00
nathan
1703bc5449 Crypto now works with the raw public/private key byte arrays (instead of encoded bytearrays) 2020-09-19 01:32:32 +02:00
nathan
32d3023814 Serialization can now be extended 2020-09-18 01:12:53 +02:00
nathan
6548ad86e7 Added read(buffer: DirectBuffer), now returns writerBuffer on write 2020-09-18 01:12:25 +02:00
nathan
a8a6a517f7 Added setBuffer(DirectBuffer) method 2020-09-18 01:10:57 +02:00
nathan
bb2a7d8c41 Fixed error typo 2020-09-18 01:09:56 +02:00
nathan
bf457b6d69 Better error when client subscrition cannot connect. Added comments about publications 2020-09-18 01:09:18 +02:00
nathan
b9c0e6b29f Handshake should be using the endpoint store, not the config store 2020-09-16 15:52:25 +02:00