@Override
    public Action get() {
        return BeanSupplier.of(Action.class)
            .ifExists(properties.getWebflow().getGroovy().getActions().get(id))
            .when(CasRuntimeHintsRegistrar.notInNativeImage())
            .when(ExecutableCompiledScriptFactory.findExecutableCompiledScriptFactory().isPresent())
            .and(condition.given(applicationContext.getEnvironment()))
            .supply(Unchecked.supplier(() -> {
                val script = properties.getWebflow().getGroovy().getActions().get(id);
                LOGGER.debug("Locating action Groovy script from [{}] for id [{}]", script, id);
                val resource = ResourceUtils.getRawResourceFrom(script);
                val scriptFactory = ExecutableCompiledScriptFactory.getExecutableCompiledScriptFactory();
                val watchableResource = scriptFactory.fromResource(resource);
                return new GroovyScriptWebflowAction(watchableResource, properties);
            }))
            .otherwise(action)
            .get();
    }
This is {@link WebflowActionBeanSupplier}.

@author Misagh Moayyed
@since 6.6.0
core/cas-server-core-webflow-api/src/main/java/org/apereo/cas/web/flow/actions/WebflowActionBeanSupplier.java