akwizgran
42e586abc4
Merged code from FilePlugin and SocketPlugin into a superclass.
2011-10-06 18:07:58 +01:00
akwizgran
3e522c81fa
Plugins should not modify their properties or configs.
2011-10-06 17:58:08 +01:00
akwizgran
8468b84c54
Reduced visibility of methods where possible.
2011-10-06 17:53:31 +01:00
akwizgran
bb9f03f1e8
Close and reopen the socket if necessary when the properties change.
2011-10-06 17:39:51 +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
11b571fd8f
Moved locking to the superclass to simplify subclasses.
2011-10-06 09:34:15 +01:00
akwizgran
ffe10e1502
Don't call the callback after stop() has been called.
2011-10-06 09:25:50 +01:00
akwizgran
b54668c50b
Renamed InvalidTransportException -> InvalidPropertiesException.
2011-10-06 09:18:13 +01:00
akwizgran
45fd4c9060
Simple TCP socket plugin (untested).
2011-10-06 09:17:22 +01:00
akwizgran
80cba1e7f7
Added finish() methods to transport readers/writers, and added a
...
readerFinished() callback method to FilePlugin.
2011-10-05 18:59:30 +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
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
2095c2bbaa
Removable drive monitors for Windows, Mac and Linux (untested).
2011-10-05 13:27:37 +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
f4af582592
Don't try to get the free space for a nonexistent file.
2011-10-04 21:47:38 +01:00
akwizgran
ef811ed295
Removed println.
2011-10-04 21:45:15 +01:00
akwizgran
f02e6b3f89
Removable drive finders for Windows, Mac and Linux (untested).
2011-10-04 21:04:22 +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
akwizgran
7190509ede
Use numeric IDs rather than names to identify transports.
2011-09-29 15:40:09 +01:00
akwizgran
2edb18aee0
Store outgoing connection numbers in the database.
2011-09-28 19:24:22 +01:00
akwizgran
a8b96f11fd
Added Consumer support to Writer, to avoid redundant copying.
2011-09-28 18:47:24 +01:00
akwizgran
9c2e3917bf
Added an integration test for batch transports.
2011-09-28 14:43:23 +01:00
akwizgran
a1b664b639
More refactoring to connect ConnectionRecogniser to ConnectionReader.
...
Added TestDatabaseModule so tests can specify their own DB
configuration. The modules are currently too tightly coupled - see
whether any dependencies can be removed.
2011-09-28 14:21:38 +01:00
akwizgran
4aff0c4f88
Refactored transport component and renamed WritersModule.
...
The goal of the refactoring was to clean up the dependencies of
IncomingBatchConnection and OutgoingBatchConnection.
2011-09-27 19:21:44 +01:00
akwizgran
6ed8d89e59
Don't block when free disk space is critically low.
...
If it's not possible to free up any additional space, exit rather than
hanging. In future we should warn the user before exiting.
2011-09-27 17:05:51 +01:00
akwizgran
90e32ac906
AtomicBoolean is not needed.
2011-09-27 16:29:41 +01:00
akwizgran
dea77b22d7
Don't call stopped.get() outside the lock.
2011-09-27 16:26:55 +01:00
akwizgran
a40c081815
Record when the latest subscription/transport update was sent.
2011-09-26 18:13:48 +01:00
akwizgran
266048a815
Removed an unused method.
2011-09-26 18:03:02 +01:00
akwizgran
53b5a61ab3
Replaced Database.getParent() with getGroupMessageParent().
...
The new method checks whether the parent is present in the database
and belongs to the same group, so separate methods for those checks
have been removed.
2011-09-26 18:00:56 +01:00
akwizgran
124188a0a1
DatabaseComponent.setSeen() should call setStatusSeenIfVisible().
...
Otherwise an exception may be thrown if an offered message is no
longer in the DB.
2011-09-25 14:39:31 +01:00
akwizgran
98ab523092
Database refactoring to fix injection problems.
2011-09-23 18:52:56 +01:00
akwizgran
2a92ed0056
Removed fake database password from Guice module.
2011-09-23 16:25:48 +01:00
akwizgran
b470afb4ef
Added DatabaseComponent.setSeen() for handling requests.
...
Also moved IO out of the lock in receiveOffer().
2011-09-23 16:06:14 +01:00
akwizgran
ba1c61810d
Updated the visibility criteria of setStatusSeenIfVisible().
2011-09-23 16:04:58 +01:00
akwizgran
7c6e0c349c
Extracted constants from DatabaseComponent interface.
2011-09-23 15:33:41 +01:00
akwizgran
b675c38953
Don't do IO while holding database locks.
2011-09-23 12:55:23 +01:00
akwizgran
09971c8460
Implemented incoming and outgoing batch connections (untested).
2011-09-22 16:26:06 +01:00
akwizgran
b65d6631f1
Removed writer's count of bytes written and renamed a method.
2011-09-21 18:22:14 +01:00
akwizgran
52f3b70c3f
Added size-unlimited version of Database.getSendableMessages().
2011-09-21 18:10:22 +01:00
akwizgran
eba6884281
Javadocs.
2011-09-21 18:09:56 +01:00
akwizgran
e589d44d9f
Where possible, do IO outside transactions and locks.
2011-09-21 18:04:21 +01:00
akwizgran
43a6a22f4a
Don't call finish() unless at least one message ID was written.
2011-09-21 17:52:34 +01:00
akwizgran
8dd7ec93e7
DatabaseComponent.generateAck() now returns a boolean.
...
The return value indicates whether any batch IDs were written.
AckWriter.finish() and Database.removeBatchesToAck() are only called
if at least one batch ID was written.
2011-09-21 17:51:17 +01:00
akwizgran
10c3b21726
Expose the encryption and authentication overhead without breaking
...
encapsulation.
This should allow callers to calculate maximum packet sizes without
knowing the details of the transport protocol.
2011-09-21 15:22:25 +01:00