@Override
    public void registerHints(final RuntimeHints hints, final ClassLoader classLoader) {
        registerSerializationHints(hints, classLoader, TenantDefinition.class);
        registerReflectionHints(hints, TenantDefinition.class);

        var classes = findSubclassesOf(TenantAuthenticationPolicy.class);
        registerSerializationHints(hints, classLoader, classes);
        registerReflectionHints(hints, classes);

        classes = findSubclassesOf(TenantAuthenticationProtocolPolicy.class);
        registerSerializationHints(hints, classLoader, classes);
        registerReflectionHints(hints, classes);

        classes = findSubclassesOf(TenantUserInterfacePolicy.class);
        registerSerializationHints(hints, classLoader, classes);
        registerReflectionHints(hints, classes);

        classes = findSubclassesOf(TenantDelegatedAuthenticationPolicy.class);
        registerSerializationHints(hints, classLoader, classes);
        registerReflectionHints(hints, classes);
        
        registerReflectionHints(hints, TenantExtractor.class);
        
        registerProxyHints(hints, TenantsManager.class);
        registerSpringProxyHints(hints, TenantsManager.class, DisposableBean.class, InitializingBean.class);
    }
This is {@link CasMultitenancyRuntimeHints}.

@author Misagh Moayyed
@since 7.2.0
core/cas-server-core-multitenancy/src/main/java/org/apereo/cas/nativex/CasMultitenancyRuntimeHints.java