The 2.2 release of web3j has just come out and contains some great enhancements!

Querying the Blockchain

web3j now makes it really simple to query historical data from the Ethereum blockchain (and of course, Quorum). Its API has been enhanced, allowing you to provide a range of blocks to replay, and it will play them back to you.

I was able to replay the entire Ropsten blockchain excluding transactions (941667 blocks) in 7m22s. All transactions could be replayed in 41m16s on a 2013 Macbook Pro. Just make sure you use IPC to connect to your Ethereum node.

If you'd like a more complete example, the following code will provide details of all historic and future transfers of Ether (displayed in Wei) for the provided account:

Smart Contract Verification

Smart contract wrappers now include an isValid() method to verify that the deployed bytecode at the smart contract's address matches that of the smart contract wrapper.

Long Parameter Values Added to Solidity Integer Types

All of the Uint and Int Solidity types now support construction with long values, instead of only BigIntegers as was previously the case. DefaultBlockParameterNumber's also now accept long values.

Async Changes

Behind the scenes in the smart contract wrappers, web3j now performs synchronous requests with Ethereum clients. This is to reduce the overhead that CompletableFutures were placing on the JVM thread pool. Completable futures are now only used in the client API for smart contract wrappers.