77
88import static java .util .Objects .isNull ;
99import static java .util .Objects .nonNull ;
10+ import static java .util .Objects .requireNonNull ;
1011import static org .apache .kafka .clients .producer .ProducerConfig .KEY_SERIALIZER_CLASS_CONFIG ;
1112import static org .apache .kafka .clients .producer .ProducerConfig .VALUE_SERIALIZER_CLASS_CONFIG ;
1213
1617import java .util .Map ;
1718import java .util .concurrent .ExecutorService ;
1819import java .util .concurrent .Executors ;
20+ import javax .annotation .Nullable ;
1921import org .apache .kafka .clients .producer .KafkaProducer ;
2022import org .apache .kafka .clients .producer .Producer ;
2123import org .apache .kafka .common .serialization .Serializer ;
2224
23- public class KafkaSpanExporterBuilder {
25+ public final class KafkaSpanExporterBuilder {
2426 private static final long DEFAULT_TIMEOUT_IN_SECONDS = 5L ;
25- private String topicName ;
26- private Producer <String , Collection <SpanData >> producer ;
27- private ExecutorService executorService ;
27+ @ Nullable private String topicName ;
28+ @ Nullable private Producer <String , Collection <SpanData >> producer ;
29+ @ Nullable private ExecutorService executorService ;
2830 private long timeoutInSeconds = DEFAULT_TIMEOUT_IN_SECONDS ;
2931
3032 @ SuppressWarnings (value = {"NullAway" })
3133 public KafkaSpanExporterBuilder () {}
3234
3335 @ CanIgnoreReturnValue
3436 public KafkaSpanExporterBuilder setTopicName (String topicName ) {
35- this .topicName = topicName ;
37+ this .topicName = requireNonNull ( topicName , "topicName" ) ;
3638 return this ;
3739 }
3840
3941 @ CanIgnoreReturnValue
4042 public KafkaSpanExporterBuilder setProducer (Producer <String , Collection <SpanData >> producer ) {
41- this .producer = producer ;
43+ this .producer = requireNonNull ( producer , "producer" ) ;
4244 return this ;
4345 }
4446
4547 @ CanIgnoreReturnValue
4648 public KafkaSpanExporterBuilder setExecutorService (ExecutorService executorService ) {
47- this .executorService = executorService ;
49+ this .executorService = requireNonNull ( executorService , "executorService" ) ;
4850 return this ;
4951 }
5052
@@ -67,10 +69,10 @@ public KafkaSpanExporter build() {
6769 return new KafkaSpanExporter (topicName , producer , executorService , timeoutInSeconds );
6870 }
6971
70- public static class ProducerBuilder {
71- private Map <String , Object > config ;
72- private Serializer <String > keySerializer ;
73- private Serializer <Collection <SpanData >> valueSerializer ;
72+ public static final class ProducerBuilder {
73+ @ Nullable private Map <String , Object > config ;
74+ @ Nullable private Serializer <String > keySerializer ;
75+ @ Nullable private Serializer <Collection <SpanData >> valueSerializer ;
7476
7577 public static ProducerBuilder newInstance () {
7678 return new ProducerBuilder ();
@@ -81,19 +83,19 @@ public ProducerBuilder() {}
8183
8284 @ CanIgnoreReturnValue
8385 public ProducerBuilder setConfig (Map <String , Object > config ) {
84- this .config = config ;
86+ this .config = requireNonNull ( config , "config" ) ;
8587 return this ;
8688 }
8789
8890 @ CanIgnoreReturnValue
8991 public ProducerBuilder setKeySerializer (Serializer <String > keySerializer ) {
90- this .keySerializer = keySerializer ;
92+ this .keySerializer = requireNonNull ( keySerializer , "keySerializer" ) ;
9193 return this ;
9294 }
9395
9496 @ CanIgnoreReturnValue
9597 public ProducerBuilder setValueSerializer (Serializer <Collection <SpanData >> valueSerializer ) {
96- this .valueSerializer = valueSerializer ;
98+ this .valueSerializer = requireNonNull ( valueSerializer , "valueSerializer" ) ;
9799 return this ;
98100 }
99101
0 commit comments