public static Map<String, Object> configureProperties(final PropertyResolver resolver,
            final Description description,
            final Object object, PropertyScope defaultScope) {
        Map<String, Object> inputConfig = mapDescribedProperties(resolver, description, defaultScope);
        if (object instanceof Configurable) {
            Configurable configObject = (Configurable) object;
            Properties configuration = new Properties();
            configuration.putAll(inputConfig);
            try {
                configObject.configure(configuration);
            } catch (ConfigurationException e) {

            }
        } else {
            inputConfig = configureObjectFieldsWithProperties(object, description.getProperties(), inputConfig);
        }
        return inputConfig;
    }
public static Map < String , Object > configureProperties ( final PropertyResolver resolver , final Description description , final Object object , PropertyScope defaultScope ) { Map < String , Object > inputConfig = mapDescribedProperties ( resolver , description , defaultScope ) ; if ( object instanceof Configurable ) { Configurable configObject = ( Configurable ) object ; Properties configuration = new Properties ( ) ; configuration . putAll ( inputConfig ) ; try { configObject . configure ( configuration ) ; } catch ( ConfigurationException e ) { } } else { inputConfig = configureObjectFieldsWithProperties ( object , description . getProperties ( ) , inputConfig ) ; } return inputConfig ; }
Set field values on a plugin object by using a Description, and setting field values to resolved property values.
Any resolved properties that are not mapped to a field will  be included in the return result.

@param resolver the property resolver
@param description the property descriptions
@param object the target object, which can implement {@link Configurable}, otherwise introspection will be used
@param defaultScope a default property scope to assume for unspecified properties

@return Map of resolved properties that were not configured in the object's fields