Dispatch system messages coming in jabber chat rooms. Message history ignore non conversations in multi-chats. Jabber multi chat tests ignore auto generated room system messages.

Make tcp default for iptel account wizards.
cusax-fix
Damian Minkov 16 years ago
parent 9c7243ccff
commit cc5e956a87

@ -859,6 +859,11 @@ public void messageReceived(ChatRoomMessageReceivedEvent evt)
{
try
{
// ignore non conversation messages
if(evt.getEventType() !=
ChatRoomMessageReceivedEvent.CONVERSATION_MESSAGE_RECEIVED)
return;
History history = this.getHistoryForMultiChat(
evt.getSourceChatRoom());

@ -1549,7 +1549,12 @@ public void processPacket(Packet packet)
if(msgBody == null)
return;
int messageReceivedEventType =
ChatRoomMessageReceivedEvent.CONVERSATION_MESSAGE_RECEIVED;
String msgFrom = msg.getFrom();
ChatRoomMember member = null;
String fromUserName = StringUtils.parseResource(msgFrom);
// We try to get the nickname of the participantName in case it's
@ -1558,7 +1563,18 @@ public void processPacket(Packet packet)
if(nickname.equals(getNickName(fromUserName)))
return;
ChatRoomMember member = smackParticipantToScMember(msgFrom);
// when the message comes from the room itself its a system message
if(msgFrom.equals(getName()))
{
messageReceivedEventType =
ChatRoomMessageReceivedEvent.SYSTEM_MESSAGE_RECEIVED;
member = new ChatRoomMemberJabberImpl(
ChatRoomJabberImpl.this, getName(), getName(), null);
}
else
{
member = smackParticipantToScMember(msgFrom);
}
if(logger.isDebugEnabled())
{
@ -1608,8 +1624,7 @@ public void processPacket(Packet packet)
member,
System.currentTimeMillis(),
newMessage,
ChatRoomMessageReceivedEvent
.CONVERSATION_MESSAGE_RECEIVED);
messageReceivedEventType);
fireMessageEvent(msgReceivedEvt);
}

@ -26,7 +26,7 @@ public class IptelAccountRegistration
/**
* The default transport.
*/
public static String DEFAULT_TRANSPORT = "UDP";
public static String DEFAULT_TRANSPORT = "TCP";
/**
* The default poll period.

@ -437,6 +437,7 @@ public void testCreateChatRoom()
* true for an user after he joins a room with <tt>someRoom.join()</tt>
*
* @throws OperationFailedException
* @throws OperationNotSupportedException
*/
public void testJoinRoom()
throws OperationFailedException,
@ -1009,11 +1010,11 @@ public void testConferenceChat()
assertEquals("created message content differ from the one provided "
,message1, opSet1Message.getContent());
MUCEventCollector opSet1RoomCollector =
new MUCEventCollector(opSet1Room, MUCEventCollector.EVENT_MESSAGE);
MUCEventCollector opSet1RoomCollector = new MUCEventCollector(
opSet1Room, MUCEventCollector.EVENT_MESSAGE, true);
MUCEventCollector opSet2RoomCollector =
new MUCEventCollector(opSet2Room, MUCEventCollector.EVENT_MESSAGE);
MUCEventCollector opSet2RoomCollector = new MUCEventCollector(
opSet2Room, MUCEventCollector.EVENT_MESSAGE, true);
// ship it
opSet1Room.sendMessage(opSet1Message);
@ -1958,13 +1959,18 @@ class MUCEventCollector
private static final int EVENT_ROLE = 5;
/**
* Should we skip system messages in chat rooms.
*/
private boolean skipSystemMsgs = false;
/**
* Creates an event collector to listen for specific events from
* the given opSet
*
* @param opSet the <tt>OperationSetMultiUserChat> from which we will
* receive events.
* @param eventType indicades the kind of events we are looking for
* @param eventType indicates the kind of events we are looking for
*/
public MUCEventCollector(
OperationSetMultiUserChat opSet, int eventType)
@ -1986,9 +1992,24 @@ public MUCEventCollector(
}
}
/**
* @param room the room we are listening to.
* @param eventType indicates the kind of events we are looking for
*/
public MUCEventCollector(ChatRoom room, int eventType)
{
this(room, eventType, false);
}
/**
* @param room the room we are listening to.
* @param eventType indicates the kind of events we are looking for
* @param skipSystemMsgs should we skip system messages in chat rooms.
*/
public MUCEventCollector(
ChatRoom room, int eventType, boolean skipSystemMsgs)
{
this.room = room;
this.skipSystemMsgs = skipSystemMsgs;
opSet = null;
switch (eventType)
{
@ -2095,7 +2116,11 @@ public void memberPresenceChanged(
public void messageReceived(
ChatRoomMessageReceivedEvent evt)
{
collectEvent(evt);
if(skipSystemMsgs && evt.getEventType()
== ChatRoomMessageReceivedEvent.SYSTEM_MESSAGE_RECEIVED)
return;
else
collectEvent(evt);
}
public void messageDelivered(

Loading…
Cancel
Save