|
24 | 24 | import java.math.MathContext; |
25 | 25 | import java.time.Duration; |
26 | 26 | import java.util.Collections; |
| 27 | +import java.util.HashMap; |
27 | 28 | import java.util.List; |
28 | 29 | import java.util.Map; |
29 | 30 | import java.util.Optional; |
@@ -210,6 +211,15 @@ private ReadFromKafkaDoFn( |
210 | 211 | transform.getAdminFactoryFn(); |
211 | 212 | final SerializableFunction<Map<String, Object>, Consumer<byte[], byte[]>> consumerFactoryFn = |
212 | 213 | transform.getConsumerFactoryFn(); |
| 214 | + final @Nullable Map<String, Object> offsetConsumerConfigOverrides = |
| 215 | + transform.getOffsetConsumerConfig(); |
| 216 | + final Map<String, Object> offsetConsumerConfig; |
| 217 | + if (offsetConsumerConfigOverrides == null) { |
| 218 | + offsetConsumerConfig = transform.getConsumerConfig(); |
| 219 | + } else { |
| 220 | + offsetConsumerConfig = new HashMap<>(transform.getConsumerConfig()); |
| 221 | + offsetConsumerConfig.putAll(offsetConsumerConfigOverrides); |
| 222 | + } |
213 | 223 | this.consumerConfig = transform.getConsumerConfig(); |
214 | 224 | this.keyDeserializerProvider = |
215 | 225 | Preconditions.checkArgumentNotNull(transform.getKeyDeserializerProvider()); |
@@ -260,7 +270,7 @@ public KafkaLatestOffsetEstimator load( |
260 | 270 | sourceDescriptor); |
261 | 271 | final Map<String, Object> config = |
262 | 272 | KafkaIOUtils.overrideBootstrapServersConfig( |
263 | | - consumerConfig, sourceDescriptor); |
| 273 | + offsetConsumerConfig, sourceDescriptor); |
264 | 274 | final Admin admin = adminFactoryFn.apply(config); |
265 | 275 | return new KafkaLatestOffsetEstimator( |
266 | 276 | admin, sourceDescriptor.getTopicPartition()); |
|
0 commit comments