The BD-J platform development project is now hosted at
https://launchpad.net/bdj.
The method "readBDJO" (trunk/src/bdjo/BDJOReader.cpp) and its dependencies need to be ported from java to C++. I've already renamed all the file extensions. The conversion from and to XML is irrelevant. Have a look at the method names in "AppsDatabaseHelper.c" and you will see why.
The native code first needs to parse the index.bdmv to obtain the FirstPlaybackmobjidref (name of a BD-J object in the BDJO/ directory) and then parse the identified *.bdjo file.
At the moment the data from the 07777.bdjo is hardcoded in the methods of "AppsDatabaseHelper.c" so other applications from other Blu-Rays won't work. Furthermore the AppCacheInfo section of this BD-J object contains a list files which have to be loaded into the local cache (which i called "/tmp/BDJRoot/") for fast access. Currently these files have to be copied manually. So you see how important it is to read these BD-J objects properly.
Reading the index.bdmv is not a problem.