Releases: vaadin/collaboration-kit
Collaboration Engine 5.1.0.alpha2
Changes since 5.1.0.alpha1
MessageManager
now prevents concurrency issues that might happen when using Collaboration Engine in a cluster.
Collaboration Engine 5.0.3
No changes since 5.0.2
Collaboration Engine 5.0.2
No changes since 5.0.1
Collaboration Engine 5.1.0.alpha1
This is the first pre-release of Collaboration Engine 5.1.
New Collaboration List operations
You can now specify the position when adding an item to the list, and then also move the item to a different position:
ListKey fooKey = list.insertFirst("foo").getKey();
ListKey barKey = list.insertBefore(fooKey, "bar").getKey();
ListKey bazKey = list.insertAfter(barKey, "baz").getKey();
list.moveAfter(fooKey, bazKey);
list.moveBefore(bazKey, barKey);
Collaboration List conditional inserts
CollaborationList
now supports conditional inserts: you can configure the insert operation with the new ListInsertOperation
class and set requirements.
Given an instance of ListInsertOperation
:
ListInsertOperation op = ListInsertOperation.insertLast("last");
- Require
fooKey
to be followed bybarKey
:op.ifNext(fooKey, barKey)
- Require
fooKey
to be right beforebarKay
:op.ifPrev(barKey, fooKey)
- Require
fooKey
to be the first of the list:op.ifFirst(fooKey)
- Require
fooKey
to be the last of the list:op.ifLast(fooKey)
- Require the list to be empty:
op.ifEmpty()
- Require the list not to be empty:
op.ifNotEmpty()
The operation can then be applied to the list and use the result object to verify if the execution succeeded:
list.insert(op).getCompletableFuture().thenAccept(success -> {
if (success) {
log("Operation applied");
} else {
log("Operation failed");
}
});
Collaboration Engine 5.0.1
No changes since 5.0.0
Collaboration Engine 5.0.0
This is the final release of Collaboration Engine 5.0, which brings a renewed and improved API for the CollaborationList
and important bug-fixes.
Collaboration Engine 5.0 is part of Vaadin 23 and now requires Java 11 (or newer).
New Collaboration List API
CollaborationList
is a data-structure to store ordered values in Collaboration Engine topics and subscribe to their changes. In this release we are introducing new methods to get, replace and remove values in the list. The current API has now these new methods:
insertLast(Object)
to insert a new value at the end of the list: it returns aListInsertResult
object that provides aCompletableFuture
to track the completion of the operation, and aListKey
instance to identify the inserted value which can be used as a reference to its position in the list (this method replaces the now deprecatedappend
method);getItem(ListKey, Class)
to get an existing value from the list, given itsListKey
;set(ListKey, Object)
to replace an existing value with a new one;remove(ListKey)
to remove a value from the list.
ListKey key = list.insertLast("foo").getKey();
list.set(key, "bar").thenAccept(completed -> {
if (completed) {
// If the operation was successful, get the new value
String bar = list.getItem(key, String.class);
} else {
// If the operation failed, remove the value
list.remove(key);
}
});
Other new features
- The path of the browser Beacon API endpoint is now configurable, to ease configuration of security modules:
collaborationEngineConfiguration.setBeaconPath("/beacon");
Fixes
- Check if a named map exists before clearing on expiration [#55]
- Prevent "UI detached" exception on session expiration
- Preserve the order of actions in collaboration maps and lists
- Properly deactivate connections on shutdown
Collaboration Engine 5.0.0.rc1
No changes since 5.0.0.beta4
Collaboration Engine 5.0.0.beta4
No changes since 5.0.0.beta3
Collaboration Engine 5.0.0.beta3
This Collaboration Engine pre-release is included in Vaadin Platform 23.0.0.beta3.
Changes since 5.0.0.beta2
- Fixes:
- Solved a race condition in
CollaborationBinder
that prevented to fields to be populated with initial values when setting the topic. - Solved an exception that was being thrown on session expiration if the browser was still open and idle.
- Solved a race condition in
Collaboration Engine 5.0.0.beta2
No changes since 5.0.0.beta1