Steps to reproduce:
Download O/S v3.1 finance cordapp here: https://ci-artifactory.corda.r3cev.com/artifactory/corda-releases/net/corda/corda-finance/3.1-corda/corda-finance-3.1-corda.jar
Place into the cordapps directory of a valid node using Corda enterprise GA RC01
Following error is generated:
Looks like it was probably caused by this commit:
So further investigation confirms that some internal code was refactored between Corda 3.1 and Corda Enterprise 3.0 RCs, and hence we see the above errors. Specifically there is a new `PathUtils.kt` class in the core internal package which includes functions previously located in `InternalUtils.kt`.
The bottom line is that our finance CorDapp should not be using internal methods as we make no guarantee these will not change between releases (as has happened here).
Discussion with on Slack:
I'm raising a PR to fix this on ENT this morning (for GA); this will allow OS 3.0 and 3.1 to use the ENT 3.0 GA version of the app. After GA we should make further endeavours to decouple Finance from Core and other modules, especially the internal APIs.
Interestingly, this particular class contains this comment:
It then proceeds to pillage the location of node.conf out of the ServiceHub using Java reflection so that it can read its custom.issuableCurrencies field.
If we had a better solution to this then the only internal APIs left in finance would be:
Yep, I saw that one
Further PRs against OS v3.2 and v3.3 release branches, plus OS master