[API] Revert 85d66af, introduce IActivityProducer and -Consumer instead

Thanks to Stefan Rossbach for pointing out a less intrusive way than
renaming the IActivityProvider interface to
IActivityProviderAndConsumer.

This patch deprecates the IActivityProvider interface and, in order to
take a first step towards the separation of concerns of Activity
producing and consuming, adds two new interfaces each of which is now
implemented by the AbstractActivityProvider class.

Change-Id: I5beaa2086aaeeedd5306687220d0ab87492c95da
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1477
Tested-by: Jenkins CI
Reviewed-by: Arsenij Solovjev <xeper000@gmail.com>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[API] Amend core filesystem interfaces

Under the headline of decoupling Saros from Eclipse, this patch amends
the Saros Core filesystem API by adding all methods that are actually
called on the instances of the Eclipse interfaces (objects of type
IResource, all its sub-interfaces, and IPath).

Please note that these interfaces are under development. They will be
simplified and will finally provide less methods with less parameters.
After all, they should hide IDE-specifics. For now, that simplification
is deferred until the IntelliJ adapters are written.

Change-Id: I7e25d5cf15f01222c174e393a4885c50d2913e16
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1478
Tested-by: Jenkins CI
Reviewed-by: Stephan Salinger <stephan808@googlemail.com>
Reviewed-by: Bernd Bieber <brotlee@zedat.fu-berlin.de>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[INTERNAL] fixed NPE in FileDecorator

It is possible that a SPath object references a resource that may no
longer available locally. Due the change of the file system we now face
null values when casting classes. This is the first patch to address
this issue.

Change-Id: I6cf2efec1999387ffa26c53a98e5ca34d80d6c30
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1502
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
Reviewed-by: Bernd Bieber <brotlee@zedat.fu-berlin.de>
[REFACTOR] Move various Eclipse-independent classes to core

This includes:
- Preference constants
- Interfaces for the Saros DI container
- Some (not all) of color storage

Change-Id: I68a299dfd7b8ed4cd8562206ae88d16d1449670e
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1489
Tested-by: Jenkins CI
Reviewed-by: Andrej Szaffranietz <a.szaffranietz@gmail.com>
Reviewed-by: Bernd Bieber <brotlee@zedat.fu-berlin.de>
Reviewed-by: Arndt Lasarzik <alasarzik@gmail.com>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[REFACTOR] Move invitation.hooks package to core

Change-Id: I744b88e3bdc49eb3ef73b8843db2d71bf2c702fd
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1490
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
Reviewed-by: Bernd Bieber <brotlee@zedat.fu-berlin.de>
Reviewed-by: Andrej Szaffranietz <a.szaffranietz@gmail.com>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[REFACTOR] Move almost all packet extensions to core

All but two packet extensions are now in the core (package
communication.extensions).
The remaining classes in Saros/Eclipse are ProjectNegotiation-related
and they depend on "FileList" which is not yet decoupled from Eclipse.

Change-Id: I593c172543b1f0f7db6b55be4be38809885f52e0
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1491
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
Reviewed-by: Andrej Szaffranietz <a.szaffranietz@gmail.com>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[REFACTOR] Move exceptions package to core

Change-Id: I6dd15541f261c9e4755b0c9fe6732163b844ecbe
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1492
Tested-by: Jenkins CI
Reviewed-by: Arndt Lasarzik <alasarzik@gmail.com>
Reviewed-by: Maria Formisano <maria@formisano.me>
Reviewed-by: Andrej Szaffranietz <a.szaffranietz@gmail.com>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[REFACTOR] Move ChecksumCache-related classes to core

Since the classes were ill-placed, they are now moved from the
(legacy-named) package "project" (or "project.internal") to
"filesystem".

Change-Id: I67d3d41b10f6920774a32d540fd708f218d800f1
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1493
Tested-by: Jenkins CI
Reviewed-by: Arndt Lasarzik <alasarzik@gmail.com>
Reviewed-by: Andrej Szaffranietz <a.szaffranietz@gmail.com>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[INTERNAL] Address warnings and prune dead code

This removed unused variables, fields, and method parameters -- some of
which were presented as warnings, others were found by FindBugs.
Furthermore, this patch removes unnecessary String.toString() calls and
sets false {@link ...} annotations straight.

Change-Id: Ic69a0855603b766d9d4d299110adeca546ccee1f
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1496
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[FIX] Path-based editor closing was not working

