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/src/main/resources/config.properties.dev 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 )
  • loader.SNOMEDCT.input.data (set to the path of your SNOMED data, e.g. c:/data/snomedct-20140131-mini)
  • loader.ICD9CM.input.data (set to the path of your ICD9CM data, e.g. c:/data/icd9cm-2013.xml)
  • ihtsdo.security.activated (set to false for dev environment)

Step 4

Set three environment variables:

  • MVN_HOME - path to mvn installation (so bin/mvn is accessible from there)
    • Only needed on Windows, assume "mvn" is in path on Linux
  • SERVER_CONFIG - path to the configuration file (e.g. c:/data/config.properties).
  • SERVER_HOME - path to where the code is installed, (e.g. c:/workspace/SNOMED-Terminology-Server)

Step 5

  • or ~/indexes)
  • mail.smtp.to (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 67 - Load data

Run the admin loader script for your platform.  See term-server-admin/loader/src/main/resources/scripts 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.

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 8

8 - 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 parameterpassword..

 

 

...


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