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:
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.
- 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.
Downloading and Installing the Server
- Go here and download the server file.
- Extract the archive to a directory on your computer.
- 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:
- 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.)
- 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.
- Everyone go to XCDE -> Server Connections and click the button on the bottom-left of the "XCDE Servers" window to add a new server.
- 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.
- Everyone enter their name in the "Username" field and click Ok.
- Everyone select the new server entry and click Ok.
- 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.
- Everyone else go to File -> Import -> Other -> XCDE Import Wizard. Choose the server and click Next, then check the project and click Finish.
- 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):
- Download the logger here.
- 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).
- Extract both archives to the same directory. You should have ossp.jar, xcde.jar, xcde-db.jar, and two .sql files.
- Download the MySQL JDBC driver here and save it in the same directory as you used above. Rename it to "mysql-connector-java.jar".
- Set-up a MySQL server somewhere with a new, empty database and initialize it with the fydp.sql script.
- 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.)
- 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.
Support
You can file bugs or other support issues here. For general inquiries, send mail to tristan_schmelcher@alumni.uwaterloo.ca.
Literature
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.