Rename client version to major version.

This commit is contained in:
akwizgran
2018-04-16 16:35:48 +01:00
parent cadb17987c
commit 2e570ba50d
68 changed files with 296 additions and 296 deletions

View File

@@ -12,19 +12,19 @@ public interface ContactGroupFactory {
/** /**
* Creates a group that is not shared with any contacts. * Creates a group that is not shared with any contacts.
*/ */
Group createLocalGroup(ClientId clientId, int clientVersion); Group createLocalGroup(ClientId clientId, int majorVersion);
/** /**
* Creates a group for the given client to share with the given contact. * Creates a group for the given client to share with the given contact.
*/ */
Group createContactGroup(ClientId clientId, int clientVersion, Group createContactGroup(ClientId clientId, int majorVersion,
Contact contact); Contact contact);
/** /**
* Creates a group for the given client to share between the given authors * Creates a group for the given client to share between the given authors
* identified by their AuthorIds. * identified by their AuthorIds.
*/ */
Group createContactGroup(ClientId clientId, int clientVersion, Group createContactGroup(ClientId clientId, int majorVersion,
AuthorId authorId1, AuthorId authorId2); AuthorId authorId1, AuthorId authorId2);
} }

View File

@@ -241,7 +241,7 @@ public interface DatabaseComponent {
* <p/> * <p/>
* Read-only. * Read-only.
*/ */
Collection<Group> getGroups(Transaction txn, ClientId c, int clientVersion) Collection<Group> getGroups(Transaction txn, ClientId c, int majorVersion)
throws DbException; throws DbException;
/** /**

View File

@@ -18,9 +18,9 @@ public interface TransportPropertyManager {
ClientId CLIENT_ID = new ClientId("org.briarproject.bramble.properties"); ClientId CLIENT_ID = new ClientId("org.briarproject.bramble.properties");
/** /**
* The current version of the transport property client. * The current major version of the transport property client.
*/ */
int CLIENT_VERSION = 0; int MAJOR_VERSION = 0;
/** /**
* Stores the given properties received while adding a contact - they will * Stores the given properties received while adding a contact - they will

View File

@@ -17,22 +17,22 @@ public interface ClientVersioningManager {
ClientId CLIENT_ID = new ClientId("org.briarproject.bramble.versioning"); ClientId CLIENT_ID = new ClientId("org.briarproject.bramble.versioning");
/** /**
* The current version of the versioning client. * The current major version of the versioning client.
*/ */
int CLIENT_VERSION = 0; int MAJOR_VERSION = 0;
/** /**
* Registers a client that will be advertised to contacts. This method * Registers a client that will be advertised to contacts. This method
* should be called before {@link LifecycleManager#startServices(String)}. * should be called before {@link LifecycleManager#startServices(String)}.
*/ */
void registerClient(ClientId clientId, int clientVersion); void registerClient(ClientId clientId, int majorVersion);
/** /**
* Registers a hook that will be called when the visibility of the given * Registers a hook that will be called when the visibility of the given
* client changes. This method should be called before * client changes. This method should be called before
* {@link LifecycleManager#startServices(String)}. * {@link LifecycleManager#startServices(String)}.
*/ */
void registerClientVersioningHook(ClientId clientId, int clientVersion, void registerClientVersioningHook(ClientId clientId, int majorVersion,
ClientVersioningHook hook); ClientVersioningHook hook);
/** /**
@@ -40,7 +40,7 @@ public interface ClientVersioningManager {
* contact. * contact.
*/ */
Visibility getClientVisibility(Transaction txn, ContactId contactId, Visibility getClientVisibility(Transaction txn, ContactId contactId,
ClientId clientId, int clientVersion) throws DbException; ClientId clientId, int majorVersion) throws DbException;
interface ClientVersioningHook { interface ClientVersioningHook {

View File

@@ -32,16 +32,16 @@ public class Group {
private final GroupId id; private final GroupId id;
private final ClientId clientId; private final ClientId clientId;
private final int clientVersion; private final int majorVersion;
private final byte[] descriptor; private final byte[] descriptor;
public Group(GroupId id, ClientId clientId, int clientVersion, public Group(GroupId id, ClientId clientId, int majorVersion,
byte[] descriptor) { byte[] descriptor) {
if (descriptor.length > MAX_GROUP_DESCRIPTOR_LENGTH) if (descriptor.length > MAX_GROUP_DESCRIPTOR_LENGTH)
throw new IllegalArgumentException(); throw new IllegalArgumentException();
this.id = id; this.id = id;
this.clientId = clientId; this.clientId = clientId;
this.clientVersion = clientVersion; this.majorVersion = majorVersion;
this.descriptor = descriptor; this.descriptor = descriptor;
} }
@@ -60,10 +60,10 @@ public class Group {
} }
/** /**
* Returns the version of the client to which the group belongs. * Returns the major version of the client to which the group belongs.
*/ */
public int getClientVersion() { public int getMajorVersion() {
return clientVersion; return majorVersion;
} }
/** /**

View File

@@ -6,7 +6,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
public interface GroupFactory { public interface GroupFactory {
/** /**
* Creates a group with the given client ID, client version and descriptor. * Creates a group with the given client ID, major version and descriptor.
*/ */
Group createGroup(ClientId c, int clientVersion, byte[] descriptor); Group createGroup(ClientId c, int majorVersion, byte[] descriptor);
} }

View File

@@ -37,7 +37,7 @@ public interface ValidationManager {
* Registers the message validator for the given client. This method * Registers the message validator for the given client. This method
* should be called before {@link LifecycleManager#startServices(String)}. * should be called before {@link LifecycleManager#startServices(String)}.
*/ */
void registerMessageValidator(ClientId c, int clientVersion, void registerMessageValidator(ClientId c, int majorVersion,
MessageValidator v); MessageValidator v);
/** /**
@@ -46,7 +46,7 @@ public interface ValidationManager {
* method should be called before * method should be called before
* {@link LifecycleManager#startServices(String)}. * {@link LifecycleManager#startServices(String)}.
*/ */
void registerIncomingMessageHook(ClientId c, int clientVersion, void registerIncomingMessageHook(ClientId c, int majorVersion,
IncomingMessageHook hook); IncomingMessageHook hook);
interface MessageValidator { interface MessageValidator {

View File

@@ -117,16 +117,16 @@ public class TestUtils {
return new Author(id, FORMAT_VERSION, name, publicKey); return new Author(id, FORMAT_VERSION, name, publicKey);
} }
public static Group getGroup(ClientId clientId, int clientVersion) { public static Group getGroup(ClientId clientId, int majorVersion) {
int descriptorLength = 1 + random.nextInt(MAX_GROUP_DESCRIPTOR_LENGTH); int descriptorLength = 1 + random.nextInt(MAX_GROUP_DESCRIPTOR_LENGTH);
return getGroup(clientId, clientVersion, descriptorLength); return getGroup(clientId, majorVersion, descriptorLength);
} }
public static Group getGroup(ClientId clientId, int clientVersion, public static Group getGroup(ClientId clientId, int majorVersion,
int descriptorLength) { int descriptorLength) {
GroupId groupId = new GroupId(getRandomId()); GroupId groupId = new GroupId(getRandomId());
byte[] descriptor = getRandomBytes(descriptorLength); byte[] descriptor = getRandomBytes(descriptorLength);
return new Group(groupId, clientId, clientVersion, descriptor); return new Group(groupId, clientId, majorVersion, descriptor);
} }
public static Message getMessage(GroupId groupId) { public static Message getMessage(GroupId groupId) {

View File

@@ -32,25 +32,25 @@ class ContactGroupFactoryImpl implements ContactGroupFactory {
} }
@Override @Override
public Group createLocalGroup(ClientId clientId, int clientVersion) { public Group createLocalGroup(ClientId clientId, int majorVersion) {
return groupFactory.createGroup(clientId, clientVersion, return groupFactory.createGroup(clientId, majorVersion,
LOCAL_GROUP_DESCRIPTOR); LOCAL_GROUP_DESCRIPTOR);
} }
@Override @Override
public Group createContactGroup(ClientId clientId, int clientVersion, public Group createContactGroup(ClientId clientId, int majorVersion,
Contact contact) { Contact contact) {
AuthorId local = contact.getLocalAuthorId(); AuthorId local = contact.getLocalAuthorId();
AuthorId remote = contact.getAuthor().getId(); AuthorId remote = contact.getAuthor().getId();
byte[] descriptor = createGroupDescriptor(local, remote); byte[] descriptor = createGroupDescriptor(local, remote);
return groupFactory.createGroup(clientId, clientVersion, descriptor); return groupFactory.createGroup(clientId, majorVersion, descriptor);
} }
@Override @Override
public Group createContactGroup(ClientId clientId, int clientVersion, public Group createContactGroup(ClientId clientId, int majorVersion,
AuthorId authorId1, AuthorId authorId2) { AuthorId authorId1, AuthorId authorId2) {
byte[] descriptor = createGroupDescriptor(authorId1, authorId2); byte[] descriptor = createGroupDescriptor(authorId1, authorId2);
return groupFactory.createGroup(clientId, clientVersion, descriptor); return groupFactory.createGroup(clientId, majorVersion, descriptor);
} }
private byte[] createGroupDescriptor(AuthorId local, AuthorId remote) { private byte[] createGroupDescriptor(AuthorId local, AuthorId remote) {

View File

@@ -266,7 +266,7 @@ interface Database<T> {
* <p/> * <p/>
* Read-only. * Read-only.
*/ */
Collection<Group> getGroups(T txn, ClientId c, int clientVersion) Collection<Group> getGroups(T txn, ClientId c, int majorVersion)
throws DbException; throws DbException;
/** /**

View File

@@ -436,9 +436,9 @@ class DatabaseComponentImpl<T> implements DatabaseComponent {
@Override @Override
public Collection<Group> getGroups(Transaction transaction, ClientId c, public Collection<Group> getGroups(Transaction transaction, ClientId c,
int clientVersion) throws DbException { int majorVersion) throws DbException {
T txn = unbox(transaction); T txn = unbox(transaction);
return db.getGroups(txn, c, clientVersion); return db.getGroups(txn, c, majorVersion);
} }
@Override @Override

View File

@@ -74,7 +74,7 @@ import static org.briarproject.bramble.db.ExponentialBackoff.calculateExpiry;
abstract class JdbcDatabase implements Database<Connection> { abstract class JdbcDatabase implements Database<Connection> {
// Package access for testing // Package access for testing
static final int CODE_SCHEMA_VERSION = 37; static final int CODE_SCHEMA_VERSION = 38;
// Rotation period offsets for incoming transport keys // Rotation period offsets for incoming transport keys
private static final int OFFSET_PREV = -1; private static final int OFFSET_PREV = -1;
@@ -117,7 +117,7 @@ abstract class JdbcDatabase implements Database<Connection> {
"CREATE TABLE groups" "CREATE TABLE groups"
+ " (groupId _HASH NOT NULL," + " (groupId _HASH NOT NULL,"
+ " clientId _STRING NOT NULL," + " clientId _STRING NOT NULL,"
+ " clientVersion INT NOT NULL," + " majorVersion INT NOT NULL,"
+ " descriptor _BINARY NOT NULL," + " descriptor _BINARY NOT NULL,"
+ " PRIMARY KEY (groupId))"; + " PRIMARY KEY (groupId))";
@@ -276,9 +276,9 @@ abstract class JdbcDatabase implements Database<Connection> {
"CREATE INDEX IF NOT EXISTS contactsByAuthorId" "CREATE INDEX IF NOT EXISTS contactsByAuthorId"
+ " ON contacts (authorId)"; + " ON contacts (authorId)";
private static final String INDEX_GROUPS_BY_CLIENT_ID_CLIENT_VERSION = private static final String INDEX_GROUPS_BY_CLIENT_ID_MAJOR_VERSION =
"CREATE INDEX IF NOT EXISTS groupsByClientIdClientVersion" "CREATE INDEX IF NOT EXISTS groupsByClientIdMajorVersion"
+ " ON groups (clientId, clientVersion)"; + " ON groups (clientId, majorVersion)";
private static final String INDEX_MESSAGE_METADATA_BY_GROUP_ID_STATE = private static final String INDEX_MESSAGE_METADATA_BY_GROUP_ID_STATE =
"CREATE INDEX IF NOT EXISTS messageMetadataByGroupIdState" "CREATE INDEX IF NOT EXISTS messageMetadataByGroupIdState"
@@ -445,7 +445,7 @@ abstract class JdbcDatabase implements Database<Connection> {
try { try {
s = txn.createStatement(); s = txn.createStatement();
s.executeUpdate(INDEX_CONTACTS_BY_AUTHOR_ID); s.executeUpdate(INDEX_CONTACTS_BY_AUTHOR_ID);
s.executeUpdate(INDEX_GROUPS_BY_CLIENT_ID_CLIENT_VERSION); s.executeUpdate(INDEX_GROUPS_BY_CLIENT_ID_MAJOR_VERSION);
s.executeUpdate(INDEX_MESSAGE_METADATA_BY_GROUP_ID_STATE); s.executeUpdate(INDEX_MESSAGE_METADATA_BY_GROUP_ID_STATE);
s.executeUpdate(INDEX_MESSAGE_DEPENDENCIES_BY_DEPENDENCY_ID); s.executeUpdate(INDEX_MESSAGE_DEPENDENCIES_BY_DEPENDENCY_ID);
s.executeUpdate(INDEX_STATUSES_BY_CONTACT_ID_GROUP_ID); s.executeUpdate(INDEX_STATUSES_BY_CONTACT_ID_GROUP_ID);
@@ -614,12 +614,12 @@ abstract class JdbcDatabase implements Database<Connection> {
PreparedStatement ps = null; PreparedStatement ps = null;
try { try {
String sql = "INSERT INTO groups" String sql = "INSERT INTO groups"
+ " (groupId, clientId, clientVersion, descriptor)" + " (groupId, clientId, majorVersion, descriptor)"
+ " VALUES (?, ?, ?, ?)"; + " VALUES (?, ?, ?, ?)";
ps = txn.prepareStatement(sql); ps = txn.prepareStatement(sql);
ps.setBytes(1, g.getId().getBytes()); ps.setBytes(1, g.getId().getBytes());
ps.setString(2, g.getClientId().getString()); ps.setString(2, g.getClientId().getString());
ps.setInt(3, g.getClientVersion()); ps.setInt(3, g.getMajorVersion());
ps.setBytes(4, g.getDescriptor()); ps.setBytes(4, g.getDescriptor());
int affected = ps.executeUpdate(); int affected = ps.executeUpdate();
if (affected != 1) throw new DbStateException(); if (affected != 1) throw new DbStateException();
@@ -1349,18 +1349,18 @@ abstract class JdbcDatabase implements Database<Connection> {
PreparedStatement ps = null; PreparedStatement ps = null;
ResultSet rs = null; ResultSet rs = null;
try { try {
String sql = "SELECT clientId, clientVersion, descriptor" String sql = "SELECT clientId, majorVersion, descriptor"
+ " FROM groups WHERE groupId = ?"; + " FROM groups WHERE groupId = ?";
ps = txn.prepareStatement(sql); ps = txn.prepareStatement(sql);
ps.setBytes(1, g.getBytes()); ps.setBytes(1, g.getBytes());
rs = ps.executeQuery(); rs = ps.executeQuery();
if (!rs.next()) throw new DbStateException(); if (!rs.next()) throw new DbStateException();
ClientId clientId = new ClientId(rs.getString(1)); ClientId clientId = new ClientId(rs.getString(1));
int clientVersion = rs.getInt(2); int majorVersion = rs.getInt(2);
byte[] descriptor = rs.getBytes(3); byte[] descriptor = rs.getBytes(3);
rs.close(); rs.close();
ps.close(); ps.close();
return new Group(g, clientId, clientVersion, descriptor); return new Group(g, clientId, majorVersion, descriptor);
} catch (SQLException e) { } catch (SQLException e) {
tryToClose(rs); tryToClose(rs);
tryToClose(ps); tryToClose(ps);
@@ -1370,21 +1370,21 @@ abstract class JdbcDatabase implements Database<Connection> {
@Override @Override
public Collection<Group> getGroups(Connection txn, ClientId c, public Collection<Group> getGroups(Connection txn, ClientId c,
int clientVersion) throws DbException { int majorVersion) throws DbException {
PreparedStatement ps = null; PreparedStatement ps = null;
ResultSet rs = null; ResultSet rs = null;
try { try {
String sql = "SELECT groupId, descriptor FROM groups" String sql = "SELECT groupId, descriptor FROM groups"
+ " WHERE clientId = ? AND clientVersion = ?"; + " WHERE clientId = ? AND majorVersion = ?";
ps = txn.prepareStatement(sql); ps = txn.prepareStatement(sql);
ps.setString(1, c.getString()); ps.setString(1, c.getString());
ps.setInt(2, clientVersion); ps.setInt(2, majorVersion);
rs = ps.executeQuery(); rs = ps.executeQuery();
List<Group> groups = new ArrayList<>(); List<Group> groups = new ArrayList<>();
while (rs.next()) { while (rs.next()) {
GroupId id = new GroupId(rs.getBytes(1)); GroupId id = new GroupId(rs.getBytes(1));
byte[] descriptor = rs.getBytes(2); byte[] descriptor = rs.getBytes(2);
groups.add(new Group(id, c, clientVersion, descriptor)); groups.add(new Group(id, c, majorVersion, descriptor));
} }
rs.close(); rs.close();
ps.close(); ps.close();

View File

@@ -16,7 +16,7 @@ import dagger.Module;
import dagger.Provides; import dagger.Provides;
import static org.briarproject.bramble.api.properties.TransportPropertyManager.CLIENT_ID; import static org.briarproject.bramble.api.properties.TransportPropertyManager.CLIENT_ID;
import static org.briarproject.bramble.api.properties.TransportPropertyManager.CLIENT_VERSION; import static org.briarproject.bramble.api.properties.TransportPropertyManager.MAJOR_VERSION;
@Module @Module
public class PropertiesModule { public class PropertiesModule {
@@ -35,7 +35,7 @@ public class PropertiesModule {
Clock clock) { Clock clock) {
TransportPropertyValidator validator = new TransportPropertyValidator( TransportPropertyValidator validator = new TransportPropertyValidator(
clientHelper, metadataEncoder, clock); clientHelper, metadataEncoder, clock);
validationManager.registerMessageValidator(CLIENT_ID, CLIENT_VERSION, validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
validator); validator);
return validator; return validator;
} }
@@ -48,12 +48,12 @@ public class PropertiesModule {
ClientVersioningManager clientVersioningManager, ClientVersioningManager clientVersioningManager,
TransportPropertyManagerImpl transportPropertyManager) { TransportPropertyManagerImpl transportPropertyManager) {
lifecycleManager.registerClient(transportPropertyManager); lifecycleManager.registerClient(transportPropertyManager);
validationManager.registerIncomingMessageHook(CLIENT_ID, CLIENT_VERSION, validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION,
transportPropertyManager); transportPropertyManager);
contactManager.registerContactHook(transportPropertyManager); contactManager.registerContactHook(transportPropertyManager);
clientVersioningManager.registerClient(CLIENT_ID, CLIENT_VERSION); clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION);
clientVersioningManager.registerClientVersioningHook(CLIENT_ID, clientVersioningManager.registerClientVersioningHook(CLIENT_ID,
CLIENT_VERSION, transportPropertyManager); MAJOR_VERSION, transportPropertyManager);
return transportPropertyManager; return transportPropertyManager;
} }
} }

View File

@@ -69,7 +69,7 @@ class TransportPropertyManagerImpl implements TransportPropertyManager,
this.contactGroupFactory = contactGroupFactory; this.contactGroupFactory = contactGroupFactory;
this.clock = clock; this.clock = clock;
localGroup = contactGroupFactory.createLocalGroup(CLIENT_ID, localGroup = contactGroupFactory.createLocalGroup(CLIENT_ID,
CLIENT_VERSION); MAJOR_VERSION);
} }
@Override @Override
@@ -88,7 +88,7 @@ class TransportPropertyManagerImpl implements TransportPropertyManager,
db.addGroup(txn, g); db.addGroup(txn, g);
// Apply the client's visibility to the contact group // Apply the client's visibility to the contact group
Visibility client = clientVersioningManager.getClientVisibility(txn, Visibility client = clientVersioningManager.getClientVisibility(txn,
c.getId(), CLIENT_ID, CLIENT_VERSION); c.getId(), CLIENT_ID, MAJOR_VERSION);
if (LOG.isLoggable(INFO)) if (LOG.isLoggable(INFO))
LOG.info("Applying visibility " + client + " to new contact group"); LOG.info("Applying visibility " + client + " to new contact group");
db.setGroupVisibility(txn, c.getId(), g.getId(), client); db.setGroupVisibility(txn, c.getId(), g.getId(), client);
@@ -313,7 +313,7 @@ class TransportPropertyManagerImpl implements TransportPropertyManager,
private Group getContactGroup(Contact c) { private Group getContactGroup(Contact c) {
return contactGroupFactory.createContactGroup(CLIENT_ID, return contactGroupFactory.createContactGroup(CLIENT_ID,
CLIENT_VERSION, c); MAJOR_VERSION, c);
} }
private void storeMessage(Transaction txn, GroupId g, TransportId t, private void storeMessage(Transaction txn, GroupId g, TransportId t,

View File

@@ -10,11 +10,11 @@ import javax.annotation.concurrent.Immutable;
class ClientVersion implements Comparable<ClientVersion> { class ClientVersion implements Comparable<ClientVersion> {
final ClientId clientId; final ClientId clientId;
final int clientVersion; final int majorVersion;
ClientVersion(ClientId clientId, int clientVersion) { ClientVersion(ClientId clientId, int majorVersion) {
this.clientId = clientId; this.clientId = clientId;
this.clientVersion = clientVersion; this.majorVersion = majorVersion;
} }
@Override @Override
@@ -22,26 +22,26 @@ class ClientVersion implements Comparable<ClientVersion> {
if (o instanceof ClientVersion) { if (o instanceof ClientVersion) {
ClientVersion cv = (ClientVersion) o; ClientVersion cv = (ClientVersion) o;
return clientId.equals(cv.clientId) return clientId.equals(cv.clientId)
&& clientVersion == cv.clientVersion; && majorVersion == cv.majorVersion;
} }
return false; return false;
} }
@Override @Override
public int hashCode() { public int hashCode() {
return (clientId.hashCode() << 16) + clientVersion; return (clientId.hashCode() << 16) + majorVersion;
} }
@Override @Override
public int compareTo(ClientVersion c) { public int compareTo(ClientVersion c) {
int compare = clientId.compareTo(c.clientId); int compare = clientId.compareTo(c.clientId);
if (compare != 0) return compare; if (compare != 0) return compare;
return clientVersion - c.clientVersion; return majorVersion - c.majorVersion;
} }
@Override @Override
public String toString() { public String toString() {
return clientId.getString() + ":" + clientVersion; return clientId.getString() + ":" + majorVersion;
} }
} }

View File

@@ -75,23 +75,23 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client,
this.contactGroupFactory = contactGroupFactory; this.contactGroupFactory = contactGroupFactory;
this.clock = clock; this.clock = clock;
localGroup = contactGroupFactory.createLocalGroup(CLIENT_ID, localGroup = contactGroupFactory.createLocalGroup(CLIENT_ID,
CLIENT_VERSION); MAJOR_VERSION);
} }
@Override @Override
public void registerClient(ClientId clientId, int clientVersion) { public void registerClient(ClientId clientId, int majorVersion) {
clients.add(new ClientVersion(clientId, clientVersion)); clients.add(new ClientVersion(clientId, majorVersion));
} }
@Override @Override
public void registerClientVersioningHook(ClientId clientId, public void registerClientVersioningHook(ClientId clientId,
int clientVersion, ClientVersioningHook hook) { int majorVersion, ClientVersioningHook hook) {
hooks.put(new ClientVersion(clientId, clientVersion), hook); hooks.put(new ClientVersion(clientId, majorVersion), hook);
} }
@Override @Override
public Visibility getClientVisibility(Transaction txn, public Visibility getClientVisibility(Transaction txn,
ContactId contactId, ClientId clientId, int clientVersion) ContactId contactId, ClientId clientId, int majorVersion)
throws DbException { throws DbException {
try { try {
Contact contact = db.getContact(txn, contactId); Contact contact = db.getContact(txn, contactId);
@@ -106,7 +106,7 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client,
Update remoteUpdate = loadUpdate(txn, latest.remote.messageId); Update remoteUpdate = loadUpdate(txn, latest.remote.messageId);
Map<ClientVersion, Visibility> visibilities = Map<ClientVersion, Visibility> visibilities =
getVisibilities(localUpdate.states, remoteUpdate.states); getVisibilities(localUpdate.states, remoteUpdate.states);
ClientVersion cv = new ClientVersion(clientId, clientVersion); ClientVersion cv = new ClientVersion(clientId, majorVersion);
Visibility v = visibilities.get(cv); Visibility v = visibilities.get(cv);
return v == null ? INVISIBLE : v; return v == null ? INVISIBLE : v;
} catch (FormatException e) { } catch (FormatException e) {
@@ -245,7 +245,7 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client,
private BdfList encodeClientVersions(List<ClientVersion> versions) { private BdfList encodeClientVersions(List<ClientVersion> versions) {
BdfList encoded = new BdfList(); BdfList encoded = new BdfList();
for (ClientVersion cv : versions) for (ClientVersion cv : versions)
encoded.add(BdfList.of(cv.clientId.getString(), cv.clientVersion)); encoded.add(BdfList.of(cv.clientId.getString(), cv.majorVersion));
return encoded; return encoded;
} }
@@ -282,8 +282,8 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client,
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
BdfList cv = body.getList(i); BdfList cv = body.getList(i);
ClientId clientId = new ClientId(cv.getString(0)); ClientId clientId = new ClientId(cv.getString(0));
int clientVersion = cv.getLong(1).intValue(); int majorVersion = cv.getLong(1).intValue();
parsed.add(new ClientVersion(clientId, clientVersion)); parsed.add(new ClientVersion(clientId, majorVersion));
} }
return parsed; return parsed;
} }
@@ -325,7 +325,7 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client,
private Group getContactGroup(Contact c) { private Group getContactGroup(Contact c) {
return contactGroupFactory.createContactGroup(CLIENT_ID, return contactGroupFactory.createContactGroup(CLIENT_ID,
CLIENT_VERSION, c); MAJOR_VERSION, c);
} }
private LatestUpdates findLatestUpdates(Transaction txn, GroupId g) private LatestUpdates findLatestUpdates(Transaction txn, GroupId g)
@@ -372,11 +372,11 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client,
private ClientState parseClientState(BdfList clientState) private ClientState parseClientState(BdfList clientState)
throws FormatException { throws FormatException {
// Client ID, client version, active // Client ID, major version, active
ClientId clientId = new ClientId(clientState.getString(0)); ClientId clientId = new ClientId(clientState.getString(0));
int clientVersion = clientState.getLong(1).intValue(); int majorVersion = clientState.getLong(1).intValue();
boolean active = clientState.getBoolean(2); boolean active = clientState.getBoolean(2);
return new ClientState(clientId, clientVersion, active); return new ClientState(clientId, majorVersion, active);
} }
private long parseUpdateVersion(BdfList body) throws FormatException { private long parseUpdateVersion(BdfList body) throws FormatException {
@@ -420,7 +420,7 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client,
private BdfList encodeClientState(ClientState cs) { private BdfList encodeClientState(ClientState cs) {
return BdfList.of(cs.version.clientId.getString(), return BdfList.of(cs.version.clientId.getString(),
cs.version.clientVersion, cs.active); cs.version.majorVersion, cs.active);
} }
private Map<ClientVersion, Visibility> getVisibilities( private Map<ClientVersion, Visibility> getVisibilities(
@@ -536,9 +536,9 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client,
this.active = active; this.active = active;
} }
private ClientState(ClientId clientId, int clientVersion, private ClientState(ClientId clientId, int majorVersion,
boolean active) { boolean active) {
this(new ClientVersion(clientId, clientVersion), active); this(new ClientVersion(clientId, majorVersion), active);
} }
@Override @Override

View File

@@ -39,13 +39,13 @@ class ClientVersioningValidator extends BdfMessageValidator {
int size = states.size(); int size = states.size();
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
BdfList clientState = states.getList(i); BdfList clientState = states.getList(i);
// Client ID, client version, active // Client ID, major version, active
checkSize(clientState, 3); checkSize(clientState, 3);
String clientId = clientState.getString(0); String clientId = clientState.getString(0);
checkLength(clientId, 1, MAX_CLIENT_ID_LENGTH); checkLength(clientId, 1, MAX_CLIENT_ID_LENGTH);
int clientVersion = clientState.getLong(1).intValue(); int majorVersion = clientState.getLong(1).intValue();
if (clientVersion < 0) throw new FormatException(); if (majorVersion < 0) throw new FormatException();
boolean active = clientState.getBoolean(2); clientState.getBoolean(2);
} }
// Update version // Update version
long updateVersion = body.getLong(1); long updateVersion = body.getLong(1);

View File

@@ -28,12 +28,12 @@ class GroupFactoryImpl implements GroupFactory {
} }
@Override @Override
public Group createGroup(ClientId c, int clientVersion, byte[] descriptor) { public Group createGroup(ClientId c, int majorVersion, byte[] descriptor) {
byte[] clientVersionBytes = new byte[INT_32_BYTES]; byte[] majorVersionBytes = new byte[INT_32_BYTES];
ByteUtils.writeUint32(clientVersion, clientVersionBytes, 0); ByteUtils.writeUint32(majorVersion, majorVersionBytes, 0);
byte[] hash = crypto.hash(LABEL, new byte[] {FORMAT_VERSION}, byte[] hash = crypto.hash(LABEL, new byte[] {FORMAT_VERSION},
StringUtils.toUtf8(c.getString()), clientVersionBytes, StringUtils.toUtf8(c.getString()), majorVersionBytes,
descriptor); descriptor);
return new Group(new GroupId(hash), c, clientVersion, descriptor); return new Group(new GroupId(hash), c, majorVersion, descriptor);
} }
} }

View File

@@ -28,7 +28,7 @@ import dagger.Module;
import dagger.Provides; import dagger.Provides;
import static org.briarproject.bramble.api.sync.ClientVersioningManager.CLIENT_ID; import static org.briarproject.bramble.api.sync.ClientVersioningManager.CLIENT_ID;
import static org.briarproject.bramble.api.sync.ClientVersioningManager.CLIENT_VERSION; import static org.briarproject.bramble.api.sync.ClientVersioningManager.MAJOR_VERSION;
@Module @Module
public class SyncModule { public class SyncModule {
@@ -111,7 +111,7 @@ public class SyncModule {
lifecycleManager.registerClient(clientVersioningManager); lifecycleManager.registerClient(clientVersioningManager);
lifecycleManager.registerService(clientVersioningManager); lifecycleManager.registerService(clientVersioningManager);
contactManager.registerContactHook(clientVersioningManager); contactManager.registerContactHook(clientVersioningManager);
validationManager.registerIncomingMessageHook(CLIENT_ID, CLIENT_VERSION, validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION,
clientVersioningManager); clientVersioningManager);
return clientVersioningManager; return clientVersioningManager;
} }
@@ -123,7 +123,7 @@ public class SyncModule {
Clock clock, ValidationManager validationManager) { Clock clock, ValidationManager validationManager) {
ClientVersioningValidator validator = new ClientVersioningValidator( ClientVersioningValidator validator = new ClientVersioningValidator(
clientHelper, metadataEncoder, clock); clientHelper, metadataEncoder, clock);
validationManager.registerMessageValidator(CLIENT_ID, CLIENT_VERSION, validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
validator); validator);
return validator; return validator;
} }

View File

@@ -81,15 +81,15 @@ class ValidationManagerImpl implements ValidationManager, Service,
} }
@Override @Override
public void registerMessageValidator(ClientId c, int clientVersion, public void registerMessageValidator(ClientId c, int majorVersion,
MessageValidator v) { MessageValidator v) {
validators.put(new ClientVersion(c, clientVersion), v); validators.put(new ClientVersion(c, majorVersion), v);
} }
@Override @Override
public void registerIncomingMessageHook(ClientId c, int clientVersion, public void registerIncomingMessageHook(ClientId c, int majorVersion,
IncomingMessageHook hook) { IncomingMessageHook hook) {
hooks.put(new ClientVersion(c, clientVersion), hook); hooks.put(new ClientVersion(c, majorVersion), hook);
} }
private void validateOutstandingMessagesAsync() { private void validateOutstandingMessagesAsync() {
@@ -200,11 +200,11 @@ class ValidationManagerImpl implements ValidationManager, Service,
Message m = messageFactory.createMessage(id, raw); Message m = messageFactory.createMessage(id, raw);
Group g = db.getGroup(txn, m.getGroupId()); Group g = db.getGroup(txn, m.getGroupId());
ClientId c = g.getClientId(); ClientId c = g.getClientId();
int clientVersion = g.getClientVersion(); int majorVersion = g.getMajorVersion();
Metadata meta = Metadata meta =
db.getMessageMetadataForValidator(txn, id); db.getMessageMetadataForValidator(txn, id);
DeliveryResult result = DeliveryResult result =
deliverMessage(txn, m, c, clientVersion, meta); deliverMessage(txn, m, c, majorVersion, meta);
if (result.valid) { if (result.valid) {
pending.addAll(getPendingDependents(txn, id)); pending.addAll(getPendingDependents(txn, id));
if (result.share) { if (result.share) {
@@ -241,7 +241,7 @@ class ValidationManagerImpl implements ValidationManager, Service,
@ValidationExecutor @ValidationExecutor
private void validateMessage(Message m, Group g) { private void validateMessage(Message m, Group g) {
ClientVersion cv = ClientVersion cv =
new ClientVersion(g.getClientId(), g.getClientVersion()); new ClientVersion(g.getClientId(), g.getMajorVersion());
MessageValidator v = validators.get(cv); MessageValidator v = validators.get(cv);
if (v == null) { if (v == null) {
if (LOG.isLoggable(WARNING)) LOG.warning("No validator for " + cv); if (LOG.isLoggable(WARNING)) LOG.warning("No validator for " + cv);
@@ -249,7 +249,7 @@ class ValidationManagerImpl implements ValidationManager, Service,
try { try {
MessageContext context = v.validateMessage(m, g); MessageContext context = v.validateMessage(m, g);
storeMessageContextAsync(m, g.getClientId(), storeMessageContextAsync(m, g.getClientId(),
g.getClientVersion(), context); g.getMajorVersion(), context);
} catch (InvalidMessageException e) { } catch (InvalidMessageException e) {
if (LOG.isLoggable(INFO)) if (LOG.isLoggable(INFO))
LOG.log(INFO, e.toString(), e); LOG.log(INFO, e.toString(), e);
@@ -261,13 +261,13 @@ class ValidationManagerImpl implements ValidationManager, Service,
} }
private void storeMessageContextAsync(Message m, ClientId c, private void storeMessageContextAsync(Message m, ClientId c,
int clientVersion, MessageContext result) { int majorVersion, MessageContext result) {
dbExecutor.execute(() -> dbExecutor.execute(() ->
storeMessageContext(m, c, clientVersion, result)); storeMessageContext(m, c, majorVersion, result));
} }
@DatabaseExecutor @DatabaseExecutor
private void storeMessageContext(Message m, ClientId c, int clientVersion, private void storeMessageContext(Message m, ClientId c, int majorVersion,
MessageContext context) { MessageContext context) {
try { try {
MessageId id = m.getId(); MessageId id = m.getId();
@@ -299,7 +299,7 @@ class ValidationManagerImpl implements ValidationManager, Service,
db.mergeMessageMetadata(txn, id, meta); db.mergeMessageMetadata(txn, id, meta);
if (allDelivered) { if (allDelivered) {
DeliveryResult result = DeliveryResult result =
deliverMessage(txn, m, c, clientVersion, meta); deliverMessage(txn, m, c, majorVersion, meta);
if (result.valid) { if (result.valid) {
pending = getPendingDependents(txn, id); pending = getPendingDependents(txn, id);
if (result.share) { if (result.share) {
@@ -331,10 +331,10 @@ class ValidationManagerImpl implements ValidationManager, Service,
@DatabaseExecutor @DatabaseExecutor
private DeliveryResult deliverMessage(Transaction txn, Message m, private DeliveryResult deliverMessage(Transaction txn, Message m,
ClientId c, int clientVersion, Metadata meta) throws DbException { ClientId c, int majorVersion, Metadata meta) throws DbException {
// Deliver the message to the client if it's registered a hook // Deliver the message to the client if it's registered a hook
boolean shareMsg = false; boolean shareMsg = false;
ClientVersion cv = new ClientVersion(c, clientVersion); ClientVersion cv = new ClientVersion(c, majorVersion);
IncomingMessageHook hook = hooks.get(cv); IncomingMessageHook hook = hooks.get(cv);
if (hook != null) { if (hook != null) {
try { try {

View File

@@ -89,7 +89,7 @@ public class DatabaseComponentImplTest extends BrambleMockTestCase {
private final Object txn = new Object(); private final Object txn = new Object();
private final ClientId clientId; private final ClientId clientId;
private final int clientVersion; private final int majorVersion;
private final GroupId groupId; private final GroupId groupId;
private final Group group; private final Group group;
private final Author author; private final Author author;
@@ -107,8 +107,8 @@ public class DatabaseComponentImplTest extends BrambleMockTestCase {
public DatabaseComponentImplTest() { public DatabaseComponentImplTest() {
clientId = getClientId(); clientId = getClientId();
clientVersion = 123; majorVersion = 123;
group = getGroup(clientId, clientVersion); group = getGroup(clientId, majorVersion);
groupId = group.getId(); groupId = group.getId();
author = getAuthor(); author = getAuthor();
localAuthor = getLocalAuthor(); localAuthor = getLocalAuthor();
@@ -177,7 +177,7 @@ public class DatabaseComponentImplTest extends BrambleMockTestCase {
oneOf(database).containsGroup(txn, groupId); oneOf(database).containsGroup(txn, groupId);
will(returnValue(true)); will(returnValue(true));
// getGroups() // getGroups()
oneOf(database).getGroups(txn, clientId, clientVersion); oneOf(database).getGroups(txn, clientId, majorVersion);
will(returnValue(singletonList(group))); will(returnValue(singletonList(group)));
// removeGroup() // removeGroup()
oneOf(database).containsGroup(txn, groupId); oneOf(database).containsGroup(txn, groupId);
@@ -217,7 +217,7 @@ public class DatabaseComponentImplTest extends BrambleMockTestCase {
db.addGroup(transaction, group); // First time - listeners called db.addGroup(transaction, group); // First time - listeners called
db.addGroup(transaction, group); // Second time - not called db.addGroup(transaction, group); // Second time - not called
assertEquals(singletonList(group), assertEquals(singletonList(group),
db.getGroups(transaction, clientId, clientVersion)); db.getGroups(transaction, clientId, majorVersion));
db.removeGroup(transaction, group); db.removeGroup(transaction, group);
db.removeContact(transaction, contactId); db.removeContact(transaction, contactId);
db.removeLocalAuthor(transaction, localAuthor.getId()); db.removeLocalAuthor(transaction, localAuthor.getId());

View File

@@ -82,7 +82,7 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase {
private final File testDir = TestUtils.getTestDirectory(); private final File testDir = TestUtils.getTestDirectory();
private final GroupId groupId; private final GroupId groupId;
private final ClientId clientId; private final ClientId clientId;
private final int clientVersion; private final int majorVersion;
private final Group group; private final Group group;
private final Author author; private final Author author;
private final LocalAuthor localAuthor; private final LocalAuthor localAuthor;
@@ -97,8 +97,8 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase {
JdbcDatabaseTest() throws Exception { JdbcDatabaseTest() throws Exception {
clientId = getClientId(); clientId = getClientId();
clientVersion = 123; majorVersion = 123;
group = getGroup(clientId, clientVersion); group = getGroup(clientId, majorVersion);
groupId = group.getId(); groupId = group.getId();
author = getAuthor(); author = getAuthor();
localAuthor = getLocalAuthor(); localAuthor = getLocalAuthor();
@@ -1835,12 +1835,12 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase {
Database<Connection> db = open(false); Database<Connection> db = open(false);
Connection txn = db.startTransaction(); Connection txn = db.startTransaction();
assertEquals(emptyList(), db.getGroups(txn, clientId, clientVersion)); assertEquals(emptyList(), db.getGroups(txn, clientId, majorVersion));
db.addGroup(txn, group); db.addGroup(txn, group);
assertEquals(singletonList(group), assertEquals(singletonList(group),
db.getGroups(txn, clientId, clientVersion)); db.getGroups(txn, clientId, majorVersion));
db.removeGroup(txn, groupId); db.removeGroup(txn, groupId);
assertEquals(emptyList(), db.getGroups(txn, clientId, clientVersion)); assertEquals(emptyList(), db.getGroups(txn, clientId, majorVersion));
db.commitTransaction(txn); db.commitTransaction(txn);
db.close(); db.close();

View File

@@ -32,7 +32,7 @@ import java.util.Map;
import static java.util.Collections.singletonList; import static java.util.Collections.singletonList;
import static org.briarproject.bramble.api.properties.TransportPropertyManager.CLIENT_ID; import static org.briarproject.bramble.api.properties.TransportPropertyManager.CLIENT_ID;
import static org.briarproject.bramble.api.properties.TransportPropertyManager.CLIENT_VERSION; import static org.briarproject.bramble.api.properties.TransportPropertyManager.MAJOR_VERSION;
import static org.briarproject.bramble.api.sync.Group.Visibility.SHARED; import static org.briarproject.bramble.api.sync.Group.Visibility.SHARED;
import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_BODY_LENGTH; import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_BODY_LENGTH;
import static org.briarproject.bramble.test.TestUtils.getAuthor; import static org.briarproject.bramble.test.TestUtils.getAuthor;
@@ -55,7 +55,7 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase {
context.mock(ContactGroupFactory.class); context.mock(ContactGroupFactory.class);
private final Clock clock = context.mock(Clock.class); private final Clock clock = context.mock(Clock.class);
private final Group localGroup = getGroup(CLIENT_ID, CLIENT_VERSION); private final Group localGroup = getGroup(CLIENT_ID, MAJOR_VERSION);
private final LocalAuthor localAuthor = getLocalAuthor(); private final LocalAuthor localAuthor = getLocalAuthor();
private final BdfDictionary fooPropertiesDict = BdfDictionary.of( private final BdfDictionary fooPropertiesDict = BdfDictionary.of(
new BdfEntry("fooKey1", "fooValue1"), new BdfEntry("fooKey1", "fooValue1"),
@@ -81,7 +81,7 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase {
private TransportPropertyManagerImpl createInstance() { private TransportPropertyManagerImpl createInstance() {
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(contactGroupFactory).createLocalGroup(CLIENT_ID, oneOf(contactGroupFactory).createLocalGroup(CLIENT_ID,
CLIENT_VERSION); MAJOR_VERSION);
will(returnValue(localGroup)); will(returnValue(localGroup));
}}); }});
return new TransportPropertyManagerImpl(db, clientHelper, return new TransportPropertyManagerImpl(db, clientHelper,
@@ -93,7 +93,7 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase {
public void testCreatesGroupsAtStartup() throws Exception { public void testCreatesGroupsAtStartup() throws Exception {
Transaction txn = new Transaction(null, false); Transaction txn = new Transaction(null, false);
Contact contact = getContact(true); Contact contact = getContact(true);
Group contactGroup = getGroup(CLIENT_ID, CLIENT_VERSION); Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION);
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(db).containsGroup(txn, localGroup.getId()); oneOf(db).containsGroup(txn, localGroup.getId());
@@ -102,11 +102,11 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContacts(txn); oneOf(db).getContacts(txn);
will(returnValue(singletonList(contact))); will(returnValue(singletonList(contact)));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(db).addGroup(txn, contactGroup); oneOf(db).addGroup(txn, contactGroup);
oneOf(clientVersioningManager).getClientVisibility(txn, oneOf(clientVersioningManager).getClientVisibility(txn,
contact.getId(), CLIENT_ID, CLIENT_VERSION); contact.getId(), CLIENT_ID, MAJOR_VERSION);
will(returnValue(SHARED)); will(returnValue(SHARED));
oneOf(db).setGroupVisibility(txn, contact.getId(), oneOf(db).setGroupVisibility(txn, contact.getId(),
contactGroup.getId(), SHARED); contactGroup.getId(), SHARED);
@@ -140,16 +140,16 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase {
public void testCreatesContactGroupWhenAddingContact() throws Exception { public void testCreatesContactGroupWhenAddingContact() throws Exception {
Transaction txn = new Transaction(null, false); Transaction txn = new Transaction(null, false);
Contact contact = getContact(true); Contact contact = getContact(true);
Group contactGroup = getGroup(CLIENT_ID, CLIENT_VERSION); Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION);
context.checking(new Expectations() {{ context.checking(new Expectations() {{
// Create the group and share it with the contact // Create the group and share it with the contact
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(db).addGroup(txn, contactGroup); oneOf(db).addGroup(txn, contactGroup);
oneOf(clientVersioningManager).getClientVisibility(txn, oneOf(clientVersioningManager).getClientVisibility(txn,
contact.getId(), CLIENT_ID, CLIENT_VERSION); contact.getId(), CLIENT_ID, MAJOR_VERSION);
will(returnValue(SHARED)); will(returnValue(SHARED));
oneOf(db).setGroupVisibility(txn, contact.getId(), oneOf(db).setGroupVisibility(txn, contact.getId(),
contactGroup.getId(), SHARED); contactGroup.getId(), SHARED);
@@ -169,11 +169,11 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase {
public void testRemovesGroupWhenRemovingContact() throws Exception { public void testRemovesGroupWhenRemovingContact() throws Exception {
Transaction txn = new Transaction(null, false); Transaction txn = new Transaction(null, false);
Contact contact = getContact(true); Contact contact = getContact(true);
Group contactGroup = getGroup(CLIENT_ID, CLIENT_VERSION); Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION);
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(db).removeGroup(txn, contactGroup); oneOf(db).removeGroup(txn, contactGroup);
}}); }});
@@ -304,7 +304,7 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase {
@Test @Test
public void testStoresRemotePropertiesWithVersion0() throws Exception { public void testStoresRemotePropertiesWithVersion0() throws Exception {
Contact contact = getContact(true); Contact contact = getContact(true);
Group contactGroup = getGroup(CLIENT_ID, CLIENT_VERSION); Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION);
Transaction txn = new Transaction(null, false); Transaction txn = new Transaction(null, false);
Map<TransportId, TransportProperties> properties = Map<TransportId, TransportProperties> properties =
new LinkedHashMap<>(); new LinkedHashMap<>();
@@ -315,7 +315,7 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContact(txn, contact.getId()); oneOf(db).getContact(txn, contact.getId());
will(returnValue(contact)); will(returnValue(contact));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
}}); }});
expectStoreMessage(txn, contactGroup.getId(), "foo", fooPropertiesDict, expectStoreMessage(txn, contactGroup.getId(), "foo", fooPropertiesDict,
@@ -418,8 +418,8 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase {
Contact contact3 = getContact(true); Contact contact3 = getContact(true);
List<Contact> contacts = List<Contact> contacts =
Arrays.asList(contact1, contact2, contact3); Arrays.asList(contact1, contact2, contact3);
Group contactGroup2 = getGroup(CLIENT_ID, CLIENT_VERSION); Group contactGroup2 = getGroup(CLIENT_ID, MAJOR_VERSION);
Group contactGroup3 = getGroup(CLIENT_ID, CLIENT_VERSION); Group contactGroup3 = getGroup(CLIENT_ID, MAJOR_VERSION);
Map<MessageId, BdfDictionary> messageMetadata3 = Map<MessageId, BdfDictionary> messageMetadata3 =
new LinkedHashMap<>(); new LinkedHashMap<>();
// A remote update for another transport should be ignored // A remote update for another transport should be ignored
@@ -453,14 +453,14 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase {
// First contact: skipped because not active // First contact: skipped because not active
// Second contact: no updates // Second contact: no updates
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact2); MAJOR_VERSION, contact2);
will(returnValue(contactGroup2)); will(returnValue(contactGroup2));
oneOf(clientHelper).getMessageMetadataAsDictionary(txn, oneOf(clientHelper).getMessageMetadataAsDictionary(txn,
contactGroup2.getId()); contactGroup2.getId());
will(returnValue(Collections.emptyMap())); will(returnValue(Collections.emptyMap()));
// Third contact: returns an update // Third contact: returns an update
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact3); MAJOR_VERSION, contact3);
will(returnValue(contactGroup3)); will(returnValue(contactGroup3));
oneOf(clientHelper).getMessageMetadataAsDictionary(txn, oneOf(clientHelper).getMessageMetadataAsDictionary(txn,
contactGroup3.getId()); contactGroup3.getId());
@@ -521,7 +521,7 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase {
public void testMergingNewPropertiesCreatesUpdate() throws Exception { public void testMergingNewPropertiesCreatesUpdate() throws Exception {
Transaction txn = new Transaction(null, false); Transaction txn = new Transaction(null, false);
Contact contact = getContact(true); Contact contact = getContact(true);
Group contactGroup = getGroup(CLIENT_ID, CLIENT_VERSION); Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION);
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(db).startTransaction(false); oneOf(db).startTransaction(false);
@@ -537,7 +537,7 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContacts(txn); oneOf(db).getContacts(txn);
will(returnValue(singletonList(contact))); will(returnValue(singletonList(contact)));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(clientHelper).getMessageMetadataAsDictionary(txn, oneOf(clientHelper).getMessageMetadataAsDictionary(txn,
contactGroup.getId()); contactGroup.getId());
@@ -556,7 +556,7 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase {
public void testMergingUpdatedPropertiesCreatesUpdate() throws Exception { public void testMergingUpdatedPropertiesCreatesUpdate() throws Exception {
Transaction txn = new Transaction(null, false); Transaction txn = new Transaction(null, false);
Contact contact = getContact(true); Contact contact = getContact(true);
Group contactGroup = getGroup(CLIENT_ID, CLIENT_VERSION); Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION);
BdfDictionary oldMetadata = BdfDictionary.of( BdfDictionary oldMetadata = BdfDictionary.of(
new BdfEntry("transportId", "foo"), new BdfEntry("transportId", "foo"),
new BdfEntry("version", 1), new BdfEntry("version", 1),
@@ -596,7 +596,7 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContacts(txn); oneOf(db).getContacts(txn);
will(returnValue(singletonList(contact))); will(returnValue(singletonList(contact)));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(clientHelper).getMessageMetadataAsDictionary(txn, oneOf(clientHelper).getMessageMetadataAsDictionary(txn,
contactGroup.getId()); contactGroup.getId());

View File

@@ -19,7 +19,7 @@ import java.io.IOException;
import static org.briarproject.bramble.api.plugin.TransportId.MAX_TRANSPORT_ID_LENGTH; import static org.briarproject.bramble.api.plugin.TransportId.MAX_TRANSPORT_ID_LENGTH;
import static org.briarproject.bramble.api.properties.TransportPropertyManager.CLIENT_ID; import static org.briarproject.bramble.api.properties.TransportPropertyManager.CLIENT_ID;
import static org.briarproject.bramble.api.properties.TransportPropertyManager.CLIENT_VERSION; import static org.briarproject.bramble.api.properties.TransportPropertyManager.MAJOR_VERSION;
import static org.briarproject.bramble.test.TestUtils.getGroup; import static org.briarproject.bramble.test.TestUtils.getGroup;
import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.bramble.test.TestUtils.getMessage;
import static org.briarproject.bramble.test.TestUtils.getTransportId; import static org.briarproject.bramble.test.TestUtils.getTransportId;
@@ -43,7 +43,7 @@ public class TransportPropertyValidatorTest extends BrambleMockTestCase {
transportProperties = new TransportProperties(); transportProperties = new TransportProperties();
transportProperties.put("foo", "bar"); transportProperties.put("foo", "bar");
group = getGroup(CLIENT_ID, CLIENT_VERSION); group = getGroup(CLIENT_ID, MAJOR_VERSION);
message = getMessage(group.getId()); message = getMessage(group.getId());
MetadataEncoder metadataEncoder = context.mock(MetadataEncoder.class); MetadataEncoder metadataEncoder = context.mock(MetadataEncoder.class);

View File

@@ -81,9 +81,9 @@ public class SyncIntegrationTest extends BrambleTestCase {
streamNumber = 123; streamNumber = 123;
// Create a group // Create a group
ClientId clientId = getClientId(); ClientId clientId = getClientId();
int clientVersion = 1234567890; int majorVersion = 1234567890;
byte[] descriptor = new byte[MAX_GROUP_DESCRIPTOR_LENGTH]; byte[] descriptor = new byte[MAX_GROUP_DESCRIPTOR_LENGTH];
Group group = groupFactory.createGroup(clientId, clientVersion, Group group = groupFactory.createGroup(clientId, majorVersion,
descriptor); descriptor);
// Add two messages to the group // Add two messages to the group
long timestamp = System.currentTimeMillis(); long timestamp = System.currentTimeMillis();

View File

@@ -53,11 +53,11 @@ public class ValidationManagerImplTest extends BrambleMockTestCase {
private final Executor dbExecutor = new ImmediateExecutor(); private final Executor dbExecutor = new ImmediateExecutor();
private final Executor validationExecutor = new ImmediateExecutor(); private final Executor validationExecutor = new ImmediateExecutor();
private final ClientId clientId = getClientId(); private final ClientId clientId = getClientId();
private final int clientVersion = 123; private final int majorVersion = 123;
private final MessageId messageId = new MessageId(getRandomId()); private final MessageId messageId = new MessageId(getRandomId());
private final MessageId messageId1 = new MessageId(getRandomId()); private final MessageId messageId1 = new MessageId(getRandomId());
private final MessageId messageId2 = new MessageId(getRandomId()); private final MessageId messageId2 = new MessageId(getRandomId());
private final Group group = getGroup(clientId, clientVersion); private final Group group = getGroup(clientId, majorVersion);
private final GroupId groupId = group.getId(); private final GroupId groupId = group.getId();
private final long timestamp = System.currentTimeMillis(); private final long timestamp = System.currentTimeMillis();
private final byte[] raw = new byte[123]; private final byte[] raw = new byte[123];
@@ -86,8 +86,8 @@ public class ValidationManagerImplTest extends BrambleMockTestCase {
public void setUp() { public void setUp() {
vm = new ValidationManagerImpl(db, dbExecutor, validationExecutor, vm = new ValidationManagerImpl(db, dbExecutor, validationExecutor,
messageFactory); messageFactory);
vm.registerMessageValidator(clientId, clientVersion, validator); vm.registerMessageValidator(clientId, majorVersion, validator);
vm.registerIncomingMessageHook(clientId, clientVersion, hook); vm.registerIncomingMessageHook(clientId, majorVersion, hook);
} }
@Test @Test

View File

@@ -22,9 +22,9 @@ public interface BlogManager {
ClientId CLIENT_ID = new ClientId("org.briarproject.briar.blog"); ClientId CLIENT_ID = new ClientId("org.briarproject.briar.blog");
/** /**
* The current version of the blog client. * The current major version of the blog client.
*/ */
int CLIENT_VERSION = 0; int MAJOR_VERSION = 0;
/** /**
* Adds the given {@link Blog).} * Adds the given {@link Blog).}

View File

@@ -11,7 +11,7 @@ public interface BlogSharingManager extends SharingManager<Blog> {
ClientId CLIENT_ID = new ClientId("org.briarproject.briar.blog.sharing"); ClientId CLIENT_ID = new ClientId("org.briarproject.briar.blog.sharing");
/** /**
* The current version of the blog sharing client. * The current major version of the blog sharing client.
*/ */
int CLIENT_VERSION = 0; int MAJOR_VERSION = 0;
} }

View File

@@ -16,9 +16,9 @@ public interface FeedManager {
ClientId CLIENT_ID = new ClientId("org.briarproject.briar.feed"); ClientId CLIENT_ID = new ClientId("org.briarproject.briar.feed");
/** /**
* The current version of the RSS feed client. * The current major version of the RSS feed client.
*/ */
int CLIENT_VERSION = 0; int MAJOR_VERSION = 0;
/** /**
* Adds an RSS feed as a new dedicated blog. * Adds an RSS feed as a new dedicated blog.

View File

@@ -23,9 +23,9 @@ public interface ForumManager {
ClientId CLIENT_ID = new ClientId("org.briarproject.briar.forum"); ClientId CLIENT_ID = new ClientId("org.briarproject.briar.forum");
/** /**
* The current version of the forum client. * The current major version of the forum client.
*/ */
int CLIENT_VERSION = 0; int MAJOR_VERSION = 0;
/** /**
* Subscribes to a forum. * Subscribes to a forum.

View File

@@ -11,7 +11,7 @@ public interface ForumSharingManager extends SharingManager<Forum> {
ClientId CLIENT_ID = new ClientId("org.briarproject.briar.forum.sharing"); ClientId CLIENT_ID = new ClientId("org.briarproject.briar.forum.sharing");
/** /**
* The current version of the forum sharing client. * The current major version of the forum sharing client.
*/ */
int CLIENT_VERSION = 0; int MAJOR_VERSION = 0;
} }

View File

@@ -21,9 +21,9 @@ public interface IntroductionManager extends ConversationClient {
ClientId CLIENT_ID = new ClientId("org.briarproject.briar.introduction"); ClientId CLIENT_ID = new ClientId("org.briarproject.briar.introduction");
/** /**
* The current version of the introduction client. * The current major version of the introduction client.
*/ */
int CLIENT_VERSION = 1; int MAJOR_VERSION = 1;
/** /**
* Returns true if both contacts can be introduced at this moment. * Returns true if both contacts can be introduced at this moment.

View File

@@ -19,9 +19,9 @@ public interface MessagingManager extends ConversationClient {
ClientId CLIENT_ID = new ClientId("org.briarproject.briar.messaging"); ClientId CLIENT_ID = new ClientId("org.briarproject.briar.messaging");
/** /**
* The current version of the messaging client. * The current major version of the messaging client.
*/ */
int CLIENT_VERSION = 0; int MAJOR_VERSION = 0;
/** /**
* Stores a local private message. * Stores a local private message.

View File

@@ -22,9 +22,9 @@ public interface PrivateGroupManager {
ClientId CLIENT_ID = new ClientId("org.briarproject.briar.privategroup"); ClientId CLIENT_ID = new ClientId("org.briarproject.briar.privategroup");
/** /**
* The current version of the private group client. * The current major version of the private group client.
*/ */
int CLIENT_VERSION = 0; int MAJOR_VERSION = 0;
/** /**
* Adds a new private group and joins it. * Adds a new private group and joins it.

View File

@@ -26,9 +26,9 @@ public interface GroupInvitationManager extends ConversationClient {
new ClientId("org.briarproject.briar.privategroup.invitation"); new ClientId("org.briarproject.briar.privategroup.invitation");
/** /**
* The current version of the private group invitation client. * The current major version of the private group invitation client.
*/ */
int CLIENT_VERSION = 0; int MAJOR_VERSION = 0;
/** /**
* Sends an invitation to share the given private group with the given * Sends an invitation to share the given private group with the given

View File

@@ -15,7 +15,7 @@ import javax.inject.Inject;
import static org.briarproject.bramble.util.ValidationUtils.checkSize; import static org.briarproject.bramble.util.ValidationUtils.checkSize;
import static org.briarproject.briar.api.blog.BlogManager.CLIENT_ID; import static org.briarproject.briar.api.blog.BlogManager.CLIENT_ID;
import static org.briarproject.briar.api.blog.BlogManager.CLIENT_VERSION; import static org.briarproject.briar.api.blog.BlogManager.MAJOR_VERSION;
@Immutable @Immutable
@NotNullByDefault @NotNullByDefault
@@ -45,7 +45,7 @@ class BlogFactoryImpl implements BlogFactory {
try { try {
BdfList blog = BdfList.of(clientHelper.toList(a), rssFeed); BdfList blog = BdfList.of(clientHelper.toList(a), rssFeed);
byte[] descriptor = clientHelper.toByteArray(blog); byte[] descriptor = clientHelper.toByteArray(blog);
Group g = groupFactory.createGroup(CLIENT_ID, CLIENT_VERSION, Group g = groupFactory.createGroup(CLIENT_ID, MAJOR_VERSION,
descriptor); descriptor);
return new Blog(g, a, rssFeed); return new Blog(g, a, rssFeed);
} catch (FormatException e) { } catch (FormatException e) {

View File

@@ -425,7 +425,7 @@ class BlogManagerImpl extends BdfIncomingMessageHook implements BlogManager,
Collection<Group> groups; Collection<Group> groups;
Transaction txn = db.startTransaction(true); Transaction txn = db.startTransaction(true);
try { try {
groups = db.getGroups(txn, CLIENT_ID, CLIENT_VERSION); groups = db.getGroups(txn, CLIENT_ID, MAJOR_VERSION);
for (Group g : groups) { for (Group g : groups) {
blogs.add(blogFactory.parseBlog(g)); blogs.add(blogFactory.parseBlog(g));
} }

View File

@@ -19,7 +19,7 @@ import dagger.Module;
import dagger.Provides; import dagger.Provides;
import static org.briarproject.briar.api.blog.BlogManager.CLIENT_ID; import static org.briarproject.briar.api.blog.BlogManager.CLIENT_ID;
import static org.briarproject.briar.api.blog.BlogManager.CLIENT_VERSION; import static org.briarproject.briar.api.blog.BlogManager.MAJOR_VERSION;
@Module @Module
public class BlogModule { public class BlogModule {
@@ -38,7 +38,7 @@ public class BlogModule {
ValidationManager validationManager) { ValidationManager validationManager) {
lifecycleManager.registerClient(blogManager); lifecycleManager.registerClient(blogManager);
contactManager.registerContactHook(blogManager); contactManager.registerContactHook(blogManager);
validationManager.registerIncomingMessageHook(CLIENT_ID, CLIENT_VERSION, validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION,
blogManager); blogManager);
return blogManager; return blogManager;
} }
@@ -64,7 +64,7 @@ public class BlogModule {
BlogPostValidator validator = new BlogPostValidator(groupFactory, BlogPostValidator validator = new BlogPostValidator(groupFactory,
messageFactory, blogFactory, clientHelper, metadataEncoder, messageFactory, blogFactory, clientHelper, metadataEncoder,
clock); clock);
validationManager.registerMessageValidator(CLIENT_ID, CLIENT_VERSION, validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
validator); validator);
return validator; return validator;
} }

View File

@@ -42,7 +42,7 @@ import static org.briarproject.briar.api.blog.BlogConstants.KEY_TYPE;
import static org.briarproject.briar.api.blog.BlogConstants.MAX_BLOG_COMMENT_LENGTH; import static org.briarproject.briar.api.blog.BlogConstants.MAX_BLOG_COMMENT_LENGTH;
import static org.briarproject.briar.api.blog.BlogConstants.MAX_BLOG_POST_BODY_LENGTH; import static org.briarproject.briar.api.blog.BlogConstants.MAX_BLOG_POST_BODY_LENGTH;
import static org.briarproject.briar.api.blog.BlogManager.CLIENT_ID; import static org.briarproject.briar.api.blog.BlogManager.CLIENT_ID;
import static org.briarproject.briar.api.blog.BlogManager.CLIENT_VERSION; import static org.briarproject.briar.api.blog.BlogManager.MAJOR_VERSION;
import static org.briarproject.briar.api.blog.BlogPostFactory.SIGNING_LABEL_COMMENT; import static org.briarproject.briar.api.blog.BlogPostFactory.SIGNING_LABEL_COMMENT;
import static org.briarproject.briar.api.blog.BlogPostFactory.SIGNING_LABEL_POST; import static org.briarproject.briar.api.blog.BlogPostFactory.SIGNING_LABEL_POST;
import static org.briarproject.briar.api.blog.MessageType.COMMENT; import static org.briarproject.briar.api.blog.MessageType.COMMENT;
@@ -195,7 +195,7 @@ class BlogPostValidator extends BdfMessageValidator {
checkLength(signature, 1, MAX_SIGNATURE_LENGTH); checkLength(signature, 1, MAX_SIGNATURE_LENGTH);
// Get and Validate the Wrapped Message // Get and Validate the Wrapped Message
Group wGroup = groupFactory.createGroup(CLIENT_ID, CLIENT_VERSION, Group wGroup = groupFactory.createGroup(CLIENT_ID, MAJOR_VERSION,
descriptor); descriptor);
Blog wBlog = blogFactory.parseBlog(wGroup); Blog wBlog = blogFactory.parseBlog(wGroup);
BdfList wBodyList = BdfList.of(POST.getInt(), content, signature); BdfList wBodyList = BdfList.of(POST.getInt(), content, signature);
@@ -258,7 +258,7 @@ class BlogPostValidator extends BdfMessageValidator {
MessageId parentId = new MessageId(parentIdBytes); MessageId parentId = new MessageId(parentIdBytes);
// Get and Validate the Wrapped Comment // Get and Validate the Wrapped Comment
Group wGroup = groupFactory.createGroup(CLIENT_ID, CLIENT_VERSION, Group wGroup = groupFactory.createGroup(CLIENT_ID, MAJOR_VERSION,
descriptor); descriptor);
BdfList wBodyList = BdfList.of(COMMENT.getInt(), comment, pOriginalId, BdfList wBodyList = BdfList.of(COMMENT.getInt(), comment, pOriginalId,
oldId, signature); oldId, signature);

View File

@@ -496,7 +496,7 @@ class FeedManagerImpl implements FeedManager, Client, EventListener,
} }
private Group getLocalGroup() { private Group getLocalGroup() {
return contactGroupFactory.createLocalGroup(CLIENT_ID, CLIENT_VERSION); return contactGroupFactory.createLocalGroup(CLIENT_ID, MAJOR_VERSION);
} }
} }

View File

@@ -18,7 +18,7 @@ import javax.inject.Inject;
import static org.briarproject.briar.api.forum.ForumConstants.FORUM_SALT_LENGTH; import static org.briarproject.briar.api.forum.ForumConstants.FORUM_SALT_LENGTH;
import static org.briarproject.briar.api.forum.ForumConstants.MAX_FORUM_NAME_LENGTH; import static org.briarproject.briar.api.forum.ForumConstants.MAX_FORUM_NAME_LENGTH;
import static org.briarproject.briar.api.forum.ForumManager.CLIENT_ID; import static org.briarproject.briar.api.forum.ForumManager.CLIENT_ID;
import static org.briarproject.briar.api.forum.ForumManager.CLIENT_VERSION; import static org.briarproject.briar.api.forum.ForumManager.MAJOR_VERSION;
@Immutable @Immutable
@NotNullByDefault @NotNullByDefault
@@ -52,7 +52,7 @@ class ForumFactoryImpl implements ForumFactory {
try { try {
BdfList forum = BdfList.of(name, salt); BdfList forum = BdfList.of(name, salt);
byte[] descriptor = clientHelper.toByteArray(forum); byte[] descriptor = clientHelper.toByteArray(forum);
Group g = groupFactory.createGroup(CLIENT_ID, CLIENT_VERSION, Group g = groupFactory.createGroup(CLIENT_ID, MAJOR_VERSION,
descriptor); descriptor);
return new Forum(g, name, salt); return new Forum(g, name, salt);
} catch (FormatException e) { } catch (FormatException e) {

View File

@@ -188,7 +188,7 @@ class ForumManagerImpl extends BdfIncomingMessageHook implements ForumManager {
Collection<Group> groups; Collection<Group> groups;
Transaction txn = db.startTransaction(true); Transaction txn = db.startTransaction(true);
try { try {
groups = db.getGroups(txn, CLIENT_ID, CLIENT_VERSION); groups = db.getGroups(txn, CLIENT_ID, MAJOR_VERSION);
db.commitTransaction(txn); db.commitTransaction(txn);
} finally { } finally {
db.endTransaction(txn); db.endTransaction(txn);

View File

@@ -15,7 +15,7 @@ import dagger.Module;
import dagger.Provides; import dagger.Provides;
import static org.briarproject.briar.api.forum.ForumManager.CLIENT_ID; import static org.briarproject.briar.api.forum.ForumManager.CLIENT_ID;
import static org.briarproject.briar.api.forum.ForumManager.CLIENT_VERSION; import static org.briarproject.briar.api.forum.ForumManager.MAJOR_VERSION;
@Module @Module
public class ForumModule { public class ForumModule {
@@ -31,7 +31,7 @@ public class ForumModule {
@Singleton @Singleton
ForumManager provideForumManager(ForumManagerImpl forumManager, ForumManager provideForumManager(ForumManagerImpl forumManager,
ValidationManager validationManager) { ValidationManager validationManager) {
validationManager.registerIncomingMessageHook(CLIENT_ID, CLIENT_VERSION, validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION,
forumManager); forumManager);
return forumManager; return forumManager;
} }
@@ -54,7 +54,7 @@ public class ForumModule {
MetadataEncoder metadataEncoder, Clock clock) { MetadataEncoder metadataEncoder, Clock clock) {
ForumPostValidator validator = new ForumPostValidator(clientHelper, ForumPostValidator validator = new ForumPostValidator(clientHelper,
metadataEncoder, clock); metadataEncoder, clock);
validationManager.registerMessageValidator(CLIENT_ID, CLIENT_VERSION, validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
validator); validator);
return validator; return validator;
} }

View File

@@ -127,7 +127,7 @@ class IntroductionManagerImpl extends ConversationClientImpl
db.addGroup(txn, g); db.addGroup(txn, g);
// Apply the client's visibility to the contact group // Apply the client's visibility to the contact group
Visibility client = clientVersioningManager.getClientVisibility(txn, Visibility client = clientVersioningManager.getClientVisibility(txn,
c.getId(), CLIENT_ID, CLIENT_VERSION); c.getId(), CLIENT_ID, MAJOR_VERSION);
if (LOG.isLoggable(INFO)) if (LOG.isLoggable(INFO))
LOG.info("Applying visibility " + client + " to new contact group");db.setGroupVisibility(txn, c.getId(), g.getId(), client); LOG.info("Applying visibility " + client + " to new contact group");db.setGroupVisibility(txn, c.getId(), g.getId(), client);
db.setGroupVisibility(txn, c.getId(), g.getId(), client); db.setGroupVisibility(txn, c.getId(), g.getId(), client);

View File

@@ -17,7 +17,7 @@ import dagger.Module;
import dagger.Provides; import dagger.Provides;
import static org.briarproject.briar.api.introduction.IntroductionManager.CLIENT_ID; import static org.briarproject.briar.api.introduction.IntroductionManager.CLIENT_ID;
import static org.briarproject.briar.api.introduction.IntroductionManager.CLIENT_VERSION; import static org.briarproject.briar.api.introduction.IntroductionManager.MAJOR_VERSION;
@Module @Module
public class IntroductionModule { public class IntroductionModule {
@@ -37,7 +37,7 @@ public class IntroductionModule {
IntroductionValidator introductionValidator = IntroductionValidator introductionValidator =
new IntroductionValidator(messageEncoder, clientHelper, new IntroductionValidator(messageEncoder, clientHelper,
metadataEncoder, clock); metadataEncoder, clock);
validationManager.registerMessageValidator(CLIENT_ID, CLIENT_VERSION, validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
introductionValidator); introductionValidator);
return introductionValidator; return introductionValidator;
} }
@@ -53,11 +53,11 @@ public class IntroductionModule {
lifecycleManager.registerClient(introductionManager); lifecycleManager.registerClient(introductionManager);
contactManager.registerContactHook(introductionManager); contactManager.registerContactHook(introductionManager);
validationManager.registerIncomingMessageHook(CLIENT_ID, validationManager.registerIncomingMessageHook(CLIENT_ID,
CLIENT_VERSION, introductionManager); MAJOR_VERSION, introductionManager);
conversationManager.registerConversationClient(introductionManager); conversationManager.registerConversationClient(introductionManager);
clientVersioningManager.registerClient(CLIENT_ID, CLIENT_VERSION); clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION);
clientVersioningManager.registerClientVersioningHook(CLIENT_ID, clientVersioningManager.registerClientVersioningHook(CLIENT_ID,
CLIENT_VERSION, introductionManager); MAJOR_VERSION, introductionManager);
return introductionManager; return introductionManager;
} }

View File

@@ -65,7 +65,7 @@ class MessagingManagerImpl extends ConversationClientImpl
public void createLocalState(Transaction txn) throws DbException { public void createLocalState(Transaction txn) throws DbException {
// Create a local group to indicate that we've set this client up // Create a local group to indicate that we've set this client up
Group localGroup = contactGroupFactory.createLocalGroup(CLIENT_ID, Group localGroup = contactGroupFactory.createLocalGroup(CLIENT_ID,
CLIENT_VERSION); MAJOR_VERSION);
if (db.containsGroup(txn, localGroup.getId())) return; if (db.containsGroup(txn, localGroup.getId())) return;
db.addGroup(txn, localGroup); db.addGroup(txn, localGroup);
// Set things up for any pre-existing contacts // Set things up for any pre-existing contacts
@@ -80,7 +80,7 @@ class MessagingManagerImpl extends ConversationClientImpl
db.addGroup(txn, g); db.addGroup(txn, g);
// Apply the client's visibility to the contact group // Apply the client's visibility to the contact group
Visibility client = clientVersioningManager.getClientVisibility(txn, Visibility client = clientVersioningManager.getClientVisibility(txn,
c.getId(), CLIENT_ID, CLIENT_VERSION); c.getId(), CLIENT_ID, MAJOR_VERSION);
if (LOG.isLoggable(INFO)) if (LOG.isLoggable(INFO))
LOG.info("Applying visibility " + client + " to new contact group"); LOG.info("Applying visibility " + client + " to new contact group");
db.setGroupVisibility(txn, c.getId(), g.getId(), client); db.setGroupVisibility(txn, c.getId(), g.getId(), client);
@@ -97,7 +97,7 @@ class MessagingManagerImpl extends ConversationClientImpl
@Override @Override
public Group getContactGroup(Contact c) { public Group getContactGroup(Contact c) {
return contactGroupFactory.createContactGroup(CLIENT_ID, return contactGroupFactory.createContactGroup(CLIENT_ID,
CLIENT_VERSION, c); MAJOR_VERSION, c);
} }
@Override @Override

View File

@@ -18,7 +18,7 @@ import dagger.Module;
import dagger.Provides; import dagger.Provides;
import static org.briarproject.briar.api.messaging.MessagingManager.CLIENT_ID; import static org.briarproject.briar.api.messaging.MessagingManager.CLIENT_ID;
import static org.briarproject.briar.api.messaging.MessagingManager.CLIENT_VERSION; import static org.briarproject.briar.api.messaging.MessagingManager.MAJOR_VERSION;
@Module @Module
public class MessagingModule { public class MessagingModule {
@@ -45,7 +45,7 @@ public class MessagingModule {
Clock clock) { Clock clock) {
PrivateMessageValidator validator = new PrivateMessageValidator( PrivateMessageValidator validator = new PrivateMessageValidator(
clientHelper, metadataEncoder, clock); clientHelper, metadataEncoder, clock);
validationManager.registerMessageValidator(CLIENT_ID, CLIENT_VERSION, validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
validator); validator);
return validator; return validator;
} }
@@ -59,12 +59,12 @@ public class MessagingModule {
MessagingManagerImpl messagingManager) { MessagingManagerImpl messagingManager) {
lifecycleManager.registerClient(messagingManager); lifecycleManager.registerClient(messagingManager);
contactManager.registerContactHook(messagingManager); contactManager.registerContactHook(messagingManager);
validationManager.registerIncomingMessageHook(CLIENT_ID, CLIENT_VERSION, validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION,
messagingManager); messagingManager);
conversationManager.registerConversationClient(messagingManager); conversationManager.registerConversationClient(messagingManager);
clientVersioningManager.registerClient(CLIENT_ID, CLIENT_VERSION); clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION);
clientVersioningManager.registerClientVersioningHook(CLIENT_ID, clientVersioningManager.registerClientVersioningHook(CLIENT_ID,
CLIENT_VERSION, messagingManager); MAJOR_VERSION, messagingManager);
return messagingManager; return messagingManager;
} }

View File

@@ -21,7 +21,7 @@ import static org.briarproject.bramble.util.ValidationUtils.checkSize;
import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.GROUP_SALT_LENGTH; import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.GROUP_SALT_LENGTH;
import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_NAME_LENGTH; import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_NAME_LENGTH;
import static org.briarproject.briar.api.privategroup.PrivateGroupManager.CLIENT_ID; import static org.briarproject.briar.api.privategroup.PrivateGroupManager.CLIENT_ID;
import static org.briarproject.briar.api.privategroup.PrivateGroupManager.CLIENT_VERSION; import static org.briarproject.briar.api.privategroup.PrivateGroupManager.MAJOR_VERSION;
@Immutable @Immutable
@NotNullByDefault @NotNullByDefault
@@ -57,7 +57,7 @@ class PrivateGroupFactoryImpl implements PrivateGroupFactory {
BdfList creatorList = clientHelper.toList(creator); BdfList creatorList = clientHelper.toList(creator);
BdfList group = BdfList.of(creatorList, name, salt); BdfList group = BdfList.of(creatorList, name, salt);
byte[] descriptor = clientHelper.toByteArray(group); byte[] descriptor = clientHelper.toByteArray(group);
Group g = groupFactory.createGroup(CLIENT_ID, CLIENT_VERSION, Group g = groupFactory.createGroup(CLIENT_ID, MAJOR_VERSION,
descriptor); descriptor);
return new PrivateGroup(g, name, creator, salt); return new PrivateGroup(g, name, creator, salt);
} catch (FormatException e) { } catch (FormatException e) {

View File

@@ -271,7 +271,7 @@ class PrivateGroupManagerImpl extends BdfIncomingMessageHook
Collection<Group> groups; Collection<Group> groups;
Transaction txn = db.startTransaction(true); Transaction txn = db.startTransaction(true);
try { try {
groups = db.getGroups(txn, CLIENT_ID, CLIENT_VERSION); groups = db.getGroups(txn, CLIENT_ID, MAJOR_VERSION);
db.commitTransaction(txn); db.commitTransaction(txn);
} finally { } finally {
db.endTransaction(txn); db.endTransaction(txn);

View File

@@ -16,7 +16,7 @@ import dagger.Module;
import dagger.Provides; import dagger.Provides;
import static org.briarproject.briar.api.privategroup.PrivateGroupManager.CLIENT_ID; import static org.briarproject.briar.api.privategroup.PrivateGroupManager.CLIENT_ID;
import static org.briarproject.briar.api.privategroup.PrivateGroupManager.CLIENT_VERSION; import static org.briarproject.briar.api.privategroup.PrivateGroupManager.MAJOR_VERSION;
@Module @Module
public class PrivateGroupModule { public class PrivateGroupModule {
@@ -33,7 +33,7 @@ public class PrivateGroupModule {
PrivateGroupManager provideGroupManager( PrivateGroupManager provideGroupManager(
PrivateGroupManagerImpl groupManager, PrivateGroupManagerImpl groupManager,
ValidationManager validationManager) { ValidationManager validationManager) {
validationManager.registerIncomingMessageHook(CLIENT_ID, CLIENT_VERSION, validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION,
groupManager); groupManager);
return groupManager; return groupManager;
} }
@@ -60,7 +60,7 @@ public class PrivateGroupModule {
GroupMessageValidator validator = new GroupMessageValidator( GroupMessageValidator validator = new GroupMessageValidator(
privateGroupFactory, clientHelper, metadataEncoder, clock, privateGroupFactory, clientHelper, metadataEncoder, clock,
groupInvitationFactory); groupInvitationFactory);
validationManager.registerMessageValidator(CLIENT_ID, CLIENT_VERSION, validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
validator); validator);
return validator; return validator;
} }

View File

@@ -30,7 +30,7 @@ import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
import static org.briarproject.briar.api.privategroup.PrivateGroupManager.CLIENT_ID; import static org.briarproject.briar.api.privategroup.PrivateGroupManager.CLIENT_ID;
import static org.briarproject.briar.api.privategroup.PrivateGroupManager.CLIENT_VERSION; import static org.briarproject.briar.api.privategroup.PrivateGroupManager.MAJOR_VERSION;
import static org.briarproject.briar.privategroup.invitation.GroupInvitationConstants.GROUP_KEY_CONTACT_ID; import static org.briarproject.briar.privategroup.invitation.GroupInvitationConstants.GROUP_KEY_CONTACT_ID;
import static org.briarproject.briar.privategroup.invitation.MessageType.ABORT; import static org.briarproject.briar.privategroup.invitation.MessageType.ABORT;
import static org.briarproject.briar.privategroup.invitation.MessageType.INVITE; import static org.briarproject.briar.privategroup.invitation.MessageType.INVITE;
@@ -101,7 +101,7 @@ abstract class AbstractProtocolEngine<S extends Session>
// Apply min of preferred visibility and client's visibility // Apply min of preferred visibility and client's visibility
ContactId contactId = getContactId(txn, session.getContactGroupId()); ContactId contactId = getContactId(txn, session.getContactGroupId());
Visibility client = clientVersioningManager.getClientVisibility(txn, Visibility client = clientVersioningManager.getClientVisibility(txn,
contactId, CLIENT_ID, CLIENT_VERSION); contactId, CLIENT_ID, MAJOR_VERSION);
Visibility min = Visibility.min(preferred, client); Visibility min = Visibility.min(preferred, client);
db.setGroupVisibility(txn, contactId, session.getPrivateGroupId(), min); db.setGroupVisibility(txn, contactId, session.getPrivateGroupId(), min);
} }

View File

@@ -17,7 +17,7 @@ import javax.annotation.concurrent.Immutable;
import javax.inject.Inject; import javax.inject.Inject;
import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.CLIENT_ID; import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.CLIENT_ID;
import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.CLIENT_VERSION; import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.MAJOR_VERSION;
@Immutable @Immutable
@NotNullByDefault @NotNullByDefault
@@ -53,7 +53,7 @@ class GroupInvitationFactoryImpl implements GroupInvitationFactory {
public BdfList createInviteToken(AuthorId creatorId, AuthorId memberId, public BdfList createInviteToken(AuthorId creatorId, AuthorId memberId,
GroupId privateGroupId, long timestamp) { GroupId privateGroupId, long timestamp) {
Group contactGroup = contactGroupFactory.createContactGroup(CLIENT_ID, Group contactGroup = contactGroupFactory.createContactGroup(CLIENT_ID,
CLIENT_VERSION, creatorId, memberId); MAJOR_VERSION, creatorId, memberId);
return BdfList.of( return BdfList.of(
timestamp, timestamp,
contactGroup.getId(), contactGroup.getId(),

View File

@@ -108,7 +108,7 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
public void createLocalState(Transaction txn) throws DbException { public void createLocalState(Transaction txn) throws DbException {
// Create a local group to indicate that we've set this client up // Create a local group to indicate that we've set this client up
Group localGroup = contactGroupFactory.createLocalGroup(CLIENT_ID, Group localGroup = contactGroupFactory.createLocalGroup(CLIENT_ID,
CLIENT_VERSION); MAJOR_VERSION);
if (db.containsGroup(txn, localGroup.getId())) return; if (db.containsGroup(txn, localGroup.getId())) return;
db.addGroup(txn, localGroup); db.addGroup(txn, localGroup);
// Set things up for any pre-existing contacts // Set things up for any pre-existing contacts
@@ -122,7 +122,7 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
// Store the group and share it with the contact // Store the group and share it with the contact
db.addGroup(txn, g); db.addGroup(txn, g);
Visibility client = clientVersioningManager.getClientVisibility(txn, Visibility client = clientVersioningManager.getClientVisibility(txn,
c.getId(), CLIENT_ID, CLIENT_VERSION); c.getId(), CLIENT_ID, MAJOR_VERSION);
if (LOG.isLoggable(INFO)) if (LOG.isLoggable(INFO))
LOG.info("Applying visibility " + client + " to new contact group"); LOG.info("Applying visibility " + client + " to new contact group");
db.setGroupVisibility(txn, c.getId(), g.getId(), client); db.setGroupVisibility(txn, c.getId(), g.getId(), client);
@@ -136,7 +136,7 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
} }
// If the contact belongs to any private groups, create a peer session // If the contact belongs to any private groups, create a peer session
for (Group pg : db.getGroups(txn, PrivateGroupManager.CLIENT_ID, for (Group pg : db.getGroups(txn, PrivateGroupManager.CLIENT_ID,
PrivateGroupManager.CLIENT_VERSION)) { PrivateGroupManager.MAJOR_VERSION)) {
if (privateGroupManager.isMember(txn, pg.getId(), c.getAuthor())) if (privateGroupManager.isMember(txn, pg.getId(), c.getAuthor()))
addingMember(txn, pg.getId(), c); addingMember(txn, pg.getId(), c);
} }
@@ -151,7 +151,7 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
@Override @Override
public Group getContactGroup(Contact c) { public Group getContactGroup(Contact c) {
return contactGroupFactory.createContactGroup(CLIENT_ID, return contactGroupFactory.createContactGroup(CLIENT_ID,
CLIENT_VERSION, c); MAJOR_VERSION, c);
} }
@Override @Override
@@ -599,7 +599,7 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
try { try {
Collection<Group> shareables = Collection<Group> shareables =
db.getGroups(txn, PrivateGroupManager.CLIENT_ID, db.getGroups(txn, PrivateGroupManager.CLIENT_ID,
PrivateGroupManager.CLIENT_VERSION); PrivateGroupManager.MAJOR_VERSION);
Map<GroupId, Visibility> m = getPreferredVisibilities(txn, c); Map<GroupId, Visibility> m = getPreferredVisibilities(txn, c);
for (Group g : shareables) { for (Group g : shareables) {
Visibility preferred = m.get(g.getId()); Visibility preferred = m.get(g.getId());

View File

@@ -20,7 +20,7 @@ import dagger.Module;
import dagger.Provides; import dagger.Provides;
import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.CLIENT_ID; import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.CLIENT_ID;
import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.CLIENT_VERSION; import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.MAJOR_VERSION;
@Module @Module
public class GroupInvitationModule { public class GroupInvitationModule {
@@ -42,21 +42,21 @@ public class GroupInvitationModule {
ConversationManager conversationManager, ConversationManager conversationManager,
ClientVersioningManager clientVersioningManager) { ClientVersioningManager clientVersioningManager) {
lifecycleManager.registerClient(groupInvitationManager); lifecycleManager.registerClient(groupInvitationManager);
validationManager.registerIncomingMessageHook(CLIENT_ID, CLIENT_VERSION, validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION,
groupInvitationManager); groupInvitationManager);
contactManager.registerContactHook(groupInvitationManager); contactManager.registerContactHook(groupInvitationManager);
privateGroupManager.registerPrivateGroupHook(groupInvitationManager); privateGroupManager.registerPrivateGroupHook(groupInvitationManager);
conversationManager.registerConversationClient(groupInvitationManager); conversationManager.registerConversationClient(groupInvitationManager);
clientVersioningManager.registerClient(CLIENT_ID, CLIENT_VERSION); clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION);
clientVersioningManager.registerClientVersioningHook(CLIENT_ID, clientVersioningManager.registerClientVersioningHook(CLIENT_ID,
CLIENT_VERSION, groupInvitationManager); MAJOR_VERSION, groupInvitationManager);
// The group invitation manager handles client visibility changes for // The group invitation manager handles client visibility changes for
// the private group manager // the private group manager
clientVersioningManager.registerClient(PrivateGroupManager.CLIENT_ID, clientVersioningManager.registerClient(PrivateGroupManager.CLIENT_ID,
PrivateGroupManager.CLIENT_VERSION); PrivateGroupManager.MAJOR_VERSION);
clientVersioningManager.registerClientVersioningHook( clientVersioningManager.registerClientVersioningHook(
PrivateGroupManager.CLIENT_ID, PrivateGroupManager.CLIENT_ID,
PrivateGroupManager.CLIENT_VERSION, PrivateGroupManager.MAJOR_VERSION,
groupInvitationManager.getPrivateGroupClientVersioningHook()); groupInvitationManager.getPrivateGroupClientVersioningHook());
return groupInvitationManager; return groupInvitationManager;
} }
@@ -71,7 +71,7 @@ public class GroupInvitationModule {
GroupInvitationValidator validator = new GroupInvitationValidator( GroupInvitationValidator validator = new GroupInvitationValidator(
clientHelper, metadataEncoder, clock, privateGroupFactory, clientHelper, metadataEncoder, clock, privateGroupFactory,
messageEncoder); messageEncoder);
validationManager.registerMessageValidator(CLIENT_ID, CLIENT_VERSION, validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
validator); validator);
return validator; return validator;
} }

View File

@@ -24,7 +24,7 @@ import javax.annotation.concurrent.Immutable;
import javax.inject.Inject; import javax.inject.Inject;
import static org.briarproject.briar.api.blog.BlogManager.CLIENT_ID; import static org.briarproject.briar.api.blog.BlogManager.CLIENT_ID;
import static org.briarproject.briar.api.blog.BlogManager.CLIENT_VERSION; import static org.briarproject.briar.api.blog.BlogManager.MAJOR_VERSION;
@Immutable @Immutable
@NotNullByDefault @NotNullByDefault
@@ -42,7 +42,7 @@ class BlogProtocolEngineImpl extends ProtocolEngineImpl<Blog> {
InvitationFactory<Blog, BlogInvitationResponse> invitationFactory) { InvitationFactory<Blog, BlogInvitationResponse> invitationFactory) {
super(db, clientHelper, clientVersioningManager, messageEncoder, super(db, clientHelper, clientVersioningManager, messageEncoder,
messageParser, messageTracker, clock, CLIENT_ID, messageParser, messageTracker, clock, CLIENT_ID,
CLIENT_VERSION); MAJOR_VERSION);
this.blogManager = blogManager; this.blogManager = blogManager;
this.invitationFactory = invitationFactory; this.invitationFactory = invitationFactory;
} }

View File

@@ -55,7 +55,7 @@ class BlogSharingManagerImpl extends SharingManagerImpl<Blog>
@Override @Override
protected int getClientVersion() { protected int getClientVersion() {
return CLIENT_VERSION; return MAJOR_VERSION;
} }
@Override @Override
@@ -65,7 +65,7 @@ class BlogSharingManagerImpl extends SharingManagerImpl<Blog>
@Override @Override
protected int getShareableClientVersion() { protected int getShareableClientVersion() {
return BlogManager.CLIENT_VERSION; return BlogManager.MAJOR_VERSION;
} }
@Override @Override

View File

@@ -24,7 +24,7 @@ import javax.annotation.concurrent.Immutable;
import javax.inject.Inject; import javax.inject.Inject;
import static org.briarproject.briar.api.forum.ForumManager.CLIENT_ID; import static org.briarproject.briar.api.forum.ForumManager.CLIENT_ID;
import static org.briarproject.briar.api.forum.ForumManager.CLIENT_VERSION; import static org.briarproject.briar.api.forum.ForumManager.MAJOR_VERSION;
@Immutable @Immutable
@NotNullByDefault @NotNullByDefault
@@ -44,7 +44,7 @@ class ForumProtocolEngineImpl extends ProtocolEngineImpl<Forum> {
InvitationFactory<Forum, ForumInvitationResponse> invitationFactory) { InvitationFactory<Forum, ForumInvitationResponse> invitationFactory) {
super(db, clientHelper, clientVersioningManager, messageEncoder, super(db, clientHelper, clientVersioningManager, messageEncoder,
messageParser, messageTracker, clock, CLIENT_ID, messageParser, messageTracker, clock, CLIENT_ID,
CLIENT_VERSION); MAJOR_VERSION);
this.forumManager = forumManager; this.forumManager = forumManager;
this.invitationFactory = invitationFactory; this.invitationFactory = invitationFactory;
} }

View File

@@ -43,7 +43,7 @@ class ForumSharingManagerImpl extends SharingManagerImpl<Forum>
@Override @Override
protected int getClientVersion() { protected int getClientVersion() {
return CLIENT_VERSION; return MAJOR_VERSION;
} }
@Override @Override
@@ -53,7 +53,7 @@ class ForumSharingManagerImpl extends SharingManagerImpl<Forum>
@Override @Override
protected int getShareableClientVersion() { protected int getShareableClientVersion() {
return ForumManager.CLIENT_VERSION; return ForumManager.MAJOR_VERSION;
} }
@Override @Override

View File

@@ -64,7 +64,7 @@ public class SharingModule {
messageEncoder, clientHelper, metadataEncoder, clock, messageEncoder, clientHelper, metadataEncoder, clock,
blogFactory); blogFactory);
validationManager.registerMessageValidator(BlogSharingManager.CLIENT_ID, validationManager.registerMessageValidator(BlogSharingManager.CLIENT_ID,
BlogSharingManager.CLIENT_VERSION, validator); BlogSharingManager.MAJOR_VERSION, validator);
return validator; return validator;
} }
@@ -79,21 +79,21 @@ public class SharingModule {
lifecycleManager.registerClient(blogSharingManager); lifecycleManager.registerClient(blogSharingManager);
contactManager.registerContactHook(blogSharingManager); contactManager.registerContactHook(blogSharingManager);
validationManager.registerIncomingMessageHook( validationManager.registerIncomingMessageHook(
BlogSharingManager.CLIENT_ID, BlogSharingManager.CLIENT_VERSION, BlogSharingManager.CLIENT_ID, BlogSharingManager.MAJOR_VERSION,
blogSharingManager); blogSharingManager);
conversationManager.registerConversationClient(blogSharingManager); conversationManager.registerConversationClient(blogSharingManager);
blogManager.registerRemoveBlogHook(blogSharingManager); blogManager.registerRemoveBlogHook(blogSharingManager);
clientVersioningManager.registerClient(BlogSharingManager.CLIENT_ID, clientVersioningManager.registerClient(BlogSharingManager.CLIENT_ID,
BlogSharingManager.CLIENT_VERSION); BlogSharingManager.MAJOR_VERSION);
clientVersioningManager.registerClientVersioningHook( clientVersioningManager.registerClientVersioningHook(
BlogSharingManager.CLIENT_ID, BlogSharingManager.CLIENT_VERSION, BlogSharingManager.CLIENT_ID, BlogSharingManager.MAJOR_VERSION,
blogSharingManager); blogSharingManager);
// The blog sharing manager handles client visibility changes for the // The blog sharing manager handles client visibility changes for the
// blog manager // blog manager
clientVersioningManager.registerClient(BlogManager.CLIENT_ID, clientVersioningManager.registerClient(BlogManager.CLIENT_ID,
BlogManager.CLIENT_VERSION); BlogManager.MAJOR_VERSION);
clientVersioningManager.registerClientVersioningHook( clientVersioningManager.registerClientVersioningHook(
BlogManager.CLIENT_ID, BlogManager.CLIENT_VERSION, BlogManager.CLIENT_ID, BlogManager.MAJOR_VERSION,
blogSharingManager.getShareableClientVersioningHook()); blogSharingManager.getShareableClientVersioningHook());
return blogSharingManager; return blogSharingManager;
} }
@@ -127,7 +127,7 @@ public class SharingModule {
forumFactory); forumFactory);
validationManager.registerMessageValidator( validationManager.registerMessageValidator(
ForumSharingManager.CLIENT_ID, ForumSharingManager.CLIENT_ID,
ForumSharingManager.CLIENT_VERSION, validator); ForumSharingManager.MAJOR_VERSION, validator);
return validator; return validator;
} }
@@ -143,20 +143,20 @@ public class SharingModule {
contactManager.registerContactHook(forumSharingManager); contactManager.registerContactHook(forumSharingManager);
validationManager.registerIncomingMessageHook( validationManager.registerIncomingMessageHook(
ForumSharingManager.CLIENT_ID, ForumSharingManager.CLIENT_ID,
ForumSharingManager.CLIENT_VERSION, forumSharingManager); ForumSharingManager.MAJOR_VERSION, forumSharingManager);
conversationManager.registerConversationClient(forumSharingManager); conversationManager.registerConversationClient(forumSharingManager);
forumManager.registerRemoveForumHook(forumSharingManager); forumManager.registerRemoveForumHook(forumSharingManager);
clientVersioningManager.registerClient(ForumSharingManager.CLIENT_ID, clientVersioningManager.registerClient(ForumSharingManager.CLIENT_ID,
ForumSharingManager.CLIENT_VERSION); ForumSharingManager.MAJOR_VERSION);
clientVersioningManager.registerClientVersioningHook( clientVersioningManager.registerClientVersioningHook(
ForumSharingManager.CLIENT_ID, ForumSharingManager.CLIENT_ID,
ForumSharingManager.CLIENT_VERSION, forumSharingManager); ForumSharingManager.MAJOR_VERSION, forumSharingManager);
// The forum sharing manager handles client visibility changes for the // The forum sharing manager handles client visibility changes for the
// forum manager // forum manager
clientVersioningManager.registerClient(ForumManager.CLIENT_ID, clientVersioningManager.registerClient(ForumManager.CLIENT_ID,
ForumManager.CLIENT_VERSION); ForumManager.MAJOR_VERSION);
clientVersioningManager.registerClientVersioningHook( clientVersioningManager.registerClientVersioningHook(
ForumManager.CLIENT_ID, ForumManager.CLIENT_VERSION, ForumManager.CLIENT_ID, ForumManager.MAJOR_VERSION,
forumSharingManager.getShareableClientVersioningHook()); forumSharingManager.getShareableClientVersioningHook());
return forumSharingManager; return forumSharingManager;
} }

View File

@@ -50,7 +50,7 @@ import static org.briarproject.briar.api.blog.BlogConstants.KEY_TIME_RECEIVED;
import static org.briarproject.briar.api.blog.BlogConstants.KEY_TYPE; import static org.briarproject.briar.api.blog.BlogConstants.KEY_TYPE;
import static org.briarproject.briar.api.blog.BlogConstants.MAX_BLOG_COMMENT_LENGTH; import static org.briarproject.briar.api.blog.BlogConstants.MAX_BLOG_COMMENT_LENGTH;
import static org.briarproject.briar.api.blog.BlogManager.CLIENT_ID; import static org.briarproject.briar.api.blog.BlogManager.CLIENT_ID;
import static org.briarproject.briar.api.blog.BlogManager.CLIENT_VERSION; import static org.briarproject.briar.api.blog.BlogManager.MAJOR_VERSION;
import static org.briarproject.briar.api.blog.MessageType.COMMENT; import static org.briarproject.briar.api.blog.MessageType.COMMENT;
import static org.briarproject.briar.api.blog.MessageType.POST; import static org.briarproject.briar.api.blog.MessageType.POST;
import static org.briarproject.briar.api.blog.MessageType.WRAPPED_COMMENT; import static org.briarproject.briar.api.blog.MessageType.WRAPPED_COMMENT;
@@ -868,7 +868,7 @@ public class BlogManagerImplTest extends BriarTestCase {
} }
private Blog createBlog(LocalAuthor localAuthor, boolean rssFeed) { private Blog createBlog(LocalAuthor localAuthor, boolean rssFeed) {
Group group = getGroup(CLIENT_ID, CLIENT_VERSION); Group group = getGroup(CLIENT_ID, MAJOR_VERSION);
return new Blog(group, localAuthor, rssFeed); return new Blog(group, localAuthor, rssFeed);
} }

View File

@@ -36,7 +36,7 @@ import static org.briarproject.briar.api.blog.BlogConstants.KEY_PARENT_MSG_ID;
import static org.briarproject.briar.api.blog.BlogConstants.KEY_READ; import static org.briarproject.briar.api.blog.BlogConstants.KEY_READ;
import static org.briarproject.briar.api.blog.BlogConstants.KEY_RSS_FEED; import static org.briarproject.briar.api.blog.BlogConstants.KEY_RSS_FEED;
import static org.briarproject.briar.api.blog.BlogManager.CLIENT_ID; import static org.briarproject.briar.api.blog.BlogManager.CLIENT_ID;
import static org.briarproject.briar.api.blog.BlogManager.CLIENT_VERSION; import static org.briarproject.briar.api.blog.BlogManager.MAJOR_VERSION;
import static org.briarproject.briar.api.blog.BlogPostFactory.SIGNING_LABEL_COMMENT; import static org.briarproject.briar.api.blog.BlogPostFactory.SIGNING_LABEL_COMMENT;
import static org.briarproject.briar.api.blog.BlogPostFactory.SIGNING_LABEL_POST; import static org.briarproject.briar.api.blog.BlogPostFactory.SIGNING_LABEL_POST;
import static org.briarproject.briar.api.blog.MessageType.COMMENT; import static org.briarproject.briar.api.blog.MessageType.COMMENT;
@@ -64,7 +64,7 @@ public class BlogPostValidatorTest extends BriarTestCase {
private final String body = getRandomString(42); private final String body = getRandomString(42);
public BlogPostValidatorTest() { public BlogPostValidatorTest() {
group = getGroup(CLIENT_ID, CLIENT_VERSION); group = getGroup(CLIENT_ID, MAJOR_VERSION);
descriptor = group.getDescriptor(); descriptor = group.getDescriptor();
author = getAuthor(); author = getAuthor();
authorList = BdfList.of( authorList = BdfList.of(
@@ -206,7 +206,7 @@ public class BlogPostValidatorTest extends BriarTestCase {
byte[] originalBody = getRandomBytes(42); byte[] originalBody = getRandomBytes(42);
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(groupFactory).createGroup(CLIENT_ID, CLIENT_VERSION, oneOf(groupFactory).createGroup(CLIENT_ID, MAJOR_VERSION,
descriptor); descriptor);
will(returnValue(b.getGroup())); will(returnValue(b.getGroup()));
oneOf(blogFactory).parseBlog(b.getGroup()); oneOf(blogFactory).parseBlog(b.getGroup());
@@ -250,7 +250,7 @@ public class BlogPostValidatorTest extends BriarTestCase {
byte[] originalBody = getRandomBytes(42); byte[] originalBody = getRandomBytes(42);
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(groupFactory).createGroup(CLIENT_ID, CLIENT_VERSION, oneOf(groupFactory).createGroup(CLIENT_ID, MAJOR_VERSION,
descriptor); descriptor);
will(returnValue(blog.getGroup())); will(returnValue(blog.getGroup()));
oneOf(clientHelper).toByteArray(originalList); oneOf(clientHelper).toByteArray(originalList);

View File

@@ -43,7 +43,7 @@ import static org.briarproject.bramble.test.TestUtils.getRandomBytes;
import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.test.TestUtils.getRandomId;
import static org.briarproject.briar.api.feed.FeedConstants.KEY_FEEDS; import static org.briarproject.briar.api.feed.FeedConstants.KEY_FEEDS;
import static org.briarproject.briar.api.feed.FeedManager.CLIENT_ID; import static org.briarproject.briar.api.feed.FeedManager.CLIENT_ID;
import static org.briarproject.briar.api.feed.FeedManager.CLIENT_VERSION; import static org.briarproject.briar.api.feed.FeedManager.MAJOR_VERSION;
public class FeedManagerImplTest extends BrambleMockTestCase { public class FeedManagerImplTest extends BrambleMockTestCase {
@@ -61,10 +61,10 @@ public class FeedManagerImplTest extends BrambleMockTestCase {
private final Clock clock = context.mock(Clock.class); private final Clock clock = context.mock(Clock.class);
private final Dns noDnsLookups = context.mock(Dns.class); private final Dns noDnsLookups = context.mock(Dns.class);
private final Group localGroup = getGroup(CLIENT_ID, CLIENT_VERSION); private final Group localGroup = getGroup(CLIENT_ID, MAJOR_VERSION);
private final GroupId localGroupId = localGroup.getId(); private final GroupId localGroupId = localGroup.getId();
private final Group blogGroup = private final Group blogGroup =
getGroup(BlogManager.CLIENT_ID, BlogManager.CLIENT_VERSION); getGroup(BlogManager.CLIENT_ID, BlogManager.MAJOR_VERSION);
private final GroupId blogGroupId = blogGroup.getId(); private final GroupId blogGroupId = blogGroup.getId();
private final LocalAuthor localAuthor = getLocalAuthor(); private final LocalAuthor localAuthor = getLocalAuthor();
private final Blog blog = new Blog(blogGroup, localAuthor, true); private final Blog blog = new Blog(blogGroup, localAuthor, true);
@@ -132,7 +132,7 @@ public class FeedManagerImplTest extends BrambleMockTestCase {
private void expectGetLocalGroup() { private void expectGetLocalGroup() {
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(contactGroupFactory).createLocalGroup(CLIENT_ID, oneOf(contactGroupFactory).createLocalGroup(CLIENT_ID,
CLIENT_VERSION); MAJOR_VERSION);
will(returnValue(localGroup)); will(returnValue(localGroup));
}}); }});
} }

View File

@@ -47,7 +47,7 @@ import static org.briarproject.bramble.test.TestUtils.getRandomBytes;
import static org.briarproject.bramble.test.TestUtils.getTransportProperties; import static org.briarproject.bramble.test.TestUtils.getTransportProperties;
import static org.briarproject.bramble.test.TestUtils.getTransportPropertiesMap; import static org.briarproject.bramble.test.TestUtils.getTransportPropertiesMap;
import static org.briarproject.briar.api.introduction.IntroductionManager.CLIENT_ID; import static org.briarproject.briar.api.introduction.IntroductionManager.CLIENT_ID;
import static org.briarproject.briar.api.introduction.IntroductionManager.CLIENT_VERSION; import static org.briarproject.briar.api.introduction.IntroductionManager.MAJOR_VERSION;
import static org.briarproject.briar.introduction.IntroduceeState.AWAIT_RESPONSES; import static org.briarproject.briar.introduction.IntroduceeState.AWAIT_RESPONSES;
import static org.briarproject.briar.introduction.IntroduceeState.LOCAL_DECLINED; import static org.briarproject.briar.introduction.IntroduceeState.LOCAL_DECLINED;
import static org.briarproject.briar.introduction.IntroducerState.A_DECLINED; import static org.briarproject.briar.introduction.IntroducerState.A_DECLINED;
@@ -1284,7 +1284,7 @@ public class IntroductionIntegrationTest
} }
private Group getLocalGroup() { private Group getLocalGroup() {
return contactGroupFactory.createLocalGroup(CLIENT_ID, CLIENT_VERSION); return contactGroupFactory.createLocalGroup(CLIENT_ID, MAJOR_VERSION);
} }
} }

View File

@@ -36,7 +36,7 @@ import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.GROU
import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_INVITATION_MSG_LENGTH; import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_INVITATION_MSG_LENGTH;
import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_NAME_LENGTH; import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_NAME_LENGTH;
import static org.briarproject.briar.api.privategroup.PrivateGroupManager.CLIENT_ID; import static org.briarproject.briar.api.privategroup.PrivateGroupManager.CLIENT_ID;
import static org.briarproject.briar.api.privategroup.PrivateGroupManager.CLIENT_VERSION; import static org.briarproject.briar.api.privategroup.PrivateGroupManager.MAJOR_VERSION;
import static org.briarproject.briar.privategroup.invitation.GroupInvitationConstants.GROUP_KEY_CONTACT_ID; import static org.briarproject.briar.privategroup.invitation.GroupInvitationConstants.GROUP_KEY_CONTACT_ID;
import static org.briarproject.briar.privategroup.invitation.MessageType.ABORT; import static org.briarproject.briar.privategroup.invitation.MessageType.ABORT;
import static org.briarproject.briar.privategroup.invitation.MessageType.INVITE; import static org.briarproject.briar.privategroup.invitation.MessageType.INVITE;
@@ -71,7 +71,7 @@ public abstract class AbstractProtocolEngineTest extends BrambleMockTestCase {
protected final Transaction txn = new Transaction(null, false); protected final Transaction txn = new Transaction(null, false);
protected final GroupId contactGroupId = new GroupId(getRandomId()); protected final GroupId contactGroupId = new GroupId(getRandomId());
protected final Group privateGroupGroup = protected final Group privateGroupGroup =
getGroup(CLIENT_ID, CLIENT_VERSION); getGroup(CLIENT_ID, MAJOR_VERSION);
protected final GroupId privateGroupId = privateGroupGroup.getId(); protected final GroupId privateGroupId = privateGroupGroup.getId();
protected final Author author = getAuthor(); protected final Author author = getAuthor();
protected final PrivateGroup privateGroup = protected final PrivateGroup privateGroup =
@@ -191,7 +191,7 @@ public abstract class AbstractProtocolEngineTest extends BrambleMockTestCase {
expectGetContactId(); expectGetContactId();
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(clientVersioningManager).getClientVisibility(txn, contactId, oneOf(clientVersioningManager).getClientVisibility(txn, contactId,
CLIENT_ID, CLIENT_VERSION); CLIENT_ID, MAJOR_VERSION);
will(returnValue(SHARED)); will(returnValue(SHARED));
oneOf(db).setGroupVisibility(txn, contactId, privateGroupId, v); oneOf(db).setGroupVisibility(txn, contactId, privateGroupId, v);
}}); }});

View File

@@ -56,7 +56,7 @@ import static org.briarproject.bramble.util.StringUtils.getRandomString;
import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.GROUP_SALT_LENGTH; import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.GROUP_SALT_LENGTH;
import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_NAME_LENGTH; import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_NAME_LENGTH;
import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.CLIENT_ID; import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.CLIENT_ID;
import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.CLIENT_VERSION; import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.MAJOR_VERSION;
import static org.briarproject.briar.privategroup.invitation.GroupInvitationConstants.GROUP_KEY_CONTACT_ID; import static org.briarproject.briar.privategroup.invitation.GroupInvitationConstants.GROUP_KEY_CONTACT_ID;
import static org.briarproject.briar.privategroup.invitation.MessageType.ABORT; import static org.briarproject.briar.privategroup.invitation.MessageType.ABORT;
import static org.briarproject.briar.privategroup.invitation.MessageType.INVITE; import static org.briarproject.briar.privategroup.invitation.MessageType.INVITE;
@@ -102,9 +102,9 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
private final Author author = getAuthor(); private final Author author = getAuthor();
private final Contact contact = new Contact(contactId, author, private final Contact contact = new Contact(contactId, author,
new AuthorId(getRandomId()), true, true); new AuthorId(getRandomId()), true, true);
private final Group localGroup = getGroup(CLIENT_ID, CLIENT_VERSION); private final Group localGroup = getGroup(CLIENT_ID, MAJOR_VERSION);
private final Group contactGroup = getGroup(CLIENT_ID, CLIENT_VERSION); private final Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION);
private final Group privateGroup = getGroup(CLIENT_ID, CLIENT_VERSION); private final Group privateGroup = getGroup(CLIENT_ID, MAJOR_VERSION);
private final BdfDictionary meta = BdfDictionary.of(new BdfEntry("m", "e")); private final BdfDictionary meta = BdfDictionary.of(new BdfEntry("m", "e"));
private final Message message = private final Message message =
new Message(new MessageId(getRandomId()), contactGroup.getId(), new Message(new MessageId(getRandomId()), contactGroup.getId(),
@@ -154,7 +154,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
public void testCreateLocalStateFirstTime() throws Exception { public void testCreateLocalStateFirstTime() throws Exception {
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(contactGroupFactory).createLocalGroup(CLIENT_ID, oneOf(contactGroupFactory).createLocalGroup(CLIENT_ID,
CLIENT_VERSION); MAJOR_VERSION);
will(returnValue(localGroup)); will(returnValue(localGroup));
oneOf(db).containsGroup(txn, localGroup.getId()); oneOf(db).containsGroup(txn, localGroup.getId());
will(returnValue(false)); will(returnValue(false));
@@ -170,7 +170,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
public void testCreateLocalStateSubsequentTime() throws Exception { public void testCreateLocalStateSubsequentTime() throws Exception {
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(contactGroupFactory).createLocalGroup(CLIENT_ID, oneOf(contactGroupFactory).createLocalGroup(CLIENT_ID,
CLIENT_VERSION); MAJOR_VERSION);
will(returnValue(localGroup)); will(returnValue(localGroup));
oneOf(db).containsGroup(txn, localGroup.getId()); oneOf(db).containsGroup(txn, localGroup.getId());
will(returnValue(true)); will(returnValue(true));
@@ -184,18 +184,18 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, c); MAJOR_VERSION, c);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(db).addGroup(txn, contactGroup); oneOf(db).addGroup(txn, contactGroup);
oneOf(clientVersioningManager).getClientVisibility(txn, contactId, oneOf(clientVersioningManager).getClientVisibility(txn, contactId,
CLIENT_ID, CLIENT_VERSION); CLIENT_ID, MAJOR_VERSION);
will(returnValue(SHARED)); will(returnValue(SHARED));
oneOf(db).setGroupVisibility(txn, c.getId(), contactGroup.getId(), oneOf(db).setGroupVisibility(txn, c.getId(), contactGroup.getId(),
SHARED); SHARED);
oneOf(clientHelper) oneOf(clientHelper)
.mergeGroupMetadata(txn, contactGroup.getId(), meta); .mergeGroupMetadata(txn, contactGroup.getId(), meta);
oneOf(db).getGroups(txn, PrivateGroupManager.CLIENT_ID, oneOf(db).getGroups(txn, PrivateGroupManager.CLIENT_ID,
PrivateGroupManager.CLIENT_VERSION); PrivateGroupManager.MAJOR_VERSION);
will(returnValue(Collections.singletonList(privateGroup))); will(returnValue(Collections.singletonList(privateGroup)));
oneOf(privateGroupManager).isMember(txn, privateGroup.getId(), oneOf(privateGroupManager).isMember(txn, privateGroup.getId(),
c.getAuthor()); c.getAuthor());
@@ -207,7 +207,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
private void expectAddingMember(GroupId g, Contact c) throws Exception { private void expectAddingMember(GroupId g, Contact c) throws Exception {
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, c); MAJOR_VERSION, c);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
}}); }});
expectGetSession(noResults, new SessionId(g.getBytes()), expectGetSession(noResults, new SessionId(g.getBytes()),
@@ -263,7 +263,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
public void testRemovingContact() throws Exception { public void testRemovingContact() throws Exception {
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(db).removeGroup(txn, contactGroup); oneOf(db).removeGroup(txn, contactGroup);
}}); }});
@@ -478,7 +478,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContact(txn, contactId); oneOf(db).getContact(txn, contactId);
will(returnValue(contact)); will(returnValue(contact));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
}}); }});
expectCreateStorageId(); expectCreateStorageId();
@@ -510,7 +510,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContact(txn, contactId); oneOf(db).getContact(txn, contactId);
will(returnValue(contact)); will(returnValue(contact));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(sessionParser) oneOf(sessionParser)
.parseCreatorSession(contactGroup.getId(), bdfSession); .parseCreatorSession(contactGroup.getId(), bdfSession);
@@ -539,7 +539,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContact(txn, contactId); oneOf(db).getContact(txn, contactId);
will(returnValue(contact)); will(returnValue(contact));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(db).endTransaction(txn); oneOf(db).endTransaction(txn);
}}); }});
@@ -591,7 +591,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContact(txn, contactId); oneOf(db).getContact(txn, contactId);
will(returnValue(contact)); will(returnValue(contact));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(sessionParser) oneOf(sessionParser)
.parseInviteeSession(contactGroup.getId(), bdfSession); .parseInviteeSession(contactGroup.getId(), bdfSession);
@@ -613,7 +613,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContact(txn, contactId); oneOf(db).getContact(txn, contactId);
will(returnValue(contact)); will(returnValue(contact));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(sessionParser) oneOf(sessionParser)
.parsePeerSession(contactGroup.getId(), bdfSession); .parsePeerSession(contactGroup.getId(), bdfSession);
@@ -638,7 +638,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContact(txn, contactId); oneOf(db).getContact(txn, contactId);
will(returnValue(contact)); will(returnValue(contact));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(db).endTransaction(txn); oneOf(db).endTransaction(txn);
}}); }});
@@ -677,7 +677,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContact(txn, contactId); oneOf(db).getContact(txn, contactId);
will(returnValue(contact)); will(returnValue(contact));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(messageParser).getMessagesVisibleInUiQuery(); oneOf(messageParser).getMessagesVisibleInUiQuery();
will(returnValue(query)); will(returnValue(query));
@@ -754,7 +754,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContacts(txn); oneOf(db).getContacts(txn);
will(returnValue(Collections.singletonList(contact))); will(returnValue(Collections.singletonList(contact)));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(clientHelper).getMessageMetadataAsDictionary(txn, oneOf(clientHelper).getMessageMetadataAsDictionary(txn,
contactGroup.getId(), query); contactGroup.getId(), query);
@@ -822,7 +822,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
expectGetSession(oneResult, sessionId, contactGroup.getId()); expectGetSession(oneResult, sessionId, contactGroup.getId());
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(db).startTransaction(true); oneOf(db).startTransaction(true);
will(returnValue(txn)); will(returnValue(txn));
@@ -855,8 +855,8 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
Collection<Contact> contacts = Collection<Contact> contacts =
Arrays.asList(contact, contact2, contact3); Arrays.asList(contact, contact2, contact3);
Group contactGroup2 = getGroup(CLIENT_ID, CLIENT_VERSION); Group contactGroup2 = getGroup(CLIENT_ID, MAJOR_VERSION);
Group contactGroup3 = getGroup(CLIENT_ID, CLIENT_VERSION); Group contactGroup3 = getGroup(CLIENT_ID, MAJOR_VERSION);
MessageId storageId2 = new MessageId(getRandomId()); MessageId storageId2 = new MessageId(getRandomId());
MessageId storageId3 = new MessageId(getRandomId()); MessageId storageId3 = new MessageId(getRandomId());
@@ -875,13 +875,13 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContacts(txn); oneOf(db).getContacts(txn);
will(returnValue(contacts)); will(returnValue(contacts));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact2); MAJOR_VERSION, contact2);
will(returnValue(contactGroup2)); will(returnValue(contactGroup2));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact3); MAJOR_VERSION, contact3);
will(returnValue(contactGroup3)); will(returnValue(contactGroup3));
// session 1 // session 1
oneOf(sessionParser).getRole(bdfSession); oneOf(sessionParser).getRole(bdfSession);

View File

@@ -32,7 +32,7 @@ import java.util.Collection;
import java.util.List; import java.util.List;
import static org.briarproject.briar.api.blog.BlogSharingManager.CLIENT_ID; import static org.briarproject.briar.api.blog.BlogSharingManager.CLIENT_ID;
import static org.briarproject.briar.api.blog.BlogSharingManager.CLIENT_VERSION; import static org.briarproject.briar.api.blog.BlogSharingManager.MAJOR_VERSION;
import static org.briarproject.briar.test.BriarTestUtils.assertGroupCount; import static org.briarproject.briar.test.BriarTestUtils.assertGroupCount;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
@@ -126,7 +126,7 @@ public class BlogSharingIntegrationTest
// get sharing group and assert group message count // get sharing group and assert group message count
GroupId g = contactGroupFactory.createContactGroup(CLIENT_ID, GroupId g = contactGroupFactory.createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact1From0).getId(); MAJOR_VERSION, contact1From0).getId();
assertGroupCount(messageTracker0, g, 1, 0); assertGroupCount(messageTracker0, g, 1, 0);
// sync first request message // sync first request message
@@ -201,7 +201,7 @@ public class BlogSharingIntegrationTest
// get sharing group and assert group message count // get sharing group and assert group message count
GroupId g = contactGroupFactory.createContactGroup(CLIENT_ID, GroupId g = contactGroupFactory.createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact1From0).getId(); MAJOR_VERSION, contact1From0).getId();
assertGroupCount(messageTracker0, g, 1, 0); assertGroupCount(messageTracker0, g, 1, 0);
// sync first request message // sync first request message

View File

@@ -39,7 +39,7 @@ import static org.briarproject.bramble.test.TestUtils.getLocalAuthor;
import static org.briarproject.bramble.test.TestUtils.getRandomBytes; import static org.briarproject.bramble.test.TestUtils.getRandomBytes;
import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.test.TestUtils.getRandomId;
import static org.briarproject.briar.api.blog.BlogSharingManager.CLIENT_ID; import static org.briarproject.briar.api.blog.BlogSharingManager.CLIENT_ID;
import static org.briarproject.briar.api.blog.BlogSharingManager.CLIENT_VERSION; import static org.briarproject.briar.api.blog.BlogSharingManager.MAJOR_VERSION;
import static org.briarproject.briar.sharing.SharingConstants.GROUP_KEY_CONTACT_ID; import static org.briarproject.briar.sharing.SharingConstants.GROUP_KEY_CONTACT_ID;
public class BlogSharingManagerImplTest extends BrambleMockTestCase { public class BlogSharingManagerImplTest extends BrambleMockTestCase {
@@ -66,13 +66,13 @@ public class BlogSharingManagerImplTest extends BrambleMockTestCase {
new Contact(contactId, author, localAuthor.getId(), true, true); new Contact(contactId, author, localAuthor.getId(), true, true);
private final Collection<Contact> contacts = private final Collection<Contact> contacts =
Collections.singletonList(contact); Collections.singletonList(contact);
private final Group localGroup = getGroup(CLIENT_ID, CLIENT_VERSION); private final Group localGroup = getGroup(CLIENT_ID, MAJOR_VERSION);
private final Group contactGroup = getGroup(CLIENT_ID, CLIENT_VERSION); private final Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION);
private final Group blogGroup = private final Group blogGroup =
getGroup(BlogManager.CLIENT_ID, BlogManager.CLIENT_VERSION); getGroup(BlogManager.CLIENT_ID, BlogManager.MAJOR_VERSION);
private final Blog blog = new Blog(blogGroup, author, false); private final Blog blog = new Blog(blogGroup, author, false);
private final Group localBlogGroup = private final Group localBlogGroup =
getGroup(BlogManager.CLIENT_ID, BlogManager.CLIENT_VERSION); getGroup(BlogManager.CLIENT_ID, BlogManager.MAJOR_VERSION);
private final Blog localBlog = new Blog(localBlogGroup, localAuthor, false); private final Blog localBlog = new Blog(localBlogGroup, localAuthor, false);
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private final ProtocolEngine<Blog> engine = private final ProtocolEngine<Blog> engine =
@@ -100,7 +100,7 @@ public class BlogSharingManagerImplTest extends BrambleMockTestCase {
context.checking(new Expectations() {{ context.checking(new Expectations() {{
// The local group doesn't exist - we need to set things up // The local group doesn't exist - we need to set things up
oneOf(contactGroupFactory).createLocalGroup(CLIENT_ID, oneOf(contactGroupFactory).createLocalGroup(CLIENT_ID,
CLIENT_VERSION); MAJOR_VERSION);
will(returnValue(localGroup)); will(returnValue(localGroup));
oneOf(db).containsGroup(txn, localGroup.getId()); oneOf(db).containsGroup(txn, localGroup.getId());
will(returnValue(false)); will(returnValue(false));
@@ -123,11 +123,11 @@ public class BlogSharingManagerImplTest extends BrambleMockTestCase {
context.checking(new Expectations() {{ context.checking(new Expectations() {{
// Create the contact group and share it with the contact // Create the contact group and share it with the contact
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(db).addGroup(txn, contactGroup); oneOf(db).addGroup(txn, contactGroup);
oneOf(clientVersioningManager).getClientVisibility(txn, contactId, oneOf(clientVersioningManager).getClientVisibility(txn, contactId,
CLIENT_ID, CLIENT_VERSION); CLIENT_ID, MAJOR_VERSION);
will(returnValue(SHARED)); will(returnValue(SHARED));
oneOf(db).setGroupVisibility(txn, contactId, contactGroup.getId(), oneOf(db).setGroupVisibility(txn, contactId, contactGroup.getId(),
SHARED); SHARED);
@@ -154,7 +154,7 @@ public class BlogSharingManagerImplTest extends BrambleMockTestCase {
context.checking(new Expectations() {{ context.checking(new Expectations() {{
// The local group exists - everything has been set up // The local group exists - everything has been set up
oneOf(contactGroupFactory).createLocalGroup(CLIENT_ID, oneOf(contactGroupFactory).createLocalGroup(CLIENT_ID,
CLIENT_VERSION); MAJOR_VERSION);
will(returnValue(localGroup)); will(returnValue(localGroup));
oneOf(db).containsGroup(txn, localGroup.getId()); oneOf(db).containsGroup(txn, localGroup.getId());
will(returnValue(true)); will(returnValue(true));
@@ -196,13 +196,13 @@ public class BlogSharingManagerImplTest extends BrambleMockTestCase {
private void expectPreShareShareable(Transaction txn, Contact contact, private void expectPreShareShareable(Transaction txn, Contact contact,
Blog blog, Map<MessageId, BdfDictionary> sessions) Blog blog, Map<MessageId, BdfDictionary> sessions)
throws Exception { throws Exception {
Group contactGroup = getGroup(CLIENT_ID, CLIENT_VERSION); Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION);
BdfDictionary sessionDict = new BdfDictionary(); BdfDictionary sessionDict = new BdfDictionary();
Message message = new Message(new MessageId(getRandomId()), Message message = new Message(new MessageId(getRandomId()),
contactGroup.getId(), 42L, getRandomBytes(1337)); contactGroup.getId(), 42L, getRandomBytes(1337));
context.checking(new Expectations() {{ context.checking(new Expectations() {{
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(sessionParser) oneOf(sessionParser)
.getSessionQuery(new SessionId(blog.getId().getBytes())); .getSessionQuery(new SessionId(blog.getId().getBytes()));
@@ -214,7 +214,7 @@ public class BlogSharingManagerImplTest extends BrambleMockTestCase {
oneOf(db).addGroup(txn, blog.getGroup()); oneOf(db).addGroup(txn, blog.getGroup());
oneOf(clientVersioningManager).getClientVisibility(txn, oneOf(clientVersioningManager).getClientVisibility(txn,
contactId, BlogManager.CLIENT_ID, contactId, BlogManager.CLIENT_ID,
BlogManager.CLIENT_VERSION); BlogManager.MAJOR_VERSION);
will(returnValue(SHARED)); will(returnValue(SHARED));
oneOf(db).setGroupVisibility(txn, contact.getId(), oneOf(db).setGroupVisibility(txn, contact.getId(),
blog.getGroup().getId(), SHARED); blog.getGroup().getId(), SHARED);
@@ -240,7 +240,7 @@ public class BlogSharingManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContacts(txn); oneOf(db).getContacts(txn);
will(returnValue(contacts)); will(returnValue(contacts));
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact); MAJOR_VERSION, contact);
will(returnValue(contactGroup)); will(returnValue(contactGroup));
oneOf(sessionParser) oneOf(sessionParser)
.getSessionQuery(new SessionId(blog.getId().getBytes())); .getSessionQuery(new SessionId(blog.getId().getBytes()));

View File

@@ -39,7 +39,7 @@ import java.util.List;
import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNotNull;
import static org.briarproject.bramble.util.StringUtils.getRandomString; import static org.briarproject.bramble.util.StringUtils.getRandomString;
import static org.briarproject.briar.api.forum.ForumSharingManager.CLIENT_ID; import static org.briarproject.briar.api.forum.ForumSharingManager.CLIENT_ID;
import static org.briarproject.briar.api.forum.ForumSharingManager.CLIENT_VERSION; import static org.briarproject.briar.api.forum.ForumSharingManager.MAJOR_VERSION;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
@@ -402,7 +402,7 @@ public class ForumSharingIntegrationTest
// response and invitation got tracked // response and invitation got tracked
Group group = contactGroupFactory.createContactGroup(CLIENT_ID, Group group = contactGroupFactory.createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact0From1); MAJOR_VERSION, contact0From1);
assertEquals(2, c1.getMessageTracker().getGroupCount(group.getId()) assertEquals(2, c1.getMessageTracker().getGroupCount(group.getId())
.getMsgCount()); .getMsgCount());
@@ -434,7 +434,7 @@ public class ForumSharingIntegrationTest
// assert that the invitation arrived // assert that the invitation arrived
Group group = contactGroupFactory.createContactGroup(CLIENT_ID, Group group = contactGroupFactory.createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact0From1); MAJOR_VERSION, contact0From1);
assertEquals(1, c1.getMessageTracker().getGroupCount(group.getId()) assertEquals(1, c1.getMessageTracker().getGroupCount(group.getId())
.getMsgCount()); .getMsgCount());