XCDE (eXtreme Collaborative Development Environment) is a plugin for
the popular open-source Eclipse IDE that adds support for real-time collaborative editing over the
Internet, letting developers work on the same files at the same time
from up to halfway around the world. To wit:

XCDE consists of two main parts: a client and a server. The "client" is the Eclipse IDE with extra plugins that enable real-time editing. The server is a small program that lets clients connect and link or import projects for real-time editing. Everyone will need the client, and one person will need to run the server. Both of them also require Java, which you can get here under "Java Runtime Environment (JRE) 6".

Downloading and Installing the Client

There are two methods to install the client: you can either download the complete Eclipse IDE with XCDE included, or, if you already have Eclipse, then you can download just the XCDE plugins. If you are unsure about which procedure to use, then use the first one.

Method 1: Downloading the Eclipse IDE with the XCDE plugins included (Recommended)

Use this method if you don't already have Eclipse, or if you do but want a separate installation for XCDE.

Go here and download the file that corresponds to your OS. We currently provide downloads for Windows, Windows with WPF (Vista only), Linux, and 64-bit Linux.

Extract the archive to a directory on your computer.

You're done! Just run "eclipse-xcde" inside the main directory and it will launch the program. (You might want to set-up a shortcut to make it easier in the future.)

Method 2: Downloading just the XCDE plugins

Use this method if you already have Eclipse and want to add real-time collaborative editing to it. Your Eclipse version must start with either 3.1 or 3.3. (Go to Help -> About Eclipse SDK to find out your version. If it is not one of the ones that XCDE supports, please use method 1.)

Go here and download the version of the XCDE plugin pack that corresponds to your Eclipse version. The 3.1-series must use plugin pack version 0.1; the 3.3-series must use plugin pack version 0.2.

Close Eclipse if it is running.

Go to the "plugins" subdirectory in your Eclipse directory and move "org.eclipse.ui.editors_<version>.jar" and "org.eclipse.ui.workbench.texteditor_<version>.jar" to a backup directory somewhere else. (XCDE comes with its own versions of them.)

Extract the plugin pack to your Eclipse directory. You should now have a new file named org.eclipse.xcde_<version>.jar (among others) in the "plugins" subdirectory of your Eclipse directory.

You're done! Just re-launch Eclipse and it will now have XCDE functionality.

You are now ready to edit in real-time! Just open any of the files in the project and type away!

Some other features to be aware of are:

If you create a new file or folder in the project, don't forget to do Team -> Add to XCDE, or else no one else will see it.

To delete a file, just delete it like you normally would by right-clicking on it and choosing Delete. It will automatically be deleted from XCDE too.

If you don't want to collaborate on a particular project anymore, just right-click on the project and choose Team -> XCDE Unlink. It will become a normal project again (but others can continue to collaborate on it).

If you want to make sure that the files on your hard drive are up-to-date, right-click on the project and choose Team -> XCDE Refresh. This will download the current files from the server and save them to disk. (Normally, files are only saved to disk when you yourself choose File -> Save.)

To change the colour of other people's cursors on your screen, click on the Colour cell in the User List View and then click on the "..." button. It will bring up a colour wheel. The choices you make do not affect the colours on other people's screens, so feel free to choose whatever scheme you like.

To signal to people whether your code is ready to build and/or test, you can click on your "Build?" and "Test?" icons in the User List View to toggle them. (Note that these will not prevent people from building or testing; they are just quick visual indicators.)

To keep track of what needs to be done, you can add a Bookmark or Task annotation by right-clicking in the left margin of the code and choosing Add Bookmark or Add Task. The annotation will become visible on everyone's computer in the Bookmark and Task views (accessible from Window -> Show View -> Other -> General).

Special Options

To start the server on a different port than the default, specify "-p PORT" on the command line.

Normally, the server does not save any data when it exits, since the users have all the data anyway. If you'd instead like it to store all of its data on disk (in a single file), specify "-s FILE" on the command line. It will save to it periodically and read from it on start.

To use the included Voice Chat View, install the Java Media Framework and specify "-vmArgs -Djmf.jar=<path to jmf.jar>" when running Eclipse.

Advanced Features

Proxying

If the XCDE server that you are connecting to is very far away and there are several users on your LAN (or just close to you geographically), you may want to use an XCDE proxy. This will reduce the latency between you and them. If there is a high volume of traffic going to the server, this will also reduce the amount of it. To run an XCDE proxy, download and extract the XCDE server archive and run "java -jar ossp.jar -a <server hostname>" (you can also specify -rp to connect to a different port than the default, and/or -lp to listen on a different port than the default). Your users can then connect to your own hostname/IP instead of the main server.

Database Logging

XCDE comes with the ability to capture all edits to a MySQL database, either for analysis or for use with the included Source Replay View. This is done with a separate database logging program which connects to an XCDE server and a MySQL database as a client. To run the database logger (you must already be familiar with MySQL):

If you ever want to delete the created data from the database, use the fydp_cleanup.sql script.

There are two ways to view the database's data: you can either look at the raw data using a generic tool, or you can use the Source Replay View in XCDE. This view allows you to see a step-by-step reconstruction of how a file was made. To use it, the computer running Eclipse/XCDE must also have the MySQL JDBC driver installed and you must specify its location when launching Eclipse using "-vmArgs -Dmysql-connector-java.jar=<path to mysql-connector-java.jar>" (for this, there is no need to rename it). In the Source Replay View, specify the hostname of the computer where the MySQL server is running and fill-out the other options as needed.