|
13 | 13 | import io.javaoperatorsdk.operator.api.Controller;
|
14 | 14 | import io.javaoperatorsdk.operator.api.ControllerUtils;
|
15 | 15 | import io.javaoperatorsdk.operator.api.ResourceController;
|
| 16 | +import io.javaoperatorsdk.operator.api.config.ConfigurationService; |
16 | 17 | import io.javaoperatorsdk.operator.api.config.ControllerConfiguration;
|
17 | 18 | import io.javaoperatorsdk.quarkus.extension.ConfigurationServiceRecorder;
|
| 19 | +import io.javaoperatorsdk.quarkus.extension.OperatorProducer; |
18 | 20 | import io.javaoperatorsdk.quarkus.extension.QuarkusConfigurationService;
|
19 | 21 | import io.javaoperatorsdk.quarkus.extension.QuarkusControllerConfiguration;
|
20 |
| -import io.javaoperatorsdk.quarkus.extension.QuarkusOperator; |
21 | 22 | import io.quarkus.arc.deployment.AdditionalBeanBuildItem;
|
22 | 23 | import io.quarkus.arc.deployment.SyntheticBeanBuildItem;
|
23 | 24 | import io.quarkus.deployment.GeneratedClassGizmoAdaptor;
|
24 | 25 | import io.quarkus.deployment.annotations.BuildProducer;
|
25 | 26 | import io.quarkus.deployment.annotations.BuildStep;
|
26 |
| -import io.quarkus.deployment.annotations.Consume; |
27 | 27 | import io.quarkus.deployment.annotations.ExecutionTime;
|
28 |
| -import io.quarkus.deployment.annotations.Produce; |
29 | 28 | import io.quarkus.deployment.annotations.Record;
|
30 | 29 | import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
|
31 | 30 | import io.quarkus.deployment.builditem.FeatureBuildItem;
|
@@ -57,45 +56,34 @@ FeatureBuildItem feature() {
|
57 | 56 |
|
58 | 57 |
|
59 | 58 | @BuildStep
|
60 |
| - List<ControllerConfigurationBuildItem> createControllerBeans(CombinedIndexBuildItem combinedIndexBuildItem, |
61 |
| - BuildProducer<GeneratedClassBuildItem> generatedClass, |
62 |
| - BuildProducer<AdditionalBeanBuildItem> additionalBeans) { |
| 59 | + @Record(ExecutionTime.RUNTIME_INIT) |
| 60 | + void createConfigurationServiceAndOperator(CombinedIndexBuildItem combinedIndexBuildItem, |
| 61 | + BuildProducer<GeneratedClassBuildItem> generatedClass, |
| 62 | + BuildProducer<SyntheticBeanBuildItem> syntheticBeanBuildItemBuildProducer, |
| 63 | + BuildProducer<AdditionalBeanBuildItem> additionalBeans, |
| 64 | + KubernetesClientBuildItem clientBuildItem, |
| 65 | + ConfigurationServiceRecorder recorder) { |
63 | 66 | final var index = combinedIndexBuildItem.getIndex();
|
64 | 67 | final var resourceControllers = index.getAllKnownImplementors(RESOURCE_CONTROLLER);
|
65 | 68 |
|
66 | 69 | final var classOutput = new GeneratedClassGizmoAdaptor(generatedClass, true);
|
67 |
| - return resourceControllers.stream() |
| 70 | + final List<ControllerConfiguration> controllerConfigs = resourceControllers.stream() |
68 | 71 | .map(ci -> createControllerConfiguration(ci, classOutput, additionalBeans))
|
69 | 72 | .collect(Collectors.toList());
|
70 |
| - } |
71 |
| - |
72 |
| - |
73 |
| - @BuildStep |
74 |
| - @Record(ExecutionTime.RUNTIME_INIT) |
75 |
| - @Produce(ConfigurationServiceDoneBuildItem.class) |
76 |
| - void createConfigurationService(BuildProducer<SyntheticBeanBuildItem> syntheticBeanBuildItemBuildProducer, |
77 |
| - List<ControllerConfigurationBuildItem> configurations, |
78 |
| - KubernetesClientBuildItem clientBuildItem, |
79 |
| - ConfigurationServiceRecorder recorder) { |
80 |
| - final List<ControllerConfiguration> controllerConfigs = configurations.stream() |
81 |
| - .map(ControllerConfigurationBuildItem::getConfiguration) |
82 |
| - .collect(Collectors.toList()); |
83 |
| - final var supplier = recorder.configurationServiceSupplier(controllerConfigs, clientBuildItem.getClient()); |
| 73 | + |
| 74 | + final var supplier = recorder.configurationServiceSupplier(controllerConfigs); |
84 | 75 | syntheticBeanBuildItemBuildProducer.produce(SyntheticBeanBuildItem.configure(QuarkusConfigurationService.class)
|
85 | 76 | .scope(Singleton.class)
|
86 | 77 | .addType(ConfigurationService.class)
|
87 | 78 | .setRuntimeInit()
|
88 | 79 | .supplier(supplier)
|
89 | 80 | .done());
|
| 81 | + |
| 82 | + additionalBeans.produce(AdditionalBeanBuildItem.unremovableOf(OperatorProducer.class)); |
90 | 83 | }
|
91 | 84 |
|
92 |
| - @BuildStep |
93 |
| - @Consume(ConfigurationServiceDoneBuildItem.class) |
94 |
| - void createOperator(BuildProducer<AdditionalBeanBuildItem> additionalBeans) { |
95 |
| - additionalBeans.produce(AdditionalBeanBuildItem.unremovableOf(QuarkusOperator.class)); |
96 |
| - } |
97 | 85 |
|
98 |
| - private ControllerConfigurationBuildItem createControllerConfiguration(ClassInfo info, ClassOutput classOutput, BuildProducer<AdditionalBeanBuildItem> additionalBeans) { |
| 86 | + private ControllerConfiguration createControllerConfiguration(ClassInfo info, ClassOutput classOutput, BuildProducer<AdditionalBeanBuildItem> additionalBeans) { |
99 | 87 | // first retrieve the custom resource class
|
100 | 88 | final var rcInterface = info.interfaceTypes().stream()
|
101 | 89 | .filter(t -> t.name().equals(RESOURCE_CONTROLLER))
|
@@ -142,7 +130,7 @@ private ControllerConfigurationBuildItem createControllerConfiguration(ClassInfo
|
142 | 130 | null // todo: fix-me
|
143 | 131 | );
|
144 | 132 |
|
145 |
| - return new ControllerConfigurationBuildItem(configuration); |
| 133 | + return configuration; |
146 | 134 | }
|
147 | 135 |
|
148 | 136 |
|
|
0 commit comments