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");
    }
  }
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" ) ; } }
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.