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()