Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Documents setting up code, config, and data in a development environment using Eclipse.

Prerequisites

Details

Step 1 Clone the Github repository to a local directory - Create directories

  Setup for Windows

  • Create a directory to hold your data files (e.g. c:/termserver/data)
  • Create a directory to hold your config files (e.g. c:/termserver/config)
  • Create a directory to hold the code (e.g. c:/workspace/SNOMED-Terminology-Server)

...

  • Make sure the "mvn" executable for your local maven installation is in the path
    • On Windows this means adding to the PATH variable so that it runs in a "cmd" shell without fully qualified path.

  Setup for Unix/Linux/Mac

  • Create a directory to hold your configuration and data files (e.g. c:~/data)Copy the term-server-config/src/main/resources/data/snomedct-20140131-mini folder to your data
  • directory Create a directory to hold your config files (e.g. ~/config)
  • Create a directory to hold the code (e.g. c:~/data).
  • Copy the term-server-config/src/main/resources/data/icd9cm-2013.xml file into your data directory (e.g. c:/data)
  • Copy the term-server-config/windows-dev/src/main/resources/config.properties to your data directory (e.g. c:/data) and rename it to "config.properties"

Step 3

...

  • code)
  • Make sure the "mvn" executable for your local maven installation is in the path

Step 2 - Clone repository

Clone the Github repository to the directory created to hold the code.

Step 3 - Build project

Build all project modules with "mvn clean install" at the top level - either through Eclipse or via the command line.

  • NOTE: this uses the standard "dev-windows" configuration.  To use a different configuration artifact pass the following three parameters:
    • -Dconfig.groupId=...
    • -Dconfig.artifactId=...
    • -Dconfig.version=...
  • NOTE: the specified configuration artifact must either have been built locally or be an a repository accessible based on the settings.xml file
  • For most dev deployments, the default build is fine because the only setting really used for the rest/webapp packages is the "base.url" which by default is set to http://localhost:8080/umls-server-rest/
  • For a production deployment, you would want to use a different setting.  For example, see Deploy Instructions for the prod deployment instructions.

Step 4 - Setup Configuration

Choose a "dev-windows" or "prod" config project target and unzip it into the directory created to hold your config files.

  • config/dev-windows/target/term-server-config-dev-windows.*.zip
  • config/prod/target/term-server-config-prod.*.zip

Unzip the config/target/term-server-config.*.zip file into the directory created to hold your data files (these are the sample SNOMED and ICD9CM data artifacts).

Step 5 - Edit configuration

Edit the "config.properties" file in your config files directory to set correctly for your environment.  In particular, edit these:

  • javax.persistence.jdbc.url
  • javax.persistence.jdbc.user
  • javax.persistence.jdbc.password
  • hibernate.search.default.indexBase  ( recommend choosing something below in your data dir, e.g. c:/termesrver/data/indexes or ~/indexes)
  • ihtsdomail.securitysmtp.activated to (set to false for dev environment)

Step 4

Set up environment:

  • Make sure the "mvn" executable for your local maven installation is in the path
    • On Windows this means adding to the PATH variable so that it runs in a "cmd" shell without fully qualified path.

Step 5

  • list for automated system emails)

Step 6 - Create database

Create a MySQL UTF8 database. e.g.

  • CREATE database tsdb CHARACTER SET utf8 default collate utf8_unicode_ci;


Step 6Deploy 7 - Load data

Run the admin tools and run the loader script for your environment. 

  • Perform a "mvn install" on the "admin" project.
  • Unpack admin/target/term-server-admin.*.zip to a directory
  • For Windows (recommend c:/data/bin)
    • Edit the configuration settings at the top of "load.bat"
    • Run load.bat
  • For Mac, Linux, or other Unix (recommend ~/bin)
    • Edit the configuration settings at the top of "load.csh"
    • Run load.csh

NOTE: platform.  In your config/bin directory there will be a handy loader script that sets up a basic dev environment based on the data provided in the config project.

  • Edit the file to set the SERVER_CODE, SERVER_CONFIG, and SERVER_DATA properties
  • Run appropriate script for your platform (only one will be available, depending on the configuration settings you unpacked in Step 4).
    • load.bat - for Windows
    • load.sh - for Unix/Linux/Mac

NOTE: if re-running this, you first have to run the sql in "truncate_all.sql" to clear your database of tables (Recommend using MySQL Workbench for this in the dev environment).

Step 7

Build all modules with "mvn clean install" at the top level - either through Eclipse or via the command line.  Among other things, this will produce a term-server-rest.war file that can be deployed.

Step 88 - Deploy application

Deploy the term-server-rest.war file to a Tomcat server - either through Eclipse or a standalone tomcat installation.

...

  • Download and install apache tomcat 7 in c:/apache-tomcat-XXXX
  • In Eclipse use the J2EE perspective and click on the "Servers" tab.
  • From here, you can add a server which simply involves pointing Eclipse to the install directory for Tomcat.
  • You can right-click on term-server-rest.war file and use "Run As->Run on Server" to deploy to Tomcat.
    • NOTE: sometimes in Eclipse this doesn't work and the tomcat does not properly recognize or deploy the app.
    • In this event, double-click on the tomcat server installation in the servers tab.
    • In the configuration screen click "Open launch configuration"
    • There, look on the Arguments tab and find the -D setting for "catalina.base", e.g.

      Code Block
      -Dcatalina.base="C:\Users\Brian Carlsen\workspace-luna\.metadata\.plugins\org.eclipse.wst.server.core\tmp0"


    •  If you open this directory you'll see a "webapps" folder.  To deploy you simply build and copy term-server-rest.war to that directory and launch the server in Eclipse.
  • The Tomcat server needs to be able to find the run configuration. Double-click on the Tomcat server you installed, open the launch configuration and add this setting:

    Code Block
    -Drun.config.ts=/path/to/your/config.properties


Step 9 - Test application

Check that it all works by going to

http://localhost:8080/term-server-rest/index.html

This should be a demo app that links to a  "swagger" Api documenting the current state of the APIserver.  You You should be able to test services by using authenticating with "guest" username and "guest" as the authToken parameter.password..


Step 10 - Integration test

Run the integration tests (only do this if you know what you're doing):

Code Block
# configured to ponit ot DB loaded above.
mvn -Prest -DskipTests=false -Drun.config.ts=/path/to/config.properties
# configured to point to empty db
mvn -Pmojo -DskipTests=false -Drun.config.ts=/path/to/config-test.properties

 

...