JBDK (Java Beacon Development Kit) provides a Java EE implementation of the Beacon API, which allows you to light a Beacon with minimal effort. The BDK provides common functionality required by beacons, such as a REST API implementation compatible with the Beacon API, a sample beacon implementation, parameter conversion, data serialization, exception handling, test suite and more.
The setup is split into the following modules:
- beacon-java-rest - REST API.
- beacon-java-service - business logic.
- sample-beacon-adapter - sample adapter implementation.
Prerequisites: Java 8+, Maven 3+, an application server with Java EE 7 support (e.g. WildFly 8+), Beacon data model.
Build the project:
mvn install
In order to run the tests from beacon-java-rest in a managed (remote) container, use the test-managed (test-remote) Maven profile. Example:
mvn test -Ptest-managed
The BDK supports any implementation of the Beacon Adapter API. You can provide your own custom adapter by extending BeaconAdapter
, or use one of the available implementations for common data sources, such as GA4GH Variants API, GA4GH Annotations API, or VCF. Sample adapter is provided as an example and a starting point for a custom implementation.
For WildFly, start the server:
$JBOSS_HOME/bin/standalone.sh
And deploy the WAR file:
cp beacon-java-rest/target/beacon-java-rest.war $JBOSS_HOME/standalone/deployments/
By default, the application will be running on http://localhost:8080/beacon-java. Endpoints provided:
http://localhost:8080/beacon-java - information about your beacon
http://localhost:8080/beacon-java/query - access to query service