Skip to content

Commit 32df640

Browse files
metacosmcsviri
andcommitted
refactor: clean-up (operator-framework#2325)
Signed-off-by: Chris Laprun <claprun@redhat.com> Co-authored-by: Attila Mészáros <csviri@gmail.com> Signed-off-by: Attila Mészáros <csviri@gmail.com>
1 parent 0d49ddb commit 32df640

File tree

30 files changed

+150
-103
lines changed

30 files changed

+150
-103
lines changed

bootstrapper-maven-plugin/src/main/java/io/javaoperatorsdk/boostrapper/Bootstrapper.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class Bootstrapper {
2121

2222
private static final Logger log = LoggerFactory.getLogger(Bootstrapper.class);
2323

24-
private MustacheFactory mustacheFactory = new DefaultMustacheFactory();
24+
private final MustacheFactory mustacheFactory = new DefaultMustacheFactory();
2525

2626
// .gitignore gets excluded from resource, using here a prefixed version
2727
private static final Map<String, String> TOP_LEVEL_STATIC_FILES =

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public final class BuilderUtils {
1010
// prevent instantiation of util class
1111
private BuilderUtils() {}
1212

13-
public static final <T, B> B newBuilder(Class<B> builderType, T item) {
13+
public static <T, B> B newBuilder(Class<B> builderType, T item) {
1414
Class<T> builderTargetType = builderTargetType(builderType);
1515
try {
1616
Constructor<B> constructor = builderType.getDeclaredConstructor(builderTargetType);

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

+4-8
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import java.util.Objects;
1010
import java.util.function.Predicate;
1111
import java.util.regex.Pattern;
12-
import java.util.stream.Collectors;
1312

1413
import io.fabric8.kubernetes.api.builder.Builder;
1514
import io.fabric8.kubernetes.api.model.GenericKubernetesResource;
@@ -126,8 +125,7 @@ public static boolean specsEqual(HasMetadata r1, HasMetadata r2) {
126125
// will be replaced with: https://github.com/fabric8io/kubernetes-client/issues/3816
127126
public static Object getSpec(HasMetadata resource) {
128127
// optimize CustomResource case
129-
if (resource instanceof CustomResource) {
130-
CustomResource cr = (CustomResource) resource;
128+
if (resource instanceof CustomResource cr) {
131129
return cr.getSpec();
132130
}
133131

@@ -142,8 +140,7 @@ public static Object getSpec(HasMetadata resource) {
142140
@SuppressWarnings("unchecked")
143141
public static Object setSpec(HasMetadata resource, Object spec) {
144142
// optimize CustomResource case
145-
if (resource instanceof CustomResource) {
146-
CustomResource cr = (CustomResource) resource;
143+
if (resource instanceof CustomResource cr) {
147144
cr.setSpec(spec);
148145
return null;
149146
}
@@ -191,8 +188,7 @@ public static void handleKubernetesClientException(Exception e, String resourceT
191188
throw ((MissingCRDException) e);
192189
}
193190

194-
if (e instanceof KubernetesClientException) {
195-
KubernetesClientException ke = (KubernetesClientException) e;
191+
if (e instanceof KubernetesClientException ke) {
196192
// only throw MissingCRDException if the 404 error occurs on the target CRD
197193
if (404 == ke.getCode() &&
198194
(resourceTypeName.equals(ke.getFullResourceName())
@@ -217,7 +213,7 @@ private static boolean matchesResourceType(String resourceTypeName,
217213
group = group.substring(0, group.length() - 1);
218214
}
219215
final var segments = Arrays.stream(group.split("/")).filter(Predicate.not(String::isEmpty))
220-
.collect(Collectors.toUnmodifiableList());
216+
.toList();
221217
if (segments.size() != 3) {
222218
return false;
223219
}

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

+1-2
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,7 @@ private static <T> Configurator<T> configuratorFor(Class<T> instanceType,
260260

261261
@SuppressWarnings({"unchecked", "rawtypes"})
262262
private static void configureFromAnnotatedReconciler(Object instance, Reconciler<?> reconciler) {
263-
if (instance instanceof AnnotationConfigurable) {
264-
AnnotationConfigurable configurable = (AnnotationConfigurable) instance;
263+
if (instance instanceof AnnotationConfigurable configurable) {
265264
final Class<? extends Annotation> configurationClass =
266265
(Class<? extends Annotation>) Utils.getFirstTypeArgumentFromSuperClassOrInterface(
267266
instance.getClass(), AnnotationConfigurable.class);

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

-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import io.fabric8.kubernetes.api.model.HasMetadata;
1111
import io.fabric8.kubernetes.client.informers.cache.ItemStore;
1212
import io.javaoperatorsdk.operator.api.config.dependent.DependentResourceSpec;
13-
import io.javaoperatorsdk.operator.api.config.workflow.WorkflowSpec;
1413
import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter;
1514
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
1615
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
@@ -39,7 +38,6 @@ public class ControllerConfigurationOverrider<R extends HasMetadata> {
3938
private String name;
4039
private String fieldManager;
4140
private Long informerListLimit;
42-
private WorkflowSpec workflowSpec;
4341

4442
private ControllerConfigurationOverrider(ControllerConfiguration<R> original) {
4543
this.finalizer = original.getFinalizerName();
@@ -57,7 +55,6 @@ private ControllerConfigurationOverrider(ControllerConfiguration<R> original) {
5755
this.fieldManager = original.fieldManager();
5856
this.informerListLimit = original.getInformerListLimit().orElse(null);
5957
this.itemStore = original.getItemStore().orElse(null);
60-
this.workflowSpec = original.getWorkflowSpec().orElse(null);
6158
}
6259

6360
public ControllerConfigurationOverrider<R> withFinalizer(String finalizer) {

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66

77
import static io.javaoperatorsdk.operator.api.config.LeaderElectionConfiguration.*;
88

9+
@SuppressWarnings("unused")
910
public final class LeaderElectionConfigurationBuilder {
1011

11-
private String leaseName;
12+
private final String leaseName;
1213
private String leaseNamespace;
1314
private String identity;
1415
private Duration leaseDuration = LEASE_DURATION_DEFAULT_VALUE;

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

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package io.javaoperatorsdk.operator.api.config;
22

33
import java.time.Duration;
4-
import java.util.*;
4+
import java.util.Collections;
5+
import java.util.Map;
6+
import java.util.Optional;
7+
import java.util.Set;
58
import java.util.concurrent.TimeUnit;
69

710
import io.fabric8.kubernetes.api.model.HasMetadata;
@@ -105,7 +108,6 @@ protected ResolvedControllerConfiguration(Class<P> resourceClass, String name,
105108
this.finalizer =
106109
ControllerConfiguration.ensureValidFinalizerName(finalizer, getResourceTypeName());
107110
this.fieldManager = fieldManager;
108-
this.workflowSpec = workflowSpec;
109111
}
110112

111113
protected ResolvedControllerConfiguration(Class<P> resourceClass, String name,

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

+2-4
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ private DependentResourceConfigurationResolver() {}
2222

2323
public static <C extends ControllerConfiguration<? extends HasMetadata>> void configure(
2424
DependentResource dependentResource, DependentResourceSpec spec, C parentConfiguration) {
25-
if (dependentResource instanceof DependentResourceConfigurator) {
26-
final var configurator = (DependentResourceConfigurator) dependentResource;
25+
if (dependentResource instanceof DependentResourceConfigurator configurator) {
2726
final var config = configurationFor(spec, parentConfiguration);
2827
configurator.configureWith(config);
2928
}
@@ -33,8 +32,7 @@ public static <C extends ControllerConfiguration<? extends HasMetadata>> Object
3332
DependentResourceSpec spec, C parentConfiguration) {
3433

3534
// first check if the parent configuration has potentially already resolved the configuration
36-
if (parentConfiguration instanceof DependentResourceConfigurationProvider) {
37-
final var provider = (DependentResourceConfigurationProvider) parentConfiguration;
35+
if (parentConfiguration instanceof DependentResourceConfigurationProvider provider) {
3836
final var configuration = provider.getConfigurationFor(spec);
3937
if (configuration != null) {
4038
return configuration;

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

+1-2
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,7 @@ public void initAndRegisterEventSources(EventSourceContext<P> context) {
237237
final var size = dependentResourcesByName.size();
238238
if (size > 0) {
239239
dependentResourcesByName.forEach((key, dependentResource) -> {
240-
if (dependentResource instanceof EventSourceProvider) {
241-
final var provider = (EventSourceProvider) dependentResource;
240+
if (dependentResource instanceof EventSourceProvider provider) {
242241
final var source = provider.initEventSource(context);
243242
eventSourceManager.registerEventSource(key, source);
244243
} else {

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/SSABasedGenericKubernetesResourceMatcher.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@
1111
import java.util.Optional;
1212
import java.util.Set;
1313
import java.util.TreeMap;
14-
import java.util.stream.Collectors;
14+
import java.util.Optional;
15+
import java.util.Set;
16+
import java.util.SortedMap;
17+
import java.util.TreeMap;
1518

1619
import org.slf4j.Logger;
1720
import org.slf4j.LoggerFactory;
@@ -332,12 +335,12 @@ private static Map.Entry<Integer, Map<String, Object>> selectListEntryBasedOnKey
332335
}
333336
if (possibleTargets.isEmpty()) {
334337
throw new IllegalStateException("Cannot find list element for key: " + key + ", in map: "
335-
+ values.stream().map(Map::keySet).collect(Collectors.toList()));
338+
+ values.stream().map(Map::keySet).toList());
336339
}
337340
if (possibleTargets.size() > 1) {
338341
throw new IllegalStateException(
339342
"More targets found in list element for key: " + key + " in map: "
340-
+ values.stream().map(Map::keySet).collect(Collectors.toList()));
343+
+ values.stream().map(Map::keySet).toList());
341344
}
342345
return new AbstractMap.SimpleEntry<>(lastIndex, possibleTargets.get(0));
343346
}
@@ -349,7 +352,7 @@ private Optional<ManagedFieldsEntry> checkIfFieldManagerExists(R actual, String
349352
// field manager name.
350353
.filter(
351354
f -> f.getManager().equals(fieldManager) && f.getOperation().equals(APPLY_OPERATION))
352-
.collect(Collectors.toList());
355+
.toList();
353356
if (targetManagedFields.isEmpty()) {
354357
log.debug("No field manager exists for resource: {} with name: {} and operation {}",
355358
actual.getKind(),

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

+3-4
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,7 @@ private void submitReconciliationExecution(ResourceState state) {
166166

167167
private void handleEventMarking(Event event, ResourceState state) {
168168
final var relatedCustomResourceID = event.getRelatedCustomResourceID();
169-
if (event instanceof ResourceEvent) {
170-
var resourceEvent = (ResourceEvent) event;
169+
if (event instanceof ResourceEvent resourceEvent) {
171170
if (resourceEvent.getAction() == ResourceAction.DELETED) {
172171
log.debug("Marking delete event received for: {}", relatedCustomResourceID);
173172
state.markDeleteEventReceived();
@@ -331,8 +330,8 @@ private void handleRetryOnException(
331330
private void retryAwareErrorLogging(RetryExecution retry, boolean eventPresent,
332331
Exception exception,
333332
ExecutionScope<P> executionScope) {
334-
if (!eventPresent && !retry.isLastAttempt() && exception instanceof KubernetesClientException) {
335-
KubernetesClientException ex = (KubernetesClientException) exception;
333+
if (!eventPresent && !retry.isLastAttempt()
334+
&& exception instanceof KubernetesClientException ex) {
336335
if (ex.getCode() == HttpURLConnection.HTTP_CONFLICT) {
337336
log.debug("Full client conflict error during event processing {}", executionScope,
338337
exception);

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

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
package io.javaoperatorsdk.operator.processing.event;
22

3-
import java.util.*;
3+
import java.util.LinkedHashSet;
4+
import java.util.List;
5+
import java.util.Map;
6+
import java.util.Objects;
7+
import java.util.Optional;
8+
import java.util.Set;
49
import java.util.function.Function;
510
import java.util.stream.Collectors;
611
import java.util.stream.Stream;
@@ -104,8 +109,7 @@ public synchronized void stop() {
104109
@SuppressWarnings("rawtypes")
105110
private void logEventSourceEvent(NamedEventSource eventSource, String event) {
106111
if (log.isDebugEnabled()) {
107-
if (eventSource.original() instanceof ResourceEventSource) {
108-
ResourceEventSource source = (ResourceEventSource) eventSource.original();
112+
if (eventSource.original() instanceof ResourceEventSource source) {
109113
log.debug("{} event source {} for {}", event,
110114
eventSource.isNameSet() ? eventSource.name() : eventSource,
111115
source.resourceType());
@@ -152,8 +156,7 @@ public final synchronized void registerEventSource(String name, EventSource even
152156
if (name == null || name.isBlank()) {
153157
name = EventSourceUtils.generateNameFor(eventSource);
154158
}
155-
if (eventSource instanceof ManagedInformerEventSource) {
156-
var managedInformerEventSource = ((ManagedInformerEventSource) eventSource);
159+
if (eventSource instanceof ManagedInformerEventSource managedInformerEventSource) {
157160
managedInformerEventSource.setConfigurationService(
158161
controller.getConfiguration().getConfigurationService());
159162
}

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

+2-4
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,7 @@ public Class<?> type() {
4949
@Override
5050
@SuppressWarnings({"rawtypes", "unchecked"})
5151
public Optional<Class<?>> resourceType() {
52-
if (original instanceof ResourceEventSource) {
53-
ResourceEventSource resourceEventSource = (ResourceEventSource) original;
52+
if (original instanceof ResourceEventSource resourceEventSource) {
5453
return Optional.of(resourceEventSource.resourceType());
5554
}
5655
return Optional.empty();
@@ -59,8 +58,7 @@ public Optional<Class<?>> resourceType() {
5958
@Override
6059
@SuppressWarnings("rawtypes")
6160
public Optional<?> configuration() {
62-
if (original instanceof Configurable) {
63-
Configurable configurable = (Configurable) original;
61+
if (original instanceof Configurable configurable) {
6462
return Optional.ofNullable(configurable.configuration());
6563
}
6664
return Optional.empty();

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/rate/LinearRateLimiter.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,10 @@ public LinearRateLimiter(Duration refreshPeriod, int limitForPeriod) {
3636

3737
@Override
3838
public Optional<Duration> isLimited(RateLimitState rateLimitState) {
39-
if (!isActivated() || !(rateLimitState instanceof RateState)) {
39+
if (!isActivated() || !(rateLimitState instanceof RateState actualState)) {
4040
return Optional.empty();
4141
}
4242

43-
var actualState = (RateState) rateLimitState;
4443
if (actualState.getCount() < limitForPeriod) {
4544
actualState.increaseCount();
4645
return Optional.empty();

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/ExternalResourceCachingEventSource.java

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
package io.javaoperatorsdk.operator.processing.event.source;
22

3-
import java.util.*;
3+
import java.util.Collection;
4+
import java.util.Collections;
5+
import java.util.HashMap;
6+
import java.util.HashSet;
7+
import java.util.List;
8+
import java.util.Map;
9+
import java.util.Optional;
10+
import java.util.Set;
411
import java.util.concurrent.ConcurrentHashMap;
512
import java.util.stream.Collectors;
613
import java.util.stream.Stream;
@@ -90,8 +97,7 @@ protected synchronized void handleResources(ResourceID primaryID, Set<R> newReso
9097
}
9198

9299
protected synchronized void handleResources(Map<ResourceID, Set<R>> allNewResources) {
93-
var toDelete = cache.keySet().stream().filter(k -> !allNewResources.containsKey(k))
94-
.collect(Collectors.toList());
100+
var toDelete = cache.keySet().stream().filter(k -> !allNewResources.containsKey(k)).toList();
95101
toDelete.forEach(this::handleDelete);
96102
allNewResources.forEach(this::handleResources);
97103
}
@@ -153,21 +159,15 @@ private boolean acceptedByFiler(Map<String, R> cachedResourceMap,
153159
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
154160

155161
if (onUpdateFilter != null || genericFilter != null) {
156-
var anyUpdated = possibleUpdatedResources.entrySet().stream()
162+
return possibleUpdatedResources.entrySet().stream()
157163
.anyMatch(
158164
entry -> {
159165
var newResource = newResourcesMap.get(entry.getKey());
160166
return acceptedByGenericFiler(newResource) &&
161167
onUpdateFilter.accept(newResource, entry.getValue());
162168
});
163-
if (anyUpdated) {
164-
return true;
165-
}
166-
} else if (!possibleUpdatedResources.isEmpty()) {
167-
return true;
168-
}
169-
170-
return false;
169+
} else
170+
return !possibleUpdatedResources.isEmpty();
171171
}
172172

173173
private boolean acceptedByGenericFiler(R resource) {

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/ManagedInformerEventSource.java

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package io.javaoperatorsdk.operator.processing.event.source.informer;
22

3-
import java.util.*;
3+
import java.util.HashMap;
4+
import java.util.List;
5+
import java.util.Map;
6+
import java.util.Optional;
7+
import java.util.Set;
48
import java.util.function.Function;
59
import java.util.function.Predicate;
610
import java.util.stream.Stream;
@@ -25,6 +29,7 @@
2529
import io.javaoperatorsdk.operator.processing.event.source.Configurable;
2630
import io.javaoperatorsdk.operator.processing.event.source.IndexerResourceCache;
2731

32+
@SuppressWarnings("rawtypes")
2833
public abstract class ManagedInformerEventSource<R extends HasMetadata, P extends HasMetadata, C extends ResourceConfiguration<R>>
2934
extends AbstractResourceEventSource<R, P>
3035
implements ResourceEventHandler<R>, Cache<R>, IndexerResourceCache<R>,
@@ -36,7 +41,7 @@ public abstract class ManagedInformerEventSource<R extends HasMetadata, P extend
3641
private final boolean parseResourceVersions;
3742
private ConfigurationService configurationService;
3843
private final C configuration;
39-
private Map<String, Function<R, List<String>>> indexers = new HashMap<>();
44+
private final Map<String, Function<R, List<String>>> indexers = new HashMap<>();
4045
protected TemporaryResourceCache<R> temporaryResourceCache;
4146
protected MixedOperation client;
4247

@@ -75,6 +80,7 @@ public void changeNamespaces(Set<String> namespaces) {
7580
}
7681
}
7782

83+
@SuppressWarnings("unchecked")
7884
@Override
7985
public synchronized void start() {
8086
if (isRunning()) {
@@ -124,6 +130,7 @@ public Optional<R> get(ResourceID resourceID) {
124130
}
125131
}
126132

133+
@SuppressWarnings("unused")
127134
public Optional<R> getCachedValue(ResourceID resourceID) {
128135
return get(resourceID);
129136
}

0 commit comments

Comments
 (0)