From 05deaf42e3f990b866f00192d3ee0d11e5c8f005 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Mon, 16 Apr 2018 17:16:14 +0100 Subject: [PATCH] Store and exchange client minor versions. These don't affect client visibility. --- .../properties/TransportPropertyManager.java | 5 + .../api/sync/ClientVersioningManager.java | 2 +- .../bramble/properties/PropertiesModule.java | 4 +- .../bramble/sync/ClientVersion.java | 11 +- .../sync/ClientVersioningManagerImpl.java | 123 +++++++++++++----- .../sync/ClientVersioningValidator.java | 8 +- .../briar/api/blog/BlogManager.java | 5 + .../briar/api/blog/BlogSharingManager.java | 5 + .../briar/api/forum/ForumManager.java | 5 + .../briar/api/forum/ForumSharingManager.java | 5 + .../api/introduction/IntroductionManager.java | 5 + .../briar/api/messaging/MessagingManager.java | 5 + .../api/privategroup/PrivateGroupManager.java | 5 + .../invitation/GroupInvitationManager.java | 5 + .../introduction/IntroductionModule.java | 4 +- .../briar/messaging/MessagingModule.java | 4 +- .../invitation/GroupInvitationModule.java | 7 +- .../briar/sharing/SharingModule.java | 10 +- 18 files changed, 164 insertions(+), 54 deletions(-) diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/properties/TransportPropertyManager.java b/bramble-api/src/main/java/org/briarproject/bramble/api/properties/TransportPropertyManager.java index 8a8ec4dad..a634bfaa7 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/properties/TransportPropertyManager.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/properties/TransportPropertyManager.java @@ -22,6 +22,11 @@ public interface TransportPropertyManager { */ int MAJOR_VERSION = 0; + /** + * The current minor version of the transport property client. + */ + int MINOR_VERSION = 0; + /** * Stores the given properties received while adding a contact - they will * be superseded by any properties synced from the contact. diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/sync/ClientVersioningManager.java b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/ClientVersioningManager.java index d2a9dac37..b8be969f4 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/sync/ClientVersioningManager.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/ClientVersioningManager.java @@ -25,7 +25,7 @@ public interface ClientVersioningManager { * Registers a client that will be advertised to contacts. This method * should be called before {@link LifecycleManager#startServices(String)}. */ - void registerClient(ClientId clientId, int majorVersion); + void registerClient(ClientId clientId, int majorVersion, int minorVersion); /** * Registers a hook that will be called when the visibility of the given diff --git a/bramble-core/src/main/java/org/briarproject/bramble/properties/PropertiesModule.java b/bramble-core/src/main/java/org/briarproject/bramble/properties/PropertiesModule.java index 763e0d636..d2d1b6324 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/properties/PropertiesModule.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/properties/PropertiesModule.java @@ -17,6 +17,7 @@ import dagger.Provides; import static org.briarproject.bramble.api.properties.TransportPropertyManager.CLIENT_ID; import static org.briarproject.bramble.api.properties.TransportPropertyManager.MAJOR_VERSION; +import static org.briarproject.bramble.api.properties.TransportPropertyManager.MINOR_VERSION; @Module public class PropertiesModule { @@ -51,7 +52,8 @@ public class PropertiesModule { validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION, transportPropertyManager); contactManager.registerContactHook(transportPropertyManager); - clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION); + clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION, + MINOR_VERSION); clientVersioningManager.registerClientVersioningHook(CLIENT_ID, MAJOR_VERSION, transportPropertyManager); return transportPropertyManager; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/sync/ClientVersion.java b/bramble-core/src/main/java/org/briarproject/bramble/sync/ClientVersion.java index 397381220..bd2d85b03 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/sync/ClientVersion.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/sync/ClientVersion.java @@ -33,15 +33,10 @@ class ClientVersion implements Comparable { } @Override - public int compareTo(ClientVersion c) { - int compare = clientId.compareTo(c.clientId); + public int compareTo(ClientVersion cv) { + int compare = clientId.compareTo(cv.clientId); if (compare != 0) return compare; - return majorVersion - c.majorVersion; - } - - @Override - public String toString() { - return clientId.getString() + ":" + majorVersion; + return majorVersion - cv.majorVersion; } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/sync/ClientVersioningManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/sync/ClientVersioningManagerImpl.java index 7c4b670a2..653b72af5 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/sync/ClientVersioningManagerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/sync/ClientVersioningManagerImpl.java @@ -61,7 +61,7 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client, private final Clock clock; private final Group localGroup; - private final Collection clients = + private final List clients = new CopyOnWriteArrayList<>(); private final Map hooks = new ConcurrentHashMap<>(); @@ -79,8 +79,10 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client, } @Override - public void registerClient(ClientId clientId, int majorVersion) { - clients.add(new ClientVersion(clientId, majorVersion)); + public void registerClient(ClientId clientId, int majorVersion, + int minorVersion) { + clients.add(new ClientMinorVersion(clientId, majorVersion, + minorVersion)); } @Override @@ -124,7 +126,7 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client, @Override public void startService() throws ServiceException { - List versions = new ArrayList<>(clients); + List versions = new ArrayList<>(clients); Collections.sort(versions); try { Transaction txn = db.startTransaction(false); @@ -161,7 +163,7 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client, throw new AssertionError(e); } // Create and store the first local update - List versions = new ArrayList<>(clients); + List versions = new ArrayList<>(clients); Collections.sort(versions); storeFirstUpdate(txn, g.getId(), versions); } @@ -230,7 +232,7 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client, } private void storeClientVersions(Transaction txn, - List versions) throws DbException { + List versions) throws DbException { long now = clock.currentTimeMillis(); BdfList body = encodeClientVersions(versions); try { @@ -242,30 +244,35 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client, } } - private BdfList encodeClientVersions(List versions) { + private BdfList encodeClientVersions(List versions) { BdfList encoded = new BdfList(); - for (ClientVersion cv : versions) - encoded.add(BdfList.of(cv.clientId.getString(), cv.majorVersion)); + for (ClientMinorVersion cm : versions) + encoded.add(encodeClientVersion(cm)); return encoded; } + private BdfList encodeClientVersion(ClientMinorVersion cm) { + return BdfList.of(cm.version.clientId.getString(), + cm.version.majorVersion, cm.minorVersion); + } + private boolean updateClientVersions(Transaction txn, - List newVersions) throws DbException { + List newVersions) throws DbException { Collection ids = db.getMessageIds(txn, localGroup.getId()); if (ids.isEmpty()) { storeClientVersions(txn, newVersions); return true; } MessageId m = ids.iterator().next(); - List oldVersions = loadClientVersions(txn, m); + List oldVersions = loadClientVersions(txn, m); if (oldVersions.equals(newVersions)) return false; db.removeMessage(txn, m); storeClientVersions(txn, newVersions); return true; } - private List loadClientVersions(Transaction txn, MessageId m) - throws DbException { + private List loadClientVersions(Transaction txn, + MessageId m) throws DbException { try { BdfList body = clientHelper.getMessageAsList(txn, m); if (body == null) throw new DbException(); @@ -275,21 +282,23 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client, } } - private List parseClientVersions(BdfList body) + private List parseClientVersions(BdfList body) throws FormatException { int size = body.size(); - List parsed = new ArrayList<>(size); + List parsed = new ArrayList<>(size); for (int i = 0; i < size; i++) { BdfList cv = body.getList(i); ClientId clientId = new ClientId(cv.getString(0)); int majorVersion = cv.getLong(1).intValue(); - parsed.add(new ClientVersion(clientId, majorVersion)); + int minorVersion = cv.getLong(2).intValue(); + parsed.add(new ClientMinorVersion(clientId, majorVersion, + minorVersion)); } return parsed; } private void clientVersionsUpdated(Transaction txn, Contact c, - List versions) throws DbException { + List versions) throws DbException { try { // Find the latest local and remote updates Group g = getContactGroup(c); @@ -372,11 +381,12 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client, private ClientState parseClientState(BdfList clientState) throws FormatException { - // Client ID, major version, active + // Client ID, major version, minor version, active ClientId clientId = new ClientId(clientState.getString(0)); int majorVersion = clientState.getLong(1).intValue(); - boolean active = clientState.getBoolean(2); - return new ClientState(clientId, majorVersion, active); + int minorVersion = clientState.getLong(2).intValue(); + boolean active = clientState.getBoolean(3); + return new ClientState(clientId, majorVersion, minorVersion, active); } private long parseUpdateVersion(BdfList body) throws FormatException { @@ -385,14 +395,15 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client, } private List updateStatesFromLocalVersions( - List oldStates, List newVersions) { + List oldStates, List newVersions) { Map oldMap = new HashMap<>(); for (ClientState cs : oldStates) oldMap.put(cs.version, cs); List newStates = new ArrayList<>(newVersions.size()); - for (ClientVersion newVersion : newVersions) { - ClientState oldState = oldMap.get(newVersion); + for (ClientMinorVersion newVersion : newVersions) { + ClientState oldState = oldMap.get(newVersion.version); boolean active = oldState != null && oldState.active; - newStates.add(new ClientState(newVersion, active)); + newStates.add(new ClientState(newVersion.version, + newVersion.minorVersion, active)); } return newStates; } @@ -420,7 +431,7 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client, private BdfList encodeClientState(ClientState cs) { return BdfList.of(cs.version.clientId.getString(), - cs.version.majorVersion, cs.active); + cs.version.majorVersion, cs.minorVersion, cs.active); } private Map getVisibilities( @@ -461,10 +472,10 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client, } private void storeFirstUpdate(Transaction txn, GroupId g, - List versions) throws DbException { + List versions) throws DbException { List states = new ArrayList<>(versions.size()); - for (ClientVersion cv : versions) - states.add(new ClientState(cv, false)); + for (ClientMinorVersion cm : versions) + states.add(new ClientState(cm.version, cm.minorVersion, false)); storeUpdate(txn, g, states, 1); } @@ -487,7 +498,8 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client, new ArrayList<>(oldLocalStates.size()); for (ClientState oldState : oldLocalStates) { boolean active = remoteSet.contains(oldState.version); - newLocalStates.add(new ClientState(oldState.version, active)); + newLocalStates.add(new ClientState(oldState.version, + oldState.minorVersion, active)); } return newLocalStates; } @@ -526,26 +538,71 @@ class ClientVersioningManagerImpl implements ClientVersioningManager, Client, } } + private static class ClientMinorVersion + implements Comparable { + + private final ClientVersion version; + private final int minorVersion; + + private ClientMinorVersion(ClientVersion version, int minorVersion) { + this.version = version; + this.minorVersion = minorVersion; + } + + private ClientMinorVersion(ClientId clientId, int majorVersion, + int minorVersion) { + this(new ClientVersion(clientId, majorVersion), minorVersion); + } + + @Override + public boolean equals(Object o) { + if (o instanceof ClientMinorVersion) { + ClientMinorVersion cm = (ClientMinorVersion) o; + return version.equals(cm.version) + && minorVersion == cm.minorVersion; + } + return false; + } + + @Override + public int hashCode() { + return version.hashCode(); + } + + @Override + public int compareTo(ClientMinorVersion cm) { + int compare = version.compareTo(cm.version); + if (compare != 0) return compare; + return minorVersion - cm.minorVersion; + } + } + private static class ClientState { private final ClientVersion version; + private final int minorVersion; private final boolean active; - private ClientState(ClientVersion version, boolean active) { + private ClientState(ClientVersion version, int minorVersion, + boolean active) { this.version = version; + this.minorVersion = minorVersion; this.active = active; } private ClientState(ClientId clientId, int majorVersion, - boolean active) { - this(new ClientVersion(clientId, majorVersion), active); + int minorVersion, boolean active) { + this(new ClientVersion(clientId, majorVersion), minorVersion, + active); } @Override public boolean equals(Object o) { if (o instanceof ClientState) { ClientState cs = (ClientState) o; - return version.equals(cs.version) && active == cs.active; + return version.equals(cs.version) + && minorVersion == cs.minorVersion + && active == cs.active; } return false; } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/sync/ClientVersioningValidator.java b/bramble-core/src/main/java/org/briarproject/bramble/sync/ClientVersioningValidator.java index 7306f22c5..55e0383bf 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/sync/ClientVersioningValidator.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/sync/ClientVersioningValidator.java @@ -39,13 +39,15 @@ class ClientVersioningValidator extends BdfMessageValidator { int size = states.size(); for (int i = 0; i < size; i++) { BdfList clientState = states.getList(i); - // Client ID, major version, active - checkSize(clientState, 3); + // Client ID, major version, minor version, active + checkSize(clientState, 4); String clientId = clientState.getString(0); checkLength(clientId, 1, MAX_CLIENT_ID_LENGTH); int majorVersion = clientState.getLong(1).intValue(); if (majorVersion < 0) throw new FormatException(); - clientState.getBoolean(2); + int minorVersion = clientState.getLong(2).intValue(); + if (minorVersion < 0) throw new FormatException(); + clientState.getBoolean(3); } // Update version long updateVersion = body.getLong(1); diff --git a/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogManager.java b/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogManager.java index c32f16736..5381dd490 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogManager.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogManager.java @@ -26,6 +26,11 @@ public interface BlogManager { */ int MAJOR_VERSION = 0; + /** + * The current minor version of the blog client. + */ + int MINOR_VERSION = 0; + /** * Adds the given {@link Blog).} */ diff --git a/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogSharingManager.java b/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogSharingManager.java index 2e4a02d3b..f2f04afc5 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogSharingManager.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogSharingManager.java @@ -14,4 +14,9 @@ public interface BlogSharingManager extends SharingManager { * The current major version of the blog sharing client. */ int MAJOR_VERSION = 0; + + /** + * The current minor version of the blog sharing client. + */ + int MINOR_VERSION = 0; } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumManager.java b/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumManager.java index 0d67a9c42..96f447776 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumManager.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumManager.java @@ -27,6 +27,11 @@ public interface ForumManager { */ int MAJOR_VERSION = 0; + /** + * The current minor version of the forum client. + */ + int MINOR_VERSION = 0; + /** * Subscribes to a forum. */ diff --git a/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumSharingManager.java b/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumSharingManager.java index c021a23a9..29b2468d0 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumSharingManager.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumSharingManager.java @@ -14,4 +14,9 @@ public interface ForumSharingManager extends SharingManager { * The current major version of the forum sharing client. */ int MAJOR_VERSION = 0; + + /** + * The current minor version of the forum sharing client. + */ + int MINOR_VERSION = 0; } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionManager.java b/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionManager.java index c337dd44c..532d63353 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionManager.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionManager.java @@ -30,6 +30,11 @@ public interface IntroductionManager extends ConversationClient { */ boolean canIntroduce(Contact c1, Contact c2) throws DbException; + /** + * The current minor version of the introduction client. + */ + int MINOR_VERSION = 0; + /** * Sends two initial introduction messages. */ diff --git a/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingManager.java b/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingManager.java index be28aaa7b..f29d2c9e4 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingManager.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingManager.java @@ -23,6 +23,11 @@ public interface MessagingManager extends ConversationClient { */ int MAJOR_VERSION = 0; + /** + * The current minor version of the messaging client. + */ + int MINOR_VERSION = 0; + /** * Stores a local private message. */ diff --git a/briar-api/src/main/java/org/briarproject/briar/api/privategroup/PrivateGroupManager.java b/briar-api/src/main/java/org/briarproject/briar/api/privategroup/PrivateGroupManager.java index 4034c4d61..de4caecfc 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/privategroup/PrivateGroupManager.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/privategroup/PrivateGroupManager.java @@ -26,6 +26,11 @@ public interface PrivateGroupManager { */ int MAJOR_VERSION = 0; + /** + * The current minor version of the private group client. + */ + int MINOR_VERSION = 0; + /** * Adds a new private group and joins it. * diff --git a/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationManager.java b/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationManager.java index e510c6dec..1062d0ce1 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationManager.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationManager.java @@ -30,6 +30,11 @@ public interface GroupInvitationManager extends ConversationClient { */ int MAJOR_VERSION = 0; + /** + * The current minor version of the private group invitation client. + */ + int MINOR_VERSION = 0; + /** * Sends an invitation to share the given private group with the given * contact, including an optional message. diff --git a/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionModule.java b/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionModule.java index 1f3c7d7a5..17d08cd18 100644 --- a/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionModule.java +++ b/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionModule.java @@ -18,6 +18,7 @@ import dagger.Provides; import static org.briarproject.briar.api.introduction.IntroductionManager.CLIENT_ID; import static org.briarproject.briar.api.introduction.IntroductionManager.MAJOR_VERSION; +import static org.briarproject.briar.api.introduction.IntroductionManager.MINOR_VERSION; @Module public class IntroductionModule { @@ -55,7 +56,8 @@ public class IntroductionModule { validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION, introductionManager); conversationManager.registerConversationClient(introductionManager); - clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION); + clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION, + MINOR_VERSION); clientVersioningManager.registerClientVersioningHook(CLIENT_ID, MAJOR_VERSION, introductionManager); return introductionManager; diff --git a/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingModule.java b/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingModule.java index 0916a9426..8363ef393 100644 --- a/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingModule.java +++ b/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingModule.java @@ -19,6 +19,7 @@ import dagger.Provides; import static org.briarproject.briar.api.messaging.MessagingManager.CLIENT_ID; import static org.briarproject.briar.api.messaging.MessagingManager.MAJOR_VERSION; +import static org.briarproject.briar.api.messaging.MessagingManager.MINOR_VERSION; @Module public class MessagingModule { @@ -62,7 +63,8 @@ public class MessagingModule { validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION, messagingManager); conversationManager.registerConversationClient(messagingManager); - clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION); + clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION, + MINOR_VERSION); clientVersioningManager.registerClientVersioningHook(CLIENT_ID, MAJOR_VERSION, messagingManager); return messagingManager; diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationModule.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationModule.java index f00192af7..03f0ed678 100644 --- a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationModule.java +++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationModule.java @@ -21,6 +21,7 @@ import dagger.Provides; import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.CLIENT_ID; import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.MAJOR_VERSION; +import static org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager.MINOR_VERSION; @Module public class GroupInvitationModule { @@ -47,13 +48,15 @@ public class GroupInvitationModule { contactManager.registerContactHook(groupInvitationManager); privateGroupManager.registerPrivateGroupHook(groupInvitationManager); conversationManager.registerConversationClient(groupInvitationManager); - clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION); + clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION, + MINOR_VERSION); clientVersioningManager.registerClientVersioningHook(CLIENT_ID, MAJOR_VERSION, groupInvitationManager); // The group invitation manager handles client visibility changes for // the private group manager clientVersioningManager.registerClient(PrivateGroupManager.CLIENT_ID, - PrivateGroupManager.MAJOR_VERSION); + PrivateGroupManager.MAJOR_VERSION, + PrivateGroupManager.MINOR_VERSION); clientVersioningManager.registerClientVersioningHook( PrivateGroupManager.CLIENT_ID, PrivateGroupManager.MAJOR_VERSION, diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/SharingModule.java b/briar-core/src/main/java/org/briarproject/briar/sharing/SharingModule.java index 921ab7569..b58bc246a 100644 --- a/briar-core/src/main/java/org/briarproject/briar/sharing/SharingModule.java +++ b/briar-core/src/main/java/org/briarproject/briar/sharing/SharingModule.java @@ -84,14 +84,15 @@ public class SharingModule { conversationManager.registerConversationClient(blogSharingManager); blogManager.registerRemoveBlogHook(blogSharingManager); clientVersioningManager.registerClient(BlogSharingManager.CLIENT_ID, - BlogSharingManager.MAJOR_VERSION); + BlogSharingManager.MAJOR_VERSION, + BlogSharingManager.MINOR_VERSION); clientVersioningManager.registerClientVersioningHook( BlogSharingManager.CLIENT_ID, BlogSharingManager.MAJOR_VERSION, blogSharingManager); // The blog sharing manager handles client visibility changes for the // blog manager clientVersioningManager.registerClient(BlogManager.CLIENT_ID, - BlogManager.MAJOR_VERSION); + BlogManager.MAJOR_VERSION, BlogManager.MINOR_VERSION); clientVersioningManager.registerClientVersioningHook( BlogManager.CLIENT_ID, BlogManager.MAJOR_VERSION, blogSharingManager.getShareableClientVersioningHook()); @@ -147,14 +148,15 @@ public class SharingModule { conversationManager.registerConversationClient(forumSharingManager); forumManager.registerRemoveForumHook(forumSharingManager); clientVersioningManager.registerClient(ForumSharingManager.CLIENT_ID, - ForumSharingManager.MAJOR_VERSION); + ForumSharingManager.MAJOR_VERSION, + ForumSharingManager.MINOR_VERSION); clientVersioningManager.registerClientVersioningHook( ForumSharingManager.CLIENT_ID, ForumSharingManager.MAJOR_VERSION, forumSharingManager); // The forum sharing manager handles client visibility changes for the // forum manager clientVersioningManager.registerClient(ForumManager.CLIENT_ID, - ForumManager.MAJOR_VERSION); + ForumManager.MAJOR_VERSION, ForumManager.MINOR_VERSION); clientVersioningManager.registerClientVersioningHook( ForumManager.CLIENT_ID, ForumManager.MAJOR_VERSION, forumSharingManager.getShareableClientVersioningHook());