/pcc-api

PID Central Catalogue API ( PCC-API )

Primary LanguageJavaApache License 2.0Apache-2.0

pcc-api Project

This project uses Quarkus, the Supersonic Subatomic Java Framework.

If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .

Prerequisites

  • Java 11+
  • Apache Maven 3.8.1+
  • Docker (for dev mode)

Packaging and running the application

The application can be packaged using:

./mvnw package

It produces the quarkus-run.jar file in the target/quarkus-app/ directory. Be aware that it’s not an über-jar as the dependencies are copied into the target/quarkus-app/lib/ directory.

The application is now runnable using java -jar target/quarkus-app/quarkus-run.jar.

If you want to build an über-jar, execute the following command:

./mvnw package -Dquarkus.package.type=uber-jar

The application, packaged as an über-jar, is now runnable using java -jar target/*-runner.jar.

Creating a native executable

You can create a native executable using:

./mvnw package -Pnative

Or, if you don't have GraalVM installed, you can run the native executable build in a container using:

./mvnw package -Pnative -Dquarkus.native.container-build=true

You can then execute your native executable with: ./target/pcc-api-1.0.0-SNAPSHOT-runner

If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.

Codebase Format

mvn spotless:apply

Running the application in dev mode

Execute the script:

run-local-db-env.sh

NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.

After the initial set up, you can run the quarkus application on its own without the script.

In order to reset the local-db, you can issue the command:

docker-compose down --volumes

HRLS Service Communication

In order to communicate with the HRLS service, pcc-api needs two environmental variables that dictate the username and password for basic auth.

$ export HRLS_USERNAME = user
$ export HRLS_PASSWORD = pass