Feedback comprises two ways of gathering user feedback data: directly via a user survey and indirectly via statistics by collecting user's session data.


User Survey

At the end of a Saros session the user is sometimes asked to participate in a User Survey. This happens the first time when a user ends his first session and after that in an interval what can be configured by the user. He also has the option to turn this request on and off.

The main class of the User Survey is the FeedbackManager

  • FeedbackManager
    • determines the user's preferences (participation option turned on/off and the request interval)
    • shows a FeedbackDialog
  • FeedbackDialog
    • is displayed only if a Saros session lasted at least 5 minutes
    • opens in an external browser (if accepted)
    • if this fails, Eclipse's internal browser is used
    • if both methods fail a message dialog containing the survey's URL is shown.
    • Here you can find the survey


The Statistic framework gathers statistic data (e.g. session duration, number of participants, and the user's role as well as the used operation system and the installed versions of Java, Eclipse, and Saros) and send it to our Apache Tomcat server. Like the user survey, the user has the option to turn the statistic data collection on and off.

For gathering that data collector classes which extend the abstract class AbstractStatisticCollector are used. Examples of these collector classes:

  • ParticipantCollector
    • gathers information about the number of participants in a Saros session and the time they were present in the session (accumulated)
  • PermissionChangeCollector
    • collects permission changes of the local user, e.g. how often they are changed and how long the user kept what permission (write/read-only access)
  • SessionDataCollector
    • gathers general session data like session time, session ID, and session count as well as platform information.

The StatisticManager then receives the gathered data of all collectors at the end of a session, combines them to one file and sends it to our server (Saros-build).