The convenience methods EditorManager.isOpenEditor() and .closeEditor()
were not working because for finding the correct editor, they relied on
the equality of Eclipse's IResource and Saros Core's IResource (which is
always false).
This led to no compilation errors, because the equals() method is
declared on Object and takes any Object as parameter.
However, this defect did not lead to failures because (1) these methods
are only executed during inconsistency recovery which is seldom
necessary, and (2) even then, closing the affected editors does not seem
required to resolve the inconsistencies.

Change-Id: I56ce64f3b756146fd54dbc495042f07da855d743
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1497
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[FIX] Ignore already shared files while adding new ones to a session

When adding files (or more general, resources) to a partially shared
project, used to exclude already shared files from the selection.
That mechanism broke when the list of already shared resources was
changed from Eclipse resources to Saros Core resources (whereas the list
of selected resources remained Eclipse-ish).
This patch restores the old logic.

However, higher-level logic seemed to cover that defect, so that no
failures were observable.

Change-Id: Id26705e394245de86fa45a15e0c9cd7090096c74
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1498
Tested-by: Jenkins CI
Reviewed-by: Arndt Lasarzik <alasarzik@gmail.com>
Reviewed-by: Andrej Szaffranietz <a.szaffranietz@gmail.com>
Reviewed-by: Damla Durmaz <ddurmaz88@gmail.com>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[JUNIT] Rename AllTestSuites

The Eclipse IDE is unable to handle two classes with the same name
(AllTestSuite) in the same package (de.fu_berlin.inf.dpp) even if they
are in different projects (Saros/Eclipse, Saros/Core).

Change-Id: I9eab99fd1994031351c72ac0cdd5ebd6c7441a53
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1499
Tested-by: Jenkins CI
Reviewed-by: Damla Durmaz <ddurmaz88@gmail.com>
Reviewed-by: Andrej Szaffranietz <a.szaffranietz@gmail.com>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[STF] changed connect behavior

It is now possible to control how a connection should be established.
This patch allows to ignore connection attempts if a connection
is already established with a given account.

Change-Id: I2b31a82b51a9c82f61e66e8ec1fe34ae94e99bee
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1501
Tested-by: Jenkins CI
Reviewed-by: Bernd Bieber <brotlee@zedat.fu-berlin.de>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] fixed JID search

The resource hint was not used when searching for JIDs.

While this does not work an almost any XMPP server it worked on our
ejabberd server and so the STF tests were producing errors as an extra
dialog was shown that is not handled by the test framework.

Change-Id: Ie844b7224bbdb1c677c32c0de3cc120351215f7a
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1503
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[REFACTOR] removed redundant code

Change-Id: I67884fb6ac6e61286465366902bef6b2d771807c
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1510
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[REFACTOR] deleted IncomingTransferObject interface

Renamed the BinaryChannelTransferObject to BinaryXMPPExtension so it
should be easy enough to figure out what is send over the wire.

Change-Id: I9038e4583279b496cd7eca9cd239461532e06618
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1509
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] limited concurrent thread access of BinaryChannelConnection

Only 32 threads can now use the send method in parallel. This should be
more than enough. This change also fixed an (theoretical) issue where
the fragmentId could collide if one thread sends an extra ordinary
amount of data while another thread only sends small chunks.

Change-Id: I8632d85bd3c6a9e06174ea76185d7424e2da53a4
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1512
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[REFACTOR] Full Revamp of the EnterProjectNamePage

Removes the hashmap nightmare. The options for a project are now handled
and displayed by a separate composite (ProjectOptionComposite).

This refactoring also includes some fixes regarding merging multiple
projects into a single one (which is not allowed).
Furthermore, the preselection of projects is done when necessary, i.e.
upon adding of new resources to a partially shared project. In
particular, projects are *not* preselected when they are not shared yet,
in order to avoid accidental overwrites.

Also, this patch cleans up the verification logic as it was almost
impossible to understand without spending several hours of reading the
source code again and again.

Change-Id: I830e6ae74bb3522391c73ae1eed6095f0514fa0e
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1148
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[FIX] #734 Whiteboard can stall forever in the network layer 

The inviter's Whiteboard waits only 30 sec for a response from the
invitee.

Pair-programmed-with: Franz Zieris

Change-Id: I2651743ddacfe59c3cd228326c4dcd0af735f5ff
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1505
Tested-by: Jenkins CI
Reviewed-by: Damla Durmaz <ddurmaz88@gmail.com>
Reviewed-by: Bernd Bieber <brotlee@zedat.fu-berlin.de>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[JUNIT] Add tests for project name generation logic

Change-Id: If1d9ed6ad2afb2974492aa712a507271c95370c0
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1500
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>