26.22. Jupiter

26.22.1. Overview

The Jupiter sensor collects data regarding developer activities using the Jupiter code review system. The Jupiter sensor represents data about review using two sensor data types. ReviewIssue (documented in Section 25.15, “Review Issue”) represents the issues recorded by a reviewer during review. ReviewActivity (documented in Section 25.14, “Review Activity”) represents this actions taken by a reviewer during review, such as reading a file.

Jupiter is a plugin to the Eclipse editor which provides a customized interface for reviewing code and recording issues both individually and as part of a group meeting. The Jupiter Sensor is an extension of the Eclipse Sensor for Hackystat.

26.22.2. Installation

26.22.2.1. Prerequisites

The Jupiter sensor requires Eclipse 3.2, Java 1.5.0 or later, and Jupiter 2.0 or later.

26.22.2.2. Download HackyInstaller and set your Hackystat Host and User Key

Follow the instructions in Chapter 2, Client-side configuration: Tool sensor installation to set your Hackystat host and user key.

26.22.2.3. Configure and install the Jupiter sensor

In the HackyInstaller main window, select the Jupiter sensor and press "Configure Selected Sensor". Figure 26.39, “ Jupiter sensor installer configuration window ” shows what the configuration window should look like after the path to Eclipse is set, the sensor is enabled, and the "Install" button has been pressed to install the sensor.

Figure 26.39.  Jupiter sensor installer configuration window


Jupiter sensor installer configuration window

This sensor supports the following properties and paths:

  • Enable Jupiter Sensor: This property controls whether the sensor is active or not. If not checked, the sensor will not collect or send data even if installed.

  • Eclipse home directory: This path specifies the top-level directory for Eclipse. The Jupiter sensor requires the placement of a sensor executable into Eclipse's plugins/ directory.

26.22.2.4. Install the Eclipse Sensor for Hackystat

The Jupiter sensor requires the Eclipse sensor for Hackystat to be installed, following the instructions in Section 26.12, “Eclipse”.

26.22.3. Installation verification

26.22.3.1. Check for status line messages

The first step in verifying your Jupiter sensor installation is to make sure that ENABLE_ECLIPSE_MONITOR_SENSOR is set to true in your sensor.properties file, then begin performing a code review. Within a minute, you should see at least one message from the Jupiter sensor appearing in the status line at the bottom of the Eclipse window. Figure 26.40, “ Status line message from the Jupiter sensor ” illustrates this status line message.

Figure 26.40.  Status line message from the Jupiter sensor


Status line message from the Jupiter sensor

26.22.3.2. List Sensor Data

If you see messages appearing in the status line, then the next step is to exit Jupiter (which will trigger a send of the data to the server). Then login to your account on the Hackystat server, and use the "List Sensor Data" command on the Extras page to verify that ReviewActivity and ReviewIssue data for today's date was received by the server for the "Jupiter" tool, as illustrated in Figure 26.41, “ List Sensor Data with Jupiter ReviewActivitydata ” and Figure 26.42, “ List Sensor Data with Jupiter ReviewIssue data ”.

Figure 26.41.  List Sensor Data with Jupiter ReviewActivitydata


List Sensor Data with Jupiter ReviewActivitydata

Figure 26.42.  List Sensor Data with Jupiter ReviewIssue data


List Sensor Data with Jupiter ReviewIssue data

26.22.4. Installation troubleshooting

26.22.4.1. Troubleshooting general client-server problems

The first step in troubleshooting your sensor installation is to verify that your Hackystat host and key settings are valid and that you can contact the Hackystat server, as described in Section 2.4, “HackyInstaller GUI: Setting and verifying the Hackystat host and user key”

26.22.4.2. Using an incorrect version of Jupiter or Java

A common installation problem is attempting to install the sensor with an unsupported version of Jupiter or Java. Make sure you are using Jupiter 2.0 or later and Java 1.5.0 or later.

26.22.4.3. Using mixed versions of Hackystat sensors for Jupiter

The Jupiter sensor also requires that you install the "basic" Eclipse sensor for Hackystat. You must always upgrade both of these sensors at the same time. If you only upgrade one sensor and not the other, Jupiter may generate "Error" dialog boxes for Outline mode or produce other anomalous behaviors

26.22.4.4. Checking client-side logging

The Jupiter sensor writes out data to the Eclipse sensor log file (eclipse.0.log) in the .hackystat/logs directory that can be useful in debugging your installation. Under normal conditions, this file should look similar to Example 26.55, “eclipse.0.log file with Jupiter data”.

Example 26.55. eclipse.0.log file with Jupiter data

Hackystat Version: 6.3.1124 (November 24 2004 12:05:38)
SensorShell started at: 12/07/2004 12:30:39
Type 'help' for a list of commands.
Host: http://hackystat.ics.hawaii.edu/ is available and key is valid.
Defined shell command: Dependency
Defined shell command: Issue
Defined shell command: Perf
Defined shell command: FileMetric
Defined shell command: ReviewIssue
Defined shell command: Activity
Defined shell command: Cli
Defined shell command: ReviewActivity
Defined shell command: Coverage
Defined shell command: UnitTest
Defined shell command: BuffTrans
Defined shell command: Commit
Defined shell command: Build
#> AutoSend [10]
AutoSend OK (set to 10 minutes)
AutoSend enabled every 10 minutes.
Checking for offline data to recover.
No offline data found.
#> Activity [setTool, Eclipse]
setTool OK
#> Activity [add, Open File, C:/cvs/hackyBuild/build.xml]
Activity add OK (1 total)
#> ReviewActivity [setTool, Jupiter]
setTool OK
#> ReviewIssue [setTool, Jupiter]
setTool OK
>> #> ReviewActivity [add, , individual, , ]
ReviewActivity add OK (1 total)
#> ReviewActivity [add, JavaMap, individual, , ]
ReviewActivity add OK (2 total)
#> ReviewActivity [add, JavaMap, individual, C:\cvs\hackyStdExt\src\org\hackystat\stdext\workspace\map\javamap\JavaClassWorkspaceMapManager.java, ]
ReviewActivity add OK (3 total)
#> ReviewActivity [add, JavaMap, individual, C:\cvs\hackyStdExt\src\org\hackystat\stdext\workspace\map\javamap\JavaClassWorkspaceMapManager.java, ]
ReviewActivity add OK (4 total)
#> ReviewActivity [add, JavaMap, individual, C:\cvs\hackyStdExt\src\org\hackystat\stdext\workspace\map\javamap\JavaClassWorkspaceMapManager.java, ]
ReviewActivity add OK (5 total)
#> ReviewActivity [add, JavaMap, individual, C:\cvs\hackyStdExt\, ]
ReviewActivity add OK (6 total)
#> ReviewActivity [add, JavaMap, individual, C:\cvs\hackyStdExt\, ]
ReviewActivity add OK (7 total)
#> ReviewActivity [add, JavaMap, individual, C:\cvs\hackyStdExt\, ]
ReviewActivity add OK (8 total)
#> ReviewActivity [add, JavaMap, individual, C:\cvs\hackyStdExt\, ]
ReviewActivity add OK (9 total)
#> send
Sending sensor data (12/07 15:33:59)
  Ping: Ping OK (contacted server http://hackystat.ics.hawaii.edu/ with valid key.)
  Dependency: Send OK (No entries to send.)
  AutoSend: AutoSend OK ('send' command ignored)
  Issue: Send OK (No entries to send.)
  Perf: Send OK (No entries to send.)
  FileMetric: Send OK (No entries to send.)
  ReviewIssue: Send OK (2 entries)
  Activity: Send OK (No entries to send.)
  Cli: Send OK (No entries to send.)
  ReviewActivity: Send OK (9 entries)
  Coverage: Send OK (No entries to send.)
  Commit: Send OK (No entries to send.)
  UnitTest: Send OK (No entries to send.)
  BuffTrans: Send OK (No entries to send.)
  Build: Send OK (No entries to send.)
>> 

26.22.4.5. Checking Jupiter startup logging

If you do not have messages in the status line, and if you do not find an eclipse.0.log file in the .hackystat/logs directory, then the most likely reason is that the plugin was not installed successfully. To troubleshoot this situation, change directories to the Eclipse installation directory and invoke Eclipse manually with the -debug option as follows:

c:\eclipse> eclipse -debug

This will start up Eclipse and also print out some debugging information. Under normal circumstances, the information should look as follows:

Install location:
    file:/c:/eclipse/
Configuration file:
    file:/c:/eclipse/configuration/config.ini loaded
Configuration location:
    file:/c:/eclipse/configuration/
Configuration file:
    file:/c:/eclipse/configuration/config.ini loaded
Framework located:
    file:/c:/eclipse/plugins/org.eclipse.osgi_3.0.0/
Loading framework classpath from:
    file:/c:/eclipse/plugins/org.eclipse.osgi_3.0.0/eclipse.properties
Framework classpath:
    file:/c:/eclipse/plugins/org.eclipse.osgi_3.0.0/core.jar
    file:/c:/eclipse/plugins/org.eclipse.osgi_3.0.0/console.jar
    file:/c:/eclipse/plugins/org.eclipse.osgi_3.0.0/osgi.jar
    file:/c:/eclipse/plugins/org.eclipse.osgi_3.0.0/resolver.jar
    file:/c:/eclipse/plugins/org.eclipse.osgi_3.0.0/defaultAdaptor.jar
    file:/c:/eclipse/plugins/org.eclipse.osgi_3.0.0/eclipseAdaptor.jar
Splash location:
    c:\eclipse\plugins\org.eclipse.platform_3.0.0\splash.bmp
Debug options:
    file:/C:/eclipse/.options not found
Time to load bundles: 15
Starting application: 547

Check to see if errors are reported in this output.

26.22.4.6. Submit a trouble report

If none of the above troubleshooting activities solves your problem, then you should send an email to your Hackystat Administrator to request help. Please include in your email the following information:

  • The output from 'java -version'.

  • The output from 'eclipse -version'.

  • The output from 'java -jar sensorshell.jar -verify'.

  • The contents of your sensor.properties file.

  • The contents of the eclipse.0.log file.

  • The output from invoking eclipse from the command line with the '-debug' option.

  • A description of the problem you are having.

26.22.5. Uninstallation

To disable Jupiter data collection temporarily, invoke HackyInstaller, bring up the Jupiter configuration window, and uncheck the "Enable Jupiter sensor" property, and apply the setting. To permanently uninstall the Jupiter sensor, press the "Uninstall" button.