@Override
    protected ExecuteContext doAfter(ExecuteContext context) {
        final Class<?> type = (Class<?>) context.getMemberFieldValue("type");
        if (type == null) {
            return context;
        }
        if (canInjectClusterInvoker(type.getName()) && isDefined.compareAndSet(false, true)) {
            if (!(context.getResult() instanceof Map)) {
                return context;
            }
            final Map<String, Class<?>> classes = (Map<String, Class<?>>) context.getResult();
            final String retryClusterInvoker = flowControlConfig.getRetryClusterInvoker();
            if (classes.get(retryClusterInvoker) != null) {
                return context;
            }
            final Optional<Class<?>> retryInvokerClass;
            final ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
            if (APACHE_DUBBO_CLUSTER_CLASS_NAME.equals(type.getName())) {
                ClassUtils.defineClass(
                        "io.sermant.flowcontrol.retry.cluster.ApacheDubboClusterInvoker", contextClassLoader);
                retryInvokerClass = ClassUtils.defineClass(
                        "io.sermant.flowcontrol.retry.cluster.ApacheDubboCluster", contextClassLoader);
            } else if (ALIBABA_DUBBO_CLUSTER_CLASS_NAME.equals(type.getName())) {
                ClassUtils.defineClass(
                        "io.sermant.flowcontrol.retry.cluster.AlibabaDubboClusterInvoker", contextClassLoader);
                retryInvokerClass = ClassUtils.defineClass(
                        "io.sermant.flowcontrol.retry.cluster.AlibabaDubboCluster", contextClassLoader);
            } else {
                return context;
            }
            retryInvokerClass.ifPresent(invokerClass -> classes.put(retryClusterInvoker, invokerClass));
            ClusterInvokerCreator.INSTANCE.getClusterInvokerMap().putAll(classes);
        }
        return context;
    }
@Test
    public void testApacheDubbo() throws NoSuchMethodException {
        final ExtensionLoaderInterceptor interceptor = new ExtensionLoaderInterceptor();
        final HashMap<String, Class<?>> result = new HashMap<>();
        interceptor.doAfter(buildContext(true, result));
        Assert.assertEquals(result.get(flowControlConfig.getRetryClusterInvoker()), ApacheDubboCluster.class);
    }