Skip to content

Releases: bitpay/java-bitpay-client

v10.1.0

09 Sep 21:55
f57f44f
Compare
Choose a tag to compare

Overview

This is a minor update that adds support for a new optional header called X-BitPay-Platform-Info that will be used in BitPay plugins to show both the SDK version and plugin version.

What's Changed

  • Add X-BitPay-Platform-Info header
  • Bump version to 10.1.0

Full Changelog: v10.0.4...v10.1.0

v10.0.4

17 Jul 22:17
c533d0d
Compare
Choose a tag to compare

Overview

This is a patch release that contains:

  • Dependency updates
  • GitHub Action updates
  • Javadoc cleanup

What's Changed

  • Update maven-surefire-plugin to 3.3.0
  • Bugfix: Change exec-maven-plugin to 3.3.0 (3.6.0 does not exist)
  • Update httpcore5 to 5.2.5
  • Update jackson-annotations to 2.17.2
  • Update jackson-datatype-jsr310 to 2.17.2
  • Update junit-jupiter-engine to 5.10.3
  • Update byte-buddy to 1.14.18
  • Update actions/checkout to v4
  • Update actions/setup-java to v4
  • Clean up warnings in Javadoc
  • Bump version to 10.0.4

Full Changelog: v10.0.3...v10.0.4

v10.0.3

01 Jul 22:53
14dfd84
Compare
Choose a tag to compare

Overview

This is a patch release that updates dependencies.

What's Changed

  • Update slf4j dependencies to 2.0.13
  • Update jackson dependencies to 2.17.1
  • Update org.apache.maven.plugins:maven-source-plugin to 3.3.1
  • Update org.apache.maven.plugins:maven-javadoc-plugin to 3.7.0
  • Update org.apache.maven.plugins:maven-gpg-plugin to 3.2.4
  • Update org.jacoco:jacoco-maven-plugin to 0.8.12
  • Update org.apache.maven.plugins:maven-checkstyle-plugin to 3.4.0
  • Update org.codehaus.mojo:build-helper-maven-plugin to 3.6.0
  • Update org.codehaus.mojo:exec-maven-plugin to 3.6.0
  • Update org.apache.httpcomponents.client5:httpclient5 to 5.2.3
  • Update org.apache.httpcomponents.core5:httpcore5 to 5.2.4
  • Update net.bytebuddy:byte-buddy to 1.14.17
  • Update commons-io:commons-io to 2.16.1
  • Bump version to 10.0.3

Full Changelog: v10.0.2...v10.0.3

v10.0.2

10 May 15:03
Compare
Choose a tag to compare

Overview

This is a patch release that addresses a type issue with satoshisPerByte where it was defined as an int but is coming back from the API as a float. We've also updated the examples to remove .value on the facade as it's not necessary.

What's Changed

  • Fix satoshisPerByte

Full Changelog: v10.0.1...v10.0.2

v10.0.1

30 Apr 21:59
376671e
Compare
Choose a tag to compare

Overview

This is a patch version that bumps version dependencies.

What's Changed

  • Bump org.codehaus.mojo:exec-maven-plugin from 3.1.0 to 3.2.0
  • Bump jackson.version from 2.16.1 to 2.17.0
  • Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.5.0 to 3.6.3
  • Bump com.fasterxml.jackson.core:jackson-annotations from 2.15.2 to 2.17.0
  • Bump org.junit.jupiter:junit-jupiter-engine from 5.9.2 to 5.10.2
  • Bump to version 10.0.1

Full Changelog: v10.0.0...v10.0.1

v10.0.0

09 Mar 21:09
Compare
Choose a tag to compare

Overview

Note: ⚠️ denotes breaking changes

This is a major version that provides numerous enhancements, such as:

  • Support for Java 21
  • Examples in the codebase
  • ⚠️ More consistent exceptions
  • ⚠️ Better integration with custom loggers
  • ⚠️ General improvements to align with the API

Java 21 Support

We are now running tests against Java 8, 11, 17, and 21. Mockito 4.x is implemented for Java 21.

Examples in the Codebase

There are new examples in the codebase to show how the SDK can be used for various scenarios:

  • Logging
    • Using a custom logger with the SDK
  • Bills (Merchant Facade)
    • Creating a bill
    • Getting a bill
    • Updating a bill
    • Delivering a bill via email
  • Invoices (Merchant Facade)
    • Creating an invoice
    • Getting an invoice
    • Updating an invoice
    • Canceling an invoice
    • Requesting an invoice notification
  • Ledgers (Merchant Facade)
    • Getting ledgers
    • Getting ledger entries
  • Refunds (Merchant Facade)
    • Creating a refund
    • Updating a refund
    • Getting a refund
    • Canceling a refund
    • Request a refund notification to be resent
  • Settlements (Merchant Facade)
    • Getting a settlement reconciliation report
  • Payouts (Payout Facade)
    • Creating a payout
    • Getting a payout
    • Canceling a payout
    • Requesting a payout webhook to be resent
    • Requesting payout notifications
  • Recipients (Payout Facade)
    • Invite payout recipients
    • Get payout recipients
    • Update payout recipients
    • Remove payout recipients
  • Bills (POS Facade)
    • Creating a bill
    • Getting a bill
    • Delivering a bill
  • Invoices (POS Facade)
    • Creating an invoice
    • Getting an invoice
  • Rates (Public Facade)
    • Get rates for a cryptocurrency
    • Get cryptocurrency / fiat currency pair rates
  • Wallets (Public Facade)
    • Get supported wallets

