private static ExpressionFactory resolveViaClassLoaderOrTCCL(ClassLoader classLoader) {
        ExpressionFactory answer;

        ClassLoader tccl = Thread.currentThread().getContextClassLoader();
        try {
            ClassLoader newTccl = classLoader == null ? tccl : classLoader;
            Thread.currentThread().setContextClassLoader(newTccl);

            answer = newInstance();
        } catch (ClassCastException ex) {
            throw new IllegalStateException("Failed to resolve ExpressionFactory, " + ex.getMessage(), ex);
        } finally {
            Thread.currentThread().setContextClassLoader(tccl);
        }

        return answer;
    }
Constructs a {@link ExpressionFactory} via {@link Thread#getContextClassLoader() Thread.currentThread().getContextClassLoader()}
or the provided {@link ClassLoader}

@param classLoader class loader to resolve {@link ExpressionFactory}
@return {@link ExpressionFactory} instance
@throws IllegalStateException if jakarta.el is not on the class path or a {@link ExpressionFactory} instance could not be constructed
core/src/main/java/com/github/dozermapper/core/el/ELExpressionFactory.java