Building Eureka! Clinical Analytics from Source

Eureka! Clinical Analytics uses Maven as its build and management tool.

Prerequisites

Required:

Maven options

To build Eureka! Clinical Analytics, Maven has to be configured to use more memory:

set MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m"

A normal build (runs tests)

mvn clean install

If successful, you will find the following warfiles:

  • eureka-webapp/target/eureka-webapp.war
  • eureka-services/target/eureka-services.war
  • eureka-protempa-etl/target/eureka-protempa-etl.war

Next, you can deploy the warfiles into your servlet container.

Deploying Eureka! for the first time

You will need to go an extra step and compile a binary distribution package. The distribution package contains configuration files for Eureka. A separate project, eureka-package, builds the binary distribution. Download the source code (eureka-package-1.9-src.zip). Then run:

mvn clean install

If successful, you will find the distribution in the target directory. Then, follow the installation instructions on the main Eureka! website.

Deployment from source

Configuration

You may copy the three warfiles above into your Tomcat deployment's $CATALINA_HOME/webapps directory. Alternatively, if you have the Tomcat manager app deployed, you may deploy with a maven command. Execute a build as above, and then execute one of the following deployment commands. Each executes in a specified Maven profile (local, dev and prd). For each profile you want to use, specify a server in your $HOME/.m2/settings.xml file (see Settings Reference for more information). For example:

<profile>
					<id>eureka-tomcat-local</id>
					<properties>
						<local.url>http://tomcathostname:tomcatport/manager/text</local.url>
					</properties>
				</profile>

Replace the URL in the local.url property with your own.

These profiles also support properties for specifying connection information for the services and backend database schemas, similarly starting with local, dev, or prd depending on the profile you want to use (local properties are shown):

local.services.db.jdbc.driver
JDBC driver classname for the services schema.
local.services.db.jdbc.url
The JDBC URL for the services schema.
local.services.username
Database username for the services schema.
local.services.password
Database password for the services schema.
local.protempaetl.db.jdbc.driver
JDBC driver classname for the backend schema.
local.protempaetl.db.jdbc.url
The JDBC URL for the backend schema.
local.protempaetl.username
Database username for the backend schema.
local.protempaetl.password
Database password for the backend schema.

These properties may be used to update the schema via maven as described in the next section.

Updating the database schema from Maven

In the eureka-services directory, execute the following to to make the services schema in your local development environment up-to-date.

mvn liquibase:update -Peureka-tomcat-local

This command will also create the schema from scratch if you have not done so already. The same command works to update the backend schema if you run it from the eureka-protempa-etl directory.

To find out whether your schema needs updating, run the following command:

mvn liquibase:status -Peureka-tomcat-local

Deploy to Tomcat (local installation)

mvn tomcat:deploy -Peureka-tomcat-local

Deploy to Tomcat (dev installation)

mvn tomcat:deploy -Peureka-tomcat-dev

Deploy to Tomcat (production installation)

mvn tomcat:deploy -Peureka-tomcat-prd

Redeploy to Tomcat

mvn tomcat:redeploy -Peureka-tomcat-{local|dev|prd}

Undeploy from Tomcat

mvn tomcat:undeploy -Peureka-tomcat-{local|dev|prd}

Run Eureka! in embedded tomcat server

This is for testing purposes during software development only. After building Eureka!, run:

mvn tomcat:run