Skip to main content
Last updated April 03, 2013 18:19, by Tim Halloran
Feedicon  

Hacking

"For those about to hack, I salute you!"
—Caesar

Getting started

Note that you probably should install both Java 6 and Java 7 JDKs. We develop and ensure the source code is Java 6, but run all tests on Java 7 as well (prior to a release). We cannot just support Java 7 at this point. Android code, in particular, does not yet support Java 7.

Install Eclipse

The Timing Framework source code is setup to be worked on within the Eclipse Java IDE. It is probably pretty simple to get it working in another IDE but Eclipse is by far the easiest right now. So to hack the Timing Framework code download a copy of Eclipse and then install Subversion.

Install Subversion

The Timing Framework project uses Subversion as its source code control system (because Java.net GIT setup doesn't seem to work too well with Eclipse's GIT client). Getting Subversion installed is, sadly, pretty difficult so I'll go through the steps.

  1. Start Eclipse (I'm using 4.2 Juno under Windows x64) and select Help | Install New Software... from the main menu. The Install dialog opens.
  2. Open the Work with: drop-down at the top of the dialog and pick Juno - some url at eclipse.org (Pick your release code-word. If you've got Eclipse 3.6, or earlier, you should probably upgrade.)
  3. Drill into the Collaboration and check: Subversive SVN JDT Ignore Extensions (Optional) and Subversive SVN Team Provider
  4. Click the Next > button and continue (accepting licenses, and so on) until the installation is completed and you restart Eclipse.
  5. After Eclipse has restarted select Window | Open Perspective | Other... from the main menu.
  6. The Install Connectors dialog will open for you to install an SVN connector. Check SVN Kit 1.7.5...anything and press the Finish button. Continue until the installation is competed and you restart Eclipse. Note that if the dialog doesn't open, then open the SVN Repository Exploring perspective. That should trigger the Install Connectors dialog to open before.
  7. Hurray! Subversion is installed in your Eclipse.

Install Android SDK

If you are going to check out the Android Timing Framework source code you must add the Android SDK to your Eclipse. Follow the steps described at http://developer.android.com/sdk. If you are not interested in Android you can skip this step and not check out the timingframework-android project below.

Import the SWT Library Project

If you are going to check out the SWT Timing Framework code you must import the SWT library project into your Eclipse workspace. This project is named org.eclipse.swt. Follow the steps described at http://www.eclipse.org/swt/eclipse.php. If you are not interested in SWT you can skip this step and not check out the timingframework-swt project below.

Connect Eclipse to the SureLogic Promises SVN Repository

Once Eclipse restarts, go back to the SVN Repository Exploring perspective and add a new repository location:

You should not need a user or password for this java.net location. If you have a java.net user fill that connection in as shown in the image below, but use your java.net user instead of mine.

The promises project in this SVN repository contains annotations that are used to document and tool-verify the thread-safety of the Timing Framework implementation using SureLogic JSure. We will check out the promises project below.

Connect Eclipse to the Timing Framework SVN Repository

Next, still in to the SVN Repository Exploring perspective, and another new repository location:

You should not need a user or password for either of these locations. If you have a java.net user fill that connection in as shown in the image below, but use your java.net user instead of mine.

This repository contains the up to the minute source code for the Timing Framework.

Checkout the Timing Framework Projects

Open up the new repository locations and check out the code projects (under trunk) as shown in the image below.

A few notes:

  • You always need the promises project.
  • The timingframework-android, timingframework-swing, and timingframework-swt projects depend upon the timingframework-core project. So you need to check that project out even if you just want to work on just Android or just Swing or just SWT.
  • Unless you plan to work on it, you don't need to checkout the timingframework-classic project. This project is not under active development and only exists to support folks typing in code from Filthy Rich Clients.
  • (Noted Above) You'll need to follow the Android SDK installation instructions to setup your Eclipse for Android development and successfully build the timingframework-android project. Or you can skip checking out the timingframework-android project.
  • (Noted Above) You'll need to follow the SWT installation instructions to import the org.eclipse.swt project into the Eclipse workspace and successfully build the timingframework-swt project. Don't panic this is really easy compared to installing Subversion—just be careful to download the right version of SWT for your platform and Eclipse version. Or you can skip checking out the timingframework-swt project.
  • Install the Java code formatter used by the project. It can be downloaded here and installed into your Eclipse. You first load it into Preferences under Java | Code Style | Formatter. The profile is called TimingFramework. You can use it as your active profile, or go into the project settings under Java Code Style | Formatter and Enable project specific settings (you can load the profile via this dialog as well).

Building a Release

The release zips for timingframework-android, timingframework-swing, timingframework-swt and timingframework-core are built using the build-release.xml Ant scripts at the root of each project.

One property must be set in the timingframework-core/lib/release.properties file. release-version sets the number of the release. E.g., 5.1 or 6.0. An example is shown in the image below.

You are ready to hack! (Caesar is clapping)

Contributing patches

If you improve the code and want to contribute it back to the project. Create a new JIRA issue and attach a patch file that contains your code changes. It is easy to create a patch file within the Eclipse IDE. Select the project (or projects) that changed, right-click and select Team | Create Patch... and follow the steps in the dialog that appears.

 
 
Close
loading
Please Confirm
Close