private static boolean isConcreteProducer(Class<?> producerInterface) {
        if (isRootConfigProducerInterface(producerInterface))  return false;

        boolean parentIsConfigInstance = false;
        for (Class<?> ifaceParent : producerInterface.getInterfaces()) {
            if (isConfigInstanceProducer(ifaceParent)) {
                parentIsConfigInstance = true;
            }
        }
        return (ConfigInstance.Producer.class.isAssignableFrom(producerInterface)
                && parentIsConfigInstance
                && !isConfigInstanceProducer(producerInterface));
    }
Compares the config instances and lists any differences that will require service restart.

@param from The previous config.
@param to The new config.
@return An object describing the difference.
config-model/src/main/java/com/yahoo/vespa/model/utils/internal/ReflectionUtil.java