Orion/Getting the source
This page covers how to take a look at the source, as well as how to set up for self-hosting (changing Orion code from Orion).
Accessing the code
Source for Orion can be forked from our Git repositories:
Self hosting setup
We assume you are familiar with git. If not, review the Eclipsepedia Git Page.
Self-hosting involves running an Orion server on localhost, pointing your Orion editor at your local git repo directories, and working within Orion to make changes. Changes are committed with command line tools (or egit). Currently, the commit phase is separate from the Orion workflow. Here are the steps needed to get up and running, which assume you are a committer on the e4 project.
- Ensure that your user name and email are set up properly so that your email matches the foundation's email address of record. Otherwise you can't push changes. See Git#Committers_new_to_Git
- Clone the orion client and server repositories (choose a target directory that works for you, you'll be importing this code later into eclipse in order to run your changes on the local server).
git clone ssh://myCommitterId@git.eclipse.org/gitroot/e4/org.eclipse.orion.client.git git clone ssh://myCommitterId@git.eclipse.org/gitroot/e4/org.eclipse.orion.server.git
- Download a stable orion build. This download will be used as a target platform when you run the server from eclipse.
- You can use any recent stable build of the Eclipse SDK to run the server. Many of us are using M4.
- Create a new workspace using your Eclipse SDK
- Use the File->Import->General->Existing Projects into Workspace wizard. In the wizard, set the root directory for the import to whatever directory you used when you cloned the repos. You'll know you have the right path when you see a bunch of org.eclipse.orion.* projects in the project list.
- Ensure that Copy projects into workspace is not checked.
- The projects should appear in your workspace. Don't worry about the compile errors just yet...
- Now you need to set up a target that points to the Orion build you downloaded. (Window->Preferences->Plug-in Development->Target Platform).
- Add a target
- Initialize the target definition with "Nothing", Next...
- In the Locations tab, click Add... and point to the eclipse directory of the build
- Once you finish the wizard, you'll have a new target definition available in the list of targets.
- Make this the active target definition for your self-hosting workspace.
- Your workspace will be rebuilt and compile errors should disappear.
- Open the Run->Run Configurations dialog and select the OSGi Framework launch called "web-ide"
- In the Arguments tab, set the VM argument that controls which directories the Orion server can access on your machine. You want to ensure the Orion server can update the files in your local git repo. Use whatever path format makes sense on your platform. Whatever format you use must match exactly what you type later into the "Link folder" dialog in Orion. (So if you use drive letters and back slashes on windows, you'll need to use the same format in the web client.)
- Run the launch and point your browser at http://localhost:8080
- You'll be prompted to login (create an account).
- Once logged in, you'll see your navigator with some auto-generated content (a folder called "org.eclipse.e4.webide") from the M4 release. You should ignore this content. You can delete this folder.
- Push the link button and add a folder that links to your local git repos. For example, if you wanted to make changes to the client, you could link a folder named "org.eclipse.orion.client.core" to the file path
- Add a folder link for each bundle in the git repository that you care about.
- You should see the folders show up in your Orion explorer.
- From here, you can start editing files. As you make changes to the client code, you can simply reload the corresponding page in your browser to see the changes. We recommend you keep a browser tab open with a stable editor and stable navigator, and open a new tab for reloading and trying changes. In this way, you'll always have a couple of safe browser tabs to use to revert changes if you break something!