Skip to content

Commit 75150db

Browse files
committed
refactor: simplify and streamline things
1 parent 407a241 commit 75150db

File tree

6 files changed

+26
-72
lines changed

6 files changed

+26
-72
lines changed

quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/ConfigurationServiceDoneBuildItem.java

Lines changed: 0 additions & 6 deletions
This file was deleted.

quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/ControllerConfigurationBuildItem.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,18 @@
1313
import io.javaoperatorsdk.operator.api.Controller;
1414
import io.javaoperatorsdk.operator.api.ControllerUtils;
1515
import io.javaoperatorsdk.operator.api.ResourceController;
16+
import io.javaoperatorsdk.operator.api.config.ConfigurationService;
1617
import io.javaoperatorsdk.operator.api.config.ControllerConfiguration;
1718
import io.javaoperatorsdk.quarkus.extension.ConfigurationServiceRecorder;
19+
import io.javaoperatorsdk.quarkus.extension.OperatorProducer;
1820
import io.javaoperatorsdk.quarkus.extension.QuarkusConfigurationService;
1921
import io.javaoperatorsdk.quarkus.extension.QuarkusControllerConfiguration;
20-
import io.javaoperatorsdk.quarkus.extension.QuarkusOperator;
2122
import io.quarkus.arc.deployment.AdditionalBeanBuildItem;
2223
import io.quarkus.arc.deployment.SyntheticBeanBuildItem;
2324
import io.quarkus.deployment.GeneratedClassGizmoAdaptor;
2425
import io.quarkus.deployment.annotations.BuildProducer;
2526
import io.quarkus.deployment.annotations.BuildStep;
26-
import io.quarkus.deployment.annotations.Consume;
2727
import io.quarkus.deployment.annotations.ExecutionTime;
28-
import io.quarkus.deployment.annotations.Produce;
2928
import io.quarkus.deployment.annotations.Record;
3029
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
3130
import io.quarkus.deployment.builditem.FeatureBuildItem;
@@ -57,45 +56,34 @@ FeatureBuildItem feature() {
5756

5857

5958
@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) {
6366
final var index = combinedIndexBuildItem.getIndex();
6467
final var resourceControllers = index.getAllKnownImplementors(RESOURCE_CONTROLLER);
6568

6669
final var classOutput = new GeneratedClassGizmoAdaptor(generatedClass, true);
67-
return resourceControllers.stream()
70+
final List<ControllerConfiguration> controllerConfigs = resourceControllers.stream()
6871
.map(ci -> createControllerConfiguration(ci, classOutput, additionalBeans))
6972
.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);
8475
syntheticBeanBuildItemBuildProducer.produce(SyntheticBeanBuildItem.configure(QuarkusConfigurationService.class)
8576
.scope(Singleton.class)
8677
.addType(ConfigurationService.class)
8778
.setRuntimeInit()
8879
.supplier(supplier)
8980
.done());
81+
82+
additionalBeans.produce(AdditionalBeanBuildItem.unremovableOf(OperatorProducer.class));
9083
}
9184

92-
@BuildStep
93-
@Consume(ConfigurationServiceDoneBuildItem.class)
94-
void createOperator(BuildProducer<AdditionalBeanBuildItem> additionalBeans) {
95-
additionalBeans.produce(AdditionalBeanBuildItem.unremovableOf(QuarkusOperator.class));
96-
}
9785

98-
private ControllerConfigurationBuildItem createControllerConfiguration(ClassInfo info, ClassOutput classOutput, BuildProducer<AdditionalBeanBuildItem> additionalBeans) {
86+
private ControllerConfiguration createControllerConfiguration(ClassInfo info, ClassOutput classOutput, BuildProducer<AdditionalBeanBuildItem> additionalBeans) {
9987
// first retrieve the custom resource class
10088
final var rcInterface = info.interfaceTypes().stream()
10189
.filter(t -> t.name().equals(RESOURCE_CONTROLLER))
@@ -142,7 +130,7 @@ private ControllerConfigurationBuildItem createControllerConfiguration(ClassInfo
142130
null // todo: fix-me
143131
);
144132

145-
return new ControllerConfigurationBuildItem(configuration);
133+
return configuration;
146134
}
147135

148136

quarkus-extension/runtime/src/main/java/io/javaoperatorsdk/quarkus/extension/ConfigurationServiceRecorder.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@
33
import java.util.List;
44
import java.util.function.Supplier;
55

6-
import io.fabric8.kubernetes.client.KubernetesClient;
76
import io.javaoperatorsdk.operator.api.config.ConfigurationService;
87
import io.javaoperatorsdk.operator.api.config.ControllerConfiguration;
98
import io.quarkus.runtime.annotations.Recorder;
109

1110
@Recorder
1211
public class ConfigurationServiceRecorder {
1312

14-
public Supplier<ConfigurationService> configurationServiceSupplier(List<ControllerConfiguration> controllerConfigs, KubernetesClient client) {
15-
return () -> new QuarkusConfigurationService(controllerConfigs, client);
13+
public Supplier<ConfigurationService> configurationServiceSupplier(List<ControllerConfiguration> controllerConfigs) {
14+
return () -> new QuarkusConfigurationService(controllerConfigs);
1615
}
1716
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.javaoperatorsdk.quarkus.extension;
22

33
import javax.enterprise.inject.Produces;
4-
import javax.inject.Inject;
54
import javax.inject.Singleton;
65

76
import io.fabric8.kubernetes.client.KubernetesClient;
@@ -10,24 +9,12 @@
109
import io.quarkus.arc.DefaultBean;
1110

1211
@Singleton
13-
@DefaultBean
14-
public class QuarkusOperator {
15-
@Inject
16-
KubernetesClient k8sClient;
17-
18-
@Inject
19-
ConfigurationService configurationService;
20-
21-
private final Operator operator;
22-
23-
public QuarkusOperator() {
24-
operator = new Operator(k8sClient, configurationService);
25-
}
12+
public class OperatorProducer {
2613

2714
@Produces
2815
@DefaultBean
2916
@Singleton
30-
Operator operator() {
31-
return operator;
17+
Operator operator(KubernetesClient client, ConfigurationService configuration) {
18+
return new Operator(client, configuration);
3219
}
3320
}

quarkus-extension/runtime/src/main/java/io/javaoperatorsdk/quarkus/extension/QuarkusConfigurationService.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import java.util.Map;
66
import java.util.concurrent.ConcurrentHashMap;
77

8+
import javax.inject.Inject;
9+
810
import io.fabric8.kubernetes.client.Config;
911
import io.fabric8.kubernetes.client.CustomResource;
1012
import io.fabric8.kubernetes.client.KubernetesClient;
@@ -14,10 +16,10 @@
1416

1517
public class QuarkusConfigurationService implements ConfigurationService {
1618
private final Map<String, ControllerConfiguration> controllerConfigurations;
17-
private final KubernetesClient client;
19+
@Inject
20+
KubernetesClient client;
1821

19-
public QuarkusConfigurationService(List<ControllerConfiguration> configurations, KubernetesClient client) {
20-
this.client = client;
22+
public QuarkusConfigurationService(List<ControllerConfiguration> configurations) {
2123
if (configurations != null && !configurations.isEmpty()) {
2224
controllerConfigurations = new ConcurrentHashMap<>(configurations.size());
2325
configurations.forEach(c -> controllerConfigurations.put(c.getName(), c));

0 commit comments

Comments
 (0)