I'm still visiting the Quality team in Bangalore, and want to share some more observations about life here. A significant portion of the Java SE quality team, sustaining engineering and even development engineering teams are located here in Bangalore. It seems to me worthwhile to talk about life here so that you who use Java can see a little about where those of us who create Java live....
It was just a simple matter of programming...
Currently heap dump shapshots from Java applications take various forms, and the most common one has been the HPROF binary or textual formats. It's about time we create a more formal heap dump format, with a real specification.
Sun is a global company, and we have engineering centers all over the world. One of the biggest of these is in Bangalore, and the Java SE team has a lot of people here. I'm visiting here this week and next to meet with and work with some of my colleagues here.
In some ways Bangalore couldn't be more inconveniently located for collaboration with a team based in California. India is basically 12...
Many members of the JDK Community are active bloggers, but there hasn't
been one place where you can go to find their blogs—until now.
Ron Bodkin has written an excellent, detailed
article about using the
Inspector project. This combines AspectJ and JMX
technologies to add monitoring to applications in a clean and
This blog gives an overview of Actions, why you might use them, and
covers a bit of the changes to Actions in 1.6.
Sun is asking the developer community to help attack the new
bytecode verifier in Mustang. Here's some background on how
and why the community can help here.
After complaining about shortcomings in the Java JDK for some
time I took the opportunity to actually try to fix one of the problems
is encountered and send a patch to Sun. Looking back I have to give
kudos to Sun how relatively easy it is to become a contributor and that
they really want to keep the developers in the loop not like in the
"good old" days where submitting a bug report meant that I just
disappeared in a black hole and if you were lucky it reappeared later.
Descriptors allow you to give additional information about
MBeans to management clients. For example, a Descriptor on an
MBean attribute might say what units it is measured in, or what
its minimum and maximum possible values are. As of Mustang
(Java SE 6), Descriptors are a basic part of the JMX API and are
available in all types of MBeans. Here's the easiest way to
You too can leap tall builds in a single bounded thread, be faster than a speeding html bullet item, and yes, even build JDK 6.0.
When tracking out of memory errors or just trying to understand why your application uses so much memory, heap dump snapshots can help.
The Tiger JDK introduced a nifty feature whereby you could run an application with -Dcom.sun.management.jmxremote and then later connect to it using the jconsole tool. That allows you to see the JVM's instrumentation (memory, classes, threads) plus any JMX instrumentation you've defined yourself. As Alan Bateman describes, with the Mustang JDK you can now attach jconsole to any application, even if it wasn't launched with the magic -Dcom.sun.management.jmxremote incantation.
A comment on my last entry asks why MXBeans aren't OpenMBeans. The answer is that they are; they just don't look as if they are. Therein lies a tale.
It's rare for me to be able to work for a week on something so when I got the opportunity it seemed like the ideal occasion. The internals of the MBean Server really needed work so that's what they got.
Sun has updated its Java Research License (JRL) to address several concerns brought to us by the developer community. This revision better clarifies Sun's intent for the JRL and should help to make the license more agreeable to those who may have had questions about some of its language in the past. These clarifications should not affect any projects currently using the JRL on java.net.
The Java SE sources are downloadable from java.net, and you can
change and extend them within the constraints of the relevant
licenses. But building the whole of Java SE is a major
undertaking. Here's how to build just the JMX API. The same
ideas would apply to building other subsets of Java SE that are
Creation of Virtual Machine agents improved with the new Java Virtual Machine (tm) Tool Interface (JVM TI) in JDK 5.0. If you are curious how VM agents work read on, but beware, native code lurks here.
To enable reasonable support for ease of development for the web services stack JAXB 2.0 and JAX-WS 2.0 are now a part of the JSE 6.0 platform
The consistently excellent Brian Goetz has written a new article in his Java Theory and Practice series entitled "Be a good (event) listener". Since listeners are an important part of the JMX API, here's how his advice applies there.