19
19
20
20
import io .quarkus .arc .deployment .AdditionalBeanBuildItem ;
21
21
import io .quarkus .arc .deployment .SyntheticBeanBuildItem ;
22
+ import io .quarkus .bootstrap .classloading .QuarkusClassLoader ;
22
23
import io .quarkus .deployment .Feature ;
23
24
import io .quarkus .deployment .annotations .BuildProducer ;
24
25
import io .quarkus .deployment .annotations .BuildStep ;
39
40
40
41
class KafkaStreamsProcessor {
41
42
43
+ public static final String DEFAULT_PARTITION_GROUPER = "org.apache.kafka.streams.processor.DefaultPartitionGrouper" ;
44
+
42
45
@ BuildStep
43
46
void build (BuildProducer <FeatureBuildItem > feature ,
44
47
BuildProducer <ReflectiveClassBuildItem > reflectiveClasses ,
@@ -64,9 +67,11 @@ private void registerClassesThatAreLoadedThroughReflection(BuildProducer<Reflect
64
67
65
68
private void registerCompulsoryClasses (BuildProducer <ReflectiveClassBuildItem > reflectiveClasses ) {
66
69
reflectiveClasses .produce (new ReflectiveClassBuildItem (true , false , false , StreamsPartitionAssignor .class ));
67
- // Class DefaultPartitionGrouper deprecated in Kafka 2.8.x and removed in 3.0.0
68
- reflectiveClasses .produce (
69
- new ReflectiveClassBuildItem (true , false , false , "org.apache.kafka.streams.processor.DefaultPartitionGrouper" ));
70
+ if (QuarkusClassLoader .isClassPresentAtRuntime (DEFAULT_PARTITION_GROUPER )) {
71
+ // Class DefaultPartitionGrouper deprecated in Kafka 2.8.x and removed in 3.0.0
72
+ reflectiveClasses .produce (
73
+ new ReflectiveClassBuildItem (true , false , false , DEFAULT_PARTITION_GROUPER ));
74
+ }
70
75
reflectiveClasses .produce (new ReflectiveClassBuildItem (true , false , false , DefaultProductionExceptionHandler .class ));
71
76
reflectiveClasses .produce (new ReflectiveClassBuildItem (true , false , false , FailOnInvalidTimestamp .class ));
72
77
reflectiveClasses .produce (new ReflectiveClassBuildItem (true , true , true ,
0 commit comments