public static<BUILDER extends ConfigBuilder> void setValues(BUILDER destination, BUILDER source) {
        try {
            Method setter = destination.getClass().getDeclaredMethod("override", destination.getClass());
            setter.setAccessible(true);
            setter.invoke(destination, source);
            setter.setAccessible(false);
        } catch (Exception e) {
            throw new ConfigurationRuntimeException("Could not set values on config builder." +
                                                    destination.getClass().getName(), e);
        }
    }
Copies all values that have been explicitly set on the source to the destination.
Values that have not been explicitly set in the source builder, will be left unchanged
in the destination.

@param destination the builder to copy values into
@param source the builder to copy values from. Unset values are not copied
@param <BUILDER> the builder class
config/src/main/java/com/yahoo/config/subscription/ConfigInstanceUtil.java