Skip to content

Eclipse Development Instructions

TerraFrame edited this page Jun 2, 2016 · 41 revisions

Here is what you need to know to setup Eclipse for Runway SDK development

Install PostgreSQL

As of this writing, the version of Postgres to download for Runway SDK development is PostgreSQL 9.3

Download and configure Eclipse

As of this writing, the latest version of Eclipse to support AJDT, which is the AspectJ visual development toolkit, is Luna. Since support for Java 6 is being abandoned for Runway, you will need to download the version of Kepler that supports Java 8.

Download: http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/lunasr2

Modify the eclipse.ini file and change the following properties:

-Xms40m -Xmx512m

to

-Xms256m -Xmx1536m

Mac OSX

Locate the eclipse.ini file by right clicking on the "eclipse.app" file and select "Show Package Contents". Navigate to "Contents->MacOS->eclipse.ini".

Download Plugins

AJDT

AJDT is the Eclipse plugin for AspectJ. It does a number of useful things, including showing where advice is being woven into code. It allows you to navigate aspect code much like classes.

As of this writing, only a development version of AJDT for Luna has been released.

In Eclipse, go to Help -> Install New Software

Enter the site URL: http://download.eclipse.org/tools/ajdt/44/dev/update

Select the following to install:

  • AspectJ Development Tools
  • Other AJDT Tools

EGit

EGit should be included with Eclipse Luna

Maven Integration for Eclipse - m2e (aka m2eclipse)

m2e should be included with Eclipse Luna

Maven Integration for Eclipse - WTP (AKA m2e-wtp)

m2e-wtp should be included with Eclipse Luna

Maven Integration for AJDT

Help -> Install New Software

Enter the site URL: http://dist.springsource.org/release/AJDT/configurator/

M2E connector, buildhelper

Mac OSX

Eclipse -> Preferences ->

Windows

Window -> Preferences -> 

and then

Maven -> Discovery -> Open Catalog. Search for buildhelper (by Sonatype)

Download and Configure Runway SDK

In Eclipse:

File -> Import -> Git -> Projects From Git -> Clone URI

Set the URI to:

git@github.com:terraframe/Runway-SDK.git

Click "Next". Follow the wizard, and when asked to select projects to import select the following (at a minimum):

  • runwaysdk-root
  • runwaysdk-common
  • runwaysdk-client
  • runwaysdk-server
  • runwaysdk-test

Configure Projects (Updated on 11-29-2015)

Configure the database properties

For running the test suite in the runwaysdk-test project, modify the file

server.properties

And modify the properties

user=runwaydb
password=runwaydb
databaseName=runwaydb

Also, set the property of the root PostgreSQL database user in the POM. This will allow the test suite to automatically rebuild the database.

postgres postgres postgres

Configure Classpath

Since Runway SDK supports dynamic class loading to allow source code to change at runtime, then the class path needs to be configured. Currently, in the runwaysdk-server and runwaysdk-test projects, there is a reference to a custom Maven plugin that is not compatible with Eclipse 4.4 Luna, but rather Eclipse Kepler 4.3. As of this writing, you will need to implement the following workaround.

Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-dependency-plugin:2.8:build-classpath (execution: default, phase: generate-sources)    pom.xml    /runwaysdk-server    line 218    Maven Project Build Lifecycle Mapping Problem

Locate the above problem in the POM. Right click and select Quick Fix. Then select the option "Find error in the POM => Quick Fix -> Permanently make goal build-classpath in pom.xml as ignored in Eclipse build".

This will modify the POM to not use the broken plugin.

Now we need to set the classpath. The current Hack is to generate the classpath in Eclipse to the standard out, and then copy and paste the classpath into your local.properties file. Yes, I did say it is a hack.

Go to your runwaysdk-test project, right click and select

Run As -> Mavin ...

Under Goals, enter:

dependency:build-classpath -Dmdep.pathSeparator=;

Look at the standard out in the console and then copy the classpath.

Set the local.classpath= property in the local.properties file with the generated classpath above.

Run the test suite

Open up the launches -> maven directory in the runwaysdk-test project. Run the maven task

[test] mvn process-resources -P clean-gen,rebuild-database

Open up the launches -> junit directory in the runwaysdk-test project. Run the JUnit task

JUnit Run UeberTestSuite

Import Code Formatting Standard

To ensure that all code is formatted to the standard used to develop Runway, open the source code formatting standard file.

Eclipse -> Preferences -> Java -> Code Style -> Formatter

Press the Import button and navigate to the file

<Runway SDK GIT Root Directory>/doc/TerraFrameJavaFormat.xml