Thu 1 Jun 2006
So, I committed the first chunk of code for java.lang.management earlier this week. This consisted of basically the easy bits: the operating system bean and the factory method to get an implementation of it. This implementation basically just returns the appropriate properties (e.g. os.name, os.version), and the methods are simply the equivalents of System.getProperty(“os.name”) or whatever. Implementing this, however, does give the package 7.55% in JAPI which is a nice start and makes Classpath look a bit better.
The interesting stuff comes next. I’m probably going to tackle the runtime bean next, which is partly wrapper stuff again, but also partly more interesting stuff. Some of it will require some gcj/gij hacking I think, so I’ve started looking at the code base for that. Any pointers would be welcome.
On flicking through the docs, I noticed that we’ll need some bits from the javax.management stuff (basically the OpenBean types), but these look fairly easy to implement. There’s also a enum lurking around which I didn’t spot before. Luckily, it doesn’t seem to cause much of problem (basically a few methods I guess, in one of the beans) and it can be done on the generics branch.
Speaking of which, that also now has a copy of the management interfaces, as I followed this little bout of hacking with a quick merge. I’m trying to keep these on a weekly basis at the moment, because the whole process is a lot smoother when the code drop is smaller. Most of the problems this time were caused by myself anyway, as I merged the enum serialization stuff back to HEAD, which then tried to come back to the branch in the merge…. I keep trying to move more stuff back to HEAD. The main issue at the moment is that it needs documenting first on the branch (I don’t want to move undocumented code on to HEAD). Someday (basically when gcj gets ecj and generics support I guess), the whole thing will get merged back together, but hopefully I’ll be able to minimise this in the meantime to just the required differences.