Interledger ledger adaptor for ledgers using a REST API.
Currently adheres to the API of the Five Bells Ledger with a view to support for the Common REST API when it is released.
The project is setup to find project dependencies in the same directory so the easiest way to work on the code is to fetch the dependencies as-is from GitHub.
$ git checkout https://github.com/interledger/java-crypto-conditions.git
$ git checkout https://github.com/interledger/java-ilp-core.git
$ git checkout https://github.com/interledger/java-ilp-client.git
The project supports both Gradle and Maven build tools. A special Gradle task is defined which will generate a POM file for Maven.
$ gradle writePom
The project uses Checkstyle for consitency in code style. We use the Google defined Java rules which can be configured for common IDE's by downloading configuration files from the GitHub repo.
The library adheres to the interfaces in the Interledger Protocol Core library. The REST adaptor is instantiated with a RestTemplateBuilder and the base URL of the ledger.
//TODO Code sample
The authentication details of the user can be set directly on the RestTemplateBuilder
or passed in via setAccountAuthToken(UsernamePasswordAuthenticationToken)
.
When connect()
is called the adaptor will fetch the ledger meta-data and then use the data collected to establish a Websocket connection with the ledger.
[x] Fix Checkstyle issues [x] Add tests [ ] Investigate async HTTP requests [ ] Ensure Websocket reconnects and re-establishes subscriptions
Any contribution is very much appreciated! [![gitter][gitter-image]][gitter-url]
This code is released under the Apache 2.0 License. Please see LICENSE for the full text.