* Deprecate PeerDataEventListener (aggregate of 4 listeners)
* Remove long-deprecated AbstractPeerDataEventListener (4 no-op listeners)
* Add BlockchainDownloadEventListener (aggregate of 2 listeners)
* PeerGroup: replace PeerDataEventListener with BlockchainDownloadEventListener (BREAKING!)
* DownloadProgressTracker: implement BlockchainDownloadEventListener instead of AbstractPeerDataEventListener
This is a breaking change and may require simple, one-line changes to consumers. However, it removes the
long-deprecated AbstractPeerDataEventListener and simplifies the listeners for blockchain downloading.
After another release the deprecated PeerDataEventListener can be removed.
This constructor was used in HDUtils methods that were removed in the previous
commit. The .M(list) and .m(list) factory methods should be used instead.
Also add a mild warning to the (boolean, List) constructor.
* Add `Wallet.loadFromFile` that takes options needed by WalletTool
* Add `Wallet.loadFromFileStream` that supports the extra options
* Update `WalletTool` to use the new `loadFromFile` method
This is a minor breaking change. If anyone is calling `setWalletFactory(null)` they
will need to replace it with `setWalletFactory(WalletProtobufSerializer.WalletFactory.DEFAULT)`.
A `checkNotNull` makes sure anyone doing this should discover the problem as early
as possible.
This makes the default implementation more obvious and easier to
reference. It will also will help us make the WalletFactory member
of WalletAppKit `@Nonnull` in a dependent PR.
* Fix a comment that said `not-null` where it should have said `null`
* Further clarify that same comment
* Rename lambda parameter from `val` to `value`
* Convert the declared type of `getDataFutures` to `Queue` - we do not
need random access, so `Queue` is better interface to use for this data structure.
* Convert the implementing class to `ConcurrentLinkedQueue` this provides
the concurrency we need and is theoretically/likely more efficient than
`CopyOnWriteArrayList`.
This is a breaking change, but the existing code is not using futures properly and
fixing this is worth the breakage.
* Instead of returning `null`, return a failed future
* Instead of throwing errors, return failed futures