[INTERNAL] do not allow further proceeding if the Saros plugin does not
match

This "feature" should only available to the Saros developers as it could
drastically disturb the user experience because it can lead to severe
errors.

Change-Id: I3b1d6b937c4f75b7ffae1a60b0a4b407a14406a8
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/522
Tested-by: Jenkins CI
Reviewed-by: Patrick Schlott <pschlottk@gmail.com>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[DOC] corrected JavaDoc for ISarosSessionManager interface

Updated the JavaDoc to reflect the change that was made
with commit e333323b9e64fbc5a6c6c52db8840db4bbf7c744.

Change-Id: Iae901cee81546e7f7513744ceacb9aecf73322cb
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/607
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[INTERNAL|API] extended UISynchronizer API

It is now possible to determine if the current
Thread is a UI Thread.

Change-Id: Ie511d6e1aa5308495787311c7270b9662230784a
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/606
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[NOP] Updated credits

Change-Id: Ibf0da8ea060097aac25a4abb21150659b56ec8c3
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/611
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[BUILD] Opened release branch 13.3.1

Change-Id: Ib19bde258bf16491813e2cbc6b2deb718ce52e13
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/613
Tested-by: Jenkins CI
Reviewed-by: Michael Scheppat <mschepp@zedat.fu-berlin.de>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[BUILD] Master ready for development towards 13.3.29

Change-Id: Ie6bc12850960c33a3ad98cc2b4f4c3219db97bd6
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/612
Tested-by: Jenkins CI
Reviewed-by: Michael Scheppat <mschepp@zedat.fu-berlin.de>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[BUILD] Reintegrate branch 'release/13.3.1'

There's still a feature missing for this release. Therefore the release
branch is now reintegrated; it will be branched off again when the
feature is implemented on the master.

Change-Id: I19cbe4aec7b6374aea425cee7d6361bdf3717fd3
[INTERNAL] do not return references to internal data

Just encountered various NPE when I removed elements
from the collection returned by SarosSession#getParticipants

Change-Id: I6cbae55b8a09094ef96fee03f6fae4d2fa3cd1de
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/615
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FIX] always use a valid Jupiter activity

It seems that the "cannot happen" case can
actually happen when transforming a text edit activity,
so just return a NOP Jupiter Operation.

Change-Id: Idda14cf76f32668b110843371ef5fd60b3ca1acd
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/618
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[INTERNAL] removed send delay from the ActivitySequencer

Because it makes no sense to delay data in a
REAL time editing software.

Change-Id: Ia0ebd24da8eff6a2281c8641a214729b7b6ddafc
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/609
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[NOP] corrected comment

The comment now describes the real issue why
we must append the domain name to the user name
for GTALK users.

Change-Id: Ie8357a9c7e25e893e10691d36f5b18eb4ed0e4a4
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/621
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
Tested-by: Stefan Rossbach <srossbach@arcor.de>
[FIX] do not add the domain part to the user name if SASL is disabled

Because this behavior currently acts as workaround for a defect
in the Smack SASL layer.

Change-Id: I122d87336a4f07183d6203d4159c83bd9a4059b2
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/622
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
Reviewed-by: Patrick Schlott <pschlottk@gmail.com>
[PERFORMANCE] allow the user to disable contribution annotations

This feature can consume a huge percentage
of the CPU time, so let the user choose to disable it.

See further profiling results in the SF bug tracker:
http://sourceforge.net/tracker/?func=detail&aid=3494852&group_id=167540&atid=843359

Change-Id: I3adfa9472707e33bdfb983928a3c83af294ed6d2
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/604
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FIX] roster was not correctly updated

The filter for hiding contacts in the roster
that are part of the current session was not
executed when a new user joined the session.

Change-Id: I5b7140a5e57ac615526e11437999c958b1beeb31
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/624
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FEATURE] Session-6 (ColorManagement)

The colors are no longer negotiated during the session
negotiation. Instead they are updated by the ChangeColorManager
during session runtime, e.g. each time a user joins or leaves.

This feature is responsible for assigning session colors. If possible,
the users' favorite colors are used, otherwise the occurring color
conflicts will be resolved and they will be resolved the same way
every time including manually color changes made during the session.

E.g. if two users pair up, it doesn't matter who starts the
session, the color assignment will be the same.

Change-Id: I9986ca65c21a5c7c59e39b62d82eb0d35ae1e809
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/594
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[HACK] ensure that the host receives a leave message at last

This is needed for the Session-6 feature to ensure that
always the right color set is updated.

This hack does not resolve the problem, but reduces the
failure rate.

Change-Id: I1c6f2d6420af2220ced444f28b8cd5eb6268a802
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/620
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[STF] fixed a test case

Commit a4fca5068efe66696702e0f9d93be6e8f287e6ca introduced 
a small delay when the leave packet should be send to the host.

This test case assumed host left = peer left which is no longer
the case and as the host was still in the session and so not
listed in the roster, the STF tried to add that contact.

Change-Id: I9606f5ea235f68cb09f3dfea20b7af13472cb7a4
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/625
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FIX] always make sure all activities are executed

It is possible that executing a single activity may fail.
Made the ActivityHandler more robust to ensure that
outstanding activities are executed if a previous
execution of an activity failed.

Change-Id: Ieb59921d6a82c9bb3afe5e4347a69fcf5886c8be
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/626
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FIX] Session-6 did not handle unknown fav color ids correctly

It was possible that UserColorID.Unknown was assigned
when the favorite color id was UserColorID.Unkown

Change-Id: I6432e409ba8364051158954146cc9aa68958763c
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/627
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] do not send leave messages if the host stops the session

Because it makes no sense as all users will also receive this
message and so just sending leave messages that will never be
processed.

Change-Id: Ie8f51e4b58a0933d88400797c4db06b35b132936
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/628
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>