CamelBeanBuildItem configureLanguage()

in extensions/joor/deployment/src/main/java/org/apache/camel/quarkus/component/joor/deployment/JoorProcessor.java [157:198]


    CamelBeanBuildItem configureLanguage(
            JoorExpressionConfig config,
            JoorExpressionRecorder recorder,
            CamelContextBuildItem context,
            ExpressionExtractionResultBuildItem result,
            List<JoorExpressionSourceBuildItem> sources) {

        if (result.isSuccess() && !sources.isEmpty()) {
            final RuntimeValue<JoorExpressionCompiler.Builder> expressionCompilerBuilder = recorder
                    .expressionCompilerBuilder();
            final RuntimeValue<JoorExpressionScriptingCompiler.Builder> expressionScriptingCompilerBuilder = recorder
                    .expressionScriptingCompilerBuilder();

            RuntimeValue<CamelContext> camelContext = context.getCamelContext();
            for (JoorExpressionSourceBuildItem source : sources) {
                if (source.isScript()) {
                    recorder.addScript(
                            expressionScriptingCompilerBuilder,
                            camelContext,
                            source.getId(),
                            source.getClassName());
                } else {
                    recorder.addExpression(
                            expressionCompilerBuilder,
                            camelContext,
                            source.getId(),
                            source.getClassName());
                }
            }
            final RuntimeValue<JoorLanguage> language = recorder.languageNewInstance(config, expressionCompilerBuilder,
                    expressionScriptingCompilerBuilder);

            if (config.resultType.isPresent()) {
                recorder.setResultType(
                        language,
                        config.resultType.get());
            }

            return new CamelBeanBuildItem("joor", JoorLanguage.class.getName(), language);
        }
        return null;
    }