presto-phoenix/src/main/java/io/prestosql/plugin/phoenix/PhoenixConnectorFactory.java/PhoenixConnectorFactory/create
class PhoenixConnectorFactory:    @Override
    public Connector create(String catalogName, Map<String, String> requiredConfig, ConnectorContext context)
    {
        requireNonNull(requiredConfig, "requiredConfig is null");

        try (ThreadContextClassLoader ignored = new ThreadContextClassLoader(classLoader)) {
            Bootstrap app = new Bootstrap(
                    new JsonModule(),
                    new MBeanServerModule(),
                    new MBeanModule(),
                    new PhoenixClientModule(context.getTypeManager(), catalogName));

            Injector injector = app
                    .strictConfig()
                    .doNotInitializeLogging()
                    .setRequiredConfigurationProperties(requiredConfig)
                    .initialize();

            LifeCycleManager lifeCycleManager = injector.getInstance(LifeCycleManager.class);
            PhoenixMetadata metadata = injector.getInstance(PhoenixMetadata.class);
            ConnectorSplitManager splitManager = injector.getInstance(ConnectorSplitManager.class);
            ConnectorRecordSetProvider recordSetProvider = injector.getInstance(ConnectorRecordSetProvider.class);
            ConnectorPageSinkProvider pageSinkProvider = injector.getInstance(ConnectorPageSinkProvider.class);
            PhoenixTableProperties tableProperties = injector.getInstance(PhoenixTableProperties.class);
            PhoenixColumnProperties columnProperties = injector.getInstance(PhoenixColumnProperties.class);

            return new PhoenixConnector(
                    lifeCycleManager,
                    new ClassLoaderSafeConnectorMetadata(metadata, classLoader),
                    new ClassLoaderSafeConnectorSplitManager(splitManager, classLoader),
                    recordSetProvider,
                    new ClassLoaderSafeConnectorPageSinkProvider(pageSinkProvider, classLoader),
                    tableProperties,
                    columnProperties);
        }
    }