code: public synchronized void register(Object obj, ObjectName objectName, String description,
  			JmxAttributeFieldInfo[] attributeFieldInfos, JmxAttributeMethodInfo[] attributeMethodInfos,
  			JmxOperationInfo[] operationInfos) throws JMException {
  		if (mbeanServer == null) {
  			throw new JMException("JmxServer has not be started");
  		}
  		ReflectionMbean mbean;
  		try {
  			mbean = new ReflectionMbean(obj, description, attributeFieldInfos, attributeMethodInfos, operationInfos,
  					false);
  		} catch (Exception e) {
  			throw createJmException("Could not build MBean object for: " + obj, e);
  		}
  		doRegister(objectName, mbean);
  	}
docs: Register the object parameter for exposure with JMX with user defined field-attribute, method-attribute, and
  operation information.
  
  @param obj
  Object that we are registering.
  @param objectName
  Name of the object most likely generated by one of the methods from the {@link ObjectNameUtil} class.
  @param description
  Optional description of the object for jconsole debug output. Default is "Information about class".
  @param attributeFieldInfos
  Array of attribute information for fields that are exposed through reflection. Can be null if none.
  @param attributeMethodInfos
  Array of attribute information for fields that are exposed through get/set/is methods.
  @param operationInfos
  Array of operation information for methods.