[INTERNAL] force missing @Override annotations to generate a compiler
warning

This should help to keep the code clean when parts of interfaces
are changed.

Change-Id: If1e3410eb929367afec06916b843c1b24d65f782
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/499
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FIX] #3572498: Deactivate "Add to Saros Session" for read-only users

Change-Id: I06ab521672819fa65871cab19f5a346b38713ddb
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/480
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[STF] removed sleep method from the RemoteWorkbenchBot interface

The method does nothing more than a Thread.sleep 

Removed the method so a developer does not need to think about "what"
this method may do (e.g holding on the SWT Thread or something else
on the remote side).

Change-Id: Ia7b152c384a018a8aba2a07dc4c1e969db783cb4
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/500
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] addressed compiler warnings

Change-Id: Ia72ea6800d2daf3e1024c6d85235b756629bd6a0
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/501
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[REFACTOR] moved various UI utility methods out of the Utils class

Moved the dialog utility methods to the DialogUtils class and
the SWT (UI) utility methods to the new SWTUtils class.

Change-Id: I63c4cd5e1bdd6c0a7ef8ec01e478f32ecd45c339
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/502
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] fix for commit f69f2725d15b95f1c47441023f4e97af60c332ce

The invitation process does not rely on a session.

Fixed the handling of CancelInviteExtensions and also
removed the confusing sendCancelInviteMessage from the
ITransmitter interface that uses the session ID.

Change-Id: Id1ce4b71220019422fe3fb663f54428e71632fb1
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/503
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[REFACTOR] extracted common methods out to an abstract class

Most classes of the invitation package contains duplicated code.
This is the first part to remove code duplication and affects
the session negotiation classes.

Change-Id: Ibdc160fb7614ee1a490d22d9ab13a7a9210d3080
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/504
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[REFACTOR] removed unnecessary code out of the project negotiation
classes

Commit 94d0bb5a5becff643bf1b9a036101077c1743269 moved all cancellation
logic to an abstract base class. Modified the code so that is now
uses the code that is provided by the base class.

Change-Id: Ic1195d5e9a4bcb5f182a6e72041f931479ce9008
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/505
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] ensure proper process cancellation

The Incoming*Negotation classes interacts with a widget (wizard).

Ensure that a remote cancellation will not prematurely call
terminateProcess which can result in an unknown state because
the executeCancellation method might be called while the process
is still running. 

Change-Id: I2276b824ec9f4bad8287106a232369fab18b5122
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/506
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] do not abuse the ITransmitter as a facade

The ITransmitter should only handle the transmitting of data packets
/ XMPP extensions but should not know how to create them.

This increases testability as this interface can be easily faked.

Change-Id: I0b23cb015b05669a3fce5575fc92841dd3d8f797
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/507
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] added finalize method to the DispatchThreadContext

This class may be used in JUNIT integration test. As there
is no way to stop the executor, perform a cleanup when
object gets garbage collected. This prevents running
out of system handles during a regression.

Change-Id: Ib3f92fb26a65cd743b8665ad7916d227a6dba4ba
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/508
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[API] the XMPPReceiver now implements an interface

Increase the abstraction to support fake implementation
to fully bypass the network layer for integration tests.

Change-Id: Ie9ddc7c085020e9a15a620e825435143ea60e081
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/509
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] do not abuse the ITransmitter as a facade

The ITransmitter should only handle the transmitting of data packets
/ XMPP extensions but should not know how to create them.

This increases testability as this interface can be easily faked.

Change-Id: Ic67bd6dc4c523232c5a55de2a8937ca0ff35bfe5
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/510
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] use the invitation ID to identify an invitation process

Change-Id: Iaf9dfd662a8e6239b7d0161a65bc893e8e8f1b6c
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/511
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] do not abuse the ITransmitter as a facade

The ITransmitter should only handle the transmitting of data packets
/ XMPP extensions but should not know how to create them.

This increases testability as this interface can be easily faked.

Change-Id: Iac4d8049aa53100a8d3b6eb4c6840f2423d85a37
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/512
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[NOP] removed dead code

Change-Id: Ice21d5a268994ff802937e2c41331f6fde1fda3b
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/513
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FEATURE] #3439820 Remove participant from session

The host can now remove participants from the current session.

This feature is currently ONLY ENABLED in debug mode as it requires
more verification and validation !

Change-Id: Ib93be74090046210805aa3dfb70ceff7213d8d55
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/514
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] do not use the chat to transmit messages

Just use the current connection to send packets.
Also added a version check that prevents the dispatching of
packets which does not match the current Saros network
layer extension protocol.

Change-Id: I7e677e9594bd6744a2379cec72b000aa5933397c
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/515
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] do not proceed the invitation if the remote side has no Saros
support

The querying for Saros support is SOMEWHAT important because: it 
returns a resource qualified JID and thats the JID we use for the
whole session. Formerly if this process fails and the user decided to
continue a resource qualified JID was build.

This self build JID will not match the JID the user is logged in
on several XMPP severs.

E.G on GTALK XMPP servers your JID will be like
xxx@googlemail.com/SarosAB322 or something like that.

To keep it simple, just abort the invitation process if the remote
contact "may" not support Saros.

Change-Id: I73017a71e1dff8f0a68f0159c630527260a94353
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/516
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] do not use indirection to resolve a dependency

The version manager needs a version object that represents
the current Saros version and not the Saros Plugin object.

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