override fun createRemoteProviderPluginInstance()

in plugin/src/main/kotlin/toolbox/gateway/sample/SamplePlugin.kt [24:45]


  override fun createRemoteProviderPluginInstance(serviceLocator: ServiceLocator): RemoteProvider {
    val logger = serviceLocator.getService(Logger::class.java)
    val coroutineScope = serviceLocator.getService(CoroutineScope::class.java)
    val localizableStringFactory = serviceLocator.getService(LocalizableStringFactory::class.java)

    // Single data source, swap implementation as needed
    val dataSource = createDataSource(logger)

    // Initialized and manages your environments
    val repository = EnvironmentRepository(
      dataSource = dataSource,
      coroutineScope = coroutineScope,
      logger = logger,
      localizableStringFactory = localizableStringFactory
    )

    // Periodically refresh environments from the data source
    repository.startPolling()

    logger.info("Sample Remote Provider initialized with ${dataSource::class.simpleName}")
    return SampleRemoteProvider(repository)
  }