Skip to content

Commit efc0f05

Browse files
csvirimetacosm
andauthored
refactor: rename internal package to source, moving LifecycleAware (#716)
Co-authored-by: Chris Laprun <[email protected]>
1 parent 2e01de0 commit efc0f05

File tree

40 files changed

+158
-181
lines changed

40 files changed

+158
-181
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
1414
import io.fabric8.kubernetes.client.KubernetesClient;
1515
import io.fabric8.kubernetes.client.Version;
16-
import io.javaoperatorsdk.operator.api.LifecycleAware;
1716
import io.javaoperatorsdk.operator.api.config.ConfigurationService;
1817
import io.javaoperatorsdk.operator.api.config.ControllerConfiguration;
1918
import io.javaoperatorsdk.operator.api.config.ExecutorServiceManager;
2019
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
2120
import io.javaoperatorsdk.operator.processing.Controller;
21+
import io.javaoperatorsdk.operator.processing.LifecycleAware;
2222

2323
@SuppressWarnings("rawtypes")
2424
public class Operator implements AutoCloseable, LifecycleAware {

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
import io.fabric8.kubernetes.api.model.HasMetadata;
88
import io.fabric8.kubernetes.client.CustomResource;
99
import io.javaoperatorsdk.operator.ControllerUtils;
10-
import io.javaoperatorsdk.operator.processing.event.internal.ResourceEventFilter;
11-
import io.javaoperatorsdk.operator.processing.event.internal.ResourceEventFilters;
10+
import io.javaoperatorsdk.operator.processing.event.source.ResourceEventFilter;
11+
import io.javaoperatorsdk.operator.processing.event.source.ResourceEventFilters;
1212

1313
public interface ControllerConfiguration<R extends HasMetadata> {
1414

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import java.util.Set;
66

77
import io.fabric8.kubernetes.api.model.HasMetadata;
8-
import io.javaoperatorsdk.operator.processing.event.internal.ResourceEventFilter;
8+
import io.javaoperatorsdk.operator.processing.event.source.ResourceEventFilter;
99

1010
public class ControllerConfigurationOverrider<R extends HasMetadata> {
1111

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/DefaultControllerConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import java.util.Set;
55

66
import io.fabric8.kubernetes.api.model.HasMetadata;
7-
import io.javaoperatorsdk.operator.processing.event.internal.ResourceEventFilter;
7+
import io.javaoperatorsdk.operator.processing.event.source.ResourceEventFilter;
88

99
public class DefaultControllerConfiguration<R extends HasMetadata>
1010
implements ControllerConfiguration<R> {

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import java.lang.annotation.RetentionPolicy;
66
import java.lang.annotation.Target;
77

8-
import io.javaoperatorsdk.operator.processing.event.internal.ResourceEventFilter;
8+
import io.javaoperatorsdk.operator.processing.event.source.ResourceEventFilter;
99

1010
@Retention(RetentionPolicy.RUNTIME)
1111
@Target({ElementType.TYPE})

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/EventSourceInitializer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.javaoperatorsdk.operator.api.reconciler;
22

33
import io.fabric8.kubernetes.api.model.HasMetadata;
4-
import io.javaoperatorsdk.operator.processing.event.EventSourceRegistry;
4+
import io.javaoperatorsdk.operator.processing.event.source.EventSourceRegistry;
55

66
public interface EventSourceInitializer<T extends HasMetadata> {
77

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/Controller.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import io.javaoperatorsdk.operator.CustomResourceUtils;
1212
import io.javaoperatorsdk.operator.MissingCRDException;
1313
import io.javaoperatorsdk.operator.OperatorException;
14-
import io.javaoperatorsdk.operator.api.LifecycleAware;
1514
import io.javaoperatorsdk.operator.api.config.ControllerConfiguration;
1615
import io.javaoperatorsdk.operator.api.monitoring.Metrics.ControllerExecution;
1716
import io.javaoperatorsdk.operator.api.reconciler.Context;
@@ -20,15 +19,14 @@
2019
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
2120
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
2221
import io.javaoperatorsdk.operator.processing.event.EventSourceManager;
23-
import io.javaoperatorsdk.operator.processing.event.EventSourceRegistry;
22+
import io.javaoperatorsdk.operator.processing.event.source.EventSourceRegistry;
2423

2524
public class Controller<R extends HasMetadata> implements Reconciler<R>,
2625
LifecycleAware, EventSourceInitializer<R> {
2726
private final Reconciler<R> reconciler;
2827
private final ControllerConfiguration<R> configuration;
2928
private final KubernetesClient kubernetesClient;
3029
private EventSourceManager<R> eventSourceManager;
31-
private EventProcessor<R> eventProcessor;
3230

3331
public Controller(Reconciler<R> reconciler,
3432
ControllerConfiguration<R> configuration,
@@ -170,10 +168,6 @@ public void start() throws OperatorException {
170168
}
171169

172170
eventSourceManager = new EventSourceManager<>(this);
173-
eventProcessor =
174-
new EventProcessor<>(this, eventSourceManager.getControllerResourceEventSource());
175-
eventProcessor.setEventSourceManager(eventSourceManager);
176-
eventSourceManager.setEventProcessor(eventProcessor);
177171
if (reconciler instanceof EventSourceInitializer) {
178172
((EventSourceInitializer<R>) reconciler).prepareEventSources(eventSourceManager);
179173
}
@@ -183,7 +177,6 @@ public void start() throws OperatorException {
183177
+ controllerName
184178
+ "' is configured to watch the current namespace but it couldn't be inferred from the current configuration.");
185179
}
186-
eventProcessor.start();
187180
eventSourceManager.start();
188181
} catch (MissingCRDException e) {
189182
throwMissingCRDException(crdName, specVersion, controllerName);
@@ -223,8 +216,5 @@ public void stop() {
223216
if (eventSourceManager != null) {
224217
eventSourceManager.stop();
225218
}
226-
if (eventProcessor != null) {
227-
eventProcessor.stop();
228-
}
229219
}
230220
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/LifecycleAware.java renamed to operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/LifecycleAware.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.javaoperatorsdk.operator.api;
1+
package io.javaoperatorsdk.operator.processing;
22

33
import io.javaoperatorsdk.operator.OperatorException;
44

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/EventMarker.java renamed to operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventMarker.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
package io.javaoperatorsdk.operator.processing;
1+
package io.javaoperatorsdk.operator.processing.event;
22

33
import java.util.HashMap;
44

5-
import io.javaoperatorsdk.operator.processing.event.Event;
6-
import io.javaoperatorsdk.operator.processing.event.ResourceID;
7-
85
/**
96
* Manages the state of received events. Basically there can be only three distinct states relevant
107
* for event processing. Either an event is received, so we eventually process or no event for
@@ -13,7 +10,7 @@
1310
* events are irrelevant for us from this point. Note that the dependant resources are either
1411
* cleaned up by K8S garbage collection or by the controller implementation for cleanup.
1512
*/
16-
public class EventMarker {
13+
class EventMarker {
1714

1815
public enum EventingState {
1916
/** Event but NOT Delete event present */

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/EventProcessor.java renamed to operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.javaoperatorsdk.operator.processing;
1+
package io.javaoperatorsdk.operator.processing.event;
22

33
import java.util.HashMap;
44
import java.util.HashSet;
@@ -14,17 +14,16 @@
1414

1515
import io.fabric8.kubernetes.api.model.HasMetadata;
1616
import io.javaoperatorsdk.operator.OperatorException;
17-
import io.javaoperatorsdk.operator.api.LifecycleAware;
1817
import io.javaoperatorsdk.operator.api.config.ConfigurationService;
1918
import io.javaoperatorsdk.operator.api.config.ExecutorServiceManager;
2019
import io.javaoperatorsdk.operator.api.monitoring.Metrics;
2120
import io.javaoperatorsdk.operator.api.reconciler.RetryInfo;
22-
import io.javaoperatorsdk.operator.processing.event.Event;
23-
import io.javaoperatorsdk.operator.processing.event.EventHandler;
24-
import io.javaoperatorsdk.operator.processing.event.EventSourceManager;
25-
import io.javaoperatorsdk.operator.processing.event.ResourceID;
26-
import io.javaoperatorsdk.operator.processing.event.internal.ResourceAction;
27-
import io.javaoperatorsdk.operator.processing.event.internal.ResourceEvent;
21+
import io.javaoperatorsdk.operator.processing.LifecycleAware;
22+
import io.javaoperatorsdk.operator.processing.MDCUtils;
23+
import io.javaoperatorsdk.operator.processing.ResourceCache;
24+
import io.javaoperatorsdk.operator.processing.event.source.ResourceAction;
25+
import io.javaoperatorsdk.operator.processing.event.source.ResourceEvent;
26+
import io.javaoperatorsdk.operator.processing.event.source.TimerEventSource;
2827
import io.javaoperatorsdk.operator.processing.retry.GenericRetry;
2928
import io.javaoperatorsdk.operator.processing.retry.Retry;
3029
import io.javaoperatorsdk.operator.processing.retry.RetryExecution;
@@ -36,8 +35,7 @@
3635
* Event handler that makes sure that events are processed in a "single threaded" way per resource
3736
* UID, while buffering events which are received during an execution.
3837
*/
39-
public class EventProcessor<R extends HasMetadata>
40-
implements EventHandler, LifecycleAware {
38+
class EventProcessor<R extends HasMetadata> implements EventHandler, LifecycleAware {
4139

4240
private static final Logger log = LoggerFactory.getLogger(EventProcessor.class);
4341

@@ -51,32 +49,34 @@ public class EventProcessor<R extends HasMetadata>
5149
private final Metrics metrics;
5250
private volatile boolean running;
5351
private final ResourceCache<R> resourceCache;
54-
private EventSourceManager<R> eventSourceManager;
52+
private final EventSourceManager<R> eventSourceManager;
5553
private final EventMarker eventMarker;
5654

57-
public EventProcessor(Controller<R> controller, ResourceCache<R> resourceCache) {
55+
EventProcessor(EventSourceManager<R> eventSourceManager) {
5856
this(
59-
resourceCache,
57+
eventSourceManager.getControllerResourceEventSource(),
6058
ExecutorServiceManager.instance().executorService(),
61-
controller.getConfiguration().getName(),
62-
new ReconciliationDispatcher<>(controller),
63-
GenericRetry.fromConfiguration(controller.getConfiguration().getRetryConfiguration()),
64-
controller.getConfiguration().getConfigurationService().getMetrics(),
65-
new EventMarker());
59+
eventSourceManager.getController().getConfiguration().getName(),
60+
new ReconciliationDispatcher<>(eventSourceManager.getController()),
61+
GenericRetry.fromConfiguration(
62+
eventSourceManager.getController().getConfiguration().getRetryConfiguration()),
63+
eventSourceManager.getController().getConfiguration().getConfigurationService()
64+
.getMetrics(),
65+
eventSourceManager);
6666
}
6767

6868
EventProcessor(ReconciliationDispatcher<R> reconciliationDispatcher,
69-
ResourceCache<R> resourceCache,
69+
EventSourceManager<R> eventSourceManager,
7070
String relatedControllerName,
71-
Retry retry, EventMarker eventMarker) {
72-
this(resourceCache, null, relatedControllerName, reconciliationDispatcher, retry, null,
73-
eventMarker);
71+
Retry retry) {
72+
this(eventSourceManager.getControllerResourceEventSource(), null, relatedControllerName,
73+
reconciliationDispatcher, retry, null, eventSourceManager);
7474
}
7575

7676
private EventProcessor(ResourceCache<R> resourceCache, ExecutorService executor,
7777
String relatedControllerName,
7878
ReconciliationDispatcher<R> reconciliationDispatcher, Retry retry, Metrics metrics,
79-
EventMarker eventMarker) {
79+
EventSourceManager<R> eventSourceManager) {
8080
this.running = true;
8181
this.executor =
8282
executor == null
@@ -88,11 +88,12 @@ private EventProcessor(ResourceCache<R> resourceCache, ExecutorService executor,
8888
this.retry = retry;
8989
this.resourceCache = resourceCache;
9090
this.metrics = metrics != null ? metrics : Metrics.NOOP;
91-
this.eventMarker = eventMarker;
91+
this.eventMarker = new EventMarker();
92+
this.eventSourceManager = eventSourceManager;
9293
}
9394

94-
public void setEventSourceManager(EventSourceManager<R> eventSourceManager) {
95-
this.eventSourceManager = eventSourceManager;
95+
EventMarker getEventMarker() {
96+
return eventMarker;
9697
}
9798

9899
@Override
@@ -243,9 +244,12 @@ private boolean isCacheReadyForInstantReconciliation(ExecutionScope<R> execution
243244

244245
private void reScheduleExecutionIfInstructed(PostExecutionControl<R> postExecutionControl,
245246
R customResource) {
246-
postExecutionControl.getReScheduleDelay().ifPresent(delay -> eventSourceManager
247-
.getRetryAndRescheduleTimerEventSource()
248-
.scheduleOnce(customResource, delay));
247+
postExecutionControl.getReScheduleDelay()
248+
.ifPresent(delay -> retryEventSource().scheduleOnce(customResource, delay));
249+
}
250+
251+
TimerEventSource<R> retryEventSource() {
252+
return eventSourceManager.retryEventSource();
249253
}
250254

251255
/**
@@ -275,9 +279,7 @@ private void handleRetryOnException(ExecutionScope<R> executionScope,
275279
delay,
276280
customResourceID);
277281
metrics.failedReconciliation(customResourceID, exception);
278-
eventSourceManager
279-
.getRetryAndRescheduleTimerEventSource()
280-
.scheduleOnce(executionScope.getResource(), delay);
282+
retryEventSource().scheduleOnce(executionScope.getResource(), delay);
281283
},
282284
() -> log.error("Exhausted retries for {}", executionScope));
283285
}
@@ -289,9 +291,7 @@ private void cleanupOnSuccessfulExecution(ExecutionScope<R> executionScope) {
289291
if (isRetryConfigured()) {
290292
retryState.remove(executionScope.getCustomResourceID());
291293
}
292-
eventSourceManager
293-
.getRetryAndRescheduleTimerEventSource()
294-
.cancelOnceSchedule(executionScope.getCustomResourceID());
294+
retryEventSource().cancelOnceSchedule(executionScope.getCustomResourceID());
295295
}
296296

297297
private RetryExecution getOrInitRetryExecution(ExecutionScope<R> executionScope) {

0 commit comments

Comments
 (0)