Skip to content

Latest commit

 

History

History
108 lines (75 loc) · 4.22 KB

DEVELOPER.md

File metadata and controls

108 lines (75 loc) · 4.22 KB

Building and Testing the QPP Conversion Tool

This document describes how to set up your development environment to build and test the qpp-conversion-tool. Please read the main README that outlines the initial software required and how to get the source.

See the contribution guidelines if you'd like to contribute to qpp-conversion-tool.

Additional Prerequisite Software

The additional prerequisites that were not already outlined in the main README are...

Building

Use Maven to compile. Dependencies will automatically be downloaded.

# Build qpp-conversion-tool
mvn clean compile

Running Tests Locally

Use Maven to run the tests.

# Run all the basic tests
mvn clean verify

You should run the test suite before submitting a PR. All the tests are executed on our Continuous Integration infrastructure and a PR can only be merged once the tests pass.

Performance Tests

The -DrunLoadTests flag will enable the load tests as part of the build. If the converter does not meet a threshold of conversions, the tests will not pass and the build will fail.

# Run the basic tests and the load tests.
mvn clean verify -DrunLoadTests

In addition, there are some extreme JMeter load tests that execute only when passing in -DskipJmeterSuite=false. To run these tests, one must fill in the host, path, port, and cookie fields in the benchmark pom.xml to correctly connect to the test environment. Make sure you have time, the CPU performance, and network performance before deciding to run these tests.

Integration Environment

In addition to converting input files to QPP, the ReST API can do the following...

  • Call the submission validation API to validate the QPP JSON.
  • Write the input file and output JSON to a S3 bucket.
  • Write metadata to a DynamoDB table.

This additional functionality depends on the environment variables set. See the .env file for descriptions of what the environment variables are for.

Amazon Web Services

The ReST API depends on AWS for some of the additional functionality. Currently, a real account with AWS must be used.

Ensure that credentials are set such that the Default Credential Provider Chain can find them. Also ensure that a region is set such that the Default Region Provider Chain can find it. If not, us-east-1 is used by default.

DynamoDB

The DynamoDB table requires the partition key be named Uuid and of type String.

SonarQube

We have a SonarQube server to measure how clean the codebase is.

Third Party Extensions

Finished a cool new feature or fix for the conversion tool? Please feel free submit a pull request to our repository for any changes made. We appreciate and thank you for your patronage! See the contribution guidelines on how to submit a Pull Request.

FMS Retrieval

In order to retrieve files from FMS, local.env should contain values for below parameters. These contain sensitive information and cannot be committed to the repository.

auth_url='url'
fms_url='url'
fms_token='token'
fms_path='folder/file.ext'
s3_bucket='aws-pii-bucket'

With access to the conversion tool environment, update your local ~/.aws/credentials file with new short-term AWS credentials before initiating the request (learn more).