[INTERNAL] Add IWorkspace and IWorkspaceRunnable to Saros/Core

These new interfaces come along with Eclipse implementations/adapters.

Change-Id: I3c1882f4f38618e094cc288f8ae1580df275526a
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1564
Tested-by: Jenkins CI
Reviewed-by: Damla Durmaz <ddurmaz88@gmail.com>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[FIX] GUI condition "sessionHeadlineSelected" referenced wrong class

This bug was introduced in 484855a, probably due to an incomplete
refactoring, i.e. moving of SessionHeaderElement from package
"rosterSession" to "session" which was not applied to the plugin.xml.

This led to the failure of two STF test cases. They could not find the
expected entries in the context menu, which was not displayed because
the condition to display that menu referred to the wrong class name, so
it could never hold.

Normally, the Eclipse refactoring methods should cover such
references in plug-in manifest files. 

Change-Id: I9d2f7190bbf480d08988c32fc7662a8858f2721b
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1570
Tested-by: Jenkins CI
Reviewed-by: Damla Durmaz <ddurmaz88@gmail.com>
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FIX] ReplaceableConverter prevented @XStreamAsAttribute

The annotation @XStreamAsAttribute only works with
SingleValueConverters, but the logic of XStreamExtensionProvider wrapped
such converters, i.e. they were presented to XStream as normal Converter
implementations.

Effectively, this transformed all User fields of Activity classes from
attributes to full tags.

In addition, this corrects the unregistering mechanism for converters in
XStreamExtensionProvider.

Change-Id: I7369327a0d3445c168d07d392532cef6caace635
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1571
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[REFACTOR] Delete ActivityObjects

Since all fields of all Activities can now be handled by XStream, there
is no need for ActivityDataObjects -- which were an easier-to-serialize
version of Activities -- anymore.
All XStream annotation were moved from the ActivityDataObject class to
the corresponding Activity class, so the resulting XML serialization
should be unchanged.

Change-Id: If98e779cee6f28fd7a0ff63f8654297916250d3a
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1526
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[FIX|BUILD] amend sonar props for intellij

Change-Id: I109efc7b0aa0bab51dc04f4d4ca3668ffc6af436
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1567
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
Reviewed-by: Arsenij Solovjev <xeper000@gmail.com>
[REFACTOR] Move Activity classes to "activities" package

There is no parallel class hierarchy of Activities anymore, which were
structured in the "activities.business" and "activity.serializable"
packages.

Change-Id: I7ccf0ae678e8e45a5adbf0fa8d3f3113e9fa8ec0
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1527
Tested-by: Jenkins CI
Reviewed-by: Damla Durmaz <ddurmaz88@gmail.com>
Reviewed-by: Arndt Lasarzik <alasarzik@gmail.com>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[BUILD] Make Saros/Core and Saros/I testable under IntelliJ IDEA

This patch amends the IntelliJ project/module meta data.

In Saros/Core:
 - marks the test sources (test/junit) as such
 - adds the JAR files under test/lib as "module libraries for testing"
 - adds JUnit as "module library for testing"

In Saros/I:
 - adds JUnit as "module library for testing"

Change-Id: Id2549ad1c6c0d5cdf459e0a0c75d3a09b005b5c7
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1575
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[API] added JmDNS library (c'd)

This amends commit 3004060, which added this library but did not amend
the IntelliJ meta data of Saros/Core.

Change-Id: I520a420c47fffa8e00d9c681ceeb7b1d9d52c0bc
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1576
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[BUILD] Make Intellij IDEA aware of Saros's Git root

Change-Id: I81dccab57f3dcfab238574e5503f38352a979920
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1577
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[BUILD] Add and apply Saros/E inspired code style schema to Saros/I

The resulting code is not exactly the same as in Saros/E (formatted and
cleaned up by Eclipse), so the "Reformat Code" command of IntelliJ IDEA
(CTRL+ALT+L) should not be ran on the Saros/Core project.

Change-Id: I0c4ae1e3c1e9ed8fa9688780740e99fb23276bb4
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1578
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[DOC] Rework JTourBus tour for "Creating a new Activity type"

Change-Id: I5e7bc2b9b076f59bf28a74cec7c845728d3aa021
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1579
Tested-by: Jenkins CI
Reviewed-by: Bernd Bieber <brotlee@zedat.fu-berlin.de>
Reviewed-by: Damla Durmaz <ddurmaz88@gmail.com>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[DOC] Add README.md

Change-Id: I8455ed2bb673c2223652d80644ce2711fdea2280
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1580
Tested-by: Jenkins CI
Reviewed-by: Bernd Bieber <brotlee@zedat.fu-berlin.de>
Reviewed-by: Damla Durmaz <ddurmaz88@gmail.com>
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
[INTERNAL] removed exception handling

We are currently facing following problem in our STF regression

TRACE 04:15:44,156 [RMI TCP Connection(3)-192.168.66.131]
(ContextMenusInSessionArea.java:65) clicking on context menu item:
Restrict to Read-Only Access
TRACE 04:15:44,193 [main] (ContextMenuHelper.java:148) found context
menu item: Grant Write Access[enabled=false]
TRACE 04:15:44,194 [main] (ContextMenuHelper.java:148) found context
menu item: Restrict to Read-Only Access[enabled=false]

As we are unable to reproduce this behavior locally the exception
handling is removed because one of catch block silently disable this
action.

Change-Id: I79b3f7f569f4030fffe0f40c043409ef3d4ee329
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1586
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] ensure only resource qualified JIDs are used for a user

Just added a small check to ensure that resource qualified JIDs are used
for a user during a session. As this was already the case this patch
does not change the logic at all.

For further development (e.g different transport layer like plain TCP
instead of XMPP) the getResourceQualifiedJID method of the ISarosSession
interface is now deprecated.


Change-Id: I12865dbf80d62023248c816c71fe01dc43c06e48
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1551
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL|API] extended IFACE to access runtime components

It is now possible to access components that reside in the session
context.

Deprecated the new method per default as it is a dangerous call but
currently allows an easy access for GUI component to retrieve such
components without extending existing listeners that a currently
available to the GUI classes.


Change-Id: I1b012c30014ee4d4be2b6f783d00623817c08cec
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1585
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] moved FollowingActivitiesManager into session scope

Also cleaned up this class.

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

XMPPSessionDisplay and MDNSSessionDisplay now inherit from an abstract
base class that contains most of the logic that should be done during a
session. Also moved some inner classes to own class files.

Change-Id: Ia04a0b65a3c2b3eb0568ee93bf74005bd9570090
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1590
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] moved connection logic out of Saros class


There exists no multi inheritance in Java so it is only possible
to use interface e.g ISaros which would result in multiple
implementations. As no developer wants to fix bugs in multiple
implementations which are mostly the result of a C&P and small
modifications those logic is extracted out of the Saros class to a small
facade class.


Change-Id: Id202c19baa936ccd380ef3e33f834b42f967a5a7
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1301
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] added new ConnectionStateListener interface

Some logic in Saros does not care what connection is used but is only
interested in the state transition. Added a new interface so that other
connections can be established.

Change-Id: I9522aa6ac438b026d5b92d9d8acaa02452a865bc
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1591
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FEATURE] use MDNS to *connect* to the local area network

Added more MDNS stuff. Currently it is possible to connect to the local
area network and see other connected users.

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