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