@@ -0,0 +1,1362 @@
+package io.quarkus.smallrye.faulttolerance.runtime.graal;%0A%0Aimport java.lang.reflect.InvocationTargetException;%0Aimport java.lang.reflect.Method;%0Aimport java.util.function.BooleanSupplier;%0A%0Aimport org.graalvm.home.Version;%0A%0Aimport com.oracle.svm.core.annotate.Substitute;%0Aimport com.oracle.svm.core.annotate.TargetClass;%0A%0Apublic class FaultToleranceSubstitutions %7B%0A%7D%0A%0A@TargetClass(className = %22io.smallrye.faulttolerance.DefaultMethodFallbackProvider%22, onlyWith = GraalVM20OrEarlier.class)%0Afinal class Target_io_smallrye_faulttolerance_DefaultMethodFallbackProvider %7B%0A%0A    @TargetClass(className = %22io.smallrye.faulttolerance.ExecutionContextWithInvocationContext%22)%0A    static final class Target_io_smallrye_faulttolerance_ExecutionContextWithInvocationContext %7B%0A%0A    %7D%0A%0A    @Substitute%0A    static Object getFallback(Method fallbackMethod,%0A            Target_io_smallrye_faulttolerance_ExecutionContextWithInvocationContext ctx)%0A            throws IllegalAccessException, InstantiationException, IllegalArgumentException, InvocationTargetException,%0A            Throwable %7B%0A        throw new RuntimeException(%22Not supported in native image when using GraalVM releases prior to 21.0.0%22);%0A    %7D%0A%0A%7D%0A%0Aclass GraalVM20OrEarlier implements BooleanSupplier %7B%0A%0A    @Override%0A    public boolean getAsBoolean() %7B%0A        return Version.getCurrent().compareTo(21) %3C 0;%0A    %7D%0A%7D%0A

Substitute DefaultMethodFallbackProvider in GraalVM < 21.0