Source:
<code>private void addHerder(SourceAndTarget sourceAndTarget) { log.info("creating herder for " + sourceAndTarget.toString()); Map<String, String> workerProps = config.workerConfig(sourceAndTarget); String advertisedUrl = advertisedBaseUrl + "/" + sourceAndTarget.source(); String workerId = sourceAndTarget.toString(); Plugins plugins = new Plugins(workerProps); plugins.compareAndSwapWithDelegatingLoader(); DistributedConfig distributedConfig = new DistributedConfig(workerProps); String kafkaClusterId = ConnectUtils.lookupKafkaClusterId(distributedConfig); <START> KafkaOffsetBackingStore offsetBackingStore = new KafkaOffsetBackingStore(kafkaClusterId); offsetBackingStore.configure(distributedConfig); <END> Worker worker = new Worker(workerId, time, plugins, distributedConfig, offsetBackingStore, CLIENT_CONFIG_OVERRIDE_POLICY, kafkaClusterId); WorkerConfigTransformer configTransformer = worker.configTransformer(); Converter internalValueConverter = worker.getInternalValueConverter(); StatusBackingStore statusBackingStore = new KafkaStatusBackingStore(time, internalValueConverter, kafkaClusterId); statusBackingStore.configure(distributedConfig); ConfigBackingStore configBackingStore = new KafkaConfigBackingStore( internalValueConverter, distributedConfig, configTransformer, kafkaClusterId); Herder herder = new DistributedHerder(distributedConfig, time, worker, kafkaClusterId, statusBackingStore, configBackingStore, advertisedUrl, CLIENT_CONFIG_OVERRIDE_POLICY); herders.put(sourceAndTarget, herder); }</code><technical_language>Do need modify KafkaOffsetBackingStore() constructor? ConnectUtils.lookupKafkaClusterId(...) called WorkerConfig (which is parent class of DistributedConfig) passed configure(...) method, configure(...) method call lookup method? This minor, existing pattern for this class</technical_language>

Target:
private void addHerder(SourceAndTarget sourceAndTarget) { log.info("creating herder for " + sourceAndTarget.toString()); Map<String, String> workerProps = config.workerConfig(sourceAndTarget); String advertisedUrl = advertisedBaseUrl + "/" + sourceAndTarget.source(); String workerId = sourceAndTarget.toString(); Plugins plugins = new Plugins(workerProps); plugins.compareAndSwapWithDelegatingLoader(); DistributedConfig distributedConfig = new DistributedConfig(workerProps); String kafkaClusterId = ConnectUtils.lookupKafkaClusterId(distributedConfig); KafkaOffsetBackingStore offsetBackingStore = new KafkaOffsetBackingStore(); offsetBackingStore.configure(distributedConfig); Worker worker = new Worker(workerId, time, plugins, distributedConfig, offsetBackingStore, CLIENT_CONFIG_OVERRIDE_POLICY); WorkerConfigTransformer configTransformer = worker.configTransformer(); Converter internalValueConverter = worker.getInternalValueConverter(); StatusBackingStore statusBackingStore = new KafkaStatusBackingStore(time, internalValueConverter); statusBackingStore.configure(distributedConfig); ConfigBackingStore configBackingStore = new KafkaConfigBackingStore( internalValueConverter, distributedConfig, configTransformer); Herder herder = new DistributedHerder(distributedConfig, time, worker, kafkaClusterId, statusBackingStore, configBackingStore, advertisedUrl, CLIENT_CONFIG_OVERRIDE_POLICY); herders.put(sourceAndTarget, herder); }