From 72be34768b1e0abe6da2995913693932fc9f857d Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Mon, 14 Nov 2011 22:14:52 +0000 Subject: [PATCH] Minor refactoring. --- .../sf/briar/api/db/DatabaseComponent.java | 12 ++--- .../{writers => }/MessageEncoder.java | 6 +-- .../briar/api/protocol/ProtocolConstants.java | 6 +-- .../api/protocol/writers/AuthorWriter.java | 11 ----- .../api/protocol/writers/GroupWriter.java | 11 ----- .../writers/ProtocolWriterFactory.java | 4 +- ...ter.java => SubscriptionUpdateWriter.java} | 2 +- ...Writer.java => TransportUpdateWriter.java} | 2 +- .../sf/briar/db/DatabaseComponentImpl.java | 10 ++--- .../sf/briar/protocol/MessageEncoderImpl.java | 29 +++++++----- .../net/sf/briar/protocol/ProtocolModule.java | 2 +- .../protocol/writers/AuthorWriterImpl.java | 17 ------- .../protocol/writers/GroupWriterImpl.java | 19 -------- .../writers/ProtocolWriterFactoryImpl.java | 13 +++--- .../writers/ProtocolWritersModule.java | 4 -- ...java => SubscriptionUpdateWriterImpl.java} | 20 ++++++--- ...pl.java => TransportUpdateWriterImpl.java} | 6 +-- .../batch/OutgoingBatchConnection.java | 11 ++--- .../transport/stream/StreamConnection.java | 36 +++++++-------- .../net/sf/briar/ProtocolIntegrationTest.java | 13 +++--- .../sf/briar/db/DatabaseComponentTest.java | 44 +++++++++---------- .../briar/protocol/ProtocolReadWriteTest.java | 12 ++--- .../briar/protocol/writers/ConstantsTest.java | 15 ++++--- .../batch/BatchConnectionReadWriteTest.java | 2 +- 24 files changed, 130 insertions(+), 177 deletions(-) rename api/net/sf/briar/api/protocol/{writers => }/MessageEncoder.java (85%) delete mode 100644 api/net/sf/briar/api/protocol/writers/AuthorWriter.java delete mode 100644 api/net/sf/briar/api/protocol/writers/GroupWriter.java rename api/net/sf/briar/api/protocol/writers/{SubscriptionWriter.java => SubscriptionUpdateWriter.java} (88%) rename api/net/sf/briar/api/protocol/writers/{TransportWriter.java => TransportUpdateWriter.java} (89%) delete mode 100644 components/net/sf/briar/protocol/writers/AuthorWriterImpl.java delete mode 100644 components/net/sf/briar/protocol/writers/GroupWriterImpl.java rename components/net/sf/briar/protocol/writers/{SubscriptionWriterImpl.java => SubscriptionUpdateWriterImpl.java} (60%) rename components/net/sf/briar/protocol/writers/{TransportWriterImpl.java => TransportUpdateWriterImpl.java} (80%) diff --git a/api/net/sf/briar/api/db/DatabaseComponent.java b/api/net/sf/briar/api/db/DatabaseComponent.java index 1e1402b1f1..857e6c1e5e 100644 --- a/api/net/sf/briar/api/db/DatabaseComponent.java +++ b/api/net/sf/briar/api/db/DatabaseComponent.java @@ -26,8 +26,8 @@ import net.sf.briar.api.protocol.writers.AckWriter; import net.sf.briar.api.protocol.writers.BatchWriter; import net.sf.briar.api.protocol.writers.OfferWriter; import net.sf.briar.api.protocol.writers.RequestWriter; -import net.sf.briar.api.protocol.writers.SubscriptionWriter; -import net.sf.briar.api.protocol.writers.TransportWriter; +import net.sf.briar.api.protocol.writers.SubscriptionUpdateWriter; +import net.sf.briar.api.protocol.writers.TransportUpdateWriter; import net.sf.briar.api.transport.ConnectionWindow; /** @@ -102,12 +102,12 @@ public interface DatabaseComponent { throws DbException, IOException; /** Generates a subscription update for the given contact. */ - void generateSubscriptionUpdate(ContactId c, SubscriptionWriter s) throws - DbException, IOException; + void generateSubscriptionUpdate(ContactId c, SubscriptionUpdateWriter s) + throws DbException, IOException; /** Generates a transport update for the given contact. */ - void generateTransportUpdate(ContactId c, TransportWriter t) throws - DbException, IOException; + void generateTransportUpdate(ContactId c, TransportUpdateWriter t) + throws DbException, IOException; /** Returns the configuration for the given transport. */ TransportConfig getConfig(TransportId t) throws DbException; diff --git a/api/net/sf/briar/api/protocol/writers/MessageEncoder.java b/api/net/sf/briar/api/protocol/MessageEncoder.java similarity index 85% rename from api/net/sf/briar/api/protocol/writers/MessageEncoder.java rename to api/net/sf/briar/api/protocol/MessageEncoder.java index bb144720ef..f587c0c1b2 100644 --- a/api/net/sf/briar/api/protocol/writers/MessageEncoder.java +++ b/api/net/sf/briar/api/protocol/MessageEncoder.java @@ -1,13 +1,9 @@ -package net.sf.briar.api.protocol.writers; +package net.sf.briar.api.protocol; import java.io.IOException; import java.security.GeneralSecurityException; import java.security.PrivateKey; -import net.sf.briar.api.protocol.Author; -import net.sf.briar.api.protocol.Group; -import net.sf.briar.api.protocol.Message; -import net.sf.briar.api.protocol.MessageId; public interface MessageEncoder { diff --git a/api/net/sf/briar/api/protocol/ProtocolConstants.java b/api/net/sf/briar/api/protocol/ProtocolConstants.java index 29f31df899..7e23d247a0 100644 --- a/api/net/sf/briar/api/protocol/ProtocolConstants.java +++ b/api/net/sf/briar/api/protocol/ProtocolConstants.java @@ -12,10 +12,10 @@ public interface ProtocolConstants { static final int MAX_PACKET_LENGTH = TransportConstants.MIN_CONNECTION_LENGTH - 1024; - /** The maximum number of transport plugins a node may support. */ + /** The maximum number of transports a node may support. */ static final int MAX_TRANSPORTS = 50; - /** The maximum number of properties per transport plugin. */ + /** The maximum number of properties per transport. */ static final int MAX_PROPERTIES_PER_TRANSPORT = 100; /** The maximum length of a property's key or value in UTF-8 bytes. */ @@ -27,7 +27,7 @@ public interface ProtocolConstants { /** The maximum length of a group's name in UTF-8 bytes. */ static final int MAX_GROUP_NAME_LENGTH = 50; - /** The maximum length of a serialised public key in bytes. */ + /** The maximum length of a public key in bytes. */ static final int MAX_PUBLIC_KEY_LENGTH = 100; /** The maximum length of an author's name in UTF-8 bytes. */ diff --git a/api/net/sf/briar/api/protocol/writers/AuthorWriter.java b/api/net/sf/briar/api/protocol/writers/AuthorWriter.java deleted file mode 100644 index 702b0963ce..0000000000 --- a/api/net/sf/briar/api/protocol/writers/AuthorWriter.java +++ /dev/null @@ -1,11 +0,0 @@ -package net.sf.briar.api.protocol.writers; - -import java.io.IOException; - -import net.sf.briar.api.protocol.Author; -import net.sf.briar.api.serial.Writer; - -public interface AuthorWriter { - - void writeAuthor(Writer w, Author a) throws IOException; -} diff --git a/api/net/sf/briar/api/protocol/writers/GroupWriter.java b/api/net/sf/briar/api/protocol/writers/GroupWriter.java deleted file mode 100644 index 40d595b1a7..0000000000 --- a/api/net/sf/briar/api/protocol/writers/GroupWriter.java +++ /dev/null @@ -1,11 +0,0 @@ -package net.sf.briar.api.protocol.writers; - -import java.io.IOException; - -import net.sf.briar.api.protocol.Group; -import net.sf.briar.api.serial.Writer; - -public interface GroupWriter { - - void writeGroup(Writer w, Group g) throws IOException; -} diff --git a/api/net/sf/briar/api/protocol/writers/ProtocolWriterFactory.java b/api/net/sf/briar/api/protocol/writers/ProtocolWriterFactory.java index 480ac550b4..a0e88b4faa 100644 --- a/api/net/sf/briar/api/protocol/writers/ProtocolWriterFactory.java +++ b/api/net/sf/briar/api/protocol/writers/ProtocolWriterFactory.java @@ -12,7 +12,7 @@ public interface ProtocolWriterFactory { RequestWriter createRequestWriter(OutputStream out); - SubscriptionWriter createSubscriptionWriter(OutputStream out); + SubscriptionUpdateWriter createSubscriptionUpdateWriter(OutputStream out); - TransportWriter createTransportWriter(OutputStream out); + TransportUpdateWriter createTransportUpdateWriter(OutputStream out); } diff --git a/api/net/sf/briar/api/protocol/writers/SubscriptionWriter.java b/api/net/sf/briar/api/protocol/writers/SubscriptionUpdateWriter.java similarity index 88% rename from api/net/sf/briar/api/protocol/writers/SubscriptionWriter.java rename to api/net/sf/briar/api/protocol/writers/SubscriptionUpdateWriter.java index 2fd582caca..87c0ae5cd7 100644 --- a/api/net/sf/briar/api/protocol/writers/SubscriptionWriter.java +++ b/api/net/sf/briar/api/protocol/writers/SubscriptionUpdateWriter.java @@ -6,7 +6,7 @@ import java.util.Map; import net.sf.briar.api.protocol.Group; /** An interface for creating a subscription update. */ -public interface SubscriptionWriter { +public interface SubscriptionUpdateWriter { /** Writes the contents of the update. */ void writeSubscriptions(Map<Group, Long> subs, long timestamp) diff --git a/api/net/sf/briar/api/protocol/writers/TransportWriter.java b/api/net/sf/briar/api/protocol/writers/TransportUpdateWriter.java similarity index 89% rename from api/net/sf/briar/api/protocol/writers/TransportWriter.java rename to api/net/sf/briar/api/protocol/writers/TransportUpdateWriter.java index fb5a88bffe..e3ea608380 100644 --- a/api/net/sf/briar/api/protocol/writers/TransportWriter.java +++ b/api/net/sf/briar/api/protocol/writers/TransportUpdateWriter.java @@ -6,7 +6,7 @@ import java.util.Collection; import net.sf.briar.api.protocol.Transport; /** An interface for creating a transport update. */ -public interface TransportWriter { +public interface TransportUpdateWriter { /** Writes the contents of the update. */ void writeTransports(Collection<Transport> transports, long timestamp) diff --git a/components/net/sf/briar/db/DatabaseComponentImpl.java b/components/net/sf/briar/db/DatabaseComponentImpl.java index 23b3ae4e14..f3a8281788 100644 --- a/components/net/sf/briar/db/DatabaseComponentImpl.java +++ b/components/net/sf/briar/db/DatabaseComponentImpl.java @@ -58,8 +58,8 @@ import net.sf.briar.api.protocol.writers.AckWriter; import net.sf.briar.api.protocol.writers.BatchWriter; import net.sf.briar.api.protocol.writers.OfferWriter; import net.sf.briar.api.protocol.writers.RequestWriter; -import net.sf.briar.api.protocol.writers.SubscriptionWriter; -import net.sf.briar.api.protocol.writers.TransportWriter; +import net.sf.briar.api.protocol.writers.SubscriptionUpdateWriter; +import net.sf.briar.api.protocol.writers.TransportUpdateWriter; import net.sf.briar.api.transport.ConnectionWindow; import com.google.inject.Inject; @@ -602,8 +602,8 @@ DatabaseCleaner.Callback { return sent; } - public void generateSubscriptionUpdate(ContactId c, SubscriptionWriter s) - throws DbException, IOException { + public void generateSubscriptionUpdate(ContactId c, + SubscriptionUpdateWriter s) throws DbException, IOException { Map<Group, Long> subs = null; long timestamp = 0L; contactLock.readLock().lock(); @@ -644,7 +644,7 @@ DatabaseCleaner.Callback { return now - sent >= DatabaseConstants.MAX_UPDATE_INTERVAL; } - public void generateTransportUpdate(ContactId c, TransportWriter t) + public void generateTransportUpdate(ContactId c, TransportUpdateWriter t) throws DbException, IOException { Collection<Transport> transports = null; long timestamp = 0L; diff --git a/components/net/sf/briar/protocol/MessageEncoderImpl.java b/components/net/sf/briar/protocol/MessageEncoderImpl.java index 821e530166..5d5d68dd4f 100644 --- a/components/net/sf/briar/protocol/MessageEncoderImpl.java +++ b/components/net/sf/briar/protocol/MessageEncoderImpl.java @@ -14,12 +14,10 @@ import net.sf.briar.api.protocol.AuthorId; import net.sf.briar.api.protocol.Group; import net.sf.briar.api.protocol.GroupId; import net.sf.briar.api.protocol.Message; +import net.sf.briar.api.protocol.MessageEncoder; import net.sf.briar.api.protocol.MessageId; import net.sf.briar.api.protocol.ProtocolConstants; import net.sf.briar.api.protocol.Types; -import net.sf.briar.api.protocol.writers.AuthorWriter; -import net.sf.briar.api.protocol.writers.GroupWriter; -import net.sf.briar.api.protocol.writers.MessageEncoder; import net.sf.briar.api.serial.Consumer; import net.sf.briar.api.serial.Writer; import net.sf.briar.api.serial.WriterFactory; @@ -32,19 +30,14 @@ class MessageEncoderImpl implements MessageEncoder { private final SecureRandom random; private final MessageDigest messageDigest; private final WriterFactory writerFactory; - private final AuthorWriter authorWriter; - private final GroupWriter groupWriter; @Inject - MessageEncoderImpl(CryptoComponent crypto, WriterFactory writerFactory, - AuthorWriter authorWriter, GroupWriter groupWriter) { + MessageEncoderImpl(CryptoComponent crypto, WriterFactory writerFactory) { authorSignature = crypto.getSignature(); groupSignature = crypto.getSignature(); random = crypto.getSecureRandom(); messageDigest = crypto.getMessageDigest(); this.writerFactory = writerFactory; - this.authorWriter = authorWriter; - this.groupWriter = groupWriter; } public Message encodeMessage(MessageId parent, String subject, byte[] body) @@ -111,9 +104,9 @@ class MessageEncoderImpl implements MessageEncoder { if(parent == null) w.writeNull(); else w.writeBytes(parent.getBytes()); if(group == null) w.writeNull(); - else groupWriter.writeGroup(w, group); + else writeGroup(w, group); if(author == null) w.writeNull(); - else authorWriter.writeAuthor(w, author); + else writeAuthor(w, author); w.writeString(subject); long timestamp = System.currentTimeMillis(); w.writeInt64(timestamp); @@ -151,4 +144,18 @@ class MessageEncoderImpl implements MessageEncoder { return new MessageImpl(id, parent, groupId, authorId, subject, timestamp, raw, bodyStart, body.length); } + + private void writeGroup(Writer w, Group g) throws IOException { + w.writeUserDefinedId(Types.GROUP); + w.writeString(g.getName()); + byte[] publicKey = g.getPublicKey(); + if(publicKey == null) w.writeNull(); + else w.writeBytes(publicKey); + } + + private void writeAuthor(Writer w, Author a) throws IOException { + w.writeUserDefinedId(Types.AUTHOR); + w.writeString(a.getName()); + w.writeBytes(a.getPublicKey()); + } } diff --git a/components/net/sf/briar/protocol/ProtocolModule.java b/components/net/sf/briar/protocol/ProtocolModule.java index aa9c033f25..b19a08f865 100644 --- a/components/net/sf/briar/protocol/ProtocolModule.java +++ b/components/net/sf/briar/protocol/ProtocolModule.java @@ -9,13 +9,13 @@ import net.sf.briar.api.protocol.BatchId; import net.sf.briar.api.protocol.Group; import net.sf.briar.api.protocol.GroupFactory; import net.sf.briar.api.protocol.Message; +import net.sf.briar.api.protocol.MessageEncoder; import net.sf.briar.api.protocol.MessageId; import net.sf.briar.api.protocol.Offer; import net.sf.briar.api.protocol.ProtocolReaderFactory; import net.sf.briar.api.protocol.Request; import net.sf.briar.api.protocol.SubscriptionUpdate; import net.sf.briar.api.protocol.TransportUpdate; -import net.sf.briar.api.protocol.writers.MessageEncoder; import net.sf.briar.api.serial.ObjectReader; import com.google.inject.AbstractModule; diff --git a/components/net/sf/briar/protocol/writers/AuthorWriterImpl.java b/components/net/sf/briar/protocol/writers/AuthorWriterImpl.java deleted file mode 100644 index eb1d16e90a..0000000000 --- a/components/net/sf/briar/protocol/writers/AuthorWriterImpl.java +++ /dev/null @@ -1,17 +0,0 @@ -package net.sf.briar.protocol.writers; - -import java.io.IOException; - -import net.sf.briar.api.protocol.Author; -import net.sf.briar.api.protocol.Types; -import net.sf.briar.api.protocol.writers.AuthorWriter; -import net.sf.briar.api.serial.Writer; - -class AuthorWriterImpl implements AuthorWriter { - - public void writeAuthor(Writer w, Author a) throws IOException { - w.writeUserDefinedId(Types.AUTHOR); - w.writeString(a.getName()); - w.writeBytes(a.getPublicKey()); - } -} diff --git a/components/net/sf/briar/protocol/writers/GroupWriterImpl.java b/components/net/sf/briar/protocol/writers/GroupWriterImpl.java deleted file mode 100644 index 44974a1f60..0000000000 --- a/components/net/sf/briar/protocol/writers/GroupWriterImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -package net.sf.briar.protocol.writers; - -import java.io.IOException; - -import net.sf.briar.api.protocol.Group; -import net.sf.briar.api.protocol.Types; -import net.sf.briar.api.protocol.writers.GroupWriter; -import net.sf.briar.api.serial.Writer; - -class GroupWriterImpl implements GroupWriter { - - public void writeGroup(Writer w, Group g) throws IOException { - w.writeUserDefinedId(Types.GROUP); - w.writeString(g.getName()); - byte[] publicKey = g.getPublicKey(); - if(publicKey == null) w.writeNull(); - else w.writeBytes(publicKey); - } -} diff --git a/components/net/sf/briar/protocol/writers/ProtocolWriterFactoryImpl.java b/components/net/sf/briar/protocol/writers/ProtocolWriterFactoryImpl.java index b0e3647799..ed6b558448 100644 --- a/components/net/sf/briar/protocol/writers/ProtocolWriterFactoryImpl.java +++ b/components/net/sf/briar/protocol/writers/ProtocolWriterFactoryImpl.java @@ -9,8 +9,8 @@ import net.sf.briar.api.protocol.writers.BatchWriter; import net.sf.briar.api.protocol.writers.OfferWriter; import net.sf.briar.api.protocol.writers.ProtocolWriterFactory; import net.sf.briar.api.protocol.writers.RequestWriter; -import net.sf.briar.api.protocol.writers.SubscriptionWriter; -import net.sf.briar.api.protocol.writers.TransportWriter; +import net.sf.briar.api.protocol.writers.SubscriptionUpdateWriter; +import net.sf.briar.api.protocol.writers.TransportUpdateWriter; import net.sf.briar.api.serial.SerialComponent; import net.sf.briar.api.serial.WriterFactory; @@ -46,11 +46,12 @@ class ProtocolWriterFactoryImpl implements ProtocolWriterFactory { return new RequestWriterImpl(out, writerFactory); } - public SubscriptionWriter createSubscriptionWriter(OutputStream out) { - return new SubscriptionWriterImpl(out, writerFactory); + public SubscriptionUpdateWriter createSubscriptionUpdateWriter( + OutputStream out) { + return new SubscriptionUpdateWriterImpl(out, writerFactory); } - public TransportWriter createTransportWriter(OutputStream out) { - return new TransportWriterImpl(out, writerFactory); + public TransportUpdateWriter createTransportUpdateWriter(OutputStream out) { + return new TransportUpdateWriterImpl(out, writerFactory); } } diff --git a/components/net/sf/briar/protocol/writers/ProtocolWritersModule.java b/components/net/sf/briar/protocol/writers/ProtocolWritersModule.java index 1afe708d9b..7e83b36b05 100644 --- a/components/net/sf/briar/protocol/writers/ProtocolWritersModule.java +++ b/components/net/sf/briar/protocol/writers/ProtocolWritersModule.java @@ -1,7 +1,5 @@ package net.sf.briar.protocol.writers; -import net.sf.briar.api.protocol.writers.AuthorWriter; -import net.sf.briar.api.protocol.writers.GroupWriter; import net.sf.briar.api.protocol.writers.ProtocolWriterFactory; import com.google.inject.AbstractModule; @@ -10,8 +8,6 @@ public class ProtocolWritersModule extends AbstractModule { @Override protected void configure() { - bind(AuthorWriter.class).to(AuthorWriterImpl.class); - bind(GroupWriter.class).to(GroupWriterImpl.class); bind(ProtocolWriterFactory.class).to(ProtocolWriterFactoryImpl.class); } } diff --git a/components/net/sf/briar/protocol/writers/SubscriptionWriterImpl.java b/components/net/sf/briar/protocol/writers/SubscriptionUpdateWriterImpl.java similarity index 60% rename from components/net/sf/briar/protocol/writers/SubscriptionWriterImpl.java rename to components/net/sf/briar/protocol/writers/SubscriptionUpdateWriterImpl.java index cf1d8ff60c..1856d08e6f 100644 --- a/components/net/sf/briar/protocol/writers/SubscriptionWriterImpl.java +++ b/components/net/sf/briar/protocol/writers/SubscriptionUpdateWriterImpl.java @@ -7,21 +7,19 @@ import java.util.Map.Entry; import net.sf.briar.api.protocol.Group; import net.sf.briar.api.protocol.Types; -import net.sf.briar.api.protocol.writers.GroupWriter; -import net.sf.briar.api.protocol.writers.SubscriptionWriter; +import net.sf.briar.api.protocol.writers.SubscriptionUpdateWriter; import net.sf.briar.api.serial.Writer; import net.sf.briar.api.serial.WriterFactory; -class SubscriptionWriterImpl implements SubscriptionWriter { +class SubscriptionUpdateWriterImpl implements SubscriptionUpdateWriter { private final OutputStream out; private final Writer w; - private final GroupWriter groupWriter; - SubscriptionWriterImpl(OutputStream out, WriterFactory writerFactory) { + SubscriptionUpdateWriterImpl(OutputStream out, + WriterFactory writerFactory) { this.out = out; w = writerFactory.createWriter(out); - groupWriter = new GroupWriterImpl(); } public void writeSubscriptions(Map<Group, Long> subs, long timestamp) @@ -29,11 +27,19 @@ class SubscriptionWriterImpl implements SubscriptionWriter { w.writeUserDefinedId(Types.SUBSCRIPTION_UPDATE); w.writeMapStart(); for(Entry<Group, Long> e : subs.entrySet()) { - groupWriter.writeGroup(w, e.getKey()); + writeGroup(w, e.getKey()); w.writeInt64(e.getValue()); } w.writeMapEnd(); w.writeInt64(timestamp); out.flush(); } + + private void writeGroup(Writer w, Group g) throws IOException { + w.writeUserDefinedId(Types.GROUP); + w.writeString(g.getName()); + byte[] publicKey = g.getPublicKey(); + if(publicKey == null) w.writeNull(); + else w.writeBytes(publicKey); + } } diff --git a/components/net/sf/briar/protocol/writers/TransportWriterImpl.java b/components/net/sf/briar/protocol/writers/TransportUpdateWriterImpl.java similarity index 80% rename from components/net/sf/briar/protocol/writers/TransportWriterImpl.java rename to components/net/sf/briar/protocol/writers/TransportUpdateWriterImpl.java index aa58385e49..dad8368356 100644 --- a/components/net/sf/briar/protocol/writers/TransportWriterImpl.java +++ b/components/net/sf/briar/protocol/writers/TransportUpdateWriterImpl.java @@ -6,16 +6,16 @@ import java.util.Collection; import net.sf.briar.api.protocol.Transport; import net.sf.briar.api.protocol.Types; -import net.sf.briar.api.protocol.writers.TransportWriter; +import net.sf.briar.api.protocol.writers.TransportUpdateWriter; import net.sf.briar.api.serial.Writer; import net.sf.briar.api.serial.WriterFactory; -class TransportWriterImpl implements TransportWriter { +class TransportUpdateWriterImpl implements TransportUpdateWriter { private final OutputStream out; private final Writer w; - TransportWriterImpl(OutputStream out, WriterFactory writerFactory) { + TransportUpdateWriterImpl(OutputStream out, WriterFactory writerFactory) { this.out = out; w = writerFactory.createWriter(out); } diff --git a/components/net/sf/briar/transport/batch/OutgoingBatchConnection.java b/components/net/sf/briar/transport/batch/OutgoingBatchConnection.java index 59207076c3..810a4e7899 100644 --- a/components/net/sf/briar/transport/batch/OutgoingBatchConnection.java +++ b/components/net/sf/briar/transport/batch/OutgoingBatchConnection.java @@ -14,8 +14,8 @@ import net.sf.briar.api.protocol.TransportIndex; import net.sf.briar.api.protocol.writers.AckWriter; import net.sf.briar.api.protocol.writers.BatchWriter; import net.sf.briar.api.protocol.writers.ProtocolWriterFactory; -import net.sf.briar.api.protocol.writers.SubscriptionWriter; -import net.sf.briar.api.protocol.writers.TransportWriter; +import net.sf.briar.api.protocol.writers.SubscriptionUpdateWriter; +import net.sf.briar.api.protocol.writers.TransportUpdateWriter; import net.sf.briar.api.transport.BatchTransportWriter; import net.sf.briar.api.transport.ConnectionWriter; import net.sf.briar.api.transport.ConnectionWriterFactory; @@ -56,13 +56,14 @@ class OutgoingBatchConnection { long capacity = conn.getRemainingCapacity(); if(capacity < MAX_PACKET_LENGTH) throw new IOException(); // Write a transport update - TransportWriter t = protoFactory.createTransportWriter(out); + TransportUpdateWriter t = + protoFactory.createTransportUpdateWriter(out); db.generateTransportUpdate(contactId, t); // If there's space, write a subscription update capacity = conn.getRemainingCapacity(); if(capacity >= MAX_PACKET_LENGTH) { - SubscriptionWriter s = - protoFactory.createSubscriptionWriter(out); + SubscriptionUpdateWriter s = + protoFactory.createSubscriptionUpdateWriter(out); db.generateSubscriptionUpdate(contactId, s); } // Write acks until you can't write acks no more diff --git a/components/net/sf/briar/transport/stream/StreamConnection.java b/components/net/sf/briar/transport/stream/StreamConnection.java index 126e69c4b4..90d026b63b 100644 --- a/components/net/sf/briar/transport/stream/StreamConnection.java +++ b/components/net/sf/briar/transport/stream/StreamConnection.java @@ -36,8 +36,8 @@ import net.sf.briar.api.protocol.writers.BatchWriter; import net.sf.briar.api.protocol.writers.OfferWriter; import net.sf.briar.api.protocol.writers.ProtocolWriterFactory; import net.sf.briar.api.protocol.writers.RequestWriter; -import net.sf.briar.api.protocol.writers.SubscriptionWriter; -import net.sf.briar.api.protocol.writers.TransportWriter; +import net.sf.briar.api.protocol.writers.SubscriptionUpdateWriter; +import net.sf.briar.api.protocol.writers.TransportUpdateWriter; import net.sf.briar.api.transport.ConnectionReader; import net.sf.briar.api.transport.ConnectionReaderFactory; import net.sf.briar.api.transport.ConnectionWriter; @@ -194,13 +194,13 @@ abstract class StreamConnection implements DatabaseListener { OfferWriter offerWriter = protoWriterFactory.createOfferWriter(out); RequestWriter requestWriter = protoWriterFactory.createRequestWriter(out); - SubscriptionWriter subscriptionWriter = - protoWriterFactory.createSubscriptionWriter(out); - TransportWriter transportWriter = - protoWriterFactory.createTransportWriter(out); + SubscriptionUpdateWriter subscriptionUpdateWriter = + protoWriterFactory.createSubscriptionUpdateWriter(out); + TransportUpdateWriter transportUpdateWriter = + protoWriterFactory.createTransportUpdateWriter(out); // Send the initial packets: transports, subs, any waiting acks - sendTransports(transportWriter); - sendSubscriptions(subscriptionWriter); + sendTransportUpdate(transportUpdateWriter); + sendSubscriptionUpdate(subscriptionUpdateWriter); sendAcks(ackWriter); State state = State.SEND_OFFER; // Main loop @@ -234,10 +234,10 @@ abstract class StreamConnection implements DatabaseListener { return; } if((flags & Flags.TRANSPORTS_UPDATED) != 0) { - sendTransports(transportWriter); + sendTransportUpdate(transportUpdateWriter); } if((flags & Flags.SUBSCRIPTIONS_UPDATED) != 0) { - sendSubscriptions(subscriptionWriter); + sendSubscriptionUpdate(subscriptionUpdateWriter); } if((flags & Flags.BATCH_RECEIVED) != 0) { sendAcks(ackWriter); @@ -274,10 +274,10 @@ abstract class StreamConnection implements DatabaseListener { return; } if((flags & Flags.TRANSPORTS_UPDATED) != 0) { - sendTransports(transportWriter); + sendTransportUpdate(transportUpdateWriter); } if((flags & Flags.SUBSCRIPTIONS_UPDATED) != 0) { - sendSubscriptions(subscriptionWriter); + sendSubscriptionUpdate(subscriptionUpdateWriter); } if((flags & Flags.BATCH_RECEIVED) != 0) { sendAcks(ackWriter); @@ -305,10 +305,10 @@ abstract class StreamConnection implements DatabaseListener { return; } if((flags & Flags.TRANSPORTS_UPDATED) != 0) { - sendTransports(transportWriter); + sendTransportUpdate(transportUpdateWriter); } if((flags & Flags.SUBSCRIPTIONS_UPDATED) != 0) { - sendSubscriptions(subscriptionWriter); + sendSubscriptionUpdate(subscriptionUpdateWriter); } if((flags & Flags.BATCH_RECEIVED) != 0) { sendAcks(ackWriter); @@ -388,13 +388,13 @@ abstract class StreamConnection implements DatabaseListener { db.receiveOffer(contactId, o, r); } - private void sendTransports(TransportWriter t) throws DbException, - IOException { + private void sendTransportUpdate(TransportUpdateWriter t) + throws DbException, IOException { db.generateTransportUpdate(contactId, t); } - private void sendSubscriptions(SubscriptionWriter s) throws DbException, - IOException { + private void sendSubscriptionUpdate(SubscriptionUpdateWriter s) + throws DbException, IOException { db.generateSubscriptionUpdate(contactId, s); } } diff --git a/test/net/sf/briar/ProtocolIntegrationTest.java b/test/net/sf/briar/ProtocolIntegrationTest.java index 9f47b2af65..262625603d 100644 --- a/test/net/sf/briar/ProtocolIntegrationTest.java +++ b/test/net/sf/briar/ProtocolIntegrationTest.java @@ -24,6 +24,7 @@ import net.sf.briar.api.protocol.BatchId; import net.sf.briar.api.protocol.Group; import net.sf.briar.api.protocol.GroupFactory; import net.sf.briar.api.protocol.Message; +import net.sf.briar.api.protocol.MessageEncoder; import net.sf.briar.api.protocol.MessageId; import net.sf.briar.api.protocol.Offer; import net.sf.briar.api.protocol.ProtocolReader; @@ -37,12 +38,11 @@ import net.sf.briar.api.protocol.TransportUpdate; import net.sf.briar.api.protocol.UniqueId; import net.sf.briar.api.protocol.writers.AckWriter; import net.sf.briar.api.protocol.writers.BatchWriter; -import net.sf.briar.api.protocol.writers.MessageEncoder; import net.sf.briar.api.protocol.writers.OfferWriter; import net.sf.briar.api.protocol.writers.ProtocolWriterFactory; import net.sf.briar.api.protocol.writers.RequestWriter; -import net.sf.briar.api.protocol.writers.SubscriptionWriter; -import net.sf.briar.api.protocol.writers.TransportWriter; +import net.sf.briar.api.protocol.writers.SubscriptionUpdateWriter; +import net.sf.briar.api.protocol.writers.TransportUpdateWriter; import net.sf.briar.api.transport.ConnectionReader; import net.sf.briar.api.transport.ConnectionReaderFactory; import net.sf.briar.api.transport.ConnectionWriter; @@ -167,15 +167,16 @@ public class ProtocolIntegrationTest extends TestCase { requested.set(3); r.writeRequest(requested, 4); - SubscriptionWriter s = - protocolWriterFactory.createSubscriptionWriter(out1); + SubscriptionUpdateWriter s = + protocolWriterFactory.createSubscriptionUpdateWriter(out1); // Use a LinkedHashMap for predictable iteration order Map<Group, Long> subs = new LinkedHashMap<Group, Long>(); subs.put(group, 0L); subs.put(group1, 0L); s.writeSubscriptions(subs, timestamp); - TransportWriter t = protocolWriterFactory.createTransportWriter(out1); + TransportUpdateWriter t = + protocolWriterFactory.createTransportUpdateWriter(out1); t.writeTransports(transports, timestamp); out1.close(); diff --git a/test/net/sf/briar/db/DatabaseComponentTest.java b/test/net/sf/briar/db/DatabaseComponentTest.java index 8cabf9a2c1..cf68411585 100644 --- a/test/net/sf/briar/db/DatabaseComponentTest.java +++ b/test/net/sf/briar/db/DatabaseComponentTest.java @@ -40,8 +40,8 @@ import net.sf.briar.api.protocol.writers.AckWriter; import net.sf.briar.api.protocol.writers.BatchWriter; import net.sf.briar.api.protocol.writers.OfferWriter; import net.sf.briar.api.protocol.writers.RequestWriter; -import net.sf.briar.api.protocol.writers.SubscriptionWriter; -import net.sf.briar.api.protocol.writers.TransportWriter; +import net.sf.briar.api.protocol.writers.SubscriptionUpdateWriter; +import net.sf.briar.api.protocol.writers.TransportUpdateWriter; import net.sf.briar.api.transport.ConnectionWindow; import org.jmock.Expectations; @@ -488,10 +488,10 @@ public abstract class DatabaseComponentTest extends TestCase { final AckWriter ackWriter = context.mock(AckWriter.class); final BatchWriter batchWriter = context.mock(BatchWriter.class); final OfferWriter offerWriter = context.mock(OfferWriter.class); - final SubscriptionWriter subscriptionWriter = - context.mock(SubscriptionWriter.class); - final TransportWriter transportWriter = - context.mock(TransportWriter.class); + final SubscriptionUpdateWriter subscriptionUpdateWriter = + context.mock(SubscriptionUpdateWriter.class); + final TransportUpdateWriter transportUpdateWriter = + context.mock(TransportUpdateWriter.class); final Ack ack = context.mock(Ack.class); final Batch batch = context.mock(Batch.class); final Offer offer = context.mock(Offer.class); @@ -537,12 +537,12 @@ public abstract class DatabaseComponentTest extends TestCase { } catch(NoSuchContactException expected) {} try { - db.generateSubscriptionUpdate(contactId, subscriptionWriter); + db.generateSubscriptionUpdate(contactId, subscriptionUpdateWriter); fail(); } catch(NoSuchContactException expected) {} try { - db.generateTransportUpdate(contactId, transportWriter); + db.generateTransportUpdate(contactId, transportUpdateWriter); fail(); } catch(NoSuchContactException expected) {} @@ -771,8 +771,8 @@ public abstract class DatabaseComponentTest extends TestCase { @SuppressWarnings("unchecked") final Database<Object> database = context.mock(Database.class); final DatabaseCleaner cleaner = context.mock(DatabaseCleaner.class); - final SubscriptionWriter subscriptionWriter = - context.mock(SubscriptionWriter.class); + final SubscriptionUpdateWriter subscriptionUpdateWriter = + context.mock(SubscriptionUpdateWriter.class); context.checking(new Expectations() {{ allowing(database).startTransaction(); will(returnValue(txn)); @@ -787,7 +787,7 @@ public abstract class DatabaseComponentTest extends TestCase { }}); DatabaseComponent db = createDatabaseComponent(database, cleaner); - db.generateSubscriptionUpdate(contactId, subscriptionWriter); + db.generateSubscriptionUpdate(contactId, subscriptionUpdateWriter); context.assertIsSatisfied(); } @@ -802,8 +802,8 @@ public abstract class DatabaseComponentTest extends TestCase { @SuppressWarnings("unchecked") final Database<Object> database = context.mock(Database.class); final DatabaseCleaner cleaner = context.mock(DatabaseCleaner.class); - final SubscriptionWriter subscriptionWriter = - context.mock(SubscriptionWriter.class); + final SubscriptionUpdateWriter subscriptionUpdateWriter = + context.mock(SubscriptionUpdateWriter.class); context.checking(new Expectations() {{ allowing(database).startTransaction(); will(returnValue(txn)); @@ -821,13 +821,13 @@ public abstract class DatabaseComponentTest extends TestCase { oneOf(database).setSubscriptionsSent(with(txn), with(contactId), with(any(long.class))); // Add the subscriptions to the writer - oneOf(subscriptionWriter).writeSubscriptions( + oneOf(subscriptionUpdateWriter).writeSubscriptions( with(Collections.singletonMap(group, 0L)), with(any(long.class))); }}); DatabaseComponent db = createDatabaseComponent(database, cleaner); - db.generateSubscriptionUpdate(contactId, subscriptionWriter); + db.generateSubscriptionUpdate(contactId, subscriptionUpdateWriter); context.assertIsSatisfied(); } @@ -839,8 +839,8 @@ public abstract class DatabaseComponentTest extends TestCase { @SuppressWarnings("unchecked") final Database<Object> database = context.mock(Database.class); final DatabaseCleaner cleaner = context.mock(DatabaseCleaner.class); - final TransportWriter transportWriter = - context.mock(TransportWriter.class); + final TransportUpdateWriter transportUpdateWriter = + context.mock(TransportUpdateWriter.class); context.checking(new Expectations() {{ allowing(database).startTransaction(); will(returnValue(txn)); @@ -855,7 +855,7 @@ public abstract class DatabaseComponentTest extends TestCase { }}); DatabaseComponent db = createDatabaseComponent(database, cleaner); - db.generateTransportUpdate(contactId, transportWriter); + db.generateTransportUpdate(contactId, transportUpdateWriter); context.assertIsSatisfied(); } @@ -870,8 +870,8 @@ public abstract class DatabaseComponentTest extends TestCase { @SuppressWarnings("unchecked") final Database<Object> database = context.mock(Database.class); final DatabaseCleaner cleaner = context.mock(DatabaseCleaner.class); - final TransportWriter transportWriter = - context.mock(TransportWriter.class); + final TransportUpdateWriter transportUpdateWriter = + context.mock(TransportUpdateWriter.class); context.checking(new Expectations() {{ allowing(database).startTransaction(); will(returnValue(txn)); @@ -889,12 +889,12 @@ public abstract class DatabaseComponentTest extends TestCase { oneOf(database).setTransportsSent(with(txn), with(contactId), with(any(long.class))); // Add the properties to the writer - oneOf(transportWriter).writeTransports(with(transports), + oneOf(transportUpdateWriter).writeTransports(with(transports), with(any(long.class))); }}); DatabaseComponent db = createDatabaseComponent(database, cleaner); - db.generateTransportUpdate(contactId, transportWriter); + db.generateTransportUpdate(contactId, transportUpdateWriter); context.assertIsSatisfied(); } diff --git a/test/net/sf/briar/protocol/ProtocolReadWriteTest.java b/test/net/sf/briar/protocol/ProtocolReadWriteTest.java index 5efbfdc1aa..d196ab368f 100644 --- a/test/net/sf/briar/protocol/ProtocolReadWriteTest.java +++ b/test/net/sf/briar/protocol/ProtocolReadWriteTest.java @@ -15,6 +15,7 @@ import net.sf.briar.api.protocol.BatchId; import net.sf.briar.api.protocol.Group; import net.sf.briar.api.protocol.GroupFactory; import net.sf.briar.api.protocol.Message; +import net.sf.briar.api.protocol.MessageEncoder; import net.sf.briar.api.protocol.Offer; import net.sf.briar.api.protocol.ProtocolReader; import net.sf.briar.api.protocol.ProtocolReaderFactory; @@ -26,12 +27,11 @@ import net.sf.briar.api.protocol.TransportIndex; import net.sf.briar.api.protocol.TransportUpdate; import net.sf.briar.api.protocol.writers.AckWriter; import net.sf.briar.api.protocol.writers.BatchWriter; -import net.sf.briar.api.protocol.writers.MessageEncoder; import net.sf.briar.api.protocol.writers.OfferWriter; import net.sf.briar.api.protocol.writers.ProtocolWriterFactory; import net.sf.briar.api.protocol.writers.RequestWriter; -import net.sf.briar.api.protocol.writers.SubscriptionWriter; -import net.sf.briar.api.protocol.writers.TransportWriter; +import net.sf.briar.api.protocol.writers.SubscriptionUpdateWriter; +import net.sf.briar.api.protocol.writers.TransportUpdateWriter; import net.sf.briar.crypto.CryptoModule; import net.sf.briar.protocol.writers.ProtocolWritersModule; import net.sf.briar.serial.SerialModule; @@ -99,10 +99,12 @@ public class ProtocolReadWriteTest extends TestCase { RequestWriter r = writerFactory.createRequestWriter(out); r.writeRequest(bitSet, 10); - SubscriptionWriter s = writerFactory.createSubscriptionWriter(out); + SubscriptionUpdateWriter s = + writerFactory.createSubscriptionUpdateWriter(out); s.writeSubscriptions(subscriptions, timestamp); - TransportWriter t = writerFactory.createTransportWriter(out); + TransportUpdateWriter t = + writerFactory.createTransportUpdateWriter(out); t.writeTransports(transports, timestamp); // Read diff --git a/test/net/sf/briar/protocol/writers/ConstantsTest.java b/test/net/sf/briar/protocol/writers/ConstantsTest.java index d158040b39..387cd6d1e6 100644 --- a/test/net/sf/briar/protocol/writers/ConstantsTest.java +++ b/test/net/sf/briar/protocol/writers/ConstantsTest.java @@ -27,6 +27,7 @@ import net.sf.briar.api.protocol.BatchId; import net.sf.briar.api.protocol.Group; import net.sf.briar.api.protocol.GroupFactory; import net.sf.briar.api.protocol.Message; +import net.sf.briar.api.protocol.MessageEncoder; import net.sf.briar.api.protocol.MessageId; import net.sf.briar.api.protocol.Transport; import net.sf.briar.api.protocol.TransportId; @@ -34,10 +35,9 @@ import net.sf.briar.api.protocol.TransportIndex; import net.sf.briar.api.protocol.UniqueId; import net.sf.briar.api.protocol.writers.AckWriter; import net.sf.briar.api.protocol.writers.BatchWriter; -import net.sf.briar.api.protocol.writers.MessageEncoder; import net.sf.briar.api.protocol.writers.OfferWriter; -import net.sf.briar.api.protocol.writers.SubscriptionWriter; -import net.sf.briar.api.protocol.writers.TransportWriter; +import net.sf.briar.api.protocol.writers.SubscriptionUpdateWriter; +import net.sf.briar.api.protocol.writers.TransportUpdateWriter; import net.sf.briar.api.serial.SerialComponent; import net.sf.briar.api.serial.WriterFactory; import net.sf.briar.crypto.CryptoModule; @@ -61,8 +61,7 @@ public class ConstantsTest extends TestCase { public ConstantsTest() throws Exception { super(); Injector i = Guice.createInjector(new CryptoModule(), - new ProtocolModule(), new ProtocolWritersModule(), - new SerialModule()); + new ProtocolModule(), new SerialModule()); writerFactory = i.getInstance(WriterFactory.class); crypto = i.getInstance(CryptoComponent.class); serial = i.getInstance(SerialComponent.class); @@ -191,7 +190,8 @@ public class ConstantsTest extends TestCase { // Add the subscriptions to an update ByteArrayOutputStream out = new ByteArrayOutputStream(MAX_PACKET_LENGTH); - SubscriptionWriter s = new SubscriptionWriterImpl(out, writerFactory); + SubscriptionUpdateWriter s = + new SubscriptionUpdateWriterImpl(out, writerFactory); s.writeSubscriptions(subs, Long.MAX_VALUE); // Check the size of the serialised update assertTrue(out.size() > MAX_GROUPS * @@ -218,7 +218,8 @@ public class ConstantsTest extends TestCase { // Add the transports to an update ByteArrayOutputStream out = new ByteArrayOutputStream(MAX_PACKET_LENGTH); - TransportWriter t = new TransportWriterImpl(out, writerFactory); + TransportUpdateWriter t = + new TransportUpdateWriterImpl(out, writerFactory); t.writeTransports(transports, Long.MAX_VALUE); // Check the size of the serialised update assertTrue(out.size() > MAX_TRANSPORTS * (UniqueId.LENGTH + 4 + diff --git a/test/net/sf/briar/transport/batch/BatchConnectionReadWriteTest.java b/test/net/sf/briar/transport/batch/BatchConnectionReadWriteTest.java index c3e17d8d31..74b739f891 100644 --- a/test/net/sf/briar/transport/batch/BatchConnectionReadWriteTest.java +++ b/test/net/sf/briar/transport/batch/BatchConnectionReadWriteTest.java @@ -19,12 +19,12 @@ import net.sf.briar.api.db.event.DatabaseEvent; import net.sf.briar.api.db.event.DatabaseListener; import net.sf.briar.api.db.event.MessagesAddedEvent; import net.sf.briar.api.protocol.Message; +import net.sf.briar.api.protocol.MessageEncoder; import net.sf.briar.api.protocol.ProtocolReaderFactory; import net.sf.briar.api.protocol.Transport; import net.sf.briar.api.protocol.TransportId; import net.sf.briar.api.protocol.TransportIndex; import net.sf.briar.api.protocol.TransportUpdate; -import net.sf.briar.api.protocol.writers.MessageEncoder; import net.sf.briar.api.protocol.writers.ProtocolWriterFactory; import net.sf.briar.api.transport.BatchTransportReader; import net.sf.briar.api.transport.BatchTransportWriter; -- GitLab