code: private void loadCustomJMXAttributeProcessor(final Props props) {
      final String jmxAttributeEmitter =
          props.get(CUSTOM_JMX_ATTRIBUTE_PROCESSOR_PROPERTY);
      if (jmxAttributeEmitter != null) {
        try {
          logger.info("jmxAttributeEmitter: " + jmxAttributeEmitter);
          final Constructor<Props>[] constructors =
              (Constructor<Props>[]) Class.forName(jmxAttributeEmitter).getConstructors();
  
          constructors[0].newInstance(props.toProperties());
        } catch (final Exception e) {
          logger.error("Encountered error while loading and instantiating "
              + jmxAttributeEmitter, e);
          throw new IllegalStateException(
              "Encountered error while loading and instantiating "
                  + jmxAttributeEmitter, e);
        }
      } else {
        logger.info("No value for property: "
            + CUSTOM_JMX_ATTRIBUTE_PROCESSOR_PROPERTY + " was found");
      }
    }
docs: Load a custom class, which is provided by a configuration CUSTOM_JMX_ATTRIBUTE_PROCESSOR_PROPERTY.
  
  This method will try to instantiate an instance of this custom class and with given properties
  as the argument in the constructor.
  
  Basically the custom class must have a constructor that takes an argument with type
  Properties.