public Connector create()

in paimon-presto-common/src/main/java/org/apache/paimon/presto/PrestoConnectorFactory.java [50:100]


    public Connector create(
            String catalogName, Map<String, String> config, ConnectorContext context) {
        requireNonNull(config, "config is null");

        try {
            Bootstrap app =
                    new Bootstrap(
                            new JsonModule(),
                            new PaimonModule(
                                    catalogName,
                                    context.getTypeManager(),
                                    context.getFunctionMetadataManager(),
                                    context.getStandardFunctionResolution(),
                                    context.getRowExpressionService(),
                                    config));

            Bootstrap bootstrap =
                    app.doNotInitializeLogging().setRequiredConfigurationProperties(config).quiet();
            try {
                // Using reflection to achieve compatibility with different versions of
                // dependencies.
                Method noStrictConfigMethod = Bootstrap.class.getMethod("noStrictConfig");
                noStrictConfigMethod.invoke(bootstrap);
            } catch (java.lang.NoSuchMethodException e) {
                // ignore
            }
            Injector injector = bootstrap.initialize();

            PrestoSessionProperties prestoSessionProperties =
                    injector.getInstance(PrestoSessionProperties.class);
            PrestoTransactionManager prestoTransactionManager =
                    injector.getInstance(PrestoTransactionManager.class);
            PrestoSplitManager prestoSplitManager = injector.getInstance(PrestoSplitManager.class);
            PrestoPageSourceProvider prestoPageSourceProvider =
                    injector.getInstance(PrestoPageSourceProvider.class);
            PrestoMetadata prestoMetadata = injector.getInstance(PrestoMetadata.class);
            PrestoPlanOptimizerProvider prestoPlanOptimizerProvider =
                    injector.getInstance(PrestoPlanOptimizerProvider.class);

            return new PrestoConnector(
                    prestoSessionProperties.getSessionProperties(),
                    prestoTransactionManager,
                    prestoSplitManager,
                    prestoPageSourceProvider,
                    prestoMetadata,
                    Optional.of(prestoPlanOptimizerProvider));
        } catch (Exception e) {
            throwIfUnchecked(e);
            throw new RuntimeException(e);
        }
    }