Commit Graph

219 Commits

Author SHA1 Message Date
akwizgran 2628823db7 Added a method to get all message headers in a given group (untested). 2011-10-25 17:12:37 +01:00
akwizgran 9ec8feec78 Added a method for retrieving the message body from the DB. 2011-10-21 20:42:43 +01:00
akwizgran 1173e0a563 Increased sleep intervals to avoid a race. 2011-10-21 20:42:09 +01:00
akwizgran ef61eaa804 Separated MessageHeader interface from Message interface. 2011-10-21 18:42:27 +01:00
akwizgran f2d80825bc Separated the subject line from the message body. 2011-10-21 18:25:25 +01:00
akwizgran 4d23e14d89 Unit tests for subscription and transport timestamps. 2011-10-19 16:41:32 +01:00
akwizgran c828db2e95 Don't send subscription or transport updates unless an update is due.
An update is due if the information has changed since the last update,
or if no update has been sent for 12 hours (to ensure that lost
updates are eventually replaced).
2011-10-19 16:34:58 +01:00
akwizgran 93cd31fa2d Simplify Database methods, move logic to DatabaseComponent. 2011-10-19 15:54:56 +01:00
akwizgran dbdbb1d8d4 Never reuse contact IDs. 2011-10-19 12:43:44 +01:00
akwizgran c8b2cc38de Record when the transports and subscriptions visible to each contact
were last modified.

In future this will be used to determine when to send updates.
2011-10-18 17:32:32 +01:00
akwizgran d7a417f36d Validate the decrypted IV before creating a reader/writer. 2011-10-18 15:58:10 +01:00
akwizgran 2f457162a5 Attach the affected contact IDs to subscription update events. 2011-10-17 23:24:23 +01:00
akwizgran ec56b12384 Converted database events from an enum to classes to allow them to
carry data.
2011-10-17 22:47:38 +01:00
akwizgran 0ef1fcb686 De-uglified some code and moved two API classes. 2011-10-14 21:49:58 +01:00
akwizgran d48c7b6900 Converted {Incoming,Outgoing}BatchConnection into Runnables.
Also changed the dispose() method of readers/writers/connections to
swallow any exceptions that occur, since the caller can't do anything
except log them.
2011-10-14 16:14:29 +01:00
akwizgran 55182528cf Q: What does the plugin manager do? A: It manages plugins. 2011-10-14 14:49:29 +01:00
akwizgran 64e2d7bca9 Refactoring: shorter class names. 2011-10-12 17:25:37 +01:00
akwizgran 3a07d1b882 Plugins don't need their own copies of configs and properties. 2011-10-12 16:52:39 +01:00
akwizgran 631f4e74b5 Nudge the database API in the direction of sanity. 2011-10-11 19:08:10 +01:00
akwizgran a49a95347f Use dedicated classes for transport properties and configs. 2011-10-11 17:28:47 +01:00
akwizgran 68b82ae826 Retrieve all remote transports from the DB in a single call. 2011-10-10 22:35:46 +01:00
akwizgran 4059fbf863 Moved plugin API from transport package to plugins package and merged
transport subpackages.
2011-10-10 16:18:48 +01:00
akwizgran 5f40015ec2 Moved callback initialisation from start() to constructor so it can be
accessed outside the lock.
2011-10-08 12:46:35 +01:00
akwizgran 56c07a8d98 Tests for the Bluetooth plugin. 2011-10-07 13:36:53 +01:00
akwizgran 16c9bf7079 Unit test refactoring. 2011-10-07 00:08:32 +01:00
akwizgran c08f6c4d1e Merged transports' finish() and dispose() methods. 2011-10-06 19:00:33 +01:00
akwizgran 3e522c81fa Plugins should not modify their properties or configs. 2011-10-06 17:58:08 +01:00
akwizgran bb9f03f1e8 Close and reopen the socket if necessary when the properties change. 2011-10-06 17:39:51 +01:00
akwizgran f23e89c80e Outgoing connection test. 2011-10-06 12:59:27 +01:00
akwizgran e7b404b7b3 Check that the socket is passed to the callback. 2011-10-06 12:15:55 +01:00
akwizgran 5bc9baff95 Accept connections on the local socket. 2011-10-06 12:00:44 +01:00
akwizgran 1ee765a052 Resolve the address before binding. 2011-10-06 11:31:09 +01:00
akwizgran f8ca06f79d Changed callback arguments to varargs and renamed a method. 2011-10-06 11:13:19 +01:00
akwizgran 775d76d040 Removed unused classes. 2011-10-05 18:54:49 +01:00
akwizgran 6160a5f56c Formatting. 2011-10-05 18:49:27 +01:00
akwizgran 3ffb56bf12 Factored ConnectionRecogniser out of transport plugins. 2011-10-05 18:48:10 +01:00
akwizgran af41e42c6c Use an Executor to decouple the callback from the caller. 2011-10-05 17:22:21 +01:00
akwizgran 8940dc83cb Replaced assertTrue(Arrays.equals()) with assertArrayEquals(). 2011-10-05 17:07:52 +01:00
akwizgran c054e1c00e Replaced some sleeps with latches. 2011-10-05 16:51:26 +01:00
akwizgran 9464e29d75 Unit tests for the reader portion of RemovableDrivePlugin. 2011-10-05 16:39:20 +01:00
akwizgran f6df333796 Changed drive monitors to use callbacks rather than blocking. 2011-10-05 16:11:18 +01:00
akwizgran 3a321b0f0e Unit tests for PollingRemovableDriveMonitor. 2011-10-05 14:51:24 +01:00
akwizgran 2ce8d2a418 Fixed a race condition: start the monitor before creating files. 2011-10-05 14:09:43 +01:00
akwizgran a773bbc320 Unit tests for UnixRemovableDriveMonitor. 2011-10-05 13:47:38 +02:00
akwizgran d49ab73d81 Unit tests and bug fixes for removable drive finders. 2011-10-04 22:36:00 +01:00
akwizgran 18723a56ae Unit tests for the removable drive plugin. 2011-10-04 22:04:10 +01:00
akwizgran f02e6b3f89 Removable drive finders for Windows, Mac and Linux (untested). 2011-10-04 21:04:22 +01:00
akwizgran 11a6858c46 Updated transport plugin API. 2011-10-04 17:49:18 +01:00
akwizgran 74ca71d9c1 Check for symlinks when deleting directories. Allow Database.open()
and close() to throw IOExceptions as well as DatabaseExceptions.
2011-10-03 18:35:18 +01:00
akwizgran 72b594d270 Type-safe transport IDs. 2011-09-30 12:52:29 +01:00