Skip to content

Releases: vaadin/collaboration-kit

Collaboration Engine 4.0.0.alpha2

13 Oct 06:39
cd9acf0
Compare
Choose a tag to compare
Pre-release

Collaboration Managers API refactorings

  • Renamed NewMessageHandler to MessageHandler and PresenceManager::setNewMessageHandler to setMessageHandler
  • Depracated NewUserHandler in favor of the new PresenceHandler

Collaboration Engine 4.0.0.alpha1

29 Sep 12:01
cd9acf0
Compare
Choose a tag to compare
Pre-release

Introducing MessageManager

MessageManager to handle message data in at topic without using a the high-level UI component. It makes it possible to submit messages to a topic and set a handler to react when a new message has been submitted.

Introducing SystemConnectionContext

SystemConnectionContext is a ConnectionContext that is always active. It allows integrating with other systems or parts of the application where a UI is not available.

Entry scope in CollaborationMap

Entries in CollaborationMap can optionally be scoped to the connection that create the entry. Such entires are automatically removed when the connection is no longer active.

Asynchronous dispatch

Collaboration Engine tasks such as notifying data subscribers are now dispatched asynchronously through a configurable ExecutorService.

Collaboration Engine 3.3.0

17 Feb 10:27
cd9acf0
Compare
Choose a tag to compare

This release has the purpose to backport the new configurable beacon-path feature to Collaboration Engine 3.x, which is the latest version compatible with Vaadin Platform V14.

Changes since 3.2.3

  • New Features:

    • Add configurable beacon path [#58]

      Beacon path can be configured using a system property (vaadin.ce.beaconPath) or via the CollaborationEngineConfiguration::setBeaconPath method. If no path is configured, a default path / is used.

  • ⧉ All changes

Collaboration Engine 3.2.3

09 Feb 15:26
cd9acf0
Compare
Choose a tag to compare

Changes since 3.2.2

  • Fixes:
    • Check if a named map exists before clearing on expiration [#55]

Collaboration Engine 3.2.2

28 Sep 08:28
cd9acf0
Compare
Choose a tag to compare

Fix exception when dialog containing a CollaborationAvatarGroup is closed

An exception was thrown when a dialog containing a CollaborationAvatarGroup was closed. This release fixes the issue.

Collaboration Engine 3.2.1

16 Sep 13:42
cd9acf0
Compare
Choose a tag to compare

Fix ordering between activation and deactivation

Use dispatch action for both so that they are carried out in the same order that they were triggered. Previously if the component was attached and detached during the same round trip, then deactivation happens before activation, which caused deactivation to be a no-op since the registrations to clear on deactivation haven't yet been created.

Collaboration Engine 3.2.0

03 Sep 08:03
cd9acf0
Compare
Choose a tag to compare

What's new in 3.2

Two new APIs are the biggest changes since 3.1; the PresenceManager to handle user presence in topics, and the MessageConfigurator to customize messages in the CollaborationMessageList component.

PresenceManager API to handle user presence in topics

The new PresenceManager can now be used as a middle-layer API to handle user presence in topics: set the local-user presence, handle user presence changes and get the present users in a topic. This new API makes it easy to create custom components with collaboration features, for example a list of active users in a topic:

PresenceManager presence = new PresenceManager(users, ownUserInfo, topicId);
presence.markAsPresent(true);
// Create your own list to keep track of the users in the topic
List<UserInfo> userList = ...;
// ...
presenceManager.setNewUserHandler(userInfo -> {
    // Add the new user to the local list when she joins the topic
    userList.add(userInfo);
    return () -> {
        // Remove the user from the local list when she leaves the topic
        userList.remove(userInfo);
    };
});

Related issue: #37

Another example of a use-case can be found in our Collab Engine demo that enables seeing who's editing an employee form without opening up the form editing, all in real time. On top of reacting to changes of actual people opening up a form, we created a custom component using the PresenceManager to display bots' avatars that are also making changes in the forms.

MessageConfigurator API to customize messages

Enables changing the properties of MessageListItem after CollaborationMessageList has generated them.

For example, theme variants can be added and removed to differentiate the current user's own messages from the others .

collaborationMessageList.setMessageConfigurator((message, user) -> {
   if (user.equals(localUser)) {
       message.addThemeNames("outbound");
   }
});

Related issue: #30

Other changes

  • Fixed possible memory leak in the ComponentConnectionContext by cleaning up all listeners if closed through the registration (#44)
  • Fixed URL authorization issues with Spring Security (#41)
  • Push is now automatically enabled (#43)

Compatibility

This version is part of Vaadin 21.

Collaboration Engine 3.2.0.rc1

26 Aug 07:08
cd9acf0
Compare
Choose a tag to compare
Pre-release

What's new in 3.2

Two new APIs are the biggest changes since 3.1; the PresenceManager to handle user presence in topics, and the MessageConfigurator to customize messages in the CollaborationMessageList component.

PresenceManager API to handle user presence in topics

The new PresenceManager can now be used as a middle-layer API to handle user presence in topics: set the local-user presence, handle user presence changes and get the present users in a topic. This new API makes it easy to create custom components with collaboration features, for example a list of active users in a topic:

PresenceManager presence = new PresenceManager(users, ownUserInfo, topicId);
presence.markAsPresent(true);
// Create your own list to keep track of the users in the topic
List<UserInfo> userList = ...;
// ...
presenceManager.setNewUserHandler(userInfo -> {
    // Add the new user to the local list when she joins the topic
    userList.add(userInfo);
    return () -> {
        // Remove the user from the local list when she leaves the topic
        userList.remove(userInfo);
    };
});

Related issue: #37

Another example of a use-case can be found in our Collab Engine demo that enables seeing who's editing an employee form without opening up the form editing, all in real time. On top of reacting to changes of actual people opening up a form, we created a custom component using the PresenceManager to display bots' avatars that are also making changes in the forms.

MessageConfigurator API to customize messages

Enables changing the properties of MessageListItem after CollaborationMessageList has generated them.

For example, theme variants can be added and removed to differentiate the current user's own messages from the others .

collaborationMessageList.setMessageConfigurator((message, user) -> {
   if (user.equals(localUser)) {
       message.addThemeNames("outbound");
   }
});

Related issue: #30

Other changes

  • Fixed possible memory leak in the ComponentConnectionContext by cleaning up all listeners if closed through the registration (#44)
  • Fixed URL authorization issues with Spring Security (#41)
  • Push is now automatically enabled (#43)

Compatibility

This version is part of Vaadin 21.

Vaadin Collaboration Engine 3.2.0.beta1

29 Jul 07:21
cd9acf0
Compare
Choose a tag to compare
Pre-release

The only change compared to the previous alpha release is some dependency version bumps to ensure compatibility with future Vaadin versions.

Vaadin Collaboration Engine 3.2.0.alpha3

28 Jun 08:32
cd9acf0
Compare
Choose a tag to compare

Refactored PresenceManager API

The PresenceManager, introduced in 3.2.0.alpha2, has been improved based on feedback.

  • setAutoPresence has been renamed to markAsPresent
PresenceManager presence = new PresenceManager(users, ownUserInfo, topicId);
presence.markAsPresent(true);
  • getUsers method has been removed from the public API. The method always returned 0 before the connection was established, which lead to confusion. Developers should now register a NewUserHandler if they want keep track of the users as they are added or removed from a topic.
    Example: Keeping a list of users in a topic.
// Create your own list to keep track of the users in the topic
List<UserInfo> userList = ...;
// ...
presenceManager.setNewUserHandler(userInfo -> {
    // Add the new user to the local list when she joins the topic
    userList.add(userInfo);
    return () -> {
        // Remove the user from the local list when she leaves the topic
        userList.remove(userInfo);
    };
});