Skip to content

Commit 651de05

Browse files
committed
XCOMMONS-3451: Realtime editing doesn't support clustering
1 parent e27911a commit 651de05

File tree

19 files changed

+906
-357
lines changed

19 files changed

+906
-357
lines changed

xwiki-commons-core/xwiki-commons-netflux/src/main/java/org/xwiki/netflux/internal/Bot.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.List;
2323

2424
import org.xwiki.component.annotation.Role;
25+
import org.xwiki.netflux.internal.user.local.LocalUser;
2526

2627
/**
2728
* Represents a fake user that joins a {@link Channel} to perform a specific task.
@@ -57,7 +58,7 @@ default boolean onJoinChannel(Channel channel)
5758
* @param sender the user who sent the message
5859
* @param message the message that was sent
5960
*/
60-
default void onUserMessage(User sender, List<Object> message)
61+
default void onUserMessage(LocalUser sender, List<Object> message)
6162
{
6263
// Do nothing by default
6364
}

xwiki-commons-core/xwiki-commons-netflux/src/main/java/org/xwiki/netflux/internal/Channel.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import java.util.Deque;
2323
import java.util.LinkedHashMap;
2424
import java.util.LinkedList;
25-
import java.util.List;
2625
import java.util.Map;
2726

2827
import org.apache.commons.lang3.builder.EqualsBuilder;
@@ -88,14 +87,6 @@ public Map<String, Bot> getBots()
8887
return this.bots;
8988
}
9089

91-
/**
92-
* @return the list of users that are currently connected to this channel
93-
*/
94-
public List<User> getConnectedUsers()
95-
{
96-
return this.users.values().stream().filter(user -> user.getSession() != null && user.isConnected()).toList();
97-
}
98-
9990
/**
10091
* @return the channel messages
10192
*/

xwiki-commons-core/xwiki-commons-netflux/src/main/java/org/xwiki/netflux/internal/ChannelStore.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public void prune()
106106
try {
107107
long currentTime = System.currentTimeMillis();
108108
for (Channel channel : this.channelByKey.values()) {
109-
if (channel.getConnectedUsers().isEmpty()
109+
if (channel.getUsers().isEmpty()
110110
&& (currentTime - channel.getCreationDate()) > (1000 * 60 * 60 * 2)) {
111111
remove(channel);
112112
}

xwiki-commons-core/xwiki-commons-netflux/src/main/java/org/xwiki/netflux/internal/HistoryKeeper.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030

3131
import org.slf4j.Logger;
3232
import org.xwiki.component.annotation.Component;
33+
import org.xwiki.netflux.internal.user.UserHandler;
34+
import org.xwiki.netflux.internal.user.local.LocalUser;
3335

3436
/**
3537
* Holds the key of the history keeper fake user that is added to all Netflux channels.
@@ -51,6 +53,10 @@ public class HistoryKeeper extends AbstractBot
5153
@Inject
5254
private MessageBuilder messageBuilder;
5355

56+
@Inject
57+
@SuppressWarnings("rawtypes")
58+
private UserHandler userHandler;
59+
5460
@Override
5561
public String getId()
5662
{
@@ -60,7 +66,7 @@ public String getId()
6066
}
6167

6268
@Override
63-
public void onUserMessage(User sender, List<Object> message)
69+
public void onUserMessage(LocalUser sender, List<Object> message)
6470
{
6571
// The history keeper responds only to GET_HISTORY messages.
6672

@@ -99,7 +105,7 @@ private void sendChannelHistory(User user, String channelKey)
99105

100106
try {
101107
for (String msg : (Iterable<String>) messages::iterator) {
102-
user.getSession().getBasicRemote().sendText(msg);
108+
this.userHandler.sendText(user, msg);
103109
}
104110
} catch (Exception e) {
105111
this.logger.debug("Failed to send channel history.", e);

0 commit comments

Comments
 (0)