diff options
Diffstat (limited to 'plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/ServerProtocol.java')
-rw-r--r-- | plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/ServerProtocol.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/ServerProtocol.java b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/ServerProtocol.java index dc3b2a128e..698b576766 100644 --- a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/ServerProtocol.java +++ b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/ServerProtocol.java @@ -11,8 +11,12 @@ package org.eclipse.net4j.buddies.internal.server.protocol; import org.eclipse.net4j.buddies.internal.protocol.BuddyStateIndication; +import org.eclipse.net4j.buddies.internal.protocol.Collaboration; +import org.eclipse.net4j.buddies.internal.protocol.MessageIndication; import org.eclipse.net4j.buddies.internal.protocol.ProtocolConstants; import org.eclipse.net4j.buddies.internal.server.ServerBuddy; +import org.eclipse.net4j.buddies.protocol.ICollaboration; +import org.eclipse.net4j.buddies.protocol.IMessage; import org.eclipse.net4j.buddies.protocol.ISession; import org.eclipse.net4j.buddies.protocol.IBuddy.State; import org.eclipse.net4j.buddies.server.IBuddyAdmin; @@ -61,6 +65,24 @@ public class ServerProtocol extends SignalProtocol } } }; + + case ProtocolConstants.SIGNAL_MESSAGE: + return new MessageIndication() + { + @Override + protected void messageReceived(IMessage message) + { + synchronized (IBuddyAdmin.INSTANCE) + { + Map<String, ICollaboration> collaborations = IBuddyAdmin.INSTANCE.getCollaborations(); + Collaboration collaboration = (Collaboration)collaborations.get(message.getCollaborationID()); + if (collaboration != null) + { + collaboration.notifyMessage(message); + } + } + } + }; } return null; |