presto-atop/src/main/java/io/prestosql/plugin/atop/AtopConnectorFactory.java/AtopConnectorFactory/create
class AtopConnectorFactory:    @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 AtopModule(
                            atopFactoryClass,
                            context.getTypeManager(),
                            context.getNodeManager(),
                            context.getNodeManager().getEnvironment(),
                            catalogName),
                    installModuleIf(
                            AtopConnectorConfig.class,
                            config -> config.getSecurity() == AtopSecurity.NONE,
                            new AllowAllAccessControlModule()),
                    installModuleIf(
                            AtopConnectorConfig.class,
                            config -> config.getSecurity() == AtopSecurity.FILE,
                            binder -> {
                                binder.install(new FileBasedAccessControlModule());
                                binder.install(new JsonModule());
                            }));

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

            return injector.getInstance(AtopConnector.class);
        }
    }