Hi Chris, et al.,
There are definitely nods to cryptocurrency and specifically Bitcoin and
bitcoinj in the spec.
I've looked through the repos and communicated with Werner Keil (one of
the JSR "experts") about it. Here's what I've found so far.
1. Two main projects, the API (javax.money:money-api jar/artifact) and
RI (Reference Implementation, org.javamoney:moneta jar/artifact) The API
has a JSR license, the RI is Apache licensed. The Spec and API (and RI?)
are currently slated to be released as part of Java 9. The API and RI
implementations are built for Java 8 and later.
2. Example code for a BitcoinProvider that implements their
CurrencyProviderSpi (for adding a Bitcoin CurrencyUnit). As far as I can
tell this code only exists in a source code block in the User Guide, here:
https://github.com/JavaMoney/jsr354-ri/blob/master/src/main/asciidoc/userguide.adoc#214-registering-additional-currency-units
3. They have a Java Money Shelter project that is a "sandbox or
'sanctuary' for new ideas and modules" and are eager to have
contributors there:
https://github.com/JavaMoney/javamoney-shelter
4. In the Shelter project they have two Bitcoin ExchangeRateProvider
classes one for Mt. Gox (LOL!) and one for the Bitcoin.de service. (I'm
not familiar with the Bitcoin.de service or the status of the
ExchangeRateProvider class.) The source code is here:
https://github.com/msgilligan/javamoney-shelter/tree/master/digital-currency/bitcoin/src/main/java/org/javamoney/shelter/bitcoin/provider
Given the Java 8 dependency, I'm not sure how useful this stuff will be
for Android at the current time. I'm currently working on designing some
coin/currency JVM classes for the Omni Protocol (formerly Mastercoin)
which supports smart properties (aka user currencies) and am also
building on top of bitcoinj (using Address class, etc) and would like
the classes I'm building to be useful in Android wallets.
So it seems the right near-term approach for Omni Protocol (and perhaps
future versions of bitcoinj that support Java 6/7) are to have
coin/currency classes that can be easily mapped, extended, or wrapped to
work with JavaMoney.
I'll post an update if and when I have any further information.
Cheers,
Sean