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)
}