-
Notifications
You must be signed in to change notification settings - Fork 136
XCOMMONS-3451: Realtime editing doesn't support clustering #1475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
try { | ||
user.getSession().getBasicRemote().sendText(text); | ||
} catch (IOException e) { | ||
throw new NetfluxException("Faield to send the message [%s] to use [%s]".formatted(text, user), e); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo on "Faield" and "use"
* @param user the user to send the message to | ||
* @param text the message to be sent. | ||
* @throws IllegalArgumentException if the text is {@code null}. | ||
* @throws NetfluxException when failing to send the message |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
small inconsistencies in ending dots (sometimes there's a dot, sometimes there isn't)
import org.xwiki.netflux.internal.user.local.LocalUser; | ||
|
||
/** | ||
* {@link UserHandler} implementation for {@link LocalUser}. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this javadoc correct? It's the same as LocalUserHandler's.
.getInstance(new DefaultParameterizedType(null, UserHandler.class, user.getClass())); | ||
} catch (ComponentLookupException e) { | ||
throw new NoUserHandlerException( | ||
"Failed to find a UserHandler for type [%s]".formatted(user.getClass())); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
missing the rethrow of e
7b23e1c
to
651de05
Compare
651de05
to
faf2384
Compare
faf2384
to
c56ff72
Compare
Jira URL
Changes
Description
Clarifications
The general idea is to distribute everything that happens (user joining, leaving, updates) on all cluster nodes. To limit conflicts, a single node is the reference and other node receive all updates from it. The main node is the cluster leader as provider by the remote observation API.
Screenshots & Video
Executed Tests
Expected merging strategy