akwizgran
48d638746c
Invitation API and two (untested) implementations.
2011-10-27 17:52:03 +01:00
akwizgran
59485fe392
Added comments for columns that may be null.
2011-10-26 18:05:49 +01:00
akwizgran
7d73f9604d
Added a method for getting unread message counts for all groups.
2011-10-26 17:56:35 +01:00
akwizgran
6d91603bf7
Moved MessageHeader into DB component and added read/starred flags.
2011-10-26 17:07:09 +01:00
akwizgran
0f6b0e88c1
Added message flags: read/unread and starred/unstarred.
2011-10-26 16:32:30 +01:00
akwizgran
b70b579fd6
Renamed locks in javadoc comments.
2011-10-26 15:49:35 +01:00
akwizgran
94722a9f2a
Broadcast an event when an author's rating changes.
2011-10-26 15:40:38 +01:00
akwizgran
097d11f471
Exposed getMessageHeaders() through DatabaseComponent interface.
2011-10-26 15:18:02 +01:00
akwizgran
d2bac9a4f8
Test and bugfix for getMessageHeaders().
2011-10-26 14:52:18 +01:00
akwizgran
2628823db7
Added a method to get all message headers in a given group (untested).
2011-10-25 17:12:37 +01:00
akwizgran
995518c48b
Upgraded H2 jar and removed workaround for Blob.getBytes() bug.
...
The H2 developers are amazing. :-)
2011-10-25 09:42:27 +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
f18ddfe55f
Variables protected by a monitor don't need to be volatile.
2011-10-19 12:52:02 +01:00
akwizgran
8713e81887
Use ZERO() to initialise columns where appropriate.
2011-10-19 12:48:34 +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
89001e4c91
Double-check the initiator flag and transport ID of incoming
...
connections, and invert the flag for the responder's side.
2011-10-15 14:15:25 +01:00
akwizgran
2618fea0eb
Guice module for stream transport connections.
2011-10-14 22:50:34 +01:00
akwizgran
e214c40b11
Code cleanup and comments.
2011-10-14 22:48:16 +01:00
akwizgran
0ef1fcb686
De-uglified some code and moved two API classes.
2011-10-14 21:49:58 +01:00
akwizgran
cb06ebc5d2
Locking.
2011-10-14 21:37:55 +01:00
akwizgran
0d11553134
StreamConnectionFactory and ConnectionDispatcherImpl (untested).
2011-10-14 21:07:49 +01:00
akwizgran
718bd8c540
Moved DB accesses outside the lock.
2011-10-14 20:07:37 +01:00
akwizgran
8ece8f3243
First stab at the StreamConnection state machine. Needs work.
2011-10-14 19:50:17 +01:00
akwizgran
bd91e7ebf3
Renamed a DB event.
2011-10-14 19:49:47 +01:00
akwizgran
e00e12d473
Call the listeners if a new ack might need to be sent.
2011-10-14 18:29:14 +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
d54ca67fe9
Tidied up synchronization.
2011-10-13 13:08:54 +01:00
akwizgran
aabe72bfd7
Plugin factories.
2011-10-12 17:26:05 +01:00
akwizgran
64e2d7bca9
Refactoring: shorter class names.
2011-10-12 17:25:37 +01:00
akwizgran
c5d9d9fa64
Minor concurrency cleanups.
2011-10-12 17:11:31 +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
125ae1b640
Always call the callback outside the plugin's lock.
2011-10-08 13:13:28 +01:00
akwizgran
50e5c51d77
Removed an unused field.
2011-10-08 12:48:07 +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
7eaefd97cb
Added missing Override annotations.
2011-10-08 12:45:49 +01:00