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 screenshot

Click here for more screenshots.

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".

XCDE is hosted by SourceForge.net. Its project page is here.

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.

  1. 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.
  2. Extract the archive to a directory on your computer.
  3. 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.)

  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.
  2. Close Eclipse if it is running.
  3. 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.)
  4. 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.
  5. You're done! Just re-launch Eclipse and it will now have XCDE functionality.

Downloading and Installing the Server

  1. Go here and download the server file.
  2. Extract the archive to a directory on your computer.
  3. You're done! To launch the server, just run "java -jar xcde.jar" from a command prompt. (You might to set-up a shortcut to make it easier in the future.)

How to use XCDE

Some screenshots showing how to use XCDE are available here. If you are using XCDE for the first time to work on a project with your friends, we recommend following these steps:

  1. Start the server (see above) on either your computer or a friend's computer. (If the server's computer is behind a firewall, you must open port 48879.)
  2. Everyone start the Eclipse/XCDE SDK (see above) and open the Instant Messaging View and User List View in Window -> Show View -> Other -> XCDE Views.
  3. Everyone go to XCDE -> Server Connections and click the button on the bottom-left of the "XCDE Servers" window to add a new server.
  4. Everyone enter the IP of the server's computer in the "Hostname" field. (If it is running on your own computer, you can leave it at "localhost".) Leave "Port" at the default.
  5. Everyone enter their name in the "Username" field and click Ok.
  6. Everyone select the new server entry and click Ok.
  7. Now someone choose (or create) an Eclipse project to work on, then right-click on it and choose Team -> XCDE Link. The project is now on the server.
  8. Everyone else go to File -> Import -> Other -> XCDE Import Wizard. Choose the server and click Next, then check the project and click Finish.
  9. 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:

Special Options

Advanced Features


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):

  1. Download the logger here.
  2. Also download the XCDE server files (see above). The logger needs them in order to work (even if your XCDE server is already running somewhere else).
  3. Extract both archives to the same directory. You should have ossp.jar, xcde.jar, xcde-db.jar, and two .sql files.
  4. Download the MySQL JDBC driver here and save it in the same directory as you used above. Rename it to "mysql-connector-java.jar".
  5. Set-up a MySQL server somewhere with a new, empty database and initialize it with the fydp.sql script.
  6. Launch the database logger with "java -jar xcde-db.jar --XCDEHost <hostname> --MySQLHost <hostname>". (Run "java -jar xcde-db -h" to see the other command-line options.)
  7. 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.


You can file bugs or other support issues here. For general inquiries, send mail to tristan_schmelcher@alumni.uwaterloo.ca.


Leaflet (PDF)
Poster (PPT)
Presentation (PPT)
Asynchronous Concurrency Control (PDF), an academic paper

XCDE is beta-quality software and comes with absolutely no warranty (not even the implied warranties of merchantability or fitness for a particular use). You use it at your own risk.

XCDE, the XCDE logo, and the XCDE website are copyright © 2005-2007 Larry Chen, Andrew Craik, Tom Levesque, and Tristan Schmelcher. XCDE is licensed under the Eclipse Public License 1.0.

Eclipse is copyright © 2007 The Eclipse Foundation.

SourceForge.net Logo