diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java
index 846c16046c..af9930d00c 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java
@@ -7,7 +7,6 @@
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
-import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -168,8 +167,18 @@ protected
ControllerConfiguration
configFor(Reconcile
final var workflowAnnotation = reconciler.getClass().getAnnotation(
io.javaoperatorsdk.operator.api.reconciler.Workflow.class);
if (workflowAnnotation != null) {
- List specs = dependentResources(workflowAnnotation, config);
- WorkflowSpec workflowSpec = new WorkflowSpec(specs, workflowAnnotation.explicitInvocation());
+ final var specs = dependentResources(workflowAnnotation, config);
+ WorkflowSpec workflowSpec = new WorkflowSpec() {
+ @Override
+ public List getDependentResourceSpecs() {
+ return specs;
+ }
+
+ @Override
+ public boolean isExplicitInvocation() {
+ return workflowAnnotation.explicitInvocation();
+ }
+ };
config.setWorkflowSpec(workflowSpec);
}
@@ -212,7 +221,7 @@ private static List dependentResources(
eventSourceName);
specsMap.put(dependentName, spec);
}
- return specsMap.values().stream().collect(Collectors.toUnmodifiableList());
+ return specsMap.values().stream().toList();
}
protected boolean createIfNeeded() {
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/workflow/WorkflowSpec.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/workflow/WorkflowSpec.java
index ab89bb07db..1b1c9da668 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/workflow/WorkflowSpec.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/workflow/WorkflowSpec.java
@@ -4,23 +4,10 @@
import io.javaoperatorsdk.operator.api.config.dependent.DependentResourceSpec;
-public class WorkflowSpec {
+public interface WorkflowSpec {
@SuppressWarnings("rawtypes")
- private final List dependentResourceSpecs;
- private final boolean explicitInvocation;
+ List getDependentResourceSpecs();
- public WorkflowSpec(List dependentResourceSpecs,
- boolean explicitInvocation) {
- this.dependentResourceSpecs = dependentResourceSpecs;
- this.explicitInvocation = explicitInvocation;
- }
-
- public List getDependentResourceSpecs() {
- return dependentResourceSpecs;
- }
-
- public boolean isExplicitInvocation() {
- return explicitInvocation;
- }
+ boolean isExplicitInvocation();
}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowSupport.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowSupport.java
index f3fa894712..816f61749d 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowSupport.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowSupport.java
@@ -39,9 +39,7 @@ public void checkForNameDuplication(List dependentResourc
}
}
- public ManagedWorkflow
createWorkflow(
- WorkflowSpec workflowSpec) {
-
+ public
ManagedWorkflow
createWorkflow(WorkflowSpec workflowSpec) {
return createAsDefault(workflowSpec.getDependentResourceSpecs());
}
diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowTest.java
index fc254aa217..e618e44e46 100644
--- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowTest.java
+++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowTest.java
@@ -62,9 +62,18 @@ void isCleanerIfHasDeleter() {
@SuppressWarnings("unchecked")
ManagedWorkflow managedWorkflow(DependentResourceSpec... specs) {
final var configuration = mock(ControllerConfiguration.class);
- final var specList = List.of(specs);
- var ws = new WorkflowSpec(specList, false);
+ var ws = new WorkflowSpec() {
+ @Override
+ public List getDependentResourceSpecs() {
+ return List.of(specs);
+ }
+
+ @Override
+ public boolean isExplicitInvocation() {
+ return false;
+ }
+ };
when(configuration.getWorkflowSpec()).thenReturn(Optional.of(ws));
return new BaseConfigurationService().getWorkflowFactory()