This page explains how to install a development environment for hacking on CCW.

Prerequisites

Command Line (maven based) Environment

Compile / Test / Package

$ git clone https://github.com/laurentpetit/ccw
$ cd ccw

# To clean + compile + unit test + integration test + build updatesite
# + build Windows / Linux / OS X standalone products:
ccw$ mvn clean install

# Same as above, but skipping launching tests:
ccw$ mvn clean install -DskipTests

# To only launch tests
ccw$ mvn clean test

Developing within Eclipse

Install Eclipse Development Environment

  • Clone CCW Repository

  • In Eclipse, import the repository projects (ccw/ccw.branding, ccw/ccw.core, ccw/ccw.core.test, ccw/ccw.parent, ccw/ccw.product, ccw/ccw.target.e43, ccw/ccw.updatesite, ccw/paredit.clj)

  • cd into ccw and invoke mvn clean install

    • This will install all CCW dependencies in folder ccw.core/lib/

    • The operation must be be repeated after each update of ccw.core dependencies

  • Set the Eclipse Target Platform for your tests to Kepler by selecting the provided one in ccw/ccw.target.e43:

    • Go to Window > Preferences > Plug-in Development > Target Platform

    • Check the target platform named ccw.target.e43, Click Finish

Run from the Eclipse Development Environment

The following launch configuration files automatically install themselves in the "Run/Debug" Toolbar items as Shortcuts:

  • Counterclockwise Plugin for Debugging the Plugin by launching it in the current PDE Target (shortcut for ccw.core/Counterclockwise Plugin.launch)

  • Counterclockwise Product for Debugging the Standalone Product (shortcut for ccw.core/Counterclockwise Product.launch)

  • Counterclockwise Product Tests for Launching the JUnit (SWTBot) tests (some tests don’t pass in this mode) (shortcut for ccw.core.test/Counterclockwise Product Tests.launch)

Install your development version in your Eclipse Environment

  • You need to build from the command line. E.G. via mvn install from the ccw directory.

  • The Software Update Site zip is at location ccw/ccw.updatesite/target/ccw.updatesite-<version>.zip

Manage Version Numbers

The script script/set-version.sh updates POMs, MANIFESTs and feature.xml :

# If you want to set version to 0.20.0-SNAPSHOT
$ cd ccw
ccw$ script/set-version.sh 0.20.0-SNAPSHOT

Adding clojure.test based tests

  • Add the test namespace in ccw.core.test/src/clj using the usual namespace structure for folders

  • Add the namespace to the list of namespaces to be tested in the java file ccw.core.test/src/java/ccw/core/ClojureTests.java

References