code: public synchronized ObjectName register(Object obj) throws JMException {
  		if (mbeanServer == null) {
  			throw new JMException("JmxServer has not be started");
  		}
  		ObjectName objectName = ObjectNameUtil.makeObjectName(obj);
  		ReflectionMbean mbean;
  		try {
  			mbean = new ReflectionMbean(obj, getObjectDescription(obj));
  		} catch (Exception e) {
  			throw createJmException("Could not build MBean object for: " + obj, e);
  		}
  		doRegister(objectName, mbean);
  		return objectName;
  	}
docs: Register the object parameter for exposure with JMX. The object passed in must have a {@link JmxResource}
  annotation or must implement {@link JmxSelfNaming}.