⚠️ More Consistent Exceptions

We have removed the old exception classes that added a tremendous amount of duplication across the SDK in favor of parsing the errors from the API. This makes the SDK less opinionated and relies on the API to inform consumers what happened, providing more consistency between the SDK and API. The result is that response messages and codes in exceptions thrown by the SDK will be 1:1 with API.

⚠️ Better Integration with Custom Loggers

You can now use your own logging framework using the new logger provider, giving more control over how logs are handled.

⚠️ General Improvements

  • Updated field types where they were misaligned with the API
  • Added fields to the SDK that were missing
  • Removed fields that are no longer in the API

Full Changelog: v9.0.2...10.0.0

v9.0.2

03 Aug 00:16
Compare
Choose a tag to compare

Overview

This is a minor version that bumps version dependencies.

What's Changed

  • Bump maven-javadoc-plugin from 2.9.1 to 3.5.0
  • Bump jackson-annotations from 2.14.2 to 2.15.2
  • SP-619 Automatically generate documentation on push to master
  • Bump maven-gpg-plugin from 1.5 to 3.1.0

Full Changelog: v9.0.1...v9.0.2

v9.0.1

27 Jun 14:14
Compare
Choose a tag to compare

Overview

There's no functional difference between v9.0.0 and v9.0.1, this release just updates the BITPAY_PLUGIN_INFO to remove the beta designation from the header.

v9.0.0

27 Jun 13:57
Compare
Choose a tag to compare

Overview

We are releasing the next major version of the Java SDK - version 9.0.0.

Note: Version 9.x of the SDK has aspects that are not backward compatible with 8.x. We are detailing the differences in our documentation.

Highlights

Client Class Breakdown

The Client class was very large, at over 2,000 lines. To make this easier to work on and more testable, we have:

  • Implemented a facade for the client
  • Create a class to handle generic REST GET, PUT, POST, and DELETE
  • Created separate classes for each resource, providing a better representation of the API
  • Add unit and integration tests for new client classes

Implement POS Facade

Prior to version 9.0.0, we had two separate SDKs, the "Light" SDK, which could only use the POS facade, and the "Full" SDK, which used the merchant and payout facades. This created the need for additional effort both in maintaining and implementing the SDK.

As of version 9.0.0, the SDK supports both methods. You can use just the POS facade, which is limited in feature set but does not require signed requests (no private key to manage) or with the merchant/payout facade, which has more functionality but is more complex to implement.

This provides an easier upgrade path and reduces the duplicate work of maintaining two separate SDKs regarding dependency upgrades, bug fixes, etc.

Functional Test Suite

A functional test suite has been added to the codebase that will run against the test API. Due to there being so many outside variables from external resources, this does not run in the GitHub Actions pipeline.

Other Notes

  • Added missing fields to models
  • Updated DocBlocks to use new documentation site
  • Improved client creation to use a singleton pattern, to prevent unnecessary re-instantiation
  • General cleanup, added additional missing fields, added links to documentation
  • Added a setup script that's easy to use from Maven

Bug Fixes

  • Add "Request a webhook to be resent"
  • Add "Retrieve an event token"
  • Add "Retrieve all the rates for a given cryptocurrency"
  • Add "Retrieve the rates for a cryptocurrency / fiat pair"
  • Add refundRequestEid to Refund

v9.0.0-beta2

21 Apr 15:41
73ffc22
Compare
Choose a tag to compare
v9.0.0-beta2 Pre-release
Pre-release

Overview

We were nearing a release of our next major version of the Java SDK - version 9.0.0. This is the second beta, and includes additional improvements and changes over the first.

What's Changed Since beta1

  • Remove docs/ directory from repo since we now use https://developer.bitpay.com
  • Added missing fields to models
  • Update DocBlocks to use new documentation site
  • Improved client creation to use a singleton pattern, to prevent unnecessary re-instantiation
  • General cleanup, added additional missing fields, added links to documentation

Full Changelog: v9.0.0-beta1...v9.0.0-beta2

Version 9.0.0 Highlights

Client Class Breakdown

The Client class was very large, at over 2,000 lines. To make this easier to work on and more testable, we have:

  • Implemented a facade for the client
  • Create a class to handle generic REST GET, PUT, POST, and DELETE
  • Created separate classes for each resource, providing a better representation of the API
  • Updated BitPaySetup class so that configuration and keys can be generated
  • Add unit and integration tests for new client classes

Implement POS Facade

Prior to version 9.0.0, we had two separate SDKs, the "Light" SDK, which could only use the POS facade, and the "Full" SDK, which used the merchant and payout facades. This created the need for additional effort both in maintaining and implementing the SDK.

As of version 9.0.0, the SDK supports both methods. You can use just the POS facade, which is limited in feature set but does not require signed requests (no private key to manage) or with the merchant/payout facade, which has more functionality but is more complex to implement.

This provides an easier upgrade path and reduces the duplicate work of maintaining two separate SDKs regarding dependency upgrades, bug fixes, etc.

Functional Test Suite

A functional test suite has been added to the codebase that will run against the test API. Due to there being so many outside variables from external resources, this does not run in the GitHub Actions pipeline.