Skip to main content

Eamonn McManus

Eamonn McManus is the technical lead of the JavaFX Authoring Tool team at Oracle Corporation. Before that, he was the tech lead of the JMX team, and headed the technical work on JSR 255 (JMX API 2.0) and JSR 262 (Web Services Connector for JMX Agents). In a previous life, he worked at the Open Software Foundation's Research Institute on the Mach microkernel and countless other things, including a TCP/IP stack written in Java. In an even previouser life, he worked on modem firmware in Z80 assembler. He is Irish, but lives and works in France and in French. His first name is pronounced Aymun (more or less) and is correctly written with an acute accent on the first letter, which however he long ago despaired of getting intact through computer systems.


emcmanus's blog

Build your own interface - dynamic code generation

Posted by emcmanus on October 18, 2006 at 6:26 AM PDT

Sometimes static code isn't enough and you need to build code dynamically, at run time. That's usually a hefty proposition, but if the code you need to build is just an interface, it's actually relatively simple. Here are some of the reasons you might want to build interfaces at run time and how you might go about it.

Authentication and Authorization in JMX RMI connectors

Posted by emcmanus on September 27, 2006 at 1:02 AM PDT

This is the title of an excellent new blog entry from my teammate Luis-Miguel Alventosa. It's an exhaustive description of the principal options that are open to you to configure the security of RMI connectors for JMX agents.

MXBeans article on

Posted by emcmanus on September 8, 2006 at 6:59 AM PDT

I'm on the front page of with an article derived from my blog entries on MXBeans. Janice Heiss helped me reformat these entries (two blog entries plus an extended blog comment) into the article you see today.

How much does it cost to monitor an app with jconsole?

Posted by emcmanus on July 21, 2006 at 8:39 AM PDT

Recently I've seen several people ask what the cost of enabling
JMX monitoring on an application is. If I run with and connect
jconsole, how much will that affect the performance of my app?
Here are the results of some highly unscientific

Unit testing remote access to JMX MBeans

Posted by emcmanus on July 7, 2006 at 2:28 AM PDT

I often want to test that my MBeans work correctly when accessed remotely. For example it's easy to accidentally introduce non-serializable objects in them. It's a pain to set up a real remote connection, but you can make a loopback connection in the same JVM to test most of the same things. Here's how.

Creating type-safe MBean proxies

Posted by emcmanus on July 6, 2006 at 10:04 AM PDT

MBean proxies allow you to access an MBean through a Java
interface, writing proxy.getFoo() instead of
mbeanServer.getAttribute(name, "Foo"). But when you create a
proxy, there is no check that the MBean actually matches the
interface you specify, or even that the MBean exists. Why is
that, and what can you do about it?

Inter-MXBean references

Posted by emcmanus on June 21, 2006 at 8:50 AM PDT

MXBeans include a way to handle inter-MBean references
conveniently. You can use this to build an MBean hierarchy that
is simple to navigate.

Using annotation processors to save method parameter names

Posted by emcmanus on June 13, 2006 at 8:41 AM PDT

The Java compiler doesn't save parameter names in the class files it generates. This is a problem for Standard MBeans, because we'd like to show those names in management clients.

Adding Descriptors to MBeans in Tiger

Posted by emcmanus on June 8, 2006 at 9:34 AM PDT

Mustang (Java SE 6) includes the ability to give additional
information about MBeans to management clients via
Descriptors, as I described href="">previously.
But what if you are not yet able to migrate to the Mustang

Going beyond JDK 5.0's out-of-the-box management

Posted by emcmanus on June 5, 2006 at 7:28 AM PDT

JDK 5.0 allows you to make an application monitorable without
writing any extra code, using command-line properties such as But what if the behaviour
obtained using these properties isn't exactly what you want?