Skip to content

mcupak/beacon-java

Repository files navigation

Beacon Implementation Build Status GitHub license

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.

Structure

The setup is split into the following modules:

Building

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

Adding data

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.

Running

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