1. Ted Liefeld
  2. Combined

Overview

Build environment

Operating System

We develop, build and test on a regular basis on MacOS and variants of RedHat/CentOS/Amazon Linux.

Java 1.8

We recommend setting the JAVA_HOME environment variable

Maven 3.x

Mercurial (any somewhat recent version)

Runtime Environment

Tomcat 7.x

You will need to configure to utilize SSL. Please consult Tomcat SSL documentation for more info on this.

Also, make the following modification to your catalina.properties under $TOMCAT_HOME/conf to extend the classpath for each server component WAR file

catalina.properties:shared.loader=${catalina.base}/gs-config,${catalina.base}/gs-config/dm-converters/*.jar

Set TOMCAT_HOME in your environment if you would like to use Maven to deploy locally.

Mongo 2.6.x

We expect that more recent versions of Mongo will work, but have not tested them.

Amazon AWS S3

The default main file object repository is S3. You need to create or reuse a an S3 bucket and configure for CORS support as described at the end of this document

Google Drive (optional)

More later

Dropbox (optional)

More later

GenomeSpace client applications

These are not part of GenomeSpace per se, but GenomeSpace is meant to enable applications to interact in the cloud. You will need to install and configure each application that you want to have communicate with your GenomeSpace setup. A list of the applications currently Gs-Enabled can be found here: GenomeSpace Tools and Data Sources

To build all GenomeSpace components:

Create a master properties file. If not specified in the build command line, our Maven build will look for it under:

$HOME/genomespace/env-dev.properties

You will also need in the same directory. It will contain your AWS credentials: genomespace-aws.properties

And to configure the Java GS client while executing the tests: gs-server-url.properties

You will find an annotated templates for this file in this repository under the config directory.

Configuring caching

The checked in code base for GenomeSpace is currently hard-coded to do cache replication via JMS in a clustered environment.

This might not be what you want to do. If this is the case you will need to edit the following files: atm/src/main/resources/ehcache.xml dm-jobs/src/main/resources/ehcache.xml dm-webservice/src/main/resources/ehcache.xml

And remove the strings that match the following two regex expressions:

<cacheManagerPeerProviderFactory(?:.|\r?\n)*?/>

<cacheEventListenerFactory(?:.|\r?\n)*?/>

Maven command to build mvn clean install -Denv-properties-file=MASTERPROPERTIESFILE -Dorg.genomespace.env=URLPROPERTIESFILE

Optional/useful command line options:

-PdeployToLocalTomcat Will copy the GenomeSpace server components, the configuration files, and converters to $TOMCAT_HOME. Note that some tests, such as those that include the Client Development Kit depend on GS being initially deployed.

-DskipTests Standard Maven flag to skip tests

-fae Will run all tests/continue build even if some tests fail. It is likely you will need this flag if you run tests as we still have in our code base tests that are hardcoded with our testing infrastructure setup.

-DskipDropboxTests=false Will skip tests related to Dropbox

-DskipGoogleDriveTests=false Will skip tests related to Google Drive

Support

If you have problems or questions you can reach us at:

gs-help@broadinstitute.org

or post a message to the Genomespace User Forum