@Override
    public void registerAttributeRepository(final PersonAttributeDao repository) {
        if (BeanSupplier.isNotProxy(repository)) {
            if (LOGGER.isTraceEnabled()) {
                val name = AopUtils.isAopProxy(repository)
                    ? AopUtils.getTargetClass(repository).getSimpleName()
                    : repository.getClass().getSimpleName();
                LOGGER.trace("Registering attribute repository [{}] into the person directory plan", name);
            }
            attributeRepositoryCustomizers.stream()
                .sorted(Comparator.comparing(PersonDirectoryAttributeRepositoryCustomizer::getOrder))
                .filter(cust -> cust.supports(repository))
                .forEach(cust -> cust.customize(repository));
            attributeRepositories.add(repository);
        }
    }
This is {@link DefaultPersonDirectoryAttributeRepositoryPlan}.

@author Misagh Moayyed
@since 5.3.0
support/cas-server-support-person-directory-core/src/main/java/org/apereo/cas/persondir/DefaultPersonDirectoryAttributeRepositoryPlan